随着攻击技术的种类迅速增加,同时 EDR(端点检测与响应)提供的检测规则以及自定义规则数量也在上升,对检测规则进行持续功能测试的需求变得显而易见。然而,手动重复执行这些攻击并与检测规则进行交叉核对是一项劳动密集型任务,值得自动化处理。
为应对这一挑战,我开发了"PurpleKeep"——一个旨在促进检测规则自动化测试的开源项目。利用 Atomic Red Team 项目的能力,该项目允许按照 MITRE TTPs(战术、技术和程序)模拟攻击。PurpleKeep 增强了这些 TTP 的模拟,作为评估检测规则有效性的起点。
在测试环境中自动化模拟一个或多个 TTP 的过程伴随着某些挑战,其中之一是在多次模拟之后平台的污染。然而,PurpleKeep 旨在通过简化模拟过程并促进目标平台的创建和工具化来克服这一障碍。
PurpleKeep 主要作为概念验证而开发,是一个专为 Azure 环境设计的端到端检测规则验证平台。它已结合 Microsoft Defender for Endpoint 的自动部署作为首选 EDR 解决方案进行了测试。PurpleKeep 还支持安全与审核策略配置,允许用户模拟所需的端点环境。
为便于分析和监控,PurpleKeep 与 Azure Monitor 和 Log Analytics 服务集成,以存储模拟日志,并允许与同一平台中存储的任何事件和/或告警进行进一步关联。
TLDR:PurpleKeep 提供了一个攻击模拟平台,作为在 Azure 环境中进行端到端检测规则验证的起点。
该项目基于 Azure Pipelines,运行需满足以下条件:
您可以提供一个安全和/或审核策略文件,该文件将被加载以模拟您的组策略配置。使用 Azure DevOps 库中的安全文件选项,使其可被您的管道访问。
请参考 variables 文件获取可配置项。

部署基础设施使用 Azure Pipeline 执行以下步骤:
目前仅支持来自公共仓库的 Atomics。管道接受一个 Technique ID 作为输入,或者一个以逗号分隔的技术列表,例如:
模拟的日志被采集到 Log Analytics 工作区的 AtomicLogs_CL 表中。
目前有两种运行模拟的方式:
此管道将在每个 TTP 模拟后部署一个全新的平台。Log Analytic 工作区将保留每次运行的日志。
警告:这将使大量主机入职到您的 EDR
仅在管道开始时部署一次全新的基础设施。所有 TTP 将在此实例上进行模拟。这是最快的模拟方式,并且可以避免入职大量设备,但在同一环境中运行大量模拟存在环境污染的风险,使模拟变得不稳定和不可预测。