- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
近期,一款專門針對IoT設(shè)備的惡意軟件開始暗中活動,它被命名為SBIDIOT,造成的主要威脅是分布式拒絕服務(wù)(DDos)攻擊。目前它在 VirusTotal上的檢測數(shù)量相對較少,并且網(wǎng)絡(luò)安全社區(qū)也暫時沒有和它相關(guān)的充分記錄。盡管某些物聯(lián)網(wǎng)僵尸網(wǎng)絡(luò)專門從事加密貨幣挖掘或欺詐活動,但與SBIDIOT惡意軟件相關(guān)聯(lián)的僵尸網(wǎng)絡(luò)幾乎完全致力于DDoS攻擊。
本文將揭示SBIDIOT如何與目標(biāo)進行通信,以及它支持什么類型的命令。分享這些信息將有助于檢測威脅,從而在威脅行為發(fā)生前及時阻止
一、SBIDIOT惡意軟件分析
SBIDIOT惡意軟件的傳播依賴于IoT設(shè)備使用的過時固件中的漏洞。似乎很大一部分受感染的設(shè)備是運行較舊固件版本的ZTE路由器,該固件版本易受遠程代碼執(zhí)行(RCE)漏洞的影響。在那些受感染設(shè)備上可以觀察到,shell腳本一旦通過各種方式傳遞到受害機器上便會下載并執(zhí)行二進制有效負載:
獲得的樣本:
e2b3ca0a97107fa351e39111c80b3fef……41eabe845af4b9 使用了標(biāo)準(zhǔn)UPX工具打包,不過UPX頭有做修改。雖然惡意樣本仍然是可執(zhí)行的,但不再可能使用相同的工具直接解包它:
正如下圖中看到簽名的,UPX! 被一個自定義的簽名 YTS\x99 替代了:
所以修復(fù)它后才能夠使用標(biāo)準(zhǔn)的UPX工具解包:
分析中發(fā)現(xiàn)威脅特征非常常見,其中DDoS的部分代碼與Gafgyt等其他惡意軟件家族是共享的。
考慮到樣本是靜態(tài)鏈接并且被剝離了符號表的,針對物聯(lián)網(wǎng)的惡意軟件幾乎都是這樣,下一步是為uClibc加載FLIRT簽名,使分析更容易。uClibc是一個小型的C標(biāo)準(zhǔn)庫,通常用于基于Linux內(nèi)核的嵌入式設(shè)備,物聯(lián)網(wǎng)惡意軟件開發(fā)人員也經(jīng)常使用它以方便交叉編譯。FLIRT簽名本質(zhì)上是一種逆向工程工具(如IDA)用來匹配已知庫的方法,它可以極大地加快分析過程。分析中發(fā)現(xiàn)威脅特征非常常見,其中DDoS的部分代碼與Gafgyt等其他惡意軟件家族是共享的。
使用FLIRT可以識別出大量的函數(shù)
樣本在執(zhí)行之后,嘗試連接到其C2,在本例中,C2是硬編碼到二進制文件中的IP地址和端口。盡管C2服務(wù)器在分析期間無法提供服務(wù),但可以強制樣本與自主搭建的C2服務(wù)器通信。再加上一些靜態(tài)分析,也足以實現(xiàn)模擬交互。
樣本中負責(zé)處理命令的函數(shù)將從C2服務(wù)器接收到的每個命令與以下字符串進行比較,也就是總共能夠執(zhí)行16個從C2服務(wù)器接收的命令。
二、SBIDIOT支持的命令
TCP命令要求bot在指定的時間間隔內(nèi)向指定的主機/端口組合發(fā)送TCP 報文。此外,它還允許操作者設(shè)置一些可選的TCP標(biāo)志。
上圖展示了TCP命令處理程序中支持的自定義TCP標(biāo)志
HTTPSTOMP
它接受的參數(shù)包括HTTP方法、主機/端口組合、攻擊持續(xù)時間和指定重復(fù)此操作次數(shù)的計數(shù)。如果攻擊沒有被超過指定的持續(xù)時間和請求數(shù),該函數(shù)將使用提供的設(shè)置和隨機選擇的User-Agent字符串繼續(xù)執(zhí)行HTTP請求。
下圖是硬編碼的User-Agent字符串列表
HTTPSTOMP命令處理程序:
此外,程序中還會調(diào)用另一個函數(shù)來發(fā)起對主機名/端口/cdn-cgi/l/chk_captcha URI的HTTP請求,同樣,也可以配置攻擊持續(xù)時間和請求計數(shù)。這樣做是為了規(guī)避CloudFlare保護機制。
VSE
用于DDoS的另一個命令,根據(jù)提供的參數(shù),它使用UDP或原始套接字。同樣,可以提供目標(biāo)和攻擊持續(xù)時間的參數(shù),但是攻擊者還可以指定發(fā)送到目標(biāo)的數(shù)據(jù)包之間的時間間隔。Gafgyt的變種和其他物聯(lián)網(wǎng)惡意軟件偶爾會使用一個VSE命令,用來瞄準(zhǔn)運行Valve Source引擎的服務(wù)器。
下圖是實現(xiàn)時間間隔的VSE命令處理程序的代碼片段:
VOX
VOX命令以主機、端口和攻擊持續(xù)時間作為參數(shù),然后從三種硬編碼有效負載中隨機選擇一個發(fā)送UDP數(shù)據(jù)包。
下圖是包含硬編碼有效負載的惡意UDP流量
UDP
樣本會將UDP有效負載發(fā)送到目標(biāo)主機的指定端口,其他參數(shù)包括攻擊持續(xù)時間和生成的有效負載的最大大小。由于使用了strlen函數(shù),負載的實際大小可能會比通過strlen得到的更小,因為該函數(shù)是從內(nèi)存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內(nèi)存區(qū)域)開始掃描,直到碰到第一個字符串結(jié)束符'\0'為止,然后返回計數(shù)器值(長度不包含'\0')。
命令處理程序驗證UDP參數(shù)的部分代碼:
HEX / STD / R6 / NFO / FN / OVHKILL / NFOKILL / UDPH
以上所有命令調(diào)用相同的處理函數(shù),該函數(shù)接收主機名、端口和攻擊持續(xù)時間,然后開始生成具有固定負載的UDP流量。
STOP/stop/Stop
這個命令向當(dāng)前被跟蹤的所有進程id發(fā)送一個SIGKILL信號,停止指定進程的任何子進程。
三、相關(guān)C&C
2021年出現(xiàn)的33個C&C IP地址在全球的分布如下,可以看出主要集中在美國和一些歐洲城市。
其他常用的文件名:
連接到互聯(lián)網(wǎng)的IoT設(shè)備數(shù)量正在急速增長,新的惡意軟件家族以及現(xiàn)有惡意軟件的變種會定期出現(xiàn)。無論這些惡意軟件的復(fù)雜性如何,它們都將構(gòu)成威脅。
四、小結(jié)
因此對于用戶而言,強烈建議:1、 使用IoT設(shè)備時立即更改默認密碼。2、定期檢查固件版本并及時更新。3、如無必要需求,不要將IoT設(shè)備端口向互聯(lián)網(wǎng)開放。4、關(guān)鍵環(huán)境中部署檢測、防護設(shè)備。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP