Stratus Red Team:专为云环境设计的对抗模拟工具

Stratus Red Team是一款开源的云环境对抗模拟工具,通过Terraform和Go代码实现攻击技术自动化部署,帮助安全团队验证云环境威胁检测能力。本文详解其技术架构、设计理念及AWS攻击技术实现示例。

今天,我激动地发布过去几周开发的新开源项目:Stratus Red Team——一款专注于模拟云环境中常见攻击技术的对抗模拟和紫队工具。

开发动机

我的职业经历大量涉及威胁检测。从学校毕业后,我首先在一家专注于终端安全的本地托管检测与响应公司从事威胁检测用例工作。后来当我转到科技公司的云安全岗位时,发现云环境中的恶意活动检测面临着相似挑战。

其中一个挑战是在真实环境中复现攻击者的战术、技术和程序(TTPs),以验证我们的日志管道和检测逻辑是否端到端正常工作。对于传统终端和本地安全,已有多个开源项目如Atomic Red Team™或MITRE Caldera。但这些工具都不是云原生构建的,缺乏对云服务商的专门支持,也缺少足够数量的云环境攻击技术。

Stratus Red Team介绍

这个项目构想始于2021年初。得益于我在Datadog担任云安全研究员的新职位,终于得以实现。我们将其作为100%免费开源软件发布!

官网:https://stratus-red-team.cloud/
GitHub:https://github.com/DataDog/stratus-red-team

技术实现原理

攻击技术即代码

每个攻击技术由两部分组成:

  1. Terraform代码:描述执行攻击前需要部署的基础设施
  2. Go代码:定义技术元数据及其引爆逻辑

以"停止CloudTrail日志"攻击技术为例:

  • Terraform代码创建CloudTrail Trail和S3存储桶
  • Go代码包含技术ID、MITRE ATT&CK映射,以及调用cloudtrail:StopLogging API的引爆函数

Terraform自动化

项目使用Hashicorp的terraform-exec库动态管理Terraform,无需用户预装:

  • 自动下载Terraform二进制到~/.stratus-red-team/terraform
  • 通过编程方式调用terraform apply/destroy

状态存储

工具在本地文件系统维护三种状态:

  1. 攻击技术状态
  2. 先决条件的Terraform状态
  3. Terraform输出值 存储路径:~/.stratus-red-team/[technique-id]

架构设计决策

编程语言选择

放弃Python选择Go的主要考量:

  • 强类型特性提升开发效率
  • 官方Terraform封装库支持
  • 编译时错误检查

代价是牺牲了动态加载用户代码的扩展性,新攻击技术必须打包到主二进制中。

先决设施处理

采用内置Terraform代码全自动管理基础设施,当前限制:

  • 仅支持新建资源测试
  • 不支持针对现有基础设施演练

合格攻击技术的标准

  1. 原子性:模拟攻击链中的单一步骤
  2. 真实性:可推导出有效的威胁检测规则
  3. 自包含性:不假设AWS账户的初始状态

未来规划

  • 增加更多AWS攻击技术
  • 添加Kubernetes支持
  • 实现可选遥测功能(默认关闭)

项目已在GitHub开源,欢迎通过Twitter或邮件提交反馈。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计