前言
想象一下,你是一名端点工件开发人员。在您投入工作以确保防御传统的 shellcode 注入或勒索软件创新之后,您如何知道它在您将其发送到世界之前是否真的有效?
首先,您设置您的端到端系统,其中涉及设置多个服务、基础设施、网络配置等等。然后,您运行一些恶意软件;您收集的数据会解答有关性能和功效的问题,并且将来可能成为重要的研究资源。在您花费一天时间测试和收集结果后,您可能希望在多种操作系统和机器类型上运行数百个哈希值,如果完全手动完成,这是一项艰巨的任务。
为了自动化这个过程并大规模测试我们的保护措施,我们构建了 Detonate,一个安全研究工程师用来自动衡量我们的 Elastic Security 解决方案的有效性的系统。我们的目标是让安全研究人员只需点击几下即可测试我们的保护措施来抵御恶意软件。(因此:点击,点击…砰!)
在本系列文章中,我们将: - 介绍 Detonate 以及我们构建它的原因 - 探索 Detonate 的工作原理和技术实现细节 - 描述我们的团队在 Elastic 如何使用它的案例研究 - 讨论向社区开放我们的功效测试,以帮助世界保护他们的数据免受攻击
对关于 Detonate 的其他帖子感兴趣?请查看第 2 部分 - 深入探讨:我们如何运行 Detonate,其中我们分解了 Detonate 的工作原理,并深入探讨了技术实现。
什么是 Detonate?
从高层次来看,Detonate 在一个受控(即沙盒化)环境中运行恶意软件和其他潜在的恶意软件,在该环境中启用了全套 Elastic Security 功能。Detonate 接受文件哈希值(通常是 SHA256)并执行以下操作
- 准备爆破所需的所有文件,包括恶意文件
- 在沙盒环境中配置虚拟机 (VM) 实例,该环境与外部世界的连接有限
- 等待文件执行完成;例如,当找到执行结果文件或 VM 实例停止或比任务超时时间长时,就会发生这种情况
- 停止正在运行的 VM 实例(如有必要)并清理沙盒环境
- 根据爆破期间产生的遥测和警报生成事件摘要
这些爆破的结果可供团队用于研究和开发目的。通过后处理在爆破期间收集的日志、事件和警报,我们可以使用第三方情报和其他来源来丰富它们,以评估新的和现有的 Elastic Security 保护功能的功效。
它对我们有什么帮助?
衡量功效
为了构建市场上最好的 EPP,我们必须不断衡量我们的产品应对最新威胁的有效性。Detonate 用于每月从我们的数据馈送中执行数万个样本。自动识别覆盖范围中的差距,并用于优先改进我们的保护措施。
支持现有保护措施
我们的许多保护措施都有相关的工件(例如机器学习模型和规则定义),这些工件会定期更新。这些更新需要进行测试,以确保我们在它们最终进入用户环境之前识别并纠正回归。
Detonate 提供了一个框架和一套工具来自动化此测试过程中涉及的分析。通过利用已知的好坏软件的哈希语料库,我们可以在将保护措施部署给用户之前对其进行验证。
威胁研究
我们的一些安全研究人员每天都会在互联网上搜索新的和新兴的威胁。通过为他们提供一个易于使用的平台来测试他们在野外发现的恶意软件,我们可以更好地了解 Elastic Security 如何防御这些威胁,或者我们是否需要更新我们的保护措施。
评估新的保护措施
除了测试现有保护措施之外,新的保护措施还存在与我们现有的分层功能套件发生不利交互的风险。新的保护措施可以很容易地单独进行测试,但测试可能会隐藏与现有保护措施的意外交互或冲突。Detonate 为我们提供了一种方法来自定义 Elastic Stack 和单个保护措施的配置,以便在开发早期更容易地查找和识别此类冲突。
下一步是什么?
在本出版物中,我们介绍了 Detonate 以及我们在 Elastic 中使用它的目的。我们讨论了它在评估我们的安全工件的性能时为我们的团队带来的好处。
现在您已经了解了它是什么,我们将分解 Detonate 的工作原理。在我们的下一篇文章中,我们将深入探讨 Detonate 的技术实现以及我们如何在实践中创建这个沙盒环境。