threat-modeling について
セキュリティ計画段階で使う脅威モデリングスキルです。テスト前に資産、入口、信頼境界を整理し、STRIDE と可能性・影響度で評価して、監査やペネトレーションテスト向けの優先リストを作成します。
主な機能
- 01資産と入力箇所の洗い出し
- 02信頼境界の整理
- 03STRIDE による脅威分析
- 04可能性と影響度によるリスク評価
- 05優先テスト対象リストの作成
活用シーン
- 01セキュリティテストの優先順位付け
- 02API や内部入口の脅威確認
- 03コード監査対象の整理
- 04専門的なテスト対象がない攻撃面の特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mn-youssef/ security-skills --skill threat-modelingインストール後、Claude Code で/threat-modelingを入力して読み込まれたか確認します。
同梱ファイルreferences/stride-and-surface.md
詳細
脅威モデリング(PLAN フェーズ)
概要
労力を費やす前に、何を懸念し、何を優先的にテストするかを決めます。資産、エントリーポイント、信頼境界を洗い出し、STRIDE を適用して、可能性 × 影響度でリスクを順位付けします。
基本原則: すべてをテストすることはできません。問題が起きたときに最も大きな損害をもたらす箇所に労力をかけます。
プロセス
- 資産を洗い出す — 価値のあるものは何ですか?(ユーザーデータ、金銭、認証情報、PII、管理者権限、知的財産)
- エントリーポイントを洗い出す — 信頼できない入力が入るすべての場所:ルート/エンドポイント、フォーム、ファイルアップロード、クエリパラメーター、ヘッダー、ウェブフック、メッセージキュー、モバイル API 呼び出し、サードパーティーからのコールバック。
- 信頼境界を描く — データが、信頼度の低い領域から高い領域へ移るのはどこですか?(ブラウザー→API、API→DB、サービス→サービス、ユーザー→管理者)。この境界上でバグが発生しやすくなります。
- 境界/コンポーネントごとに STRIDE を適用する —
references/stride-and-surface.mdを参照してください。 - 順位付けする — 各脅威をスコア化します:
risk = likelihood × impact(それぞれ 1~3 → 1~9)。スコアの高いものからテストします。
クイックリファレンス — STRIDE
| 脅威 | 問いかけ | 防御するもの |
|---|---|---|
| Spoofing(なりすまし) | 誰かが別のユーザー/サービスになりすませますか? | 認証 |
| Tampering(改ざん) | 転送中または保存中のデータを変更できますか? | 完全性 |
| Repudiation(否認) | 操作を否認できますか/ログに記録されていますか? | 否認防止 |
| Information disclosure(情報漏えい) | データが漏えいする可能性はありますか? | 機密性 |
| Denial of service(サービス拒否) | サービスを利用不能にできますか? | 可用性 |
| Elevation of privilege(権限昇格) | ユーザーが本来持つべきでない権限を取得できますか? | 認可 |
出力:優先順位付きターゲットリスト
次のフェーズで使用する表です。
| # | 資産 | エントリーポイント | STRIDE | 可能性 | 影響度 | リスク | テスト方法 |
|---|---|---|---|---|---|---|---|
| 1 | ユーザーの PII | GET /api/users/:id | I(IDOR) | 3 | 3 | 9 | コード監査 + アクティブペネトレーションテスト |
| 2 | 認証 | POST /login | S | 2 | 3 | 6 | コード監査 |
引き継ぎ
上位の項目を security-code-audit(検出)と active-pentest(検証)に引き渡します。
サーフェスの洗い出し結果は、適用可否の判断にも使われます。 security-testing オーケストレーターは、どの専門家を適用するか(サーフェスが存在する → 実行)と、どれをスキップするか(存在しない → N/A)を判断できます。また、対応する専門家がないサーフェスを、汎用的な方法論と新しいスキルの作成を提案して対応すべきカバレッジギャップとして明らかにします。現在のスキルで対応できないものも含め、見つかったすべてのサーフェスを列挙し、見落としがないようにしてください。
よくある間違い
- 正常な経路だけをモデル化する — 攻撃者は異常な経路を利用します。
- 内部/信頼済みのエントリーポイント(管理パネル、内部 API、cron、キュー)を忘れる。
- すべての発見事項を同等に扱う — 順位付けしないと、価値の低い作業に埋もれてしまいます。
コメント
Markdown 対応