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