emulating-cloud-attacks-with-stratus-red-team について
このスキルは、Stratus Red Team を使ってクラウド攻撃手法を再現し、検知ルールを検証する手順を説明します。AWS、Azure、GCP、Kubernetes の手法カタログ、テレメトリー確認、リソースのクリーンアップを扱います。
主な機能
- 01クラウド攻撃手法の再現
- 02プラットフォームと ATT&CK 戦術で絞り込み
- 03ウォームアップ、実行、復元、クリーンアップ
- 04実行で生成されたテレメトリーの確認
- 05検知ルールとカバレッジの検証
活用シーン
- 01クラウド検知ルールの発火確認
- 02再現可能なパープルチーム演習
- 03SIEM 取り込みとアラート経路のテスト
- 04クラウド環境の検知カバレッジ評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill emulating-cloud-attacks-with-stratus-red-teamインストール後、Claude Code で/emulating-cloud-attacks-with-stratus-red-teamを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdstandards.mdscripts/agent.py詳細
Stratus Red Team によるクラウド攻撃のエミュレーション
法的通知: このスキルは、許可を得たセキュリティテストおよび検知検証の目的にのみ使用してください。Stratus Red Team は、提供された認証情報に対応するアカウント内で、実際のクラウドインフラストラクチャを起動・変更します。所有している、または明示的にテストの許可を得たアカウントでのみ実行してください。孤立した、課金対象の、または安全でないリソースを残さないよう、実行後は必ず
cleanupを行ってください。管理下にないシステムに対して無許可で使用することは違法です。
概要
Stratus Red Team は、Datadog が管理する、オープンソースの「クラウド向けの Atomic Red Team」です。自己完結型の Go バイナリであり、AWS、Azure、GCP、Kubernetes に対して、細分化された文書化の行き届いた攻撃テクニックをプログラムから実行(detonate)し、その後、作成されたすべてのものを安全に元に戻して削除できます。完全なエクスプロイトフレームワークとは異なり、Stratus は検知エンジニアリングとパープルチーミングのために特化して設計されています。各テクニックは MITRE ATT&CK の戦術に対応しており、生成されるクラウド API 呼び出しの正確な説明が付属しているため、ブルーチームは CloudTrail、GuardDuty、Sentinel、Falco の検知が実際に発火するかどうかを確認できます。
すべてのテクニックには決定的なライフサイクルがあります。Stratus はまず埋め込みの Terraform で必要な前提インフラストラクチャを用意し(warmup フェーズ)、次に悪意のある操作を実行し(detonate)、必要に応じて副作用を revert して再度 detonate できるようにし、最後に前提インフラストラクチャを cleanup します。前提条件と攻撃は分離されているため、再プロビジョニングすることなく、同じテクニックを繰り返し detonate して検知を調整できます。このツールは、標準的なクラウド SDK の認証情報チェーン(AWS プロファイル/環境変数、az login、GCP ADC、kubeconfig)を使用するため、認証に使用した ID の権限そのままで動作します。
このスキルでは、Stratus のインストール、テクニックカタログの一覧表示とフィルタリング、warmup → detonate → revert → cleanup の全ライフサイクルの実行、detonate が生成するテレメトリとの対応付け、そして結果を検知検証ワークフローに組み込む方法を扱います。出典: github.com/DataDog/stratus-red-team および stratus-red-team.cloud の公式ドキュメント。
使用するタイミング
- 新規または既存のクラウド検知ルール(CloudTrail、GuardDuty、Microsoft Sentinel、GCP SCC、Falco)が、実際の攻撃者の活動に対して本当に発火するかを検証するとき
- 個別の攻撃スクリプトを作成せずに、クラウド TTP に対する再現可能なパープルチーム演習を構築するとき
- SIEM の取り込みとアラートルーティングをテストするための、現実的で MITRE にマッピングされたテレメトリを生成するとき
- 既知のテクニックカタログに対して、クラウド環境の検知カバレッジを測定するとき
- 安全で元に戻せるハンズオン形式のクラウド攻撃シミュレーションで、アナリストをオンボーディングするとき
前提条件
- Stratus Red Team バイナリ(ソースからビルドする場合は Go 1.23 以上、または Homebrew/Docker):
# Go install go install -v github.com/datadog/stratus-red-team/v2/cmd/stratus@latest # Homebrew brew tap datadog/stratus-red-team https://github.com/DataDog/stratus-red-team brew install datadog/stratus-red-team/stratus-red-team # Docker docker run --rm -v $HOME/.stratus-red-team/:/root/.stratus-red-team/ \ -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_SESSION_TOKEN \ ghcr.io/datadog/stratus-red-team list - 対象クラウドプロバイダー向けの認証済みクラウド認証情報:
# AWS — verify identity before detonating export AWS_PROFILE=stratus-lab aws sts get-caller-identity # Azure az login # GCP gcloud auth application-default login # Kubernetes kubectl config current-context - 専用の本番以外のラボアカウントまたはサブスクリプション(テクニックは実際のリソースを作成します)
- Terraform は埋め込まれているため、別途インストールは不要ですが、初回の warmup 時にプロバイダープラグインをダウンロードするための外部への HTTPS 通信が必要です
目的
- Stratus Red Team をインストールし、対象のクラウド ID を確認する
- プラットフォームと MITRE ATT&CK の戦術でテクニックを列挙・フィルタリングする
- warmup → detonate → revert → cleanup のライフサイクルを安全に実行する
- 各 detonate が生成するクラウド API 呼び出しとログソースを対応付ける
- 生成されたテレメトリに対して検知ルールを検証し、カバレッジを追跡する
- テスト後に残存インフラストラクチャがないことを保証する
MITRE ATT&CK マッピング
| ID | 名前 | このスキルでの用途 |
|---|---|---|
| T1078 | 有効なアカウント | エミュレーションは有効なクラウドIDとして実行される。多くのテクニックは正規の認証情報やAPIアクセスを悪用する |
| T1078.004 | 有効なアカウント: クラウドアカウント | 例: aws.credential-access.ec2-steal-instance-credentials はクラウドアカウントの悪用に関するテレメトリを生成する |
| T1580 | クラウドインフラストラクチャの検出 | aws.discovery.* などの Discovery 戦術のテクニック |
| T1530 | クラウドストレージ上のデータ | aws.exfiltration.ec2-share-ebs-snapshot などの Exfiltration 戦術のテクニック |
| T1098 | アカウント操作 | aws.persistence.iam-create-admin-user などの Persistence 戦術のテクニック |
ワークフロー
1. アイデンティティを確認し、テクニックカタログを一覧表示する
攻撃対象のアカウントを必ず確認してから、カタログを参照してください。
aws sts get-caller-identity
stratus list
# Filter to a single platform
stratus list --platform aws
# Filter by MITRE ATT&CK tactic
stratus list --mitre-attack-tactic credential-access
2. 実行前に特定のテクニックを確認する
テクニックが何を実行し、どのようなデトネーションとテレメトリを生成するのかを正確に確認してください。
stratus show aws.credential-access.ec2-steal-instance-credentials
3. 前提インフラストラクチャをウォームアップする
攻撃はまだ実行せず、埋め込みの Terraform で前提条件となるインフラストラクチャをプロビジョニングします。
stratus warmup aws.credential-access.ec2-steal-instance-credentials
stratus status
4. テクニックをデトネーションする
悪意のあるアクションを実行します。これは検知ルールが捕捉できなければならない動作です。ウォームアップが未実施の場合は暗黙的に実行されます。
stratus detonate aws.credential-access.ec2-steal-instance-credentials
# Detonate and force a re-warmup in one step
stratus detonate aws.persistence.iam-create-admin-user --force
5. ステータスと生成されたテレメトリを確認する
ライフサイクルの状態を確認したうえで、対応するコントロールプレーンのログを取得し、攻撃が成功したことを確認します。
stratus status
# Pull recent CloudTrail events to verify the detonation
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=CreateAccessKey \
--max-results 10
6. 検知を検証する
SIEM/検知ルールが発火したことを確認します。例: Athena/CloudTrail にクエリを実行するか、GuardDuty の検出結果を確認します。
aws guardduty list-findings --detector-id "$DETECTOR_ID" \
--finding-criteria '{"Criterion":{"updatedAt":{"GreaterThanOrEqual":'"$(date -d '-1 hour' +%s)"'000}}}'
7. 副作用を元に戻して再デトネーションできるようにする
前提インフラストラクチャを残したまま、デトネーションの影響を取り消します。これにより検知ルールを繰り返し改善できます。
stratus revert aws.credential-access.ec2-steal-instance-credentials
stratus detonate aws.credential-access.ec2-steal-instance-credentials # run again
8. すべてのインフラストラクチャをクリーンアップする
テクニックが作成したものをすべて削除します。作業の最後には必ずここで終了してください。
stratus cleanup aws.credential-access.ec2-steal-instance-credentials
# Nuke everything Stratus ever provisioned in this account
stratus cleanup --all
stratus status # confirm COLD state for all techniques
9. カバレッジ実行のためにプログラムから操作する
戦術をループ処理して検知カバレッジを測定し、その後クリーンアップします。scripts/agent.py を参照してください。
python scripts/agent.py --platform aws --tactic credential-access --detonate --cleanup
ツールとリソース
| リソース | 目的 | リンク |
|---|---|---|
| Stratus Red Team GitHub | ソース、リリース、テクニックのソース | https://github.com/DataDog/stratus-red-team |
| Stratus Red Team ドキュメント | テクニックカタログとライフサイクルのリファレンス | https://stratus-red-team.cloud |
| 攻撃テクニック一覧 | プラットフォームごとの完全なテクニックID | https://stratus-red-team.cloud/attack-techniques/list/ |
| MITRE ATT&CK Cloud | マッピングに使用する戦術/テクニックのリファレンス | https://attack.mitre.org/matrices/enterprise/cloud/ |
| Atomic Red Team | 補完的なエンドポイントエミュレーション | https://github.com/redcanaryco/atomic-red-team |
検知検証のマッピング
パープルチームとしての価値を高めるため、各デトネーションに対して、発生すべきテレメトリと検知ルールを対応づけてください。
| テクニック | 期待されるテレメトリ | 検証する検知 |
|---|---|---|
aws.credential-access.ec2-steal-instance-credentials | 非 EC2 の IP からのロール認証情報の CloudTrail 使用 | GuardDuty UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration |
aws.persistence.iam-create-admin-user | CreateUser + AttachUserPolicy (AdministratorAccess) | 管理者ポリシーのアタッチに対する CloudTrail/Sentinel ルール |
aws.exfiltration.ec2-share-ebs-snapshot | 外部アカウントへの共有を行う ModifySnapshotAttribute | GuardDuty Exfiltration:EC2/... / カスタムルール |
aws.discovery.ec2-enumerate-from-instance | インスタンスロールからの Describe* の集中的な発生 | 列挙の集中を検知するルール |
デトネーション後は、アラートがエンドツーエンド(ソース -> SIEM -> チケット)で発火したことを確認してください。発火しなかった場合は、カバレッジのギャップを発見したことになるため、クリーンアップの前に記録してください。
コストと安全に関する注意
- 一部の手法は課金対象のリソース(EC2 インスタンス、EBS スナップショットなど)をプロビジョニングします。必ず
stratus cleanup --allを実行し、stratus statusが COLD を返すことを確認してください。 - 本番環境の認証情報で Stratus を実行しないでください。専用のラボ用アカウントまたはサブスクリプションを使用してください。
- 状態ディレクトリ
~/.stratus-red-team/には Terraform の状態が保存されています。クリーンアップが完了するまで保持してください。削除すると、リソースが取り残される可能性があります。
ライフサイクル状態のリファレンス
| 状態 | 意味 |
|---|---|
| COLD | 前提条件はプロビジョニングされていない。クリーンアップするものはない |
| WARM | 前提条件はプロビジョニング済みだが、まだデトネートされていない |
| DETONATED | 攻撃アクションが実行済みで、副作用が残っている |
検証基準
- Stratus がインストールされ、
stratus listで手法のカタログが返される -
sts get-caller-identityなどの方法で、対象のクラウドアイデンティティを確認した - デトネーションの前に
stratus showで手法を確認した - ウォームアップが完了し、ステータスが WARM と表示される
- デトネーションが完了し、ステータスが DETONATED と表示される
- 生成されたテレメトリを CloudTrail / GuardDuty / SIEM で確認した
- 検知ルールが発火することを確認した(または検知の欠落を記録した)
- 手法を元に戻して再度デトネートし、再現性を確認した
-
stratus cleanup --allを実行し、すべての手法のステータスが COLD になった - アカウント内に課金対象の孤立リソースが残っていない