Yara 是一個資安研究人員所使用的開放原始碼工具,可根據預先定義好的規則來偵測及分類惡意程式樣本。前不久,一位同事請我撰寫 Yara 規則來偵測 Stampado 勒索病毒 Ransomware (勒索軟體/綁架病毒)家族的樣本。Stampado 算是一個相對較新的勒索病毒服務 (Ransomware-as-a-Service,簡稱 RaaS) 威脅,不久前剛進入趨勢科技的監控名單。當時我手上只有幾個樣本,原本我打算在這些樣本之間找找看有沒有共同的字串,但沒有成功。後來我比對了各檔案之間的結構發現,每一個檔案末端都有一段有趣的內容,從位移 0xde000 處開始:
圖 1:Stampado 勒索病毒樣本內容以十六進位碼顯示。
檔案末端明顯列了一個電子郵件地址。我向同事詢問是否知道此事,他立即告訴我 Stampado 會提供一些使用說明給購買該套件的駭客,說明中有提到這件事:
圖 2:給 Stampado 買家的使用說明。
我判斷 Stampado 的開發者應該是在每個檔案末端多加了一個位元組,數值為 0x0d (這在 ASCII 字碼表上是返回開頭的 CR 符號),然後叫使用者利用一般的文字編輯工具在最後一行空白下方 (也就是在 CR 符號之後) 加入自己的電子郵件地址。正確來說 CR 符號並不是這樣用,因為在 DOS/Windows 系統下,如果要換行的話,正確的方式是 0x0d 0x0a (也就是 CR + LF:返回開頭並前進一行),至於從 Unix 衍生的作業系統則是只需要 LF 符號。不管怎樣, Stampado 的樣本檔案末端都會帶著一個 CR 符號,這也算是個有趣的特徵,這樣就能建立 Yara 規則來偵測這個惡意程式。
我希望能建立一個不管樣本檔案末端是否帶有電子郵件地址都能適用的規則。所以,我的規則不能只是判斷「檔案最後一個位元組是否為 0x0d」,因為如果檔案後面又加上了電子郵件,0x0d 的位置就會不是在最後一個位元組,而是要看電子郵件地址的長度而定。
當一個 PE執行檔末端要增加一些位元組時,必須建立一個所謂的「重疊區段」(overlay section)。這個區段並納入標頭中記載的 PE 區段清單,因此要查看一個 PE 檔案是否有重疊區段,一個簡單的作法就是查看最後一個 PE 區段的末端之後是否還有資料。如果有,那就代表這個 PE 檔案末端加了別的東西,也就是包含重疊區段。
以下是我根據當前 Yara 版本所建立的判斷規則:
private rule has_overlay { condition: filesize > pe.sections[pe.number_of_sections – 1].raw_data_offset + pe.sections[pe.number_of_sections – 1].raw_data_size}
不過,這條規則有個問題:如果標頭中所列的最後一個區段並非檔案內實際上最後一個區段,那規則就行不通。我在 Yara 的 Github 上討論這個問題,網友也好心地提供了一些建議,讓我想到可以針對 Yara 的 PE 模組建立一個 Pull Request 來增加處理重疊區段的功能。沒多久,以下的 Yara 規則就可以順利運作:
import “pe” private rule has_overlay { condition: pe.overlay.offset} rule big_overlay { condition: pe.overlay.size > 1024} rule overlay_bytes { strings: $bytes = { 90 41 42 50 56 } condition: bytes at pe.overlay.offset}
一旦 Yara 3.6.0 版推出之後,我就能將最後一道條件式 (condition) 改成「uint8(pe.overlay.offset) == 0x0d」,並且不會出現意外狀況。很慶幸 Yara 是一個開放原始碼專案,讓我有機會做出以下的小小貢獻。該工具也因此能隨著時間而不斷改良,因應新的挑戰。
rule stampado_overlay{meta:description = “Catches Stampado samples looking for \\r at the beginning of PE overlay section”reference = “”author = “Fernando Merces, FTR, Trend Micro”date = “2016-07″md5 = “a393b9536a1caa34914636d3da7378b5″md5 = “dbf3707a9cd090853a11dda9cfa78ff0″md5 = “dd5686ca7ec28815c3cf3ed3dbebdff2″md5 = “6337f0938e4a9c0ef44ab99deb0ef466” condition:pe.characteristics == 0x122 andpe.number_of_sections == 5 andpe.imports(“VERSION.dll”, “VerQueryValueW”) and uint8(pe.sections[4].raw_data_offset + pe.sections[4].raw_data_size) == 0x0d }
採用我們自家技術的趨勢科技產品,已經能夠偵測 Stampado 的樣本,我們將它命名為:RANSOM_STAMP.SM。此外,我們的趨勢科技檔案解密工具也對這個勒索病毒有用,可解開它所加密的檔案。
開放原始碼工具在全球資安研究人員之間可說相當流行。我們很高興能有機會對整體社群做出貢獻,希望未來可以更頻繁地回饋社群。
原文出處:How Stampado Ransomware Analysis Led To Yara Improvements作者:Fernando Mercês (資深威脅研究員)
趨勢科技的勒索病毒解決方案
從中小企業到大型企業的網路設備都是Crysis這類勒索病毒的攻擊目標,業務持續性、財務損失和公司聲譽都受到了威脅。當網路犯罪分子汲汲營營地想要將關鍵資料做為人質,重要的是能夠具備主動式、多層次的安全防護:從閘道、端點、網路到伺服器。
電子郵件和閘道防護
趨勢科技Cloud App Security、趨勢科技Deep Discovery™ Email Inspector和InterScan™ Web Security 可以防禦常被用來散播勒索病毒的管道,如電子郵件和網頁。
|
端點防護
趨勢科技 Smart Protection Suites 在端點層級偵測和阻止與勒索病毒相關的可疑行為和漏洞攻擊。
|
網路保護
趨勢科技Deep Discovery Inspector偵測與勒索病毒進入網路相關的惡意流量、連線和其他活動。
|
伺服器防護
趨勢科技Deep Security可以偵測和阻止可疑網路活動和保護伺服器和應用程式免於漏洞攻擊。
|
保護中小型企業
Worry-Free Pro透過Hosted Email Security來提供雲端電子郵件閘道防護,偵測和封鎖勒索病毒。
|
保護家庭用戶
趨勢科技PC-cillin雲端版可以封鎖勒索病毒威脅相關的惡意網站、電子郵件與檔案來提供強大的防護。
|
PC-cillin 2017雲端版除針對勒索病毒提供「3+1多層式防護」外,更提供密碼管理、SSL 網站安全憑證偵測、以及社群隱私防護三大獨家功能,跨平台跨裝置全面保護消費者遠離威脅!!即刻免費下載
《 想了解更多關於網路安全的秘訣和建議,只要到趨勢科技粉絲網頁 或下面的按鈕按讚 》
《提醒》將滑鼠游標移動到粉絲頁右上方的「已說讚」欄位,勾選「搶先看」選項,最新貼文就會優先顯示在動態消息頂端,讓你不會錯過任何更新。
*手機版直接前往專頁首頁,下拉追蹤中,就能將粉絲專頁設定搶先看。