對大型語言模型的安全性能進行基準測試,誰更勝一籌?
大型語言模型(LLM)機器學習技術正在迅速發展,催生了多個相互競爭的開源和專有架構。除了與ChatGPT等平臺相關的生成式文本任務外,LLM還被證實在許多文本處理應用程序中具有實用價值,可以協助編寫代碼以及對內容進行分類。
SophosAI研究了許多在網絡安全相關任務中使用LLM的方法。但考慮到LLM的多樣性,研究人員面臨著一個具有挑戰性的問題:如何確定哪種模型最適合特定的機器學習問題。選擇模型的一個好方法是創建基準任務,以便輕松快速地評估模型處理典型問題的能力。
目前,LLM是在某些基準上進行評估的,但這些測試只衡量了這些模型在基礎自然語言處理(NLP)任務上的通用能力。Huggingface Open LLM排行榜使用了七個不同的基準來評估Huggingface上所有可訪問的開源模型。
【圖1:Huggingface Open LLM排行榜】
然而,這些基準任務的性能可能無法準確反映模型在網絡安全環境中的工作性能。由于這些任務是通用化的,因此它們可能無法揭示由訓練數據產生的模型在特定于安全的專業知識方面的差異。
為了克服這一點,SophosAI研究團隊創建了下述三個基于任務的基準,在研究人員看來,這些任務是大多數基于LLM的防御性網絡安全應用程序的基本先決條件:
- 通過將有關遙測的自然語言問題轉換為SQL語句,充當事件調查助手;
- 從安全運營中心(SOC)數據生成事件摘要;
- 評定事件嚴重程度。
這些基準測試有兩個目的:確定具有微調潛力的基礎模型,然后評估這些模型的開箱即用(未調優)性能。研究人員根據模型大小、流行程度、上下文大小等標準選擇了以下模型進行分析:
【接受基準測試的模型】
任務1:事件調查助手
在第一個基準測試任務中,主要目標是評估LLM作為SOC分析師助手的性能,通過基于自然語言查詢檢索相關信息來調查安全事件。在上下文模式知識的指導下,評估LLM將自然語言查詢轉換為SQL語句的能力,有助于確定它們是否適合此任務。
研究人員把這個任務看作是一個few-shot(一種提示技巧)提示問題。最初,他們向模型提供將請求轉換為SQL所需的指令。然后,他們為這個問題創建的所有數據表提供模式信息。最后,他們提供了三對示例請求及其對應的SQL語句作為模型的示例,以及模型應該轉換為SQL的第四對請求。
【圖2:顯示原始自然語言查詢研究中使用的“few-shot”方法的圖表】
這個任務的提示示例如下:
【圖3:事件調查助手基準測試中使用的示例提示】
每個模型生成的查詢的準確性是通過檢查輸出是否與預期的SQL語句完全匹配來衡量的。如果SQL不完全匹配,那么研究人員就會對創建的測試數據庫運行查詢,并將結果數據集與預期查詢的結果進行比較。最后,研究人員將生成的查詢和期望的查詢傳遞給GPT-4,以評估查詢的等效性。
測試結果:
【圖4:查詢生成基準的結果為OpenAI的GPT -4最準確,Meta的CodeLlaMa 34b、Anthropic的Claude模型和OpenAI的GPT-3.5 Turbo緊隨其后】
根據評估,GPT-4表現最好,準確率達到88%。緊隨其后的是另外三個模型:CodeLlama-34B-Instruct和兩個Claude模型,準確率均為85%。CodeLlama在這項任務中的出色表現是意料之中的,因為它專注于生成代碼。
總體而言,較高的準確率分數表明該任務對模型來說很容易完成。這表明,這些模型的開箱即用性能可以有效地幫助威脅分析人員調查安全事件。
任務2:事件摘要
在安全運營中心,威脅分析人員每天需要調查大量的安全事故。通常,這些事故表現為發生在用戶端點或網絡上的一系列事件,且與已檢測到的可疑活動相關。威脅分析人員可以利用這些信息進行進一步調查。然而,對于分析人員來說,這一系列的事件通常是異常繁雜的,并且需要花費大量時間來瀏覽,這使得識別關鍵事件變得困難。這就是LLM可能發揮作用的地方,因為它們可以幫助識別和組織基于特定模板的事件數據,使分析人員更容易理解正在發生的事情并確定下一步行動。
對于這個基準測試,研究人員使用來自托管檢測和響應(MDR) SOC的310個事件的數據集,每個事件都格式化為一系列JSON事件,并根據捕獲傳感器不同分為不同的模式和屬性。數據連同匯總數據的指令和用于匯總過程的預定義模板一起傳遞給模型。
【圖5:用于為事件摘要基準傳遞數據的模板】
研究人員使用了五個不同的指標來評估每個模型生成的摘要。首先,他們通過將生成的事件描述與“黃金標準”摘要(該摘要是Sophos分析師在GPT-4生成的最初版本基礎上進行改進和糾正形成的)進行比較,來驗證每個模型生成的事件描述是否成功地從原始事件數據中提取了所有相關細節。
【圖6:“黃金標準”摘要最初由GPT-4生成,然后由威脅分析人員手動檢查和修改,以確保準確性】
如果提取的數據不完全匹配,研究人員將通過計算從事件數據中提取的每個事實的最長公共子串(Longest Common Subsequence)和Levenshtein距離,來測量提取的所有細節與人類生成的報告的差距,并為每個模型計算平均分數。他們還使用BERTScore指標以及METEOR評估指標來評估摘要描述。
測試結果:
【圖7:事件摘要基準測試前8名模型】
在此次測試中,GPT-4再次脫穎而出,成為優勢明顯的贏家,在各方面的表現都顯著優于其他模型。但是GPT-4在一些定性指標上存在不公平的優勢,尤其是基于嵌入的指標,因為用于評估的“黃金標準”是在GPT-4本身的幫助下開發的。
在其他模型中,Claude-v2模型和GPT 3.5 Turbo在專有模型領域表現優異;Llama-70B型號是性能最好的開源模型。然而,研究人員也觀察到MPT-30B-Instruct模型和CodeLlama-34B-Instruct模型在產出良好的描述方面存在困難。
這些數字并不一定能完全說明這些模型對事件的總結有多好。為了更好地掌握每個模型發生了什么,研究人員仔細查看了由它們生成的描述,并對它們進行了定性評估。(為了保護客戶信息,這里將只顯示生成的事件摘要的前兩個部分。)
GPT-4在總結方面做得不錯;摘要雖然有點啰嗦,但很準確。GPT-4還正確提取了事件數據中的MITRE技術。然而,它忽略了區分MITRE技術與戰術的首行縮進細節。
【圖8:在人工審閱之前,GPT-4的后續版本自動生成的摘要】
Llama-70B也正確地提取了所有的細節。然而,它忽略了摘要中的一個事實(該帳戶被鎖定)。在總結中也未能將MITRE技術與戰術區分開來。
【圖9:Llama-70B生成的摘要】
另一方面,J2-Ultra表現不佳。它重復了三次MITRE技術,完全遺漏了戰術。不過,好在摘要似乎非常簡明扼要。
【圖10:J2-Ultra生成的摘要】
MPT-30B-Instruct表現完全失敗,只是生成了一個段落,總結了它在原始數據中看到的內容。
【圖11:MPT-30B的(編輯過的)摘要輸出】
同樣地,CodeLlaMa-34B的輸出也是完全不可用的。它反芻了事件數據而非摘要,甚至部分“幻覺”了一些數據。
任務3:事件嚴重性評估
研究人員評估的第三個基準測試任務是傳統ML-Sec問題的改進版本:確定觀察到的事件是無害活動的一部分還是攻擊的一部分。
這項任務的目標是確定LLM是否可以檢查一系列安全事件并評估其嚴重程度。為此,研究人員指示模型從五個選項中分配嚴重性等級:關鍵、高危、中危、低危和信息性。下面是研究人員為該任務提供給模型的提示格式:
【圖12:用于事件嚴重性評估的提示結構】
該提示解釋了每個嚴重級別的含義,并提供了與前一個任務相同的JSON檢測數據。由于事件數據來源于實際事件,研究人員擁有每個案例的初始嚴重性評估和最終嚴重性級別。
測試結果:
研究人員針對3300多個案例評估了每個模型的性能并測量了結果,結果顯示它們都沒有表現出比隨機猜測更好的性能。研究人員使用最近鄰進行了zero-shot設置(藍色)和3-shot設置(黃色)實驗,但兩個實驗都沒有達到30%的準確率閾值。
【圖13:嚴重性分類測試的最佳結果】
作為基線比較,研究人員使用了XGBoost模型進行初始評估,這個性能用綠色條表示。
此外,研究人員還嘗試將GPT-3生成的嵌入應用于警報數據(用紅色條表示)。結果觀察到其性能顯著提高,準確率達到50%。
總的來說,大多數模型都不具備執行這種任務的能力。在此過程中,研究人員也觀察到了一些有趣的失敗行為,包括生成額外的提示指令、反芻檢測數據,或是編寫生成嚴重性標簽作為輸出的代碼,而不是僅僅生成一個標簽。
結論
為安全應用程序使用哪種模型是一個微妙的問題,涉及許多不同的因素。這些基準測試為起點提供了一些需要考慮的信息,但不一定能解決每個潛在的問題集。
大型語言模型在協助威脅搜索和事件調查方面還是有效的。然而,它們仍然需要一些限制和指導。我們相信這個潛在的應用可以使用開箱即用LLM,通過精心的提示工程來實現。
當涉及到從原始數據總結事件信息時,大多數LLM整體表現良好。然而,評估單個工件或工件組對于預先訓練和公開可用的LLM來說仍然是一項具有挑戰性的任務。為了解決這個問題,可能需要一個專門接受過網絡安全數據培訓的LLM。
就純粹的性能而言,我們可以看到GPT-4和Claude v2在所有基準測試中表現最好。然而,CodeLlama-34B模型在第一個基準測試任務中表現出色,獲得了榮譽提名,我們認為它是可以作為SOC助手部署的有競爭力的模型。
原文鏈接:https://news.sophos.com/en-us/2024/03/18/benchmarking-the-security-capabilities-of-large-language-models/