火出圈的ChatGPT,如何讓安全檢測更智能
ChatGPT(Chat Generative Pre-trained Transformer)是一款美國OpenAI研發(fā)的聊天機器人程序,能夠通過理解和學(xué)習(xí)人類語言來進行對話,根據(jù)聊天的上下文與使用者互動,真正像人類一樣聊天交流。它甚至能完成撰寫郵件、視頻腳本、文案、代碼、論文等任務(wù)。
ChatGPT的算法基于Transformer架構(gòu),這是一種使用自注意力機制處理輸入數(shù)據(jù)的深度神經(jīng)網(wǎng)絡(luò)。Transformer架構(gòu)廣泛應(yīng)用于語言翻譯、文本摘要、問答等自然語言處理任務(wù)。ChatGPT使用了GPT-3.5大規(guī)模語言模型(LLM Large Language Model),并在該模型的基礎(chǔ)上,引入強化學(xué)習(xí)來微調(diào)預(yù)訓(xùn)練的語言模型。這里的強化學(xué)習(xí)采用的是RLHF(Reinforcement Learning from Human Feedback),即人工標注方式。目的是通過其獎勵懲罰機制,讓LLM模型學(xué)會理解各種自然語言處理任務(wù),并學(xué)會從helpfulness、honest、harmless三個維度判斷什么樣的答案是優(yōu)質(zhì)的。
ChatGPT模型的主要訓(xùn)練流程如下:
- 首先利用一系列問答對模型進行監(jiān)督訓(xùn)練(也叫監(jiān)督指令微調(diào))。
- 利用強化學(xué)習(xí)對模型進一步指令微調(diào),即模型在給定環(huán)境中,不斷根據(jù)環(huán)境的獎勵和懲罰,擬合到一個最適應(yīng)環(huán)境的狀態(tài)。具體來說,就是在人類的參與下訓(xùn)練一個獎賞網(wǎng)絡(luò),這個獎賞網(wǎng)絡(luò)具有對多個聊天回復(fù)進行好壞排序的能力。
- 利用這個獎賞網(wǎng)絡(luò),進一步通過強化學(xué)習(xí)不斷優(yōu)化模型。
在安全檢測領(lǐng)域,越來越多的企業(yè)組織開始使用人工智能技術(shù),來幫助檢測網(wǎng)絡(luò)流量中的潛在威脅。人工智能的優(yōu)勢在于,它可以處理大量的數(shù)據(jù),快速準確地識別并分類異常流量。通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,人工智能可以自動化檢測識別網(wǎng)絡(luò)攻擊、漏洞利用和惡意軟件等行為,減少人工干預(yù)和誤報,提高檢測的準確性與效率。
當前主流的網(wǎng)絡(luò)攻擊檢測,核心是基于DPI技術(shù),發(fā)展出的針對HTTP訪問的檢測(WAF),以及針對操作系統(tǒng)的入侵防御檢測(IPS)。即部署在應(yīng)用前,在用戶請求到達服務(wù)端之前對其進行掃描和過濾,分析校驗每個用戶請求的網(wǎng)絡(luò)包,確保每個請求的安全有效,對無效或有攻擊行為的請求進行攔截或隔離。目前,常用的攻擊檢測方式如下:
1.簽名檢測技術(shù)
基于事先編寫的特定規(guī)則或模式(正則表達式)檢測網(wǎng)絡(luò)流量中的威脅,如病毒、惡意軟件、入侵行為等。但是由于攻擊手段多樣化,有經(jīng)驗的黑客可以通過一些語句變化繞過檢測。正則表達式是由關(guān)鍵字發(fā)展而來的,雖然在一定程度上降低了誤報率,但由于正則表達式是基于字符串的過濾,只能檢測預(yù)定好的攻擊行為;針對一些比較復(fù)雜的注入方法,同樣存在漏報率高的問題。
2.流量分析技術(shù)
通過對同類流量的來源IP、協(xié)議類型比例、流量上下行趨勢等基礎(chǔ)元素的建模分析,得到一些異常事件的分析結(jié)論。但是流量分析需要對網(wǎng)絡(luò)流量進行捕獲分析,所以需要較高的計算資源和存儲資源,會使得整個系統(tǒng)比較龐大。
3.行為分析技術(shù)
通過監(jiān)視網(wǎng)絡(luò)流量的行為,檢測出異?;顒?。例如,檢測出某Web應(yīng)用服務(wù)器訪問非業(yè)務(wù)數(shù)據(jù)庫、突發(fā)大量數(shù)據(jù)流、頻繁訪問嘗試等,進而發(fā)現(xiàn)潛在的網(wǎng)絡(luò)威脅。在這一過程中,會誤報一些合法活動(例如臨時下載等),且成熟的行為分析模型需要較長時間來訓(xùn)練和學(xué)習(xí),因此防護效率可能較低。
4.基于語義的規(guī)則匹配
將檢測引擎設(shè)計成SQL語義解釋器或命令行終端,嘗試理解用戶輸入的內(nèi)容,判斷是否有可能構(gòu)成攻擊。目前主要針對SQL注入,使用場景有限。
基于DPI引擎的檢測方式,除了有這些使用限制外,還存在多種繞過流量解析引擎進行入侵的方法。例如,利用DPI引擎可能存在的HTTP協(xié)議解析缺陷,只識別80端口為HTTP流量,而Web應(yīng)用端口在8080上,其HTTP流量會被DPI引擎解析為非HTTP,從而繞過應(yīng)用層攻擊檢測。
哪些環(huán)節(jié)可以應(yīng)用ChatGTP
我們按照DPI引擎的解包流程,將原始流量解析出關(guān)鍵字段數(shù)據(jù),進行規(guī)則匹配。如果能匹配到規(guī)則,則說明報文存在攻擊行為;如果不能匹配,則說明報文風(fēng)險較低。DPI引擎收到的流量如下圖:
DPI引擎會按照會話對流量進行分組,在同一個組中的報文,一般為同一五元組的請求響應(yīng)報文:
DPI引擎會將流量按照協(xié)議層級進行拆解,直到解析出所有的字段。
DPI引擎會提取其中應(yīng)用層的明文請求,作為待檢測內(nèi)容:
ChatGPT作為一種大型自然語言處理模型,可以理解HTTP原始報文信息,這樣無論攻擊出現(xiàn)在URL、Cookies還是Referer中,都能順利檢測到。
ChatGPT流量檢測實踐
ChatGPT、New Bing等攻擊判斷模塊,會調(diào)用OpenAI相關(guān)API接口,使用提問的方式讓ChatGPT、New Bing等進行攻擊判斷,示意代碼如下:
通過上述函數(shù),就可以達到類似向ChatGPT提問的效果(使用模型為text-davinci-003),如下圖:
ChatGPT會返回明確的是否存在攻擊行為的結(jié)論以及行為描述,這樣就完成了一次攻擊判斷。
如上圖,可以將流量中大量需要判斷的請求,分別存入不同的文件,由ChatGPT進行攻擊判讀,示例代碼如下:
如此就可以做到批量報文攻擊檢測。
攻擊樣本來自Nuclei對靶機的掃描和全PoC檢測,因為有一些請求從單個報文中確實看不出來是否存在威脅。
上述情況可能需要更多上下文才能判斷,此次已去除此類無法準確判斷的請求例,盡量給一些人工條件下能夠準確判斷的樣例,總體檢測結(jié)果如下圖:
可見ChatGPT對流量檢測的準確率是非常高的,基本上相當于一個安全專家進行快速判斷,其安全檢測能力值得期待。
有興趣的讀者可以查看完整的項目源碼,鏈接為:https://github.com/VitoYane/PcapSplit
未來展望
未來,ChatGPT在網(wǎng)絡(luò)安全中將扮演什么角色、有什么影響,我們很難進行準確預(yù)測,這取決于它的使用方式和使用意圖。來自人工智能的威脅并不是一個新問題,對網(wǎng)絡(luò)安全從業(yè)者來說,重要的是及時意識到ChatGPT的潛在風(fēng)險并采取適當?shù)拇胧﹣響?yīng)對。
安全專家預(yù)測,國家背景的黑客將率先在網(wǎng)絡(luò)攻擊中利用ChatGPT,而該技術(shù)最終會在更多的攻擊組織中得到大規(guī)模的使用,防守方需要開始研發(fā)能夠抵御此類攻擊的系統(tǒng)。
從網(wǎng)絡(luò)安全防護的角度來看,企業(yè)機構(gòu)可以采取針對性的應(yīng)對措施,對ChatGPT等類似模型進行培訓(xùn),標記惡意活動和惡意代碼,同時對其設(shè)置難以繞過的護欄。對于ChatGPT引發(fā)的威脅,可以向員工提供新型的網(wǎng)絡(luò)意識培訓(xùn),掌握識別社會工程攻擊的知識,以便識別ChatGPT等人工智能工具創(chuàng)造的釣魚攻擊。
當然僅僅是這樣還不夠。ChatGPT等人工智能工具會以比人類罪犯更快的速度制造出新的威脅,傳播威脅的速度也將超過網(wǎng)絡(luò)安全人員的反應(yīng)速度。企業(yè)機構(gòu)跟上這一變化速度的唯一方法,是使用人工智能來應(yīng)對人工智能。
總的來說:一方面,網(wǎng)絡(luò)安全行業(yè)的研究人員、從業(yè)者、學(xué)術(shù)機構(gòu)和企業(yè)組織可以利用ChatGPT的力量進行創(chuàng)新和協(xié)作,包括漏洞發(fā)現(xiàn)、事件響應(yīng)和釣魚檢測;另一方面,隨著ChatGPT等工具的發(fā)展,未來開發(fā)新的網(wǎng)絡(luò)安全工具更加重要。安全廠商應(yīng)更積極地開發(fā)和部署基于行為(而非規(guī)則)的AI安全工具,來檢測人工智能生成的攻擊。