通用型大型语言模型 (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。
有关更多信息,请参阅以下资源: