使用 Elastic Security 实现您自己的“检测即代码”

从一开始,Elastic 检测规则 存储库 不仅包含 Elastic 的预构建检测规则,还包含用于检测规则管理的额外工具——例如 Elastic 威胁研究和检测工程 (TRaDE) 团队所使用的一套测试、CLI 命令和自动化脚本。

多年来,Elastic 的 TRaDE 团队一直遵循“检测即代码”(DaC) 的实践,为 Elastic 预构建检测规则和终端规则的内部开发及发布流程提供支持。过去,客户主要使用 检测-rules CLI,它提供了 Kibana API 封装和 CLI 命令,以促进 Elastic SIEM 的规则管理,但它要求用户采用 Elastic 的内部流程和严格的限制。

随着 DaC 日益主流化,并延续我们对开放性的承诺,承诺开放,我们正在努力让用户更轻松地使用 Elastic 的 检测-rules repo 来启动其自身的 DaC 流程,以进行规则管理。此次 DaC 扩展将建立在先前的检测规则功能之上,为检测工程师提供端到端体验。

该方法加强了安全团队之间的协作,精简了更新流程,并有助于更敏捷地响应不断演变的威胁。从根本上讲,我们致力于通过向客户开放更多内部功能,供其嵌入到自身流程中,从而提升客户的检测工程成熟度。

为什么采用“检测即代码”?

如果您听说过 DevOps 概念(如基础架构即代码 (IaC)),那么您对“检测即代码”应该会感到熟悉。如果说 IaC 专注于通过代码管理和配置基础架构,那么 DaC 则应用类似的原则,将安全检测规则作为代码进行管理。“检测即代码”(Detections as Code) 旨在将编码最佳实践应用于检测管理中,并使用同行评审流程、工具以及自动化的 CI/CD 管道。

DaC 的优势包括高质量的检测、检测部署的灵活性和扩展性,以及对变更管理要求的合规性。

1 个 DAC 锁定

DaC 的采用受多种因素驱动:

  • 推动安全团队成熟度:实施 DaC 有助于在安全团队内部开发成熟、可重复的流程。它通过系统的同行评审和严格的测试,支持维护高质量的检测。

  • 不断增长的规则集:随着规则数量的增加,在没有 DaC 的情况下维护检测规则变得难以为继。

  • 不断扩大的威胁态势: 为Protect新兴威胁所需的覆盖广度,需要一种适用于不同技能水平的可扩展性的方法。

  • 更广泛地采用自动化:技术环境中向自动化发展的更广泛趋势(以采用 IaC 原则为例)要求安全团队使用的所有工具都具备更强的自动化能力。DaC 通过将规则管理集成到自动化工作流中来顺应这一趋势,从而确保了一致性、效率以及快速响应新威胁的能力。

  • 合规与治理要求: 许多组织正在采用 DaC,以满足针对 SIEM 检测的同行评审、变更控制和灾难恢复的认证合规要求。实施 DaC 可确保安全规则遵循严格的治理标准进行开发、审查和维护,从而提供可审计的合规证据。

DaC 方法与当前的开发重点

由于 DaC 实际上是一种方法,且我们的用户有着不同的基础架构和流程需求,因此在您的组织中,有多种方式可以利用 Elastic Security 来架构和实施 DaC。但关键组件保持不变,用户需要:

  • Elastic Security 解决方案 

  • 您选择的版本控制系统

  • 包含检测逻辑的存储库

  • 用于连接所有组件、自动化关键流程并提供UI的工具

我们最初的重点是为客户提供这些组件以加快 DaC 开发速度,在第一阶段,我们重点将检测规则存储库作为主要的构建模块。

让我们开启 Alpha 版之旅!

我们与多位用户进行了交流,了解了他们对 DaC 的需求和优先事项。根据我们收到的反馈,我们进行了以下改进:

  • 增强功能 1: 在第一阶段,我们致力于让 检测-rules 存储库更易于进行自定义规则管理。我们的目标是最大限度地减少用户在使用分叉的 检测-rules 存储库进行自定义规则管理时遇到的合并冲突。我们现在提供了一个配置,用于指定自定义规则目录,供用户使用我们内置的规则加载程序架构验证器进行加载。

  • 增强功能 2: 我们现在支持配置哪些由 Elastic 提供的单元测试应在您的自定义规则上运行,以及哪些应跳过。我们理解一些客户希望使用我们的部分单元测试并遵循我们的最佳实践,而其他测试则是专门为 Elastic 规则管理而设计的。您现在可以在配置文件中指定您想要运行的测试。

  • 增强功能 3: 我们认识到需要与检测一起管理其他规则设置(如异常和操作),因此我们增加了支持,以实现在存储库中灵活管理这些设置。

概念的层级和词典

这一举措的主要成果之一是记录了我们的想法和考量。尽管我们已经重构了 检测-rules 存储库,使其对外部用户更加灵活,但我们认识到 DaC 不仅仅是一个可以安装的工具。这是安全规则管理方式的根本性转变。

我们已经创建了一套概念层级和词汇表,并将其记录下来,供您在实施任何特定的 DaC 工作流之前参考。

2 个 DaC 高级组件
DaC 高级组件

在参考文档幻灯片中,您可以阅读更多关于 DaC 核心组件的信息: 

  1. 在版本控制系统 (VCS) 中维护规则

  2. 将规则从 VCS 同步到其各自的 Platform

  3. 在Platform内管理规则

  4. 将规则从 Platform 同步至 VCS

此外,我们还记录了不同的模型,以使用以下方式管理 DaC 的核心组件:

  1. 作为权威来源的 VCS

  2. 作为权威的Platform

  3. VCS 与Platform之间的双向同步

根据所需的方法,我们提供不同层级的详细信息;这些信息距离 Elastic Security 解决方案越远,就越抽象。

我们还提供了哪些其他内容?

最近在 BsidesOK24 上,我们讨论了 Elastic 的 DaC 方法,以及您如何利用我们 alpha 分支中的 检测-rules 存储库。虽然我们可以将其拆分为关于如何实施 DaC 的系列短文,但这些建议对于如何最适合您的环境实施而言纯属推测。因此,我们在此分享自行构建检测即代码 (detections as code) 的核心原则。

3 BSides 确定 2024
BSides OK 2024

幻灯片这些幻灯片阐述了高级组件、工作流和划分。它还涉及使用检测规则存储库的好处以及一个快速入门端到端参考示例。

参考文档本参考文档汇集了开发、部署和管理检测规则时的注意事项、优缺点,特别是在 Elastic Security 环境中。它对以下人员尤为有益:

  • 希望利用自动化实现更高效的规则管理并能更迅速地应对新兴威胁的Security分析师

  • 寻求简化检测逻辑开发、测试和部署方法的检测工程师

  • 寻求在其团队内实施规则版本控制、协作和质量保证最佳实践的 Security 团队主管

  • 参与将安全实践集成到 CI/CD 管道中的 DevOps 工程师,旨在其工作流中实现更具凝聚力和自动化的安全方法

  • 正在探索如何将“即代码”(as-code) 原则融入安全运营以增强敏捷性、可重复性和可靠性的 IT 安全架构师

对于希望获得更明确指导的人员,我们确实提供了偏向于检测规则的方法。请注意,alpha 检测规则分支、这些幻灯片中的内容以及本参考指南可能会有所变动。一旦我们最终将更改迁移到 `main` 分支,我们将相应地更新内容。

总结与后续步骤

简而言之,在第一阶段,我们专注于让 检测-rules 存储库更易于用于您的自定义规则管理。我们的目标是最大限度地减少用户在使用分叉的 检测-rules 存储库进行自定义规则管理时遇到的合并冲突。我们还启动了一份 DaC 动态指南,其中包含优缺点考量,以配合存储库的变更,助您快速上手并高效开展工作。最后,我们已开始在 BsidesOK 分享我们的方法,并提供了可能适用于您自定义设置的具体命令和用例。

目前我们处于 Alpha 阶段,诚邀感兴趣的用户在我们的 检测-rules/DAC-功能 分支上进行测试并提供反馈!  

如需更多信息,欢迎通过我们的 Community Slack 频道 #安全-rules-dac 与我们联系,或直接在我们的检测规则 issue 跟踪器上联系我们。

本文中描述的任何功能或功能性的发布和时间均由 Elastic 自行决定。当前尚未发布的任何功能或功能性可能无法按时提供或根本无法提供。