为了与我们的开放性倡议保持一致,我们仍然致力于透明化,并希望分享我们内部 AI 研发工作如何提高我们威胁检测团队的生产力。在过去的几个月中,Elastic 安全实验室一直专注于通过利用更多的生成式 AI 功能来加速我们的检测工程工作流程。
ONWeek 探索之旅
在 Elastic,除了我们长期运行的空间、时间传统之外,我们每 6 个月会抽出一个星期,以独立或团队的形式来完成我们称之为 ONWeek 的工作。在这个星期里,我们都会暂时放下功能开发、技术债务和其他类似的任务;并利用这个星期专注于创新想法、积极的学习机会、应用研究和概念验证工作。在 5 月份的上一届 ONWeek 期间,我们探索了利用大型语言模型 (LLM) 和 Elastic 现有功能来增强安全警报分类和一级分析师及以上人员的生产力、内部生产力工作流程,以及了解我们实验和调整的基础构建模块的想法。图 1 显示了我们拥有的几个不同的研究机会,其中包括摄取事件、通过定制的提示传递数据以及生成针对不同 Elastic 工作流程设计的不同类型的内容。
图 1:生成式 AI 安全用例
从根本上说,我们探索了几种传统的机器学习方法,但最终专注于从简单开始并逐步增加复杂性,同时牢记这些工具和概念
- 从简单开始 - 指导我们方法的一个口号。
- Azure OpenAI - 访问 GPT-4 LLM
- 提示工程 - 为 LLM 开发定制的指令。
- LangChain - 用于帮助创建 LLM 应用程序的 Python 库。
我们的目标之一是简化 Elastic 的检测工程师工作流程,以便让他们更专注于更好的检测,同时展示我们查询语言的深度和细微之处。为此,我们正在花费时间进行实验,以验证我们的提示并为它们的操作使用做好准备。我们希望确保在我们迭代提示时,不会意外引入回归。随着 AI 的进步,我们打算让我们的测试和评估确保任何调整(无论是微调、模型替换还是提示修改)都是经过深思熟虑的。最终,我们希望我们的分析师能够无缝地利用最新的 AIML 功能,在正确的上下文中应用最合适的提示或 ML 技术。
考虑到这些目标,我们在 5 月份的第一个研究用例侧重于查询生成。我们很快就了解到,通过最少的数据和提示工程,我们可以将一系列提示链接起来,将原始 Elastic 事件转换为 EQL 查询。
图 2:查询生成 POC
为了进行实验,我们使用我们的红队自动化 (RTA)脚本模拟了可疑活动,并通过 Elastic Agent 捕获了 SIEM 中的端点活动。图 2 显示了来自 Elastic 堆栈的示例事件,这些事件已导出到 gold.json 测试文件中,其中包括用于查询生成的基本事件字段。
然后,我们要求 GPT 分析涵盖 RTA 执行时间窗口的事件集合,并关注具有可疑行为的事件。在我们的 POC 中,提示要求我们查明与潜在异常相关的关键值。然后,我们使用后续提示来对事件进行分块并总结所有活动。根据所有摘要,我们要求 GPT 生成一个指标列表,而无需键入特定值。有了这个简短的可疑行为列表,我们然后要求 GPT 生成查询。我们长期开源开发的一个重大优势是,与 GPT 相关的模型熟悉 Elastic 内容,因此我们受益于不必过度拟合我们的提示。
即使从原始数据到 EQL 查询在概念上很简单,我们仍然遇到了诸如 Azure OpenAI 的服务可用性之类的小问题。使用 OpenAI 和 Azure OpenAI 推理和嵌入 API 在一周内花费了我们估计约为 160 美元,这相对便宜。我们还探索了使用 GCP Vertex AI Workbench 来促进 Jupyter 笔记本上的协作工作,但是使用可用的开源 (OSS) 模型的复杂性使得它们在短暂的 ONWeek 期间难以使用。
图 3:2023 年 5 月 ONWeek 的主要成果
我们利用 ONWeek 来完善我们的路线图,例如将内存中、基于库的向量搜索实现扩展到 Elasticsearch 中性能更高、可扩展且生产就绪的检测规则内容数据存储。根据我们最初的结果,我们了解了将生成式 AI 集成到分析师工作流程中的潜力和可行性(例如,允许事件时间窗口选择、查询生成和时间线添加)。基于这些早期成功,我们将其纳入内部路线图计划,以进一步开展 LLM 研发,并决定解决我们内部的生产力工作流程之一。
新视野:生成调查指南
多年来,Elastic 安全实验室的内容已日趋成熟。从 2020 年开始添加调查指南安全功能,然后在 2021 年标准化这些指南。到 2023 年,随着超过 900 条规则的就位,我们正在积极寻找一种高效的方法来为所有 900 多条预构建规则生成高度准确、详细和标准化的指南。
通过将传统的机器学习方法(如相似向量搜索)与我们的提示工程特殊方法相结合,我们的团队创建了一个新的原型,该原型以调查指南生成为中心,称为 Rulecraft。现在,只需手头有一个规则 ID,我们的规则作者就可以在短短几分钟内生成基准调查指南解决方案!
图 4:示例调查指南
在最初的探索中,我们提供了检测规则,但将输入限制为规则中的几个字段,例如描述和 GPT 的名称。我们还尝试提供查询,但它似乎过度拟合了我们期望的结果。最初,我们提供了带有这些字段的简单提示,以评估 GPT 在最少工作量的情况下生成像样的调查指南的效果。随着我们进一步探索,很明显,我们可以从链接多个提示中获益,类似于我们在 EQL 查询生成实验期间所做的事情。因此,我们花费时间创建了针对调查指南的不同部分量身定制的提示。分割提示不仅使我们具有更大的灵活性,而且还解决了 GPT 容易出错的领域,例如“相关规则”部分,其中 GPT 往往会产生大部分幻觉。在这样的情况下,我们使用了传统的机器学习方法(如相似性搜索),并将我们的规则集成到向量数据库中以增强上下文。
接下来,我们确定了将其他上下文注入特定部分的机会。为了确保我们的指南具有统一性,我们为每个部分策划了一个批准内容和语言的库。然后,该库指导 GPT 生成和格式化类似于我们已建立的标准消息的响应。然后,我们将生成式 AI 生成的指南与手动制作的指南进行比较,以识别其他格式差异、GPT 引入的常见错误,甚至更广泛的提示问题。
基于这些发现,我们选择通过调整提示词来改进我们生成的内容,而不是使用诸如字符串格式化之类的后处理技术。虽然自动调查指南并非完美,但它们为我们的检测工程师提供了一个坚实的起点。过去,调查指南通过为审查者提供更多关于规则预期行为的背景信息,增强了我们的 PR 同行评审流程。现在,我们可以生成基础指南、对其进行调整,并根据检测工程师的需要添加更多详细信息,而不是从头开始。
为了将此功能直接带给我们的检测工程师,我们将 Rulecraft 集成到了 GitHub action 工作流程中,因此他们可以按需生成指南。我们还在短短 13 小时内生成了额外的 650 多个指南,而这项任务传统上需要花费数月时间。自动化使我们能够进行小幅调整,并为缺少调查指南的规则快速重新生成基本内容。同样,这些指南仍需经过我们严格的内部审查,但通过利用 GenAI 进行初步草稿所节省的时间和精力是惊人的。
规划未来:下一步
我们的研发之旅仍在继续,其核心重点是改进我们使用 LLM 生成内容的方法,并更彻底地验证我们的结果。以下是我们探索了将 LLM 集成到检测工程工作流程中的可行性和有效性后,目前的优先事项清单:
- 将专有模型与最新的开源模型进行比较
- 进一步改进我们的实验过程,包括事件过滤、提示优化和探索各种模型参数
- 创建一个测试套件来验证我们的结果并防止回归。
- 将我们的研发进展无缝集成到 Elastic AI Assistant 中。
总的来说,我们希望大幅增加我们的调查指南覆盖范围,并减少从头开始编写这些指南所需的时间。每个调查指南都为分析师提供了详细的、逐步的指令和查询,用于分类警报。秉承以客户为先的理念,我们力求通过更多更高质量的调查指南来提升分析师体验,从而减少客户在误报分析和警报分类上花费的时间。
总结
为了秉持我们开放创新和透明的精神,Elastic Security Labs 已开始我们的生成式 AI 之旅,以提高我们威胁检测流程的效率。我们继续努力,并根据具体情况结合提示工程和传统的机器学习方法,从而产生更多像“LetmeaskGPT”和“Rulecraft”这样的研发概念验证。后者 POC 大大减少了编写基准指南所需的时间,改善了分析师体验,并减少了误报分析。还有很多事情要做,我们希望您加入我们的旅程!虽然我们取得了进展,但我们的下一步包括进一步改进、开发一个严格验证我们结果的框架,并探索将我们的研发成果投入运营的机会,以确保我们始终处于安全进步的前沿。
我们一直对类似这样的用例和工作流程感兴趣,所以一如既往,请通过 GitHub issues 联系我们,在我们的 社区 Slack 中与我们聊天,并在我们的 Discuss 论坛中提问!
此外,请随时查看以下额外资源,以了解更多关于我们如何将最新的 AI 功能带给分析师的信息
- 了解如何负责任地使用 ChatGPT 与 Elasticsearch
- 查看新的 Elastic AI Assistant — 由 ESRE 提供支持的开放式生成式 AI 助手,并 进行设置