red-team について
書面承認を得た演習を行うセキュリティチーム向けの、レッドチーム計画手法とツールです。MITRE ATT&CKの技術、初期アクセスレベル、重要資産を基にスコア付き攻撃計画を作成し、要所となる技術とOPSECリスクを特定します。
主な機能
- 01キルチェーン段階別の攻撃計画
- 02実行難度と検知リスクによる技術評価
- 03重要資産への要所となる技術の特定
- 04OPSECリスク評価
- 05初期アクセスレベルに応じた計画制約
活用シーン
- 01承認済みレッドチーム演習の計画
- 02重要資産に至る攻撃経路の分析
- 03検知ルールと監視の優先順位付け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill red-teamインストール後、Claude Code で/red-teamを入力して読み込まれたか確認します。
同梱ファイルreferences/attack-path-methodology.mdscripts/engagement_planner.py
詳細
レッドチーム
認可済みの攻撃的セキュリティシミュレーション向けに、レッドチームエンゲージメントの計画と攻撃経路の分析を行うスキルです。これは脆弱性スキャン(security-pen-testing を参照)でもインシデント対応(incident-response を参照)でもありません。検知、対応、制御の有効性を検証するための、体系的な敵対者シミュレーションを目的としています。
目次
- 概要
- エンゲージメントプランナーツール
- キルチェーンフェーズの手法
- テクニックのスコアリングと優先順位付け
- チョークポイント分析
- OPSEC リスク評価
- 最重要資産の標的設定
- 攻撃経路の手法
- ワークフロー
- アンチパターン
- 相互参照
概要
このスキルでできること
このスキルでは、レッドチームエンゲージメントの計画に使用する手法とツールを提供します。MITRE ATT&CK テクニックの選択、アクセスレベル、最重要資産の標的に基づいて、体系的な攻撃計画を作成できます。テクニックの所要工数と検知リスクをスコアリングし、キルチェーンフェーズを組み立て、チョークポイントを特定し、OPSEC リスクにフラグを付けます。
他のセキュリティスキルとの違い
| スキル | 焦点 | アプローチ |
|---|---|---|
| red-team(このスキル) | 敵対者シミュレーション | 攻撃的 — 体系的な攻撃の計画と実行 |
| security-pen-testing | 脆弱性の発見 | 攻撃的 — 特定の弱点を体系的に悪用 |
| threat-detection | 攻撃者の活動の発見 | プロアクティブ — テレメトリ内の TTP を検知 |
| incident-response | 進行中のインシデント管理 | リアクティブ — 確認済みインシデントの封じ込めと調査 |
認可要件
ここで説明するレッドチーム活動には、すべて書面による認可が必要です。 これには、署名済みのルール・オブ・エンゲージメント(RoE)文書、明確に定義されたスコープ、明示的な経営幹部の承認が含まれます。engagement_planner.py ツールは、--authorized フラグが指定されていない場合、出力を生成しません。これらのテクニックを無許可で使用することは、CFAA、Computer Misuse Act、および世界各国の同等の法律に違反します。
エンゲージメントプランナーツール
engagement_planner.py ツールは、テクニックの選択、アクセスレベル、最重要資産の標的に基づき、スコアリング済みの攻撃計画をキルチェーンの順序で作成します。
# Basic engagement plan — external access, specific techniques
python3 scripts/engagement_planner.py \
--techniques T1059,T1078,T1003 \
--access-level external \
--authorized --json
# Internal network access with crown jewel targeting
python3 scripts/engagement_planner.py \
--techniques T1059,T1078,T1021,T1550,T1003 \
--access-level internal \
--crown-jewels "Database,Active Directory,Payment Systems" \
--authorized --json
# Credentialed (assumed breach) scenario with scale
python3 scripts/engagement_planner.py \
--techniques T1059,T1078,T1021,T1550,T1003,T1486,T1048 \
--access-level credentialed \
--crown-jewels "Domain Controller,S3 Data Lake" \
--target-count 50 \
--authorized --json
# List all 29 supported MITRE ATT&CK techniques
python3 scripts/engagement_planner.py --list-techniques
アクセスレベルの定義
| レベル | 開始時の位置 | 利用可能なテクニック |
|---|---|---|
| external | 内部へのアクセスなし — インターネットのみ | 外部向けのテクニックのみ(T1190、T1566 など) |
| internal | ネットワークへの足がかりあり — 認証情報なし | 内部偵察とラテラルムーブメントの準備 |
| credentialed | 有効な認証情報を取得済み | 権限昇格、ラテラルムーブメント、影響を含むキルチェーン全体 |
終了コード
| コード | 意味 |
|---|---|
| 0 | エンゲージメント計画の生成に成功 |
| 1 | 認可がない、またはテクニックが無効 |
| 2 | スコープ違反 — テクニックがアクセスレベルの制約範囲外 |
キルチェーンフェーズの手法
エンゲージメントプランナーは、テクニックを8つのキルチェーンフェーズに分類し、それに応じて実行計画を並べ替えます。
キルチェーンフェーズの順序
| フェーズ | 順序 | MITRE 戦術 | 例 |
|---|---|---|---|
| 偵察 | 1 | TA0043 | T1595、T1596、T1598 |
| リソース開発 | 2 | TA0042 | T1583、T1588 |
| 初期アクセス | 3 | TA0001 | T1190、T1566、T1078 |
| 実行 | 4 | TA0002 | T1059、T1047、T1204 |
| 永続化 | 5 | TA0003 | T1053、T1543、T1136 |
| 権限昇格 | 6 | TA0004 | T1055、T1548、T1134 |
| 認証情報アクセス | 7 | TA0006 | T1003、T1110、T1558 |
| ラテラルムーブメント | 8 | TA0008 | T1021、T1550、T1534 |
| 収集 | 9 | TA0009 | T1074、T1560、T1114 |
| データ持ち出し | 10 | TA0010 | T1048、T1041、T1567 |
| 影響 | 11 | TA0040 | T1486、T1491、T1498 |
フェーズ実行の原則
エンゲージメントのスコープで想定侵害(後のフェーズへのスキップ)が指定されていない限り、次のフェーズに進む前に各フェーズを完了する必要があります。横展開を試みる前に永続化を省略しないでください。永続化により、単一の足掛かりが検知されて削除された場合でも、運用の継続性を確保できます。
テクニックのスコアリングと優先順位付け
テクニックは、労力(検知されずに実行する難易度)に基づいてスコア化され、エンゲージメント計画で優先順位が付けられます。
労力スコアの計算式
effort_score = detection_risk × (len(prerequisites) + 1)
労力スコアが低いほど、検知を引き起こさずに実行しやすくなります。
テクニックのスコアリング基準
| テクニック | 検知リスク | 前提条件 | 労力スコア | MITRE ID |
|---|---|---|---|---|
| PowerShell の実行 | 0.7 | initial_access | 1.4 | T1059.001 |
| スケジュールタスクによる永続化 | 0.5 | execution | 1.0 | T1053.005 |
| Pass-the-Hash | 0.6 | credential_access, internal_network | 1.8 | T1550.002 |
| LSASS 認証情報ダンプ | 0.8 | local_admin | 1.6 | T1003.001 |
| スピアフィッシングリンク | 0.4 | なし | 0.4 | T1566.001 |
| ランサムウェアの展開 | 0.9 | persistence, lateral_movement | 2.7 | T1486 |
チョークポイント分析
チョークポイントとは、クラウンジュエル資産に到達する複数の経路で必要となるテクニックです。チョークポイントとなるテクニックを検知すると、それを通るすべての攻撃経路を検知できます。
チョークポイントの特定
エンゲージメントプランナーは、credential_access および privilege_escalation 戦術に含まれ、クラウンジュエルを標的とする複数の後続テクニックの前提条件となるテクニックを見つけて、チョークポイントを特定します。
チョークポイントとなるテクニックを中心に、検知ルールの開発と監視の密度を優先してください。チョークポイントを強化することで、防御効果が倍増します。
環境別の一般的なチョークポイント
| 環境の種類 | 一般的なチョークポイント | 検知の優先度 |
|---|---|---|
| Active Directory ドメイン | T1003(認証情報ダンプ)、T1558(Kerberoasting) | 最高 |
| AWS 環境 | T1078.004(クラウドアカウント)、iam:PassRole チェーン | 最高 |
| ハイブリッドクラウド | T1550.002(PtH)、T1021.006(WinRM) | 高 |
| コンテナ化されたアプリ | T1610(コンテナのデプロイ)、T1611(コンテナエスケープ) | 高 |
方法の詳細:references/attack-path-methodology.md
OPSEC リスク評価
OPSEC リスク項目は、検知を引き起こしたり、永続的な痕跡を残したりする可能性の高い操作を特定します。
OPSEC リスクのカテゴリ
| 戦術 | 主な OPSEC リスク | 緩和策 |
|---|---|---|
| 認証情報アクセス | LSASS メモリへのアクセスが EDR を作動させる | 可能な場合は、LSASS を使用しない手法(DCSync、Kerberoasting)を使用する |
| 実行 | PowerShell のコマンドラインログ記録 | スコープ内で AMSI バイパスまたは代替の実行方法を使用する |
| 横展開 | NTLM による横展開でイベント 4624 タイプ 3 が生成される | 可能な場合は Kerberos を使用し、ネットワーク経由の NTLM を避ける |
| 永続化 | スケジュールタスクによってイベント 4698 が生成される | スコープ内で、監視が比較的少ない永続化メカニズムを使用する |
| 持ち出し | 大量のアウトバウンド転送が DLP を作動させる | ステルス性が必要な場合は、データを段階的に準備し、低速で持ち出す |
各フェーズの開始前に確認する OPSEC チェックリスト
- このテクニックは RoE に従ってスコープ内にありますか?
- ブルーチームが積極的に監視しているログを生成しますか?
- 同じ目的を達成できる、より検知されにくい代替手段はありますか?
- 検知された場合、作戦全体が明らかになりますか、それとも現在の足掛かりだけが明らかになりますか?
- 演習後の削除に向けて、クリーンアップ対象の痕跡が定義されていますか?
クラウンジュエルの標的設定
クラウンジュエル資産とは、レッドチームエンゲージメントの成功基準を定める、価値の高い標的です。
重要資産の分類
| 重要資産の種類 | 対象を示す指標 | 攻撃経路 |
|---|---|---|
| ドメインコントローラー | AD DS、NTDS.dit、SYSVOL | Kerberoasting → DCSync → Golden Ticket |
| データベースサーバー | 本番環境の SQL、NoSQL、データウェアハウス | ラテラルムーブメント → DBA アカウント → データの一時保管 |
| 決済システム | PCI の対象範囲のネットワーク、カードデータ保管庫 | ネットワーク経由のピボット → サービスアカウント → 情報の持ち出し |
| ソースコードリポジトリ | 社内 Git、ビルドシステム | VPN → 社内 git → コード署名キー |
| クラウド管理プレーン | AWS 管理コンソール、IAM 管理者 | フィッシング → 認証情報 → AssumeRole チェーン |
重要資産の定義は RoE で合意します。エンゲージメントの成功は、見つかった脆弱性の数ではなく、レッドチームが定義済みの重要資産に到達したかどうかで測定します。
攻撃経路の分析手法
攻撃経路分析では、開始時のアクセスレベルから各重要資産に至る、実行可能なすべての経路を特定します。
経路のスコアリング
各経路は次の項目でスコアリングします。
- 総労力スコア(手法ごとの労力スコアの合計)
- チョークポイント数(経路が通過するチョークポイントの数)
- 検知確率(手法ごとの検知リスクの積)
労力が少なく、チョークポイントも少ない経路が、攻撃者にとって最も抵抗の少ない経路です。
攻撃経路グラフの構築
external
└─ T1566.001 (spearphishing) → initial_access
└─ T1059.001 (PowerShell) → execution
└─ T1003.001 (LSASS dump) → credential_access [CHOKE POINT]
└─ T1550.002 (Pass-the-Hash) → lateral_movement
└─ T1078.002 (domain account) → privilege_escalation
└─ Crown Jewel: Domain Controller
スコアリングアルゴリズム全体、チョークポイントの重み付け、および労力対影響のマトリックスについては、references/attack-path-methodology.md を参照してください。
ワークフロー
ワークフロー 1:迅速なエンゲージメント範囲の策定(30 分)
特定のターゲットを対象とした、重点を絞ったレッドチーム演習の範囲を策定します。
# 1. Generate initial technique list from kill-chain coverage gaps
python3 scripts/engagement_planner.py --list-techniques
# 2. Build plan for external assumed-no-access scenario
python3 scripts/engagement_planner.py \
--techniques T1566,T1190,T1059,T1003,T1021 \
--access-level external \
--crown-jewels "Database Server" \
--authorized --json
# 3. Review choke_points and opsec_risks in output
# 4. Present kill-chain phases to stakeholders for scope approval
判断:チョークポイントがすでに検知ルールでカバーされている場合は、ギャップに注力します。カバーされていない場合は、それらが演習で最も価値の高い対象です。
ワークフロー 2:レッドチームエンゲージメント全体(複数週間)
第 1 週 — 計画:
- 関係者と重要資産および成功基準を定義する
- 範囲、期間、範囲外の除外事項を定めた RoE に署名する
- engagement_planner.py でエンゲージメント計画を作成する
- 各フェーズの OPSEC リスクを確認する
第 2 週 — 実行(外部フェーズ):
- 偵察とターゲットのプロファイリング
- 初期アクセスの試行(フィッシング、公開サーバーの悪用)
- 実行した各手法をタイムスタンプとともに記録する
- ブルーチームの対応状況を検証するため、すべての検知イベントを記録する
第 3 週 — 実行(内部フェーズ):
- 初期アクセスを取得した場合は永続化を確立する
- 認証情報へのアクセス手法(チョークポイント)を実行する
- 重要資産に向けてラテラルムーブメントを行う
- 重要資産に到達した日時と方法を記録する
第 4 週 — 報告:
- 実行した手法、検知率、到達した重要資産などの調査結果をまとめる
- 調査結果を検知のギャップに対応付ける
- チョークポイントへの影響に基づいて優先順位を付けた修正案を作成する
- セキュリティ責任者に結果を報告する
ワークフロー 3:侵害済みを想定した机上演習
迅速な検知テストのため、認証情報が侵害されたシナリオをシミュレーションします。
# Assumed breach — credentialed access starting position
python3 scripts/engagement_planner.py \
--techniques T1059,T1078,T1021,T1550,T1003,T1048 \
--access-level credentialed \
--crown-jewels "Active Directory,S3 Data Bucket" \
--target-count 20 \
--authorized --json | jq '.phases, .choke_points, .opsec_risks'
# Run across multiple access levels to compare path options
for level in external internal credentialed; do
echo "=== ${level} ==="
python3 scripts/engagement_planner.py \
--techniques T1059,T1078,T1003,T1021 \
--access-level "${level}" \
--authorized --json | jq '.total_effort_score, .phases | keys'
done
アンチパターン
- 書面による許可なしで実施する — 所有していないシステム、またはテストの明示的な許可を得ていないシステムに対する無許可のレッドチーム活動は、犯罪行為です。
--authorizedフラグは、チェックを回避するためにツールを実行するだけではなく、実際に署名済みの RoE を反映する必要があります。許可は実行前に得ておかなければなりません。 - キルチェーンのフェーズ順序を無視する — 永続化を確立せずにラテラルムーブメントへ直接進むと、検知された時点で足掛かり全体が失われます。キルチェーンのフェーズ順序に従ってください。各フェーズは次のフェーズの基盤となります。
- 開始前にクラウンジュエルを定義しない — 成功基準が定義されていないエンゲージメントは、際限のない脆弱性探索へと逸れていきます。最初の手法を実行する前に、クラウンジュエルと成功条件を RoE で合意しておく必要があります。
- 計画で OPSEC リスクを無視する — レッドチーム演習では、ブルーチームの検知能力をテストします。検知される手法をすべて意図的に避けると、検知範囲を検証できない非現実的なエンゲージメントになります。OPSEC リスクは、検知への露出を把握するために活用し、完全に避けるために使わないでください。
- 実行した手法をリアルタイムで記録しない — 実行内容を後から記録しても、信頼性に欠けます。各手法、タイムスタンプ、結果を発生時に記録してください。エンゲージメント後の報告は、その時点で記録された情報に基づいて作成する必要があります。
- 演習後にアーティファクトをクリーンアップしない — 永続化の仕組み、新規アカウント、変更した設定、配置したデータは、エンゲージメントの完了後に削除する必要があります。レッドチームのアーティファクトを残すと、恒久的なセキュリティリスクとなり、実際の攻撃者の活動と混同されるおそれがあります。
- 最も抵抗の少ない経路だけを使う — 攻撃者は状況に応じて手法を変えます。検知を回避できる可能性のある、より手間のかかる経路も含め、複数の攻撃経路をテストしてください。最も簡単な経路が検知されることを検証するのは必要ですが、それだけでは不十分です。
相互参照
| スキル | 関連性 |
|---|---|
| threat-detection | レッドチームの手法を実行すると、脅威ハンティングの仮説を検証するための現実的な TTP が生成されます |
| incident-response | レッドチームの活動はインシデント対応手順を発動させる必要があります。検知と対応の質は、主要な成功指標です |
| cloud-security | クラウドのセキュリティ態勢に関する調査結果(IAM の設定ミス、S3 の公開など)は、レッドチームの攻撃経路の標的となります |
| security-pen-testing | ペネトレーションテストは特定の脆弱性の悪用に重点を置きます。一方、レッドチームはクラウンジュエルを狙うエンドツーエンドのキルチェーンシミュレーションに重点を置きます |