用途:为 Stratus Red Team 创建或审查攻击技术(attack technique),适用于 AWS、Azure、GCP、Entra ID、EKS 等平台。每项技术由两个文件组成,存放于 v2/internal/attacktechniques/<platform>/<mitre-attack-tactic>/<name>/:main.go 存放命令式攻击逻辑,main.tf 通常存放前置基础设施。技术生命周期为 COLD、WARM(前置设施就绪)、DETONATED(已引爆)。
主要能力与原则:技术应保持细粒度,只模拟攻击的单个步骤;应模拟合理且有记录的攻手行为;不应依赖所针对云环境的状态。
使用方式:先在 Terraform 文件中创建前置设施,完成后运行 terraform fmt -write v2/internal/attacktechniques/<platform>/<tactic>/<name>/main.tf 格式化;Terraform 输出会传给 Go 文件,可在 detonate 和 revert 中通过 params["output_name"] 读取,display 输出会回显到 CLI。再编写 Go 引爆代码,尽量使用云厂商官方 Go SDK(AWS 用 AWS SDK for Go v2),通过注入的 providers 对象实例化,如 cloudtrail.NewFromConfig(providers.AWS().GetConnection())、armnetwork.NewClientFactory(providers.Azure().SubscriptionID, providers.Azure().GetCredentials(), providers.Azure().ClientOptions)、iam.NewService(ctx, providers.GCP().Options())。错误处理须从 detonate 和 revert 返回错误,禁止 log.Fatalf(),用 fmt.Errorf("failed to <action>: %w", err) 包装,并在 API 调用前用 log.Println 记录操作。若引爆可逆,实现 revert 函数撤销改动,签名与 detonate 相同。文档字段方面,ID 形如 platform.mitre-attack-tactic.name;FriendlyName 以动词不定式开头;Description 至少含引言句及 Warm-up、Detonation、References 部分;Detection 描述检测方法,含相关日志事件名与托管检测规则,可用 HTML 格式化;IsIdempotent 在可重复调用无副作用时设为 true。最后在 v2/internal/attacktechniques/main.go 添加新 Go 文件的 import,运行 cd v2 后 go fmt ./...,再执行 make docs 自动生成文档。
限制:不要在 Go 引爆代码中持久化任何内容,因为 revert 与 detonate 在不同运行中调用,无法用变量共享状态。资料未提供收费、价格或平台支持范围等更多信息。