关于PurpleKeep
PurpleKeep是一款功能强大的安全测试自动化工具,该工具能够通过提供Azure管道以创建基础设施,并帮助广大研究人员执行Atomic测试。
随着攻击技术种类的迅速增加,以及EDR(端点检测和响应)和自定义检测规则提供的检测规则数量的同时增加,针对检测规则的持续功能测试其需求也变得显而易见。但是,手动重新运行这些攻击并将其与检测规则交叉引用是一项劳动密集型任务,理应通过自动化实现。
为了解决这个问题,PurpleKeep便应运而生。该工具旨在促进检测规则的自动化测试,该工具利用了Atomic Red Team项目来模拟MITRE TTP攻击测试,并且增强了对这些TTP的模拟。
为了便于分析和监控,PurpleKeep与Azure Monitor和日志分析服务集成,以存储模拟日志,并允许与存储在同一平台中的任何事件和/或警报执行进一步的关联。
工具要求
该项目基于Azure管道实现其功能,PurpleKeep正常运行需要下列组件:
1、Azure服务连接到Microsoft文档中描述的一个资源组;
2、为以前创建的企业应用程序分配“Key Vault Administrator”角色;
3、将MDE脚本作为安全文件存储到Azure DevOps库中,并使其可访问管道;
工具设计架构
工具下载
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/Retrospected/PurpleKeep.git
基础设施
PurpleKeep可以使用Azure管道部署基础设施并执行下列操作:
1、部署Azure服务:Azure密钥库、日志分析工作区、数据连接节点、数据连接规则;
2、为Windows帐户生成SSH密钥对和密码并存储在密钥库中;
3、创建Windows 11虚拟机;
4、安装OpenSSH;
5、配置和部署SSH公钥;
6、安装Invoke-AtomicRedTeam;
7、安装Microsoft Defender for Endpoint并配置异常;
8、(可选)应用安全/审计策略文件;
9、重新启动;
模拟测试
当前版本的PurpleKeep只支持公共存储库中的Atomics,管道需要使用一个Technique ID或一个Technique列表(逗号分隔)作为输入,例如:
T1059.003 T1027,T1049,T1003
模拟日志随后会被整合进日志分析工作区的AtomicLogs_CL表中。当前支持下列两种运行模拟测试的方法:
翻转模拟
该管道将在模拟每个TTP之后部署一个新的平台。日志分析工作区将维护每次运行的日志。
单部署模拟
一个新的基础设施将只在管道开始时部署。所有TTP都将在此实例上进行模拟。这是模拟和防止大量设备进入的最快方法然而,在同一环境中运行大量模拟有污染环境的风险,并使模拟不那么稳定和可预测。
项目地址
PurpleKeep:【GitHub传送门】
参考资料
Explore Atomic Red Team
MITRE ATT&CK®
Service connections in Azure Pipelines - Azure Pipelines | Microsoft Learn
GitHub - splunk/attack_range: A tool that allows you to create vulnerable instrumented local or cloud environments to simulate attacks against and collect the data into Splunk
https://vimeo.com/819912016/c76af1ca39
Unearthing changes in our detection engine with Coalmine