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