ChatGPT 在威脅檢測領(lǐng)域的應(yīng)用及潛在風(fēng)險
事件響應(yīng)分類和軟件漏洞發(fā)現(xiàn)是大型語言模型成功的兩個領(lǐng)域,盡管誤報很常見。
ChatGPT 是一個開創(chuàng)性的聊天機器人,由基于神經(jīng)網(wǎng)絡(luò)的語言模型 text-davinci-003 提供支持,并在來自互聯(lián)網(wǎng)的大型文本數(shù)據(jù)集上進行訓(xùn)練。它能夠生成各種樣式和格式的類似人類的文本。ChatGPT 可以針對特定任務(wù)進行微調(diào),例如回答問題、總結(jié)文本,甚至解決與網(wǎng)絡(luò)安全相關(guān)的問題,例如,生成事件報告或解釋反編譯代碼。安全研究人員和人工智能黑客都對ChatGPT產(chǎn)生了興趣,嘗試探索 LLM 的弱點,而其他研究人員以及網(wǎng)絡(luò)犯罪分子則試圖將LLM引誘到黑暗面,將其設(shè)置為產(chǎn)生力工具,用于生成更好的網(wǎng)絡(luò)釣魚電子郵件或生成惡意軟件。已經(jīng)有一些案例表明不法分子已經(jīng)嘗試利用ChatGPT生成惡意對象,例如,網(wǎng)絡(luò)釣魚電子郵件,甚至多態(tài)惡意軟件。
安全分析師的許多實驗都在表明,流行的大型語言模型(LLM)ChatGPT 可能有助于幫助網(wǎng)絡(luò)安全防御者分類潛在的安全事件并發(fā)現(xiàn)代碼中的安全漏洞,即使人工智能(AI)模型沒有專門針對此類活動進行訓(xùn)練。
在對 ChatGPT 作為事件響應(yīng)工具的實用程序的分析中,安全分析師發(fā)現(xiàn) ChatGPT 可以識別在受感染系統(tǒng)上運行的惡意進程。通過使用Meterpreter和PowerShell Empire代理感染了一個系統(tǒng),以對手的角色采取了共同的步驟,然后對系統(tǒng)運行了ChatGPT驅(qū)動的惡意程序掃描器。LLM 識別出系統(tǒng)上運行的兩個惡意進程,并正確忽略了137個良性進程,利用ChatGPT 在很大程度上減少了開銷。
安全研究人員也在研究通用語言模型如何在特定的防御相關(guān)任務(wù)上執(zhí)行。去年12月,數(shù)字取證公司Cado Security使用ChatGPT分析來自真實安全事件的JSON數(shù)據(jù)創(chuàng)建了黑客入侵的時間表,從而生成了一份很好的但并不完全準確的報告。安全咨詢公司NCC Group則嘗試使用ChatGPT作為查找代碼漏洞的一種方式,雖然ChatGPT確實做到了,但漏洞識別并不總是很準確。
從實際的使用來看,安全分析師,開發(fā)人員和逆向工程師在使用 LLM 時需要小心,特別是對于超出其能力范圍的任務(wù)。安全咨詢公司NCC Group的首席科學(xué)家Chris Anley說,“我絕對認為專業(yè)開發(fā)人員和其他使用代碼開展工作的人應(yīng)該探索 ChatGPT 和類似的模型,但更多的是為了靈感,而不是絕對正確的事實結(jié)果,”他說,并補充說“安全代碼審查不是我們應(yīng)該使用 ChatGPT 的事情,所以期望它第一次就完美是不公平的。”
使用 AI 分析 IoC
安全和威脅研究通常會以報告、演示文稿、博客文章、推文和其他類型的內(nèi)容的形式公開披露其調(diào)查結(jié)果(對手指標、戰(zhàn)術(shù)、技術(shù)和程序)。
因此,我們最初決定檢查 ChatGPT 對威脅研究的了解,以及它是否可以幫助識別簡單的、眾所周知的對手工具,如 Mimikatz 和快速反向代理,并發(fā)現(xiàn)常見的重命名策略。輸出看起來很有希望!
那么對于經(jīng)典的入侵指標,例如眾所周知的惡意哈希和域名ChatGPT能回答正確嗎?不幸的是,在我們的快速實驗中,ChatGPT 無法產(chǎn)生令人滿意的結(jié)果:它未能識別 Wannacry 的知名哈希值(哈希:5bef35496fcbdbe841c82f4d1ab8b7c2).
對于多個 APT 活動使用的域名,ChatGPT 生成了一個基本相同的域名列表并提供了 APT 攻擊者的描述,我們可能對有些域名一無所知?
至于 FIN7 使用的域名,chatGPT 正確地將它們歸類為惡意域名,盡管它給出的原因是,“域名很可能是試圖欺騙用戶相信它是一個合法的域名”,而不是有眾所周知的入侵指標。
雖然最后一個針對模仿知名網(wǎng)站域名的實驗給出了一個有趣的結(jié)果,但還需要更多的研究:很難說為什么 ChatGPT 對基于主機的安全事件產(chǎn)生的結(jié)果要比對域名和哈希等簡單指標的結(jié)果更好。某些過濾器可能已應(yīng)用于訓(xùn)練數(shù)據(jù)集,或者如果以不同的方式構(gòu)建問題本身(定義良好的問題就是解決了一半的問題!)
無論如何,由于對基于主機的安全事件的響應(yīng)看起來更有希望,我們指示 ChatGPT 編寫一些代碼來從測試 Windows 系統(tǒng)中提取各種元數(shù)據(jù),然后詢問元數(shù)據(jù)是否是泄露的指標:
某些代碼片段比其他代碼片段更方便使用,因此我們決定繼續(xù)手動開發(fā)此 PoC:我們篩選了 ChatGPT 的回答中包含有關(guān)存在入侵指標為“yes”的語句的事件輸出,添加了異常處理程序和 CSV 報告,修復(fù)了小錯誤,并將代碼片段轉(zhuǎn)換為單獨的 cmdlet, 這樣就產(chǎn)生了一個簡單的 IoC 安全掃描器 HuntWithChatGPT.psm1,能夠通過WinRM掃描遠程系統(tǒng):
我們用Meterpreter和PowerShell Empire代理感染了目標系統(tǒng),并模擬了一些典型的攻擊程序。在針對目標系統(tǒng)執(zhí)行掃描程序時,它會生成一個包含 ChatGPT 結(jié)論的掃描報告:
在 137 個良性進程中正確識別了兩個惡意運行的進程,沒有任何誤報。
請注意,ChatGPT 提供了它得出元數(shù)據(jù)是泄露指標的結(jié)論的原因,例如“命令行正在嘗試從外部服務(wù)器下載文件”或“它正在使用”-ep bypass“標志,該標志告訴 PowerShell 繞過通常存在的安全檢查”。
對于服務(wù)安裝事件,我們稍微修改了問題,引導(dǎo) ChatGPT “一步一步地思考”,這樣它就會減慢速度并避免認知偏差,正如 Twitter 上的多位研究人員所建議的那樣:
下面的 Windows 服務(wù)名稱“ $ServiceName”和下面的 Launch String“ $Servicecmd”是妥協(xié)的指示器嗎?請一步一步地思考。
ChatGPT 成功識別了可疑的服務(wù)安裝,沒有出現(xiàn)誤報。它產(chǎn)生了一個有效的假設(shè),即“代碼被用于禁用Windows系統(tǒng)上的日志記錄或其他安全措施”。對于第二項服務(wù),它提供了關(guān)于為什么該服務(wù)應(yīng)被歸類為入侵指標的結(jié)論:“這兩條信息表明 Windows 服務(wù)和啟動服務(wù)的字符串可能與某種形式的惡意軟件或其他惡意活動相關(guān)聯(lián),因此應(yīng)被視為入侵指標”。
在相應(yīng)的 PowerShell cmdlets Get-ChatGPTSysmonProcessCreationIoC 和 Get-ChatGPTProcessCreationIoC 的幫助下,分析了 Sysmon 和 Security 日志中的進程創(chuàng)建事件。最后報告強調(diào),有些事件是惡意的:
ChatGPT 在 ActiveX 代碼中識別出可疑模式:“命令行包括啟動新進程 (svchost.exe) 和終止當(dāng)前進程 (rundll32.exe) 的命令”。
正確地描述了 lsass 進程轉(zhuǎn)儲嘗試:“a.exe 正在使用提升的權(quán)限運行,并使用 lsass(代表本地安全機構(gòu)子系統(tǒng)服務(wù))作為其目標;最后,dbg.dmp 表示在運行調(diào)試程序時正在創(chuàng)建內(nèi)存轉(zhuǎn)儲”。
正確檢測到 Sysmon 驅(qū)動程序卸載:“命令行包括卸載系統(tǒng)監(jiān)視驅(qū)動程序的說明”。
在檢查 PowerShell 腳本塊時,我們修改了問題,不僅檢查指標,還檢查是否存在混淆技術(shù):
以下 PowerShell 腳本是否經(jīng)過模糊處理或包含入侵指標?“$ScriptBlockText”
ChatGPT 不僅能夠檢測到混淆技術(shù),還列舉了一些 XOR加密,Base64編碼和變量替換。
當(dāng)然,這個工具并不完美,可以同時產(chǎn)生誤報或漏報。
在下面這個例子中,ChatGPT 沒有檢測到通過 SAM 注冊表轉(zhuǎn)儲系統(tǒng)憑據(jù)的惡意活動行為,而在另一個示例中,將 lsass.exe 進程描述為可能表明“惡意活動或安全風(fēng)險,例如系統(tǒng)上運行的惡意軟件”:
這個實驗的一個有趣的結(jié)果是數(shù)據(jù)集中的數(shù)據(jù)縮減。在測試系統(tǒng)上模擬對手后,分析師要驗證的事件數(shù)顯著減少:
請注意,測試是在新的非生產(chǎn)系統(tǒng)上執(zhí)行的。如果是生產(chǎn)系統(tǒng)可能會產(chǎn)生更多的誤報。
實驗結(jié)論
在上面的實驗中,安全分析師開展的實驗始于向 ChatGPT 詢問幾種黑客工具,如 Mimikatz 和 Fast Reverse Proxy。AI模型成功地描述了這些工具,但是當(dāng)被要求識別眾所周知的哈希和域名時,ChatGPT失敗了,沒有正確描述。例如,LLM 無法識別WannaCry惡意軟件的已知哈希值。然而,識別主機上惡意代碼的相對成功使得安全分析師嘗試要求ChatGPT創(chuàng)建一個PowerShell腳本,目的是為了從系統(tǒng)中收集元數(shù)據(jù)和入侵指標,并將其提交給LLM。
總體而言,安全分析師使用 ChatGPT 分析了測試系統(tǒng)上 3500 多個事件的元數(shù)據(jù),發(fā)現(xiàn)了 74 個潛在的入侵指標,其中 17 個是誤報。該實驗表明,ChatGPT 可用于為那些在未運行端點檢測和響應(yīng) (EDR) 系統(tǒng)、檢測代碼混淆或逆向工程代碼二進制文件的公司收集取證信息。
雖然 IoC 掃描的確切實施目前可能不是一個非常具有成本效益的解決方案,每個主機大約15-25美元,但它顯示了有趣的中性結(jié)果,并揭示了未來研究和測試的機會。我們在研究過程中注意到如下幾個ChatGPT作為安全分析師生產(chǎn)力工具的領(lǐng)域:
系統(tǒng)檢查入侵指標,尤其是在您仍然沒有充滿檢測規(guī)則的 EDR 并且需要執(zhí)行一些數(shù)字取證和事件響應(yīng) (DFIR) 的情況下;
將當(dāng)前基于簽名的規(guī)則集與 ChatGPT 輸出進行比較以識別差距 — 總有一些技術(shù)或程序是您作為分析師不知道或忘記為其創(chuàng)建簽名的。
檢測代碼混淆;
相似性檢測:將惡意軟件二進制文件提供給 ChatGPT,并嘗試詢問它是否有新的二進制文件與其他二進制文件相似。
正確提出問題就已經(jīng)解決了一半的問題,試驗問題和模型參數(shù)中的各種語句可能會產(chǎn)生更有價值的結(jié)果,即使對于哈希和域名也是如此。此外,要當(dāng)心這可能產(chǎn)生的誤報和漏報。因為歸根結(jié)底的說,這只是另一個容易產(chǎn)生意外結(jié)果的統(tǒng)計神經(jīng)網(wǎng)絡(luò)。
合理使用和隱私規(guī)則需要澄清
類似的實驗還提出了一些關(guān)于提交給OpenAI的ChatGPT系統(tǒng)的數(shù)據(jù)的關(guān)鍵問題。公司已經(jīng)開始反對使用互聯(lián)網(wǎng)上的信息創(chuàng)建數(shù)據(jù)集,Clearview AI和Stability AI等公司面臨訴訟,試圖減少其機器學(xué)習(xí)模型的使用。
隱私是另一個問題。NCC Group的Anley說,“安全專業(yè)人員必須確定提交的入侵指標是否暴露了敏感數(shù)據(jù),或者提交軟件代碼進行分析是否侵犯了公司的知識產(chǎn)權(quán)。”,“向 ChatGPT 提交代碼是否是個好主意在很大程度上取決于具體情況,”他還說,“很多代碼都是專有的,受到各種法律保護,所以我不建議人們向第三方提交代碼,除非他們得到許可。”
其他安全專家也發(fā)出了類似的警告:使用 ChatGPT 檢測入侵會向系統(tǒng)發(fā)送敏感數(shù)據(jù),這可能違反公司政策,并可能帶來業(yè)務(wù)風(fēng)險。通過使用這些腳本,你可以將數(shù)據(jù)(包括敏感數(shù)據(jù))發(fā)送到OpenAI,所以要小心,事先咨詢系統(tǒng)所有者。
本文翻譯自:https://securelist.com/ioc-detection-experiments-with-chatgpt/108756/