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