日前,一場大規(guī)模的互聯(lián)網(wǎng)癱瘓席卷了美國,2016年10月21日 11:10 UTC(北京時間19:10左右)惡意軟件Mirai控制的僵尸網(wǎng)絡(luò)對美國域名服務(wù)器管理服務(wù)供應(yīng)商Dyn發(fā)起DDOS攻擊,從而導致許多網(wǎng)站在美國東海岸地區(qū)宕機。以下是來自青蓮云對感染IOT設(shè)備的惡意軟件Mirai的分析。
本文您將看到:
1、攻擊事件回顧
2、惡意軟件Mirai是什么
3、Mirai如何感染IOT設(shè)備的
4、Mirai如何控制IOT設(shè)備發(fā)起攻擊
5、Mirai的另一種攻擊思路
6、如何防止智能設(shè)備被惡意利用
附錄:《感染IOT設(shè)備的惡意軟件Mirai源代碼分析》
攻擊事件回顧
日前,一場大規(guī)模的互聯(lián)網(wǎng)癱瘓席卷了美國,2016年10月21日 11:10 UTC(北京時間19:10左右)惡意軟件Mirai控制的僵尸網(wǎng)絡(luò)對美國域名服務(wù)器管理服務(wù)供應(yīng)商Dyn發(fā)起DDOS攻擊,從而導致許多網(wǎng)站在美國東海岸地區(qū)宕機。
你可能沒有聽說Dyn,但你一定知道這些網(wǎng)站,如GitHub、Twitter、PayPal等。Dyn為這些著名網(wǎng)站提供基礎(chǔ)的DNS服務(wù),當其受到攻擊時,用戶無法通過域名訪問這些站點。
惡意軟件Mirai是什么
安全研究人員表示,造成此次網(wǎng)絡(luò)宕機事件的罪魁禍首,可能是大量的物聯(lián)網(wǎng)設(shè)備——包括聯(lián)網(wǎng)的攝像頭和數(shù)字錄像機,這些設(shè)備可能因遭到黑客劫持而被利用。
據(jù)悉,控制這些設(shè)備的惡意軟件名為Mirai。Mirai惡意軟件的源代碼由匿名人士開發(fā),并于10月公開。Mirai軟件能夠感染各類存在漏洞的物聯(lián)網(wǎng)設(shè)備,其中包括安保攝像頭、DVR以及互聯(lián)網(wǎng)路由器等。通過惡意感染,這些物聯(lián)網(wǎng)裝置將成為僵尸網(wǎng)絡(luò)中的肉雞設(shè)備,并被用于實施大規(guī)模DDoS攻擊。
Mirai如何感染IOT設(shè)備的
1、網(wǎng)絡(luò)掃描存在telnet服務(wù)
2、61組用戶名密碼組合暴力破解存在弱密碼和出廠密碼的iot設(shè)備
3、登陸telnet成功以后,遠程執(zhí)行命令獲取iot設(shè)備指紋信息
4、遠程下載iot設(shè)備架構(gòu)對應(yīng)的惡意可執(zhí)行程序并執(zhí)行
5、惡意程序執(zhí)行以后,在局域網(wǎng)內(nèi)掃描存在該漏洞的其他設(shè)備
6、感染周邊的設(shè)備
Mirai如何控制IOT設(shè)備發(fā)起攻擊
Mirai惡意程序有很強的自我保護性,會隱身,有反GDB調(diào)試能力,有防止watchdog重啟設(shè)備能力;同時mirai有很一定的排它能力,能后殺死其他惡意程序或者僵尸網(wǎng)絡(luò)遠程控制。
Mirai一旦感染設(shè)備以后,獲得設(shè)備的絕對控制權(quán),會自動加載DDoS攻擊模塊,當有新的攻擊指令下發(fā)的時候,就會發(fā)起DDoS攻擊。
Mirai的另一種攻擊思路
Mirai感染設(shè)備后,擁有絕對控制權(quán),除了把設(shè)備當成攻擊的發(fā)起者來進行DDoS攻擊以外,還能夠?qū)υO(shè)備本身的系統(tǒng)、業(yè)務(wù)、數(shù)據(jù)造成嚴重危害,比如能夠篡改數(shù)據(jù)、竊取數(shù)據(jù)、修改系統(tǒng)配置、刪除系統(tǒng)文件、殺死業(yè)務(wù)服務(wù)等等。
如何防止智能設(shè)備被惡意利用
1、提高安全意識,杜絕使用初始密碼以和弱密碼,提供密碼安全等級
2、關(guān)閉多余的系統(tǒng)功能以及命令
3、限制busybox使用權(quán)限
4、關(guān)閉48101端口
5、添加監(jiān)控,防止惡意程序的運行
附錄:《感染IOT設(shè)備的惡意軟件Mirai源代碼分析》
目錄
一、源碼結(jié)構(gòu)樹
二、源碼主要包含了三大塊功能
三、loader功能
四、bot模塊
五、CnC command and control模塊
1 源碼結(jié)構(gòu)樹
整個源碼量不大,一個較小的工程,總共48個定義、實現(xiàn)文件。文件結(jié)構(gòu)如下圖
2 源碼主要包含了三大塊功能
1、loader
攻擊程序加載器,用于將實際攻擊程序加載到目標IOT設(shè)備上。
2、bot
用于實施惡意攻擊的程序模塊,該模塊為被控制端。
3、cnc
控制端模塊,用于管理bot以及命令的應(yīng)答和處理。
3 loader功能
由于線程處理邏輯相對其他來說,比較復雜,這里摘除不容易理解部分分析說明一下。
handle_event函數(shù)負責處理server與目標肉雞telnet連接上交互的數(shù)據(jù)。
處理主要分為三個大部分,每個大部分又有很多小的步驟來組成。為了區(qū)分每個步驟的處理邏輯,handle_event中維護了簡單的狀態(tài)機,定義如下:
TELNET_CLOSED, // 0
……
TELNET_CLEANUP // 19
這部分在查看代碼的時候會發(fā)現(xiàn),大量用到ECCHI命令。
主要有兩個方面的考慮:
篩選目標telnet肉雞系統(tǒng),防止目標是比較完整的linux機器,甚至能夠識別出一些蜜罐系統(tǒng)比如cowrie。因為這些無關(guān)的系統(tǒng)在執(zhí)行busybox ECCHI命令后,會提出一些helper信息,而不是簡單的”ECCHI: applet not found”
起標簽作用,攻擊者在很多命令后面都會添加上"/bin/busyboxECCHI",在返回處理結(jié)果的數(shù)據(jù)中,可以找”ECCHI: applet not found”的位置,來區(qū)分獲取想要得到的數(shù)據(jù)。
4 bot模塊
bot模塊,用于實施攻擊的程序,包含自身保護機制、掃描、域名解析、各種DDoS攻擊等。
攻擊模塊加載初始化,添加udp、tcp、dns、vse、syn等多種攻擊模塊,具體每種攻擊實現(xiàn)都可以在attack_xx.c文件中找到。
5 CnC command and control模塊
攻擊主控端模塊,主要創(chuàng)建兩個服務(wù),分別監(jiān)聽在23/101端口上。分別提供主要提供bot相關(guān)的管理;命令的應(yīng)答處理。