WF曲速未來:PowerShell腳本的內(nèi)部證書規(guī)則區(qū)塊鏈
WF曲速未來表示:本文將提供讓你可以在組織中使用的不同規(guī)則來檢測PowerShell的證書。
WF曲速未來表示:本文將提供讓你可以在組織中使用的不同規(guī)則來檢測PowerShell的證書。
YARA
這是開始這項研究的YARA規(guī)則:
此YARA規(guī)則搜索字符串--BEGIN CERTIFICATE--后跟回車符(\ r),換行符(\ n),最后是任何不是大寫字母M的字符。它使用正則表達式($ re1 )搜索此序列,必須在文件的開頭找到此序列($ re1為0)。
Microsoft的certutil生成的證書將始終以--BEGIN CERTIFICATE--開頭,然后是回車符和換行符,然后是BASE64編碼的內(nèi)容。該RFC允許多余的空格,而不是由產(chǎn)生的certutil,這就是為什么我們不考慮這個YARA規(guī)則多余的空格。
請注意,還有一個較舊的證書文件規(guī)范,它允許第一行和BASE64有效負載之間的標頭。雖然我們沒有在VirusTotal上觀察到這些規(guī)則,但我們的規(guī)則將觸發(fā)這些舊證書。
如果您希望YARA規(guī)則檢測嵌入式證書(例如,另一個文件中的證書),您可以將條件從“$ re1 at 0”更改為“@ re1> 0”,如下所示:
這意味著您希望正則表達式re1(@ re1)匹配的字符串的位置大于0(> 0),例如不在文件的開頭。
另一個例子--BEGIN CERTIFICATE--可以在文件中的某個位置找到(即不在位置0)。crt文件可以包含多個證書。
由于YARA仍然是許多組織的新技術(shù),我們還開發(fā)了Suricata和ClamAV規(guī)則,可以在下一節(jié)中找到。
Suricata
Suricata是一個免費的開源IDS。
使用以下Suricata規(guī)則,您可以監(jiān)視網(wǎng)絡(luò)流量,查找不符合正確標準且可能包含惡意負載的可疑證書文件如下圖:
我們執(zhí)行與YARA規(guī)則完全相同的匹配類型:我們搜索--BEGIN CERTIFICATE--后跟回車符和換行符,盡管編碼有點不同(--BEGIN CERTIFICATE-- | 0D 0A |)。在標頭之后,我們使用byte_test操作查找與M(0x4D)不同的字節(jié)。
第一個規(guī)則在文件的開頭(file_data)查找此模式,而第二個規(guī)則在文件的任何位置查找此模式。
我們已在測試環(huán)境中測試了這些規(guī)則,但請確保在生產(chǎn)環(huán)境中使用它們之前執(zhí)行相同操作。
ClamAV
ClamAV是一種免費的開源反病毒。
就像Suricata一樣,ClamAV可以提供自定義檢測簽名,可以幫助您檢測惡意文件,例如隱藏在電子郵件附件中的有效負載。
這些簽名應(yīng)存儲在.ndb文件中。簽名ClamAV.Certificate.Unknown檢測到包含證書數(shù)據(jù)以外的其他內(nèi)容的證書文件(!(4D)表示不是M)和簽名ClamAV.ContainsCertificate.Unknown檢測到包含除證書數(shù)據(jù)之外的其他內(nèi)容的嵌入證書文件。
請注意,如果您有最新版本的ClamAV,也可以使用ClamAV的YARA規(guī)則。
結(jié)論
此研究基于一個簡單的想法:具有不以大寫字母M開頭的數(shù)據(jù)的證書不能包含有效的證書數(shù)據(jù)。將繼續(xù)遵守現(xiàn)在的規(guī)則,并及時報告出是否做出有趣的發(fā)現(xiàn)。
區(qū)塊鏈安全公司W(wǎng)F曲速未來建議您從規(guī)則開始檢測證書,而不是嵌入證書。
當(dāng)然,繞過現(xiàn)有的規(guī)則檢測是微不足道的,就像任何基于模式匹配的規(guī)則一樣。例如,添加額外的空格將避免基本規(guī)則檢測到是因為當(dāng)前正在搜索使用certutil生成的文件,這是各種對手的當(dāng)前運作方式,所以規(guī)則設(shè)置得非常具體。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。