使用代碼相似性提前預判重大網絡安全風險
近期,卡巴斯基實驗室正式宣布發布卡巴斯基威脅歸因引擎(KTAE),這種代碼歸因技術,最初是由卡巴斯基全球研究和分析團隊為內部使用而開發的,你可以直接進入卡巴斯基企業網站的信息頁面了解詳細信息。
2017年5月12日,全球開始爆發電腦勒索病毒WannaCry,瞬間波及150多個國家7.5萬臺電腦被感染,有99個國家遭受了攻擊,其中包括英國、美國、中國、俄羅斯、西班牙和意大利等。
此后不久,西班牙計算機應急反應小組CCN-CERT在其網站上發布了一則警告,稱一場大規模勒索軟件攻擊影響了西班牙數家組織。該警告建議安裝微軟2017年3月安全公告中的更新,作為阻止攻擊擴散的手段。與此同時,英國國家衛生服務體系(NHS)也發布了警報,并在16家醫療機構確認了感染病例。
卡巴斯基系統監視程序組件對于阻止這些攻擊非常重要,在惡意樣本設法繞過其他防御措施的情況下,System Watcher組件可以回滾勒索軟件所做的更改。如果勒索軟件樣本越過防御措施并嘗試對磁盤上的數據進行加密,這將非常有用。
隨著分析的深入,研究人員開始了解到更多的東西;例如,這次感染依賴于一個著名的漏洞(代號為“EternalBlue”),該漏洞通過Shadowbrokers在2017年4月14日的轉儲在互聯網上發布,并在3月14日被微軟修復。盡管這個補丁已經發布兩個月了,但似乎很多公司都沒有打補丁。研究人員整合了幾個博客,更新了研究人員的技術支持頁面,確保所有的樣本都被檢測到并阻止,即使是在易受“EternalBlue”攻擊的系統上。
WannaCry勒索軟件在世界各地廣泛使用
WannaCry事情發生后,研究人員就在尋找與已知犯罪分子或APT團體的任何可能聯系,,試圖確定該惡意軟件如何能夠在短短幾天內引起這種大流行。對于勒索軟件來說,研究人員很少看到全新的,從頭開始構建的大流行級別的樣本。在大多數情況下,勒索軟件攻擊利用了一些流行的惡意軟件,這些惡意軟件由犯罪分子在地下論壇上出售。
然而,研究人員無法找到任何已知勒索軟件變種的鏈接。幸虧Google研究人員Neel Mehta在Twitter上發布了一條帶有#WannaCryptAttribution標簽的神秘消息:
這條神秘的消息實際上是指具有共享代碼的兩個樣本之間的相似性,Neel在文中提到的兩個樣本為:
· 2017年2月的WannaCry樣本看起來像是非常早期的變體;
· 2015年2月的Lazarus APT小組樣本。
下面的截圖顯示了兩個樣本之間的相似性,并突出顯示了共享代碼:
盡管有些人懷疑這種聯系,但研究人員認為這是正確的。這個代碼重疊的發現顯然不是隨機的。多年來,谷歌將他們從Zynamics獲得的技術集成到他們的分析工具中,使得基于共享代碼將惡意軟件樣本聚類成為可能。顯然,這項技術似乎運行得相當不錯。
考慮到WannaCry和Lazarus之間的聯系,研究人員制定了一個計劃,如果能建立一種技術,能夠在惡意軟件攻擊之間快速識別代碼重用,并在未來的案例中找出可能的罪魁禍首,會怎么樣呢?研究人員的目標是使這項技術在更大的范圍內可用,以幫助威脅搜尋者,SOC和CERT加快事件響應或惡意軟件分類的速度。該新技術的首個原型于2017年6月在卡巴斯基內部發布,在接下來的幾個月里,研究人員繼續對其進行改進和微調。
原則上,代碼相似性原理是很容易理解的。過去已經測試和討論了幾種方法,包括:
1. 計算子程序的校驗和,并與數據庫進行比較;
2. 重構代碼流并從中創建一個圖,比較相似結構的圖;
3. 提取n-gram并將其與數據庫進行比較;
4. 在整個文件或部分文件上使用模糊哈希;
5. 使用元數據,例如富頭文件,導出文件或文件的其他部分,盡管這不是代碼相似性,但它仍然可以產生一些非常好的對比結果。
例如,要找到兩個惡意軟件樣本之間的通用代碼,例如,可以提取所有8-16字節的字符串,然后檢查是否存在重疊。不過,有兩個主要問題:
1. 惡意軟件收集量太大,如果研究人員想對所有的文件都這樣做,研究人員需要一個大型計算集群和大量的存儲空間;
2. 資本支出太小。
此外,以一種研究人員可以作為獨立機箱、VM或設備提供的有效方式進行大量的代碼提取、分析和存儲(更不用說搜索了)是另一種復雜級別。
為了改進它,研究人員開始試驗基于代碼的Yara規則。這個想法也很簡單:從樣本中找到的唯一代碼創建一個Yara規則,然后使用我們現有的系統使用該Yara規則掃描惡意軟件集合。
這里有一個例子,靈感來自WannCry:
上面這個看似良性的Yara規則捕獲了BlueNoroff(用于孟加拉國銀行劫案的惡意軟件),ManusCrypt(Lazarus APT使用的更復雜的惡意軟件,也稱為FALLCHILL)和Decafett,一個鍵盤記錄程序,研究人員以前不能與任何已知的APT聯系在一起。
2017年9月,研究人員在識別共享代碼方面取得了突破,第一次能夠將一個新的“未知”惡意軟件與一個已知實體或一套工具關聯起來。這是在#CCleaner事件期間發生的,最初由Morphisec和Cisco Talos發現。
特別是,研究人員使用該技術發現了一個代碼片段,自定義的base64編碼子程序的一部分,在Cbkrdr shellcode加載程序,這是相同的,在以前的惡意軟件樣本,名為Missl,據說被APT17使用:
深入挖掘,研究人員發現至少有三個惡意軟件家族共享此代碼:Missl, Zoxpng/Gresim和Hikit,如下Yara規則發現的內容所示:
特別是,上述命中是基于我們所謂的“基因型”運行自定義Yara規則的結果,從惡意軟件樣本中提取的唯一代碼片段,不會出現在任何干凈的樣本中且特定于該惡意軟件家族。很快,卡巴斯基威脅歸因引擎(“KTAE”)在內部也被昵稱為“Yana”,成為研究人員常用的分析工具。
實際測試
美國網絡司令部(簡稱USCYBERCOM)于2018年11月開始向VirusTotal發送樣本,研究人員認為這是一個非常好的舉措。這些上傳的唯一缺點是缺乏任何背景,比如惡意軟件家族,它是APT還是其他組織,以及它們是在野外發現的,還是從某些地方挖來的。雖然第一次上傳是一個重新使用的絕對Computrace加載器,識別起來并不是什么大問題,但是2019年5月的上傳就有點難識別了。標記為Sofacy,特別是與XTunnel樣本類似。
分析d51d485f98810ab1278df4e41b692761
2020年2月,USCYBERCOM發布了另一批樣本,研究人員很快與KTAE進行了核實。結果顯示了一組不同的惡意軟件家族,被幾個APT組織使用,包括Lazarus,Andariel, HollyCheng,共享的代碼片段可以追溯到DarkSeoul攻擊,Blockbuster操作和SPE Hack。
更有意義的是,USCYBERCOM在2020年5月公布了另一批樣本,KTAE也發現了類似的模式。
當然,人們可能會想,除了幫助識別USCYBERCOM的VT轉儲外,KTAE還能做什么?
為了進行更實際的檢查,研究人員查看了2018年SingHealth數據泄露事件的樣本。維基百科稱,該事件是由身份不明的國家行為者發起的。雖然這次攻擊中使用的大多數樣本都是比較常規的,與之前的攻擊沒有任何相似之處,但其中兩個樣本有非常有趣的鏈接:
針對SingHealth數據泄漏中使用的兩個樣本的KTAE分析
當研究人員分析包含在一個Shadowbrokers轉儲中的一組文件時,出現了另一個有趣的情況。
分析07 cc65907642abdc8972e62c1467e83b
在上面的例子中,“cnli-1.dll” (md5: 07cc65907642abdc8972e62c1467e83b)標記為與Regin相似度高達8%。查看文件,研究人員發現這是一個DLL,帶有許多自定義外觀的導出文件:
看看這些導出,例如fileWriteEx,就會發現這個庫實際上是作為流行IO函數的包裝而創建的,很可能是出于可移植性的目的,從而使代碼可以針對不同的平臺進行編譯:
談到多平臺惡意軟件,最近,來自Leonardo的同事發表了他們針對Linux系統的一組新Turla示例的分析。最初,我們在2014年發布了有關這些內容的文章,當時我們發現了Turla Penquin,這是該組織針對Linux的后門之一。這些樣本之一(sha256:67d9556c695ef6c51abf6fbab17acb3466e3149cf4d20cb64d6d34dc969b6502)已于2020年4月上傳到VirusTotal。在KTAE中對該樣本進行的快速檢查顯示以下內容:
b4587870ecf51e8ef67d98bb83bc4be7 - Turla 64位Penquin樣本分析
研究人員可以看到與其他兩個樣本(分別為99%和99%)的相似度很高,與其他已知的Turla Penquin樣本的相似度較低。通過觀察它們的共同之處,研究人員立即發現了一些很好的Yara規則候選者。
當代碼相似性檢測失敗時
當看到一項令人興奮的、全新的技術時,有時很容易忽略其缺陷和限制。然而,重要的是要理解代碼相似技術只能滿足某種檢測,而分析人員仍然有責任驗證和確認潛在客戶。比如OlympicDestroyer的案例,這是一種非常有趣的攻擊,最初由Cisco Talos描述和命名。
思科Talos研究人員在研究中指出,OlympicDestroyer使用了與Badrabbit和NotPetya類似的技術來重置事件日志并刪除備份。盡管這兩種技術的實現意圖和目的相似,但是代碼語義上有許多差異。絕對不是復制粘貼的代碼,并且由于命令行已在安全性博客上公開討論,因此任何想要使用它們的人都可以使用這些簡單的技術。
此外,Talos的研究人員指出,evtchk.txt文件名與evtdiag非常相似,該文件名是惡意軟件在運行過程中使用的虛假標志。2016年,BlueNoroff/Lazarus在孟加拉國斯威夫特網絡盜竊案中使用了exe, evtsy .exe和evtchk.bat。
在Talos報告發表后不久,以色列公司IntezerLabs在twitter上發帖稱,他們發現了中國APT集團的鏈接。作為輔助節點,IntezerLabs本身具有出色的代碼相似性技術,你可以通過訪問其網站analytics.intezer.com進行簽出。
幾天后,媒體開始發表文章,暗示俄羅斯APT集團的潛在動機和活動。Crowdstrike Intelligence表示,在2017年11月和12月,它觀察到了在國際體育領域開展的證書收集活動。當時,該行動歸咎于俄羅斯黑客組織Fancy Bear。
另一方面,Crowdstrike自己的情報副總裁亞當·梅耶斯(Adam Meyers)在接受媒體采訪時表示:“沒有證據表明Fancy Bear與奧運會襲擊事件有關。”
另一家名為Recorded Future的公司決定不將此次攻擊歸咎于任何一方。但是,他們聲稱發現了與BlueNoroff / Lazarus LimaCharlie惡意軟件加載程序的相似之處,而后者被普遍認為是朝鮮的黑客組織。
與此同時,研究人員還使用KTAE來檢查樣本是否與之前已知的活動有任何可能的聯系。令人驚訝的是,KTAE發現了一種獨特的模式,該模式也將OlympicDestroyer和Lazarus聯系起來。存儲在可執行文件中的特定代碼開發環境特性的組合,稱為富頭文件,在某些情況下可以用作識別惡意軟件開發者。
分析3 c0d740347b0362331c882c2dee96dbf
上面顯示的4%相似度來自樣本的Rich標頭中的匹配項,最初,我們很驚訝地找到了這種聯系,盡管它很有意義。其他公司也發現了相似之處,而Lazarus已經因多次破壞性攻擊而聞名。但有些事情似乎很奇怪。朝鮮參與的可能性看起來不大,尤其是金正恩的妹妹參加了平昌的開幕式之后。根據研究人員的法醫調查,襲擊發生在2018年2月9日正式開幕式之前。隨著研究人員對這個案件的深入調查,研究人員得出結論,這是一個精心設計的錯誤標記;進一步的研究讓研究人員可以將這次攻擊與Hades APT小組聯系起來。
這證明,即使是最好的歸因或代碼相似性技術,也可能受到經驗豐富的攻擊者的干擾,并且不應盲目依賴這些工具。當然,在大多數情況下,提示非常有效。隨著攻擊者的技能越來越高,研究人員可能會遇到更多的虛假標志。