超大規模的物聯網殭屍網路:Pink

語言: CN / TW / HK

閱讀: 24

本報告由CNCERT物聯網威脅分析團隊\綠盟科技伏影實驗室\360網路安全研究院(Netlab)聯合釋出。

以下為報告正文

一、概述

2019年12月,根據安全社群提供的線索,我們發現了一起大規模的物聯網安全事件。多方聯合的分析與定位結果顯示,此次事件中,黑客通過入侵某網路運營商的家庭使用者裝置並植入惡意程式,持續地使這些裝置變成新的殭屍節點,進而構建起了一個超大規模的殭屍網路。根據所涉運營商和裝置廠商的初步評估,被黑客入侵併控制的裝置數量超過百萬,其中96%以上的受害者分佈在中國境內。這次攻擊事件中受控的裝置數量特別巨大,是歷史上已公開領域內規模最大的物聯網殭屍網路。

運營商的家庭使用者裝置在設計、研發、製造等階段,需要採購第三方元件,以完成產品功能。由於程式設計不嚴謹、安全測試不充分等原因,有些元件含有軟體或硬體缺陷。這些缺陷在沒有暴露之前,叫做0-day漏洞或零日漏洞(沒有暴露——0-day,暴露1日——1-day,暴露多日——N-day)。此次事件中,黑客就是利用了裝置生產供應鏈中的某些元件的0-day漏洞,入侵了多個品牌的家庭閘道器類裝置,並在裝置上植入了惡意程式。因為在該惡意程式的二進位制逆向結果中,多次出現“pink”字元,所以我們將其命名為Pink。

Pink惡意程式從功能上可以劃分為3個模組:植入、駐留、控制。當Pink惡意程式被植入裝置並執行後,它會主動封堵裝置的自動升級通道,大大增加了應急處置和線上修復的難度,危害程度極高。通過對該事件的深入分析,我們認為,此次攻擊事件已經超出了殭屍網路的範疇,是一次高階定向攻擊事件:

1、高階性:在一般的殭屍網路攻擊中,黑客會使用許多通用型的漏洞,以期最廣泛地覆蓋不同型別、不同品牌、不同韌體的線上裝置。但是在此次事件中,黑客挖掘了運營商的特定裝置、特定韌體的0-day漏洞(挖掘特定裝置的漏洞,通常比挖掘通用型的漏洞難得多),僅利用0-day漏洞入侵這些特殊裝置,並且沒有增加其他漏洞用於更廣泛的擴散感染;

2、定向性:此次事件中出現的0-day攻擊是針對特定品牌的寬頻裝置設計的,這些裝置主要被提供到華北、東北地區,其中北京地區裝機量最大。這些裝置作為未來家用物聯網控制核心,重要性不言而喻。因此我們判斷,Pink背後的黑手是有目的性地選擇攻擊目標,這是高階定向攻擊的重要判斷依據;

3、定製性:在一般的殭屍網路攻擊中,黑客會製作適配X86、ARM、MIPS等多種處理器架構的惡意程式,以確保能夠最廣泛地感染不同的裝置。但是在此次事件中,Pink惡意程式僅能適配MIPS架構,而它正是被入侵控制的裝置所採用的處理器架構;

4、永續性:在一般的殭屍網路攻擊中,攻擊者通常在漏洞利用階段修改crontab定時任務,以實現惡意程式的持久化。但是在此次事件中,Pink惡意程式自己通過修改韌體,完成Rootkit來保證自身長期存在於裝置中,這是極為罕見的、難度很高的駐留方式,這也是Pink屬於高階定向攻擊的重要判定依據;

5、潛伏性:在我們的持續監測過程中,並未發現Pink有任何外部掃描攻擊行為,因此其攻擊活動是以特定目標進行的,而常規殭屍網路活動則帶有大規模的掃描和探測能力,追求短時間內控制大量裝置;Pink惡意程式中,也沒有出現任何已知的惡意軟體的程式碼複用行為,在廠商治理後,Pink不再進行更新,這也表明了攻擊者更願意隱匿自身,這與殭屍網路開發者被公佈後有意炫耀並持續活躍有本質的區別。

二、影響範圍

根據NetFlow監測、主動探測等多個維度的資料測算,Pink殭屍網路曾經連線的IP地址數量超過五百萬。通過對這些IP地址的定位資料進行統計發現,這些IP主要是某運營商的家庭使用者地址。然而家庭使用者的IP地址是動態分配的,IP背後已感染裝置的真實規模無法被精確估計。2020年初的監測資料顯示:在不到1分鐘的時間內,向控制伺服器C2發起連線的感染端IP數超過百萬。另據所涉運營商和裝置廠商的初步評估,被黑客入侵併控制的裝置數量在數百萬級。綜上,依據多方獨立的測量結果,我們認定Pink殭屍網路控制的節點數量在其峰值期超過百萬。

根據感染IP地址的定位資料,被感染裝置主要位於北京(18.8%)、山東(16.4%)、山西(12.6%)、浙江(12.3%)等,境內分佈如圖1所示。

Pink殭屍網路境內感染IP分佈

三、技術分析

經過長期的跟蹤研究,我們發現Pink是一個融合了多種對抗技術的殭屍網路。裝置被植入惡意程式Pink後,攻擊者通過點對點(P2P)和命令控制(CNC)兩種方式對Pink進行控制和管理。

1、對時效性要求不高的配置管理指令,通過P2P的方式分發;

2、對時效性要求較高的攻擊控制指令,通過CNC方式集中分發。

3.1 配置管理

對於每一個被控的殭屍節點(Bot)來說,最重要的一步是找到管理員並接收指令,而管理員的資訊就包含在“配置”之中。下面是最新截獲的配置資訊:

{

“verify”:“1611936001″,

“cncip1”:“140.82.40.29″,

“cncport1”:“26007″,

“dlc”:“450aa79da035a8a55ca4c0e6b1025b50″,

“dl”:“http://209.250.247.60/dlist.txt”,

“dlc1”:“47ed94977b45099f1ef5c7701b2d25dc”,

“dl1”:“https://***/ghy8/bh/raw/master/dlist.txt”,

“sd0”:“1.1.1.1″,

“sdp0”:“443″,

“srvk”:“FJAz37XiKgnTLtVpmhjxZcavTJUU5r4XN3Wl5nhTpg0=“,

”pxy”:“1”

}

(1)verify 欄位為指令釋出的時間戳,Bot會根據這個時間戳篩選出最新的有效指令;

(2)cncip 和 cncport 欄位指明瞭殭屍網路的最新CNC地址,攻擊者會根據自身需求隨時切換這個控制地址;

(3)dlc/dl和 dlc1/dl1 欄位組為最新的Pink樣本更新地址,其中dlc和dlc1為對應內容的Hash校驗欄位;

(4)sd0/sdp0欄位為安全DNS地址,對於每一個Bot來說,當需要查詢DNS解析記錄時,將通過這裡指定的DNS服務來查詢,且方式為DNS-Over-HTTPS;

(5)srvk欄位為服務端的公鑰內容(base64編碼)。對於每一個bot來說,它和CNC的通訊都是加密的。所以實際通訊前要先經過橢圓曲線迪菲-赫爾曼(ECDH)金鑰交換得到一個唯一的私鑰。在這裡指定了CNC端的公鑰後,還可以順帶完成了Bot對CNC身份的驗籤。這是對原有 ECDH 金鑰交換的擴充套件使用;

(6)pxy欄位,推測是一個代理上線的選項,目前沒有看到使用跡象。

配置資訊是這個殭屍網路的核心,它保證了攻擊者對殭屍網路的絕對控制能力。為了防止其他人發現配置資訊,傳遞的配置資訊都是異或加密過的密文。為了防止他人偽造,攻擊者還用橢圓曲線數字簽名演算法(ECDSA)對配置資訊進行了簽名。

除了保證配置資訊的機密性和完整性外,攻擊者還使用了多種手段來分發配置資訊,以確保其可用性:

(1)通過集中的方式分發配置資訊。將配置資訊加密後,通過Github、百度貼吧等公開網站註冊使用者,以及內建的域名cnc.pinklander.com來分發配置資訊;

(2)通過 P2P 方式分發配置資訊:Pink執行後會在被入侵的裝置本地開啟埠監聽,互相進行廣播和分發配置資訊。

3.2 攻擊控制

上節配置資訊中的 cncip1 和 cncport1 便是攻擊者實際使用的主控節點。Pink 連線到 CNC伺服器後,將通過金鑰交換的方式加密通訊,傳輸控制指令。通過長期的跟蹤和監測,我們發現Pink 指令具有豐富的控制能力,具體包括:

1. 檔案下載及執行

2. 系統命令執行

3. DDoS攻擊(HTTP攻擊和 UDP 攻擊)

4. 掃描功能(掃描的具體內容可以通過指令設定)

5. 彙報裝置資訊(CPU/系統型別/記憶體資訊/系統版本/硬體資訊)

6. 自身更新(將新版本儲存到 /tmp/client 後執行)

7. P2P節點列表同步(直接推送一組P2P節點到Bot)

8. HTTP報文注入廣告(嗅探互動報文,遇到HTTP網頁時,插入廣告js指令碼)

9. 啟動sock5代理服務(架設 Socks5 代理服務,賬號密碼通過指令設定)

10. 重置watchdog

3.3 駐留手法

Pink在侵入目標裝置後,第一時間修改系統韌體,在init.d指令碼中新增啟動項,啟動Loader模組,該模組負責在裝置啟動後更新配置檔案,下載最新的Bot程式。Loader模組通過對Tr69c程式檔案的刪除和對應程序的操作,避免運營商通過該程序升級系統韌體、下發管理工具。這裡解釋一下,Tr69c程式檔案是運營商為了在管理側主動下發指令,從而管理裝置的具體實現程式,是具有高許可權和未公開的程式。通過研究Pink的駐留手法,我們能夠體會到,攻擊者對運營商執行機制及目標裝置特性有相當程度的瞭解。

3.4 流量劫持和篡改

Bot程式在核心態實現了流量的轉發和劫持篡改。其通過使用mangle表,將裝置中經過80埠的流量轉發到由netfliter框架實現的資料包處理邏輯中,該框架是核心操作級別的流量處理框架,攻擊者通過它提供的回撥例程修改http流量。Bot也可以通過該框架實現中間人能力,劫持通訊雙方的會話,強制使用者訪問網站或瀏覽特定資訊,並向外隱藏使用者側的異常網路表現,竊取通訊雙方交換的重要資訊如金鑰等。上述能力均可以在通訊雙方不知情的情況下完成,危害巨大。在此次攻擊事件中,攻擊者已經展示出該功能的偽裝使用方法,在頁面指定位置投遞廣告資訊。

3.5 代理能力

Bot程式提供了Socks5代理的功能,通過自定義演算法生成使用者名稱密碼,並主動開啟埠以接收新的連線。Socks5的代理實現複用了libev庫,簡化了shadowsocks-libev的程式碼。通過將裝置代理化,攻擊者擁有了數百萬的動態IP池。這裡解釋一下,因為IP資源緊缺,家庭寬帶出口IP是動態變化的,且均屬於個人使用者資源,如果攻擊者利用這些IP資源發起網路戰,防禦方無法通過封堵措施完成防禦,且短時間內無法恢復。常用的抗DDoS裝置也無法發揮作用,攻擊者可以無限制的使用這些真實IP發起攻擊。

3.6 追蹤Pink

在感染裝置上提取到的惡意程式連線的CNC地址為:cnc.pinklander.com,2019年12月捕獲時,其解析IP為:110.18.61.36,2020年1月解析IP為:45.77.198.232。

捕獲到的惡意檔案下載地址及檔案hash如下:

(1)2020-02-18,http://140.82.53.129/client_l   FR  5c322610e1845d0be9ccfc8a8b6a4c4f

(2)2020-04-14,http://155.138.140.245/client_l CA  5c322610e1845d0be9ccfc8a8b6a4c4f

(3)2020-04-16,http://95.179.238.22/client_l   NL  5c322610e1845d0be9ccfc8a8b6a4c4f

(4)2020-08-17,http://209.250.247.60/client_b  GB  5c322610e1845d0be9ccfc8a8b6a4c4f

(5)2021-05-06,http://209.250.247.60/client_l  GB  7608b24c8dcf3cd7253dbd5390df8b1f

四、處置和建議

鑑於該殭屍網路的規模和影響,我們發現該事件後,已第一時間通報給涉事網路運營商和相關主管部門,並聯系裝置廠商,協助處理和解決受影響的裝置。黑客在與安全人員的對抗中,展現出了極強的針對性和專業性:首先黑客入侵裝置後,會通過刷寫韌體等方式獲得裝置的絕對控制權,甚至讓裝置廠商預留的管理埠也失效,而只能去現場解決;其次,黑客還建立起復雜的加密通道來分發配置管理和攻擊控制指令,從而逃避監測。經過安全人員與黑客的多輪對抗,截至2020年7月,絕大部分被入侵的裝置已被修復。此後,通過1年多的持續監測,我們發現目前仍存在少量無法遠端修復的裝置在現網執行,並且攻擊者還在持續地探索其他裝置廠商的0-day漏洞。在安全社群的打擊之下,Pink的規模已經從特大型(超過百萬節點)縮減到大型(約十萬節點,分佈在多個國家、涉及多家裝置廠商),且目前仍然活躍。

我們的威脅情報顯示,物聯網0-day漏洞正在被黑客用來入侵形形色色的網路裝置。隨著萬物互聯時代的到來,物聯網裝置已經成為黑產組織甚至高階持續性威脅(APT)組織的重要目標。雖然Pink是迄今為止發現的規模最大的殭屍網路,但是它絕對不會是最後一個。以Pink為代表的超大規模殭屍網路是黑客組織實現百般企圖的有力的基礎設施,我們在評估殭屍網路帶來的風險時,不僅要搞清楚黑客已經通過殭屍網路做了什麼,更要預測到殭屍網路將來可能被用於做什麼,這樣才能在威脅來臨時從容應對。我們將密切關注黑客技術進展及黑客組織動向,深入研究超大規模殭屍網路的機理特性,持續揭露殭屍網路的潛在危害。

綠盟伏影實驗室

綠盟科技伏影實驗室專注於安全威脅與監測技術研究。研究目標包括殭屍網路威脅,DDoS對抗,WEB對抗,流行服務系統脆弱利用威脅、身份認證威脅,數字資產威脅,黑色產業威脅及新興威脅。通過掌控現網威脅來識別風險,緩解威脅傷害,為威脅對抗提供決策支撐。

綠盟威脅情報中心

綠盟威脅情報中心(NSFOCUS Threat Intelligence center, NTI)是綠盟科技為落實智慧安全3.0戰略,促進網路空間安全生態建設和威脅情報應用,增強客戶攻防對抗能力而組建的專業性安全研究組織。其依託公司專業的安全團隊和強大的安全研究能力,對全球網路安全威脅和態勢進行持續觀察和分析,以威脅情報的生產、運營、應用等能力及關鍵技術作為核心研究內容,推出了綠盟威脅情報平臺以及一系列整合威脅情報的新一代安全產品,為使用者提供可操作的情報資料、專業的情報服務和高效的威脅防護能力,幫助使用者更好地瞭解和應對各類網路威脅。

版權宣告

本站“技術部落格”所有內容的版權持有者為綠盟科技集團股份有限公司(“綠盟科技”)。作為分享技術資訊的平臺,綠盟科技期待與廣大使用者互動交流,並歡迎在標明出處(綠盟科技-技術部落格)及網址的情形下,全文轉發。

上述情形之外的任何使用形式,均需提前向綠盟科技(010-68438880-5462)申請版權授權。如擅自使用,綠盟科技保留追責權利。同時,如因擅自使用部落格內容引發法律糾紛,由使用者自行承擔全部法律責任,與綠盟科技無關。