当前位置: 首页 > news >正文

PurpleKeep:提供Azure管道以创建基础设施并执行Atomic测试

关于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.003T1027,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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 流行的API架构学习
  • Hive安装配置
  • HackTheBox-Mist
  • 数据结构面试题报错调试方法记录
  • 【QT+QGIS跨平台编译】056:【pdal_kazhdan+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • Git的简单使用
  • Vue中watch与计算属性computed
  • IO流
  • pandas(day6 图表)
  • stm32f103c8t6学习笔记(学习B站up江科大自化协)-SPI
  • Python接口自动化测试:断言封装详解
  • OPC UA遇见chatGPT
  • Git(8)之分支间同步特定提交
  • c++ Constraints 和 concepts介绍
  • 蓝桥杯算法题:卡片换位
  • Javascript设计模式学习之Observer(观察者)模式
  • React Native移动开发实战-3-实现页面间的数据传递
  • react-native 安卓真机环境搭建
  • vue--为什么data属性必须是一个函数
  • 计算机在识别图像时“看到”了什么?
  • 理解在java “”i=i++;”所发生的事情
  • 山寨一个 Promise
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 一些关于Rust在2019年的思考
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • C# - 为值类型重定义相等性
  • hi-nginx-1.3.4编译安装
  • ionic异常记录
  • 从如何停掉 Promise 链说起
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​如何防止网络攻击?
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #pragma 指令
  • (windows2012共享文件夹和防火墙设置
  • (苍穹外卖)day03菜品管理
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (强烈推荐)移动端音视频从零到上手(上)
  • (四) 虚拟摄像头vivi体验
  • (五)activiti-modeler 编辑器初步优化
  • (一)kafka实战——kafka源码编译启动
  • (一)为什么要选择C++
  • (转)创业家杂志:UCWEB天使第一步
  • (转)关于多人操作数据的处理策略
  • .NET DataGridView数据绑定说明
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net接口调试与案例
  • .NET应用架构设计:原则、模式与实践 目录预览
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [2669]2-2 Time类的定义
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [AIGC] 如何建立和优化你的工作流?
  • [Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解
  • [Asp.net mvc]国际化