YARA是一款用于檢測(cè)、分析各種惡意代碼的軟件,它配備一個(gè)短小精悍的命令行搜索引擎,它由純C語(yǔ)言編寫(xiě),優(yōu)化了執(zhí)行的效率。規(guī)則語(yǔ)法的簡(jiǎn)單明了和布爾邏輯使YARA成為一個(gè)完美的IOC。它已經(jīng)集成到惡意軟件沙箱,蜜罐客戶(hù)端,取證工具以及網(wǎng)絡(luò)安全工具中。
YARA惡意代碼檢測(cè)分析工具支持的平臺(tái)
YARA支持多平臺(tái),可以運(yùn)行在Windows、Linux、Mac OS X,并通過(guò)命令行界面或yara-python擴(kuò)展的Python腳本使用。
網(wǎng)站惡意代碼檢測(cè)工具基本功能
垃圾郵件分析
讓我們看一下垃圾郵件分析的應(yīng)用場(chǎng)景。如果你的團(tuán)隊(duì)需要在事件響應(yīng)過(guò)程中分析可疑的郵件消息,你極有可能會(huì)發(fā)現(xiàn)攜帶惡意宏的文件或重定向至漏洞利用工具的站點(diǎn)。olevba.py是一款流行的分析可疑微軟office文檔的工具,它屬于oletools工具包的一部分。當(dāng)分析嵌入的OLE對(duì)象來(lái)識(shí)別惡意活動(dòng)時(shí),它會(huì)使用YARA功能(更多內(nèi)容可參看)。在應(yīng)對(duì)漏洞利用工具時(shí),thug一款流行的低交互式蜜罐客戶(hù)端,模擬成web瀏覽器,也會(huì)使用YARA來(lái)識(shí)別漏洞利用工具家族。在上述兩種場(chǎng)景中,事件響應(yīng)團(tuán)隊(duì)之間交換YARA規(guī)則可以大大增強(qiáng)垃圾郵件的分類(lèi)和分析的能力。
取證分析
另一種值得一提的應(yīng)用場(chǎng)景是取證。Volatility一款非常流行的內(nèi)存取證工具,可以支持YARA掃描來(lái)查明可疑的對(duì)象,比如進(jìn)程、文件、注冊(cè)表鍵值或互斥體(mutex)。相對(duì)于靜態(tài)文件的規(guī)則,因?yàn)樗枰獞?yīng)對(duì)加殼器和加密器,分析內(nèi)存對(duì)象的YARA規(guī)則通常可以獲得更廣的觀察范圍。在網(wǎng)絡(luò)取證領(lǐng)域,yaraPcap使用YARA掃描網(wǎng)絡(luò)數(shù)據(jù)包文件(PCAP)。類(lèi)似于垃圾郵件分析的應(yīng)用場(chǎng)景,使用YARA規(guī)則進(jìn)行取證可以起到事半功倍的作用。
終端掃描
最終,還有值得留意的應(yīng)用場(chǎng)景是端點(diǎn)掃描。不錯(cuò),在客戶(hù)端計(jì)算機(jī)上進(jìn)行YARA掃描。由于YARA掃描引擎是跨平臺(tái)的,我們完全可以在Windows系統(tǒng)上使用Linux系統(tǒng)上開(kāi)發(fā)的特征規(guī)則。唯一需要解決的問(wèn)題是如何分發(fā)掃描引擎,下發(fā)規(guī)則,以及將掃描結(jié)果發(fā)送到某個(gè)中心位置。Hipara,一款C語(yǔ)言開(kāi)發(fā)的主機(jī)入侵防御系統(tǒng),可以實(shí)現(xiàn)基于YARA規(guī)則文件的實(shí)時(shí)掃描,并將報(bào)告結(jié)果發(fā)回到某個(gè)中心服務(wù)器。另一種解決方案是自己編寫(xiě)python腳本來(lái)調(diào)用YARA模塊,同時(shí)使用REST庫(kù)實(shí)現(xiàn)推拉(pull/push)的操作。
YARA怎么用
YARA實(shí)戰(zhàn)檢測(cè)網(wǎng)站惡意代碼
1、環(huán)境準(zhǔn)備
在實(shí)戰(zhàn)之前,我們需要一個(gè)Linux系統(tǒng)環(huán)境和下列工具:
需要用到:pescanner.py
此外你需要一個(gè)段惡意代碼來(lái)分析,你可以從Malwr.com網(wǎng)站上獲取樣本:
警告:樣本是一個(gè)真實(shí)的惡意軟件,確保分析是在可控、隔離和安全環(huán)境中進(jìn)行,比如臨時(shí)性的虛擬機(jī)。
2、場(chǎng)景模擬
在周三下午4點(diǎn),你的郵箱接受到一份事件報(bào)告的通知郵件。它似乎是一個(gè)可疑的HTTP文件下載(文件哈希值為f38b0f94694ae861175436fcb3981061)命中了網(wǎng)絡(luò)IPS的特征庫(kù)。你迅速檢查IPS報(bào)警的詳情,查看它是否把樣本存入待深入分析的臨時(shí)倉(cāng)庫(kù)中。你可以發(fā)現(xiàn)文件已被成功的保存下來(lái),且文件類(lèi)型是PE(可執(zhí)行文件),絕對(duì)值得一看。下載文件之后,你需要進(jìn)行初始的靜態(tài)分析:利用Google和Virustotal查詢(xún)這個(gè)哈希值,分析PE文件頭來(lái)尋找惡意的企圖。
3、挑戰(zhàn)
創(chuàng)建匹配下述條件的YARA規(guī)則:
1. 與調(diào)試信息相關(guān)的可疑字符串
2. text區(qū)塊的MD5哈希值
3. 高熵值的.rsrc區(qū)塊
4. GetTickCount導(dǎo)入符號(hào)
5. Rich簽名的XOR密鑰
6. 必須是Windows可執(zhí)行文件
4、靜態(tài)分析
第1個(gè)挑戰(zhàn)是尋找與調(diào)試信息相關(guān)的字符串,尤其是我們可以搜索pdb文件(程序數(shù)據(jù)庫(kù)文件)的路徑。我們使用strings命令輸出文件中的ASCII字符串。

在大量輸出中,dddd.pdb字符串顯得格外顯眼,這個(gè)字符串可能正是我們要找的。記住,如果字符串確實(shí)與調(diào)試信息有關(guān),它應(yīng)該屬于RSDS頭的一部分。讓我們使用99136偏移作為中心輸出樣本的部分字節(jié)。

RSDS字符串的出現(xiàn)讓我們確信dddd.pdb是與調(diào)試信息相關(guān)的字符串。接下來(lái),我們需要計(jì)算.text區(qū)塊的哈希值,為此我們需要使用hiddenillusion版本的pescanner.py,并把樣本的名稱(chēng)作為參數(shù)。


pescanner.py輸出一個(gè)有關(guān)PE頭結(jié)構(gòu)的擴(kuò)展報(bào)告,其中包含區(qū)塊(Section)列表及相應(yīng)哈希值。記錄下來(lái).text區(qū)塊的哈希值(2a7865468f9de73a531f0ce00750ed17),接下來(lái)我們需要利用該值創(chuàng)建YARA規(guī)則。
同時(shí)在pescanner.py的報(bào)告中,我們發(fā)現(xiàn).rsrc具有非常高的熵值。這是一個(gè)非?梢傻闹笜(biāo),表明代碼經(jīng)過(guò)高度的混淆。創(chuàng)建規(guī)則時(shí)一定要記住這條信息,因?yàn)樗鼛椭覀儜?yīng)答挑戰(zhàn)的第3項(xiàng)。最后,報(bào)告也列出了導(dǎo)入符號(hào),其中我們可以看到GetTickCount,一個(gè)非常有名的反調(diào)試計(jì)時(shí)函數(shù)。這可以幫助解決挑戰(zhàn)的第4項(xiàng)。順便提一下,報(bào)告也提到了文件類(lèi)型,表明是它一個(gè)PE32文件,滿(mǎn)足挑戰(zhàn)的最后一項(xiàng)。
最后,我們需要著手處理用于編碼Rich簽名的XOR密鑰,有關(guān)Rich簽名的更多信息參看此文。你可以通過(guò)兩種方式來(lái)檢查密鑰的存在與否:通常你可以轉(zhuǎn)儲(chǔ)樣本前面的字節(jié),足以覆蓋PE文件的DOS頭即可,Rich簽名開(kāi)始于文件的0×80偏移處,而XOR密鑰位于緊隨Rich字符串之后雙字(Dword)。

記住x86字節(jié)順序是little-endian,因此你需要調(diào)整雙字(Dword)的字節(jié)順序,所以XOR密鑰的值為0x887f83a7或十進(jìn)制2290058151。

接下來(lái)就簡(jiǎn)單了,讓我們一起使用如下內(nèi)容創(chuàng)建名為rule.yar的YARA規(guī)則文件。通過(guò)使用–print-module-data參數(shù),YARA將會(huì)輸出PE模塊的報(bào)告,其中包括rich_signature區(qū)塊和十進(jìn)制形式的XOR密鑰值。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版













Apifox(Api調(diào)試管理工具)2.1.29.1 綠色版
小烏龜代碼管理工具(TortoiseGit)2.13.0.1 中文免費(fèi)版
SoapUI破解版5.7.0 最新版
小皮面板(phpstudy)8.1.1.3 官方最新版
Ruby3.0(ruby運(yùn)行環(huán)境)3.0.2 官方版
gcc編譯器( MinGW-w64 9.0.0綠色版)免費(fèi)下載
寶玉編輯助手0.0.05新版
火花編程軟件2.7.2 官方pc版
猿編程少兒班客戶(hù)端3.1.1 官方版
Restorator 2009中文版單文件漢化版
十六進(jìn)制閱讀小工具
IT碼農(nóng)工具軟件1.0 中文免費(fèi)版
Postman Canary(網(wǎng)頁(yè)調(diào)試軟件)官方版7.32.0綠色免費(fèi)版
大耳猴少兒編程客戶(hù)端1.1.2 官方免費(fèi)版
excel批量sql語(yǔ)句(通過(guò)excel構(gòu)建sql工具)1.0 免費(fèi)版
軟件添加彈窗和網(wǎng)址工具1.0 中文免費(fèi)版
天霸編程助手2.1 單文件中文版
ida pro 中文破解版(反編譯工具)7.0 永樂(lè)漢化版64位
VBA代碼助手3.3.3.1官方版
JDK 12 linux版for 64位
Samba(完全支持Python 3)4.10 官方最新版
猿編程電腦端3.9.1.347 官方PC版
蒲公英 Android SDKV4.1.11 官方最新版
蒲公英iOS SDK2.8.9.1 官方最新版
WxPython中文可視化編輯器1.2 簡(jiǎn)體中文免費(fèi)版
Python代碼生成器1.0 中文免費(fèi)版
C語(yǔ)言代碼實(shí)例助手1.0 免費(fèi)版
notepad++7.8.2 中文免費(fèi)版
wpe pro Alpha 0.9a 中文綠色版




系統(tǒng)自帶的命令行幫助文件(ntcmds.chm)chm格
Excel轉(zhuǎn)換XML工具1.0 免費(fèi)版
實(shí)體類(lèi)SQL生成工具1.0 綠色免費(fèi)版
XML字符串解析工具2.0.3 免費(fèi)版
VC++Spelly(代碼拼寫(xiě)檢查)3.0.1 官方最新版
易語(yǔ)言vc6迷你連接器【dos命令形式運(yùn)行】綠
Elastix 20163.0 免費(fèi)版
sql語(yǔ)法分析器(sql語(yǔ)法分析工具)3.1.0 綠色
dev c++下載(DEV-C++)5.9.2 多語(yǔ)安裝免費(fèi)版
vc字體設(shè)置工具(vc6字體設(shè)置工具)1.0 中文綠