物聯網(IoT ,Internet of Thing)已經迅速地成為日常生活裡不可或缺的一部分。出現在口袋、家中、辦公室、車子、工廠和城市裡的物聯網裝置讓人們的生活變得更加有效率和便捷。毫無疑問地,物聯網的採用率將會持續地增加。在2019年,公開已知的IoT平台數量來到了620個,是2015年的兩倍。在今年預計會有310億個IoT裝置被安裝到世界各地。因此,網路犯罪分子也一直為了其惡意意圖(包括數位勒索)來開發如後門程式和殭屍網路等物聯網惡意軟體。正如趨勢科技的最新年度安全綜合報告所提到,物聯網殭屍網路在2019年進行的暴力登入次數是2018年的三倍。
網路安全研究人員在多年來已經開發出各種有用的演算法來快速、準確地識別大量惡意檔案,可以有效地對抗惡意軟體。但在物聯網方面,隨著針對聯網裝置威脅和攻擊呈指數性的成長,網路安全專家需要能夠讓他們的防禦措施變得系統化、精準而強大的方法。
為此,我們開發了趨勢科技ELF雜湊(telfhash)技術,一套開放原始碼集群演算法,能夠有效地集群針對Linux平台IoT裝置的ELF格式惡意軟體(也就是Linux IoT惡意軟體)。
現有的檔案集群演算法
惡意軟體研究人員在這些年來已經開發了許多演算法來有效準確地集群大量惡意檔案。我們自己的趨勢科技局部敏感雜湊(TLSH)就是其中之一,這是種可以突顯檔案局部敏感特性而不是相似性的模糊雜湊技術,能夠被用於白名單的機器學習擴充套件。在2018年時,我們使用TLSH分析了200萬個簽章過的檔案,得以發現被稱為Browsefox的行銷廣告軟體外掛在大規模地濫用憑證簽章。
另一個例子是導入雜湊(ImpHash),主要被用來識別屬於同一惡意軟體家族的二進位檔。它分析相似惡意軟體檔案的方式是取得PE檔案的導入函式(從導入目錄)及相關程式庫名稱並建立用逗號分隔的列表。接著再用MD5校驗演算法對列表進行雜湊處理。在圖1範例中,我們使用Lokibot的樣本(一種可以從受害者電腦竊取敏感資料的惡意軟體)來說明ImpHash的運作方式。
此樣本從KERNEL32.DLL程式庫導入了GetTempPathA()、GetFileSize()、GetModuleFileNameA和其他函式。在產生ImpHash時會考慮所有導入程式庫的導入函式。這樣一來,相似的檔案(無論是否加入新資料)都會具有相同的ImpHash值 – 除非開發人員使用(導入)新函式或移除原本使用的函式來更改功能。
儘管對Windows PE檔案有許多演算法可用,但仍沒有群集演算法特別針對Linux IoT惡意軟體(主要使用ELF格式)。因此我們發現有必要開發telfhash技術,你可以將它視為用於IoT惡意軟體的ImpHash,因為它使用了ImpHash技術來分析ELF執行檔。
Telfhash的作用
我們使用telfhash的目的是取得ELF檔案的導入函式,並將它們餵進相似性摘要演算法來集群相似檔案。底下是使用telfhash的簡短影片:
儘管telfhash是基於ImpHash技術,但其雜湊演算法用的是TLSH而非MD5。這是為了用到TLSH的局部敏感特性,不會因為用函式列表作為演算法輸入而失去結構化作法。因此,即使惡意軟體作者透過加入或導入新程式庫函式來加入新功能到惡意樣本中,telfhash摘要仍會保持原始狀態,並且仍可判斷惡意軟體樣本是否屬於同一家族。
為了檢視telfhash是否對真正的惡意軟體有用,我們收集了Momentum的樣本,這是會感染Linux平台IoT裝置並用來進行分散式阻斷服務攻擊的殭屍網路,然後對這些樣本跑了telfhash演算法,如圖2所示。
透過使用telfhash和TLSH距離度量(將閾值設為50),我們可以將Momentum殭屍網路樣本集群成三個相似群,如圖3所示。
目前telfhash支援x86、x86-64、ARM和MIPS,涵蓋了大多數IoT惡意軟體樣本所針對的架構。
Telfhash現在可以從Github上取得。我們將其作為Python程式庫提供,以便輕鬆地整合到Python腳本來為ELF檔案生成相似性摘要。
我們樂觀地認為可以在網路安全社群的支持下討論新功能、進行改進並修復臭蟲。我們希望telfhash被證明是對抗Linux IoT惡意軟體的重要工具。
請閱讀技術簡介,裡面詳細討論了我們如何開發telfhash及其運作方式。
@原文出處:Grouping Linux IoT Malware Samples With Trend Micro ELF Hash 作者:Fernando Mercês(資深威脅研究員)