通用型大型語言模型 (LLM) 已證明其在各個領域的效用,在文本生成和復雜問題解決等應用中提供了巨大的優勢。但是,在某些情況下,開發定制語言模型不僅是有益的,而且至關重要。在以獨特的詞匯表和內容為特征的專業領域中,這種需求尤其明顯,這些詞匯表和內容不同于典型的語言結構。
在網絡安全領域中,一般的 LLM 限制變得顯而易見,尤其是在處理原始日志時。自然語言的本質與機器生成的日志的結構化格式截然不同。直接將傳統的 LLM 應用于此類數據是不切實際的。這些模型難以處理機器日志的特征,這些特征與自然語言的結構有很大不同。
- 包含嵌套字典的復雜 JSON 格式
- 新穎的語法
- 使用鍵值對
- 數據元素之間的空間關系
使用自然語言文本、關聯代碼和機器日志語料庫預訓練的 LLM 缺乏在真實環境中有效解析、理解和構建網絡安全數據所需的特定性,從而導致應用程序在應對網絡安全挑戰方面受到嚴重限制。
必須使用經過原始網絡日志訓練的網絡語言模型來生成特定于企業環境的日志,依靠傳統模型生成合成日志可能會帶來一些缺點,這些模型可能無法捕捉特定于真實操作環境的獨特模式和異常情況,從而導致合成日志缺乏真實數據的復雜性和不規則性。
傳統模型還可能會過度簡化網絡日志中的復雜交互,導致輸出不夠可靠,無法有效訓練或測試網絡安全系統,這可能會降低模擬和其他旨在為實際網絡安全威脅做好準備的分析的有效性。
提高網絡安全措施針對復雜威脅的準確性和有效性
我們的研究重點是研究這些網絡安全挑戰是否可以通過使用專門針對原始網絡安全日志預訓練的語言模型來有效解決。通過這種方法,我們的目標是確保在網絡安全中使用專業基礎模型比通用語言模型更實用和有效。
這種方法的一個顯著好處是減少了誤報,這些誤報會產生不必要的警報,同時也會模糊真正的威脅。當異常檢測模型基于不完整的數據集進行訓練時,這個問題就會更加嚴重,因為這些數據集并不考慮良性或預期事件。
生成式 AI 的應用可以彌補真實網絡安全數據的不足,從而提高異常檢測系統的精度。這可以通過創建合成數據或使用在原始日志上訓練的網絡安全特定基礎模型來實現。
這些定制模型為防御強化工作提供了可靠的支持。它們能夠模擬 cyber-attacks,并促進探索各種 what-if 場景。此功能對于驗證現有 alerts 和防御措施針對罕見或不可預見的威脅的有效性至關重要。
通過不斷更新訓練數據以反映新出現的威脅和不斷變化的數據模式,這些模型可以顯著地增強網絡安全防御。
網絡安全特定基礎模型的另一個關鍵應用是紅隊。通過從過去安全事件的原始日志中學習,這些模型可以生成更廣泛的攻擊日志,包括帶有 MITRE 標識符的日志。這項模擬多階段攻擊場景的能力對于準備和強化網絡安全措施以對抗復雜和復雜的威脅非常重要。
圖 1 展示了使用 cyber 語言模型改進防御的示例工作流程。

通用型 LLM 與基于網絡的 LLM
為驗證通用 LLMs 是否能夠理解并生成網絡日志,我們使用托管 LLMs 建立了基準。
我們使用 LLM 生成原始網絡安全日志的嘗試一直很有挑戰性盡管為這些模型提供了具體示例,但它們仍難以擴展日志類型不同設置中相同的日志類型的可變性增加了這一挑戰,這些日志類型可能不共享相同的列或格式。
這種可變性凸顯了自然語言訓練的 LLMs 的局限性,強調它們不足以滿足網絡安全日志生成的復雜需求。表 1 中的比較旨在展示我們的專業語言模型相對于傳統的指令調整模型的獨特優勢,特別是在熟練處理網絡安全日志類型的各種特定要求方面。
是否在提示中指定日志 | 提示 | 通用型 LLM | NVIDIA 網絡語言模型 |
通用 | 零次攻擊示例日志生成 | 有限 | 是 |
通用 | 一次性攻擊示例日志生成 | 不適用 | 不適用 |
通用 | Few-shot Attack 示例日志生成 | 不適用 | 不適用 |
通用 | 日志生成的零射擊攻擊流 | 有限 | 是 |
通用 | 生成日志的一次性攻擊流 | 否 | 不適用 |
通用 | 日志生成的幾發攻擊流 | 否 | 不適用 |
特定日志類型 | 完成時生成攻擊日志 | 否 | 是 |
特定日志類型 | 一次性攻擊日志生成 | 否 | 不適用 |
特定日志類型 | 生成數發攻擊日志 | 否 | 不適用 |
以下是我們的示例提示,用于通用型 LLM 的原始日志生成::
Generate sample AWS CloudTrail logs that show signs of an attacker enumerating and discovering resources in a target AWS environment, as described in MITRE ATT&CK technique T1580 Cloud Infrastructure Discovery. |
探索 cyber-specific LLMs 的功能實驗
在我們的實驗中,我們探索了使用 GPT 語言模型生成合成網絡日志,用于多種目的,包括
- 用戶特定的日志生成
- 場景模擬
- 生成可疑事件
- 異常檢測
我們的方法是從數據庫中以 jsonlines 格式導出原始日志,并使用該文件從頭開始訓練 GPT。
實驗 A:使用 GPT 模型生成網絡日志流
與使用數萬億個令牌訓練的數十億參數 LLM 不同,我們觀察到,使用來自原始網絡安全數據的不到 10M 個令牌訓練的 GPT2 大小或更小的模型可以生成有用的日志。
我們首先從頭開始訓練小型 GPT 模型在原始 Microsoft Azure 和 Confluence 日志上,并使用 JSON 格式。通過在每種日志類型的開頭提示模型,這些模型生成了逼真的合成日志。然后,我們使用時間戳列合并了兩種日志類型,并在組合數據上訓練了新的 GPT,使其能夠生成 Microsoft Azure– 和 Confluence 風格的日志。
接下來,我們研究了如何通過在訓練期間將用戶名作為前綴添加到每個日志條目來生成用戶特定的日志。得到的模型可能會在收到用戶用戶名的提示時為特定用戶生成日志。一些挑戰是,約 10% 的輸出存在錯誤的 JSON,而高活躍度用戶的日志條目主導并滲透到其他用戶的合成日志中。使用字符級分詞器有助于生成格式更一致的輸出。
為了模擬新場景(例如用戶前往新位置)的日志,我們訓練了帶有用戶名和位置(country)前綴的 GPT 模型。使用用戶名和新位置提示模型會生成正確用戶但錯誤位置的日志,超過 50% 的時間。
為了解決這個問題,我們訓練了單獨的 GPT,一個用于位置元數據字段,如city、state、latitude和longitude,并帶有 country-level 前綴,另一個用于其余字段的 GPT。查詢僅位置模型會生成真實的位置字段組合,以插入到用戶特定的日志中。這是我們稱之為 Dual-GPT 的方法。將此類模擬日志納入異常檢測系統的訓練有助于降低異常但良性事件的誤報率。
處理預期事件的誤報時,一種確定性的方法是禁用或忽略具有某些字段的警報。然而,漏洞可能會在任何時間和任何位置發生,而禁用具有特定字段的警報將導致某些漏洞不被檢測到。這適用于所有字段,而不僅僅是與位置相關的字段。
減少誤報是使用網絡語言模型的強大動力之一。例如,NVIDIA Morpheus 有一個名為 數字指紋識別 的工作流,用于檢測人類或機器行為中的異常情況,并為每個用戶或用戶組提供多個模型。這些模型會重新訓練,以避免變得過時。這樣針對預期事件的合成日志可以輕松納入下一個訓練周期,從而減少誤報。
最后,我們進行了一些有限的實驗,使用在合并日志流上訓練的 GPT 模型的對數預測作為異常檢測方法。大多數異常檢測模型監控單個日志類型,盡管不同日志中的活動可以關聯,并且可能共同構成攻擊。這是我們的方法至關重要的地方,因為它可以生成和預測跨多個日志類型的下一個日志。
我們按順序為模型提供了最后幾個日志條目,并要求他們預測下一個應遵循的日志。通過測量實際傳入日志與模型預測的偏差,我們的目標是檢測日志流中可能發出攻擊信號的異常或意外事件。
雖然這些初始實驗的結果尚未得出定論,但我們建議進一步改進和測試是必要的。


圖 2 和圖 3 顯示了唯一分類值的分布存在限制,有時罕見值會被省略,NULL 值在合成日志中未得到充分表示。增加模型大小或調整生成溫度可能有助于解決此問題。
網絡特定的 GPT 模型表明,通過生成用于模擬、測試和異常檢測的合成日志來增強網絡防御是有希望的,但在保留精確的統計配置文件和生成完全逼真的日志事件序列方面仍然存在挑戰進一步研究將改進技術并量化優勢。
以下是我們所學到的內容:
- 可以使用 cyber 語言模型生成逼真的日志,還可以擴展到使用單個模型和新場景模擬生成多種日志類型。
- 可以在訓練期間對包含個人識別信息(PII)的字段進行哈希處理,但生成相應的日志仍然有效。
- 雙 GPT 方法支持模擬前往任何國家或其他特定領域的旅行,此方法可以擴展以針對各種場景模擬不同的日志類型。生成的位置基于公司數據,確保它們是真實的。雙 GPT 方法僅用于解決預期事件的數據缺口。
- Character tokenizer 的訓練速度更快,推理速度更慢。在我們的實驗中,Character tokenizer 對于我們數據和模型的大小效果很好。更大的實驗可能需要使用 subword tokenizers。
實驗 B:使用合成日志生成模擬大量紅隊活動
作為安全團隊的首次實驗,我們旨在驗證生成可疑事件的可行性,以便使用更多樣化的日志集測試警報。
確定性警報在識別系統日志中的異常事件方面發揮著至關重要的作用。為了測試這些警報的可靠性,我們與安全團隊合作,使用 Cyber GPT 模型生成合成日志。通過從頭開始訓練 GPT 模型,以歷史日志為基礎,該日志曾經觸發警報,我們的目標是生成新的合成日志。
- 這些生成的日志中,有 90%已成功觸發相同的警報,確認其真實性。
- 10%被視為不可疑。
該實驗強調了 synthetic log generation 在提高安全系統的準確性和可靠性方面的潛力。
更進一步,我們探索了生成模擬紅隊活動的日志。與傳統方法不同,我們的方法使用這些模型來生成模擬網絡攻擊跡象的日志,模擬紅隊活動。這使安全團隊能夠使用與真實攻擊非常相似的日志來改進其檢測和響應策略。
基于之前在合成日志生成方面取得的成功,我們使用針對特定事件的 CloudTrail 日志訓練了一個 GPT 模型,該實驗旨在評估創建準確的合成日志以模擬紅隊活動的可行性。結果前景良好,并且與之前涉及 Azure 和 Microsoft SharePoint 日志的實驗保持一致。
為增強數據集,我們使用 MITRE 框架中的子技術 ID 標記了每個日志條目。我們的目的是確定模型在收到特定 MITRE 子技術 ID 提示時是否可以生成相關日志。
目前,該數據集包括來自單個事件的日志,但計劃通過來自多個事件的日志對其進行擴展,每個事件都標記有 MITRE 子技術 ID。這種全面的方法旨在模擬各種漏洞,為安全團隊提供一個可靠的平臺,以評估和提高其可檢測性和響應能力。
使用高級語言模型生成合成日志代表著網絡安全領域的重大進步。通過模擬可疑事件和紅隊活動,這種方法增強了安全團隊的準備能力和彈性,最終有助于打造更安全的企業。
表 2 顯示了單個 GPU 上的樣本訓練時間,包括該實驗的特定參數和數據集大小。
層數 | 主管數量 | 上下文大小 | GPT 大小 (M) | 分詞器 | 數據集說明 | 數據集長度 = (字符) | 訓練時間 A100 GPU |
12 | 12 | 7000 | 1.2 億 | 角色 | Azure 日志 | 3900 萬 | 約 45 分鐘 |
6 | 6 | 4000 | 85.2 | 角色 | Azure 日志 | 3900 萬 | < 15 分鐘 |
12 | 12 | 7000 | 1.2 億 | 角色 | Sharepoint 日志 | 4700,000 | < 15 分鐘 |
作為實驗中的合理性檢查,我們測量了生成的日志與真實日志之間的相似性,以確保生成的日志不相同 (圖 4 和圖 5)。


結束語
我們的研究強調了通用型 LLMs 在滿足網絡安全獨特要求方面的局限性。這項研究為開發網絡基礎模型鋪平了道路,在該模型中,模型經過定制,可處理大量特定領域的數據集。網絡基礎模型直接從低級網絡安全日志中學習,實現更精確的異常檢測、網絡威脅模擬和整體安全增強。
我們嘗試了較小的模型,但可以使用更多數據來訓練更大的模型,從而有可能在各種網絡安全任務中實現更高的適應性。我們強烈建議使用自己的日志訓練語言模型,這樣可以實現專門的任務處理和更廣泛的應用程序潛力。
采用這些 cyber 基礎模型提供了一種實用的策略,可以改善 cybersecurity 防御,使您的 cybersecurity 工作更加穩健和適應性強。單個 GPU 可能足以開始訓練基礎模型,其數據集大小與我們在實驗中使用的數據集大小類似。對于更多數據和更大模型,請使用 NVIDIA NeMo。
有關更多信息,請參閱以下資源:
?