機器學習如何發現 BrowseFox 大規模憑證濫用?

透過機器學習(machine learning)演算法趨勢科技發現了BrowseFox大規模的憑證簽章濫用,BrowseFox是被趨勢科技偵測為PUA_BROWSEFOX.SMC的潛在不必要程式(PUA),會非法注入彈出式廣告的廣告軟體外掛。儘管它用的是合法的軟體程序,但廣告軟體外掛可能會被駭客所利用,使用惡意廣告來將受害者導向惡意網站,進而不知不覺地下載了惡意軟體。根據分析,我們從200萬筆已簽章檔案所組成資料集內判斷出有大量的BrowseFox – 這些檔案的有效性和完整性已通過驗證。

機器學習如何發現 BrowseFox 大規模憑證濫用?

發現BrowseFox憑證濫用

我們是在準備2017年BlackHat亞洲大會演講時發現此憑證簽章濫用問題,原本是要展示如何將局部敏感雜湊(Local Sensitive Hashing, LSH)用於智慧/動態白名單(SHA1或MD5等加密雜湊完全不適用於此領域)。

在使用趨勢科技局部敏感雜湊(Trend Micro Locality Sensitive Hashing, TLSH)群集分析200萬筆簽章檔案組成的資料集時,我們確定許多群集(cluster)具有非常特殊和奇怪的特徵:群集檔案由許多不同簽章者(signer)簽章。許多合法軟體也會有這種情形,但跟BrowseFox相關聯的群集有另一個屬性;當我們針對簽章者建立群集圖時,這些群集形成一個約略的二分團。然後我們可以識別與該團相關的檔案,隨後將約25萬筆檔案標記為疑似BrowseFox。我們檢查了VirusTotal上的疑似樣本,發現了5,203筆檔案雜湊,並確定它們確實是BrowseFox。經過進一步的調查,我們發現這些檔案已經由519名不同的憑證簽章者簽章 註[1]。這似乎是BrowseFox的策略 – 建立新簽章實體來取得有效憑證。

正如之前在「探討(惡意)軟體下載的長尾現象」中所觀察到,已簽章檔案並不一定就非惡意。事實上,研究顯示有許多被下載的惡意軟體都是簽章過的。BrowseFox的調查結果進一步地凸顯出駭客如何濫用有效的憑證簽章者來散播惡意軟體。

在我們200萬筆已簽章執行檔所組成的資料集中,有大量檔案(24.4萬筆)屬於BrowseFox的惡意軟體或PUA檔案。這24.4萬筆檔案透過兩個嚴格的條件被識別為BrowseFox:首先,該檔案由這519個惡意簽章者之一所簽章,其次,它屬於其中一個BrowseFox群組。

在VirusTotal上所看到BrowseFox檔案簽章資訊

圖1、在VirusTotal上所看到BrowseFox檔案簽章資訊

 

圖1顯示從VirusTotal收集的BrowseFox樣本。簽章資訊內的根憑證所有者是VeriSign,它提供程式碼簽章服務。建立這檔案的實體或公司(也就是最終簽章者)是Sale Planet。也就是說這個BrowseFox PUA檔案也是由合法簽章者所簽章。

BrowseFox演化樹

我們為這24.4萬筆檔案建立了一個BrowseFox演化樹(evolutionary tree),來進一步看出憑證簽章被濫用的程度。

演化樹的靈感來自於生物學的系統發生樹(phylogenetic tree),能夠描繪出檔案間相互連結的關係。每個演化樹的高度是它的TLSH距離,高度值代表中心TLSH雜湊和相似檔案雜湊群組間的相對距離。圖2代表用TLSH進行軟體群集演化樹的範例。

Dropbox演化樹

圖2、Dropbox演化樹

BrowseFox演化樹

圖3、BrowseFox演化樹

 

BrowseFox演化樹(如圖3所示)有助於偵測檔案是否可能屬於BrowseFox,看它是否屬於圖上的任何一個群組。如果檔案不在任一群組的範圍內,它跟所有群組的相對距離可以用來判斷它是否是BrowseFox。要檢查有問題的檔案,可以進一步使用沙箱分析或評估它是否滿足額外條件,如具有特定不良簽章者等。

演化樹可以用在TLSH所使用的任何情況,像是用標準軟體開發方法所建立的檔案。適於此類型並能夠用演化樹視覺化的檔案類型包括:PUA、coinminer、駭客工具和許多進階持續性威脅。

 

背後原理:ML,TLSH技術

有兩種機器學習對此次的發現來說是不可或缺的:無監督(unsupervised)和基於實例(instance-based)機器學習的結合。無監督學習技術讓我們能夠處理大量未標記檔案,從中找出獨特的模式,並相應地加以群集。基於實例的學習演算法讓我們可以計算距離分數並與已知的好/壞檔案加以比較,以此來識別出哪些未標記檔案是惡意或不是。基於實例的機器學習對識別潛在有害程式(PUP)等相當有用。

這些機器學習讓TLSH有了強大的能力,可以用來群集200萬個已簽章的執行檔,從中偵測到BrowseFox程式碼簽章濫用的情形。TLSH是一種基於實例的機器學習方案,由趨勢科技開發並開放原始碼在GitHub上,可以生成白名單所需的雜湊值。TLSH這樣的局部敏感雜湊(LSH)技術和傳統的加密雜湊大為不同,可以將相似的檔案集合在一起。

跟其他模糊雜湊(fuzzy hashing)技術(如Ssdeep)相比,TLSH的可擴展性和速度,較能對抗攻擊的安全性及更好的準確性,讓它成為最適合此目的的方法。在一篇題目為「不只是精度和召回:了解檔案分析使用(和誤用)相似雜湊」論文中,TLSH被認為一直都勝過Ssdeep,並且“在識別相同軟體因程式碼改變而產生變種時十分可靠。”

BrowseFox憑證濫用問題凸顯出應用程式控制系統的缺陷以及需要更好的白名單程序。TLSH讓人們有辦法去主動偵測好檔案的雜湊值,可以跟上軟體定期更新及版本發表。除了可以減少系統誤判,還能夠支援不同的環境,如Linux,Windows和Python Extension。TLSH提供更好更加智慧化的白名單程序,讓它有能力成為白名單系統的一部分。

 

[1] 在2017年10月的分析中發現519個不同的憑證簽章者。

這519個不同的憑證簽章者列於此附錄中。

 

@原文出處:How Machine Learning Techniques Helped Us Find Massive Certificate Abuse by BrowseFox 作者:Jon Oliver(資深技術總監)