security-planning について
Security Planningは、脅威モデリングやセキュリティ計画、計画ベースラインと提供された調査結果の照合に使える手法と資料を提供します。セキュリティ計画・レビュー向けで、TM7モデル生成と任意のWindowsローカル視覚フィードバックループにも対応します。
主な機能
- 01AI拡張を含むSTRIDE脅威分析
- 02標準規格とNIST管理策の参照
- 03セキュリティバックログとRAI作業項目の指針
- 04ベースラインと調査結果の差分分析
- 05TM7モデルとMarkdownレポートの生成
- 06任意のネイティブTM7視覚フィードバックループ
活用シーン
- 01コンポーネントを分類しアプリケーションの脅威を評価
- 02セキュリティベースラインと現在の調査結果を比較
- 03人による監査向けのTM7モデルを生成
- 04Windows UI自動化でTM7図のレイアウトを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ microsoft/ hve-core --skill security-planningインストール後、Claude Code で/security-planningを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
pyproject.tomlREADME.mdassets/schemas/tm7-agent-review-request.schema.jsontm7-layout-overlay.schema.jsontm7-visual-feedback-manifest.schema.jsonassets/template-profiles/LICENSE-MIT-REFERENCE.txtREADME.mdsdl_core_generic.yamlassets/templates/default.tb7LICENSEreferences/00-index.mdbacklog-formats.mddata-classification.mddrift-comparison-model.mddrift-input-contracts.mddrift-report-contract.mddrift-worked-examples.mdnist-control-families.mdoperational-buckets.mdstandards-cross-reference.mdstride-model.mdthreat-model-review.mdtm7-generation.mdscripts/Deserialize-Tm7.ps1generate_markdown.pygenerate_tb7.pygenerate_tm7.pypopulate_tm7_threats.pytm7_threat_contract.pytm7_visual_feedback.py詳細
セキュリティ計画
このスキルには、Security Planner、Security Reviewer、Code Review で使用される、永続的なセキュリティ計画と計画の乖離分析が含まれています。運用上のバケットに関するガイダンス、STRIDE 分析のパターン、標準規格との相互参照、NIST 管理策ファミリーへの参照、セキュリティ固有のバックログ形式、Security Planner のベースラインと現在のセキュリティ検出事項との相関分析を提供します。
使用する状況
次のような場合に、このスキルを使用します。
- 計画時に使用する運用上のセキュリティバケットに、アプリケーションのコンポーネントを分類する。
raiEnabledが true の場合の AI 固有の拡張を含め、STRIDE に基づく分析で脅威を評価する。- 長大な標準規格の表を再度埋め込まずに、バケットの検出事項を標準規格の参照先や管理策ファミリーに対応付ける。
- セキュリティ固有のバックログの優先順位と、Phase 5 への引き継ぎに必要な RAI 作業項目のカテゴリを導き出す。
- Security Planner のベースラインと呼び出し元が提供した現在の検出事項を相関させ、検証済みの管理策、管理策の乖離、残存する計画済みリスク、新たに導入された脅威、不要になった計画項目を特定する。
- YAML/JSON の脅威モデル仕様から、デュアル出力の TM7 モデルと Markdown レポートを生成し、人によるレビューを伴う監査ワークフローに活用する。
セキュリティ計画の乖離分析
Security Planner のベースラインと現在のセキュリティ検出事項がすでに存在する場合は、乖離分析機能を使用します。この機能は、提供された証拠のみを相関させます。スキャン、プロファイリング、セキュリティスキルの選択、検出事項の検証、重大度の再評価、別のエージェントの呼び出し、ソース、計画、レビュアー、バックログ、状態の各アーティファクトの変更は行いません。
- drift-input-contracts.md に従って、ベースラインを解決して抽出します。
- 計画モードの証拠をリポジトリの状態として扱わずに、呼び出し元が提供した監査、差分、または Code Review の検出事項を正規化します。
- デフォルトの除外対象をフィルタリングし、drift-comparison-model.md が裏付ける結論のみを分類します。
- drift-report-contract.md に従って、直接実行、Security Reviewer、Security Planner、または Code Review 向けに調整したレポートを生成します。
- 決定論的な動作シナリオと、期待されるカテゴリの抑制については、drift-worked-examples.md を参照します。
完全な会話形式または永続的な乖離分析の出力を行う前に、このスキル内の Security Planning の CAUTION ブロックをそのまま表示してください。標準本文の「現在のリポジトリの証拠」セクションには、以下のデフォルトの除外対象を記載してください。範囲が限定された Code Review セクションでは、レビュー自体に Code Review の免責事項が含まれているため、これらのブロックを参照してもかまいません。
デフォルトの除外対象が適用されています。 計画およびエージェントのカスタマイズに関するアーティファクトは、乖離分析の検出事項から除外されます。
- パス:
.copilot-tracking/**、docs/planning/**、docs/adrs/**、.github/agents/**、.github/prompts/**、.github/instructions/**、.github/skills/**- ファイルの glob:
*.prompt.md、*.agent.md、*.instructions.md、SKILL.md上書きするには、
scope=を明示的に指定します。ユーザー指定の範囲が重複する部分ではそちらが優先され、警告として報告されます。
書き込み可能な直接の呼び出し元は、.copilot-tracking/security-audits/<project-slug>/ の下に、シーケンスの安全性が保たれたレポートを 1 つ作成できます。Security Reviewer と Security Planner は会話内に出力します。Code Review は範囲を限定したセクションと、任意の security_plan_drift フィールドを出力します。どの出力先でも入力は読み取り専用のまま保持し、ディスパッチを行わずにフォローアップを推奨します。
ベースラインが不完全な場合、必須の事実が未解決の場合、証拠の範囲が主張をカバーしていない場合、または入力形式の変化によって除外を適用できない場合は、該当する結論の提示を中止してください。抑制されたカテゴリは、検出事項がゼロではなく、証拠不十分として報告します。ベースラインを解決できない場合、または除外を適用するための検出事項の場所が得られない場合は、相関分析全体を中止してください。
TM7 生成ワークフロー
ユーザーが TM7 脅威モデルを求めた場合、ランタイムは同じ仕様から .tm7 ファイルと対応する Markdown レポートを生成できます。ジェネレーターは pre-populated-comprehensive モードと diagram-only-defer-to-tmt モードに対応しており、--update を指定すると既存のモデルを更新できます。--template を使ってプロファイルを選択し、generate_tm7.py と generate_markdown.py のエントリーポイントを使用してください。
.tm7 の出力は Microsoft Threat Modeling Tool の実際の SerializableModelData DataContract を反映しており、ツール独自の DataContractSerializer で問題なく逆シリアル化されます。適合性は、ツールがインストールされている場合は pytest スイートから実行され、インストールされていない場合は問題なくスキップされる scripts/Deserialize-Tm7.ps1 によって、ツール独自のアセンブリを基準に検証されます。検証済みのコントラクトについては、references/tm7-generation.md を参照してください。
ネイティブ TM7 の視覚的フィードバックワークフロー
このスキルは、ネイティブの Microsoft Threat Modeling Tool UI に対する、オプトイン方式の Windows ローカルフィードバックループにも対応しています。この機能はデフォルトでは無効です。フィードバックフラグが指定されていない場合、ジェネレーターと標準バリデーターは従来のポータブルな動作を維持します。ネイティブフィードバックは、validate_tm7_with_tmt.py を --feedback-loop、--spec、--overlay-output とともに実行した場合にのみ有効になります。任意の --overlay-input、--max-iterations、--require-feedback-evidence を使って、実行の契約をさらに指定できます。
このワークフローには、Microsoft Threat Modeling Tool 7.3.51110.1、Windows デスクトップセッション、UI Automation へのアクセスが必要です。ループはベースライン実行に最大 3 回の改善イテレーションを加えた範囲に制限され、デフォルトではベースラインに続いて 1 回実行されます。1 回の実行中は、ベースラインからすべての改善イテレーションまで、マウスとキーボードが継続的に制御されます。制御が戻るのは解放通知が表示されたときだけです。修正済みオーバーレイの再生は、新たな実行となり、制御の再取得が発生します。終了コード、停止理由、検出失敗のルールは生成リファレンスで定義されています。
ハーネスは TMT ウィンドウを制御し、保存・再オープンの検証のためにアプリを開いたり、閉じたり、再度開いたりする場合があります。自動化の開始前に開始通知を出し、ベースラインと各改善候補の進行状況を更新し、ループが完了または中止した際に解放通知を出すため、オペレーターは制御が戻ったタイミングを把握できます。これらは通知のみであり、ハーネスがオペレーターの確認待ちで停止することはありません。実行を取り巻く、エージェント側のロックアウトと制御解放に関する義務は、tm7-generation-workflow.instructions.md が担います。
このループは、実行ごとに要求されたエビデンスディレクトリの下に 1 つのエビデンスバンドルを記録します。各イテレーションのスクリーンショット、UI Automation のスナップショット、概要、候補モデルが含まれます。少なくとも 1 つのサーフェスをキャプチャし、自動ゲートに合格したか、レイアウトの試行上限に達して停止した実行では、バンドルのルートに agent-review-request.json も出力されます。オーバーレイのペイロードは approval_state: pending のまま維持され、どのランタイムパスやフラグも、それを approved に自動昇格させたり、正規のベースラインを書き換えたりすることはありません。
スコアリングでは、決定論的なジオメトリゲートと、助言目的のスクリーンショットヒューリスティックを分離しています。スクリーンショットヒューリスティックは、セマンティックな承認シグナルではありません。
Windows ネイティブの使用例では、このスキルのロック済み Windows 依存関係グループを使用します。
uv run --project "<security-planning-skill-root>" --group windows \
python "<security-planning-skill-root>/scripts/validate_tm7_with_tmt.py" model.tm7 \
--evidence-dir ./artifacts/feedback \
--feedback-loop \
--spec ./specs/model.yaml \
--overlay-output ./artifacts/feedback/overlay.json \
--max-iterations 3 \
--require-feedback-evidence
コマンドを実行する前に、読み込まれたスキルの場所から <security-planning-skill-root> を解決してください。
オーバーレイのコントラクトはバージョン管理され、決定論的です。名前付きのルールコレクションにレイアウトの意図を保持し、完全なフィンガープリントブロックが一致しない場合は無効になるため、古いオーバーレイが変更済みモデルに再生されることはなく、拒否されます。
CLI の全仕様、終了コード、停止理由、ジオメトリのしきい値、エビデンスバンドルのレイアウト、オーバーレイのフィンガープリントコントラクト、前提条件・中止・復旧・ロールバックを扱うオペレーター向けランブックについては、references/tm7-generation.md を参照してください。
エージェント支援による視覚的レビュー
レイアウトの不具合の中には、どの指標にも反映されないものがあります。TM7 はコネクターのラベルのジオメトリを保持せず、UI Automation もラベル要素を公開しないため、ラベルの重なり、読みにくいラベルテキスト、画面上の混雑は、自動判定ゲートでは検出できません。レンダリング済みのスクリーンショットを読み取るエージェントなら、こうした問題を確認し、ハーネスが公開するオーバーレイに修正を記述できます。
このレビューは、フィードバックループの実行ごとに行われるデフォルトのステップであり、任意の追加機能ではありません。少なくとも 1 つのサーフェスをキャプチャし、自動判定ゲートを通過したか、レイアウトの試行回数上限に達して停止した実行では、エビデンスのルートに agent-review-request.json が出力されます。このファイルには、サーフェスごとにスクリーンショットと UI Automation のパス、ノードとゾーンの矩形、コネクターのハンドル位置、モデル座標での予測ラベル矩形に加え、座標変換の定数とポートの規約が含まれます。エージェントは UI Automation ツリーを手作業で解析するのではなく、このペイロードを基にレビューします。automated-ready-pending-human は、自動判定ゲートを通過し、レビュー待ちであることを意味します。承認済みという意味ではありません。この対処法は文書化されていますが、実証済みではありません。実際の不具合に対して、エンドツーエンドで実証されたことはまだありません。
成功した場合、公開されるオーバーレイはキャプチャされたすべてのサーフェスに対応するため、どのサーフェスに対しても修正を記述できます。実行で自動修正が見つからなかった場合、そのオーバーレイはシード形状となり、overlay-seed- 識別子と空のルールコレクションを持ちます。レイアウトの試行回数上限による停止でも、同じシード形状が公開されます。正確性または環境に関する停止では、何も公開されません。
プロトコル、リクエストのペイロード、使用可能なルールフィールド、座標変換、エージェントが記述するオーバーレイに適用される制約については、references/tm7-generation.md を参照してください。
注意
免責事項: このエージェントは補助ツールにすぎません。法律、規制、コンプライアンスに関する助言を提供するものではなく、専門のセキュリティ審査委員会、侵入テストチーム、コンプライアンス監査担当者、法律顧問、その他の有資格の人間による審査担当者に代わるものでもありません。このツールの出力は、ユーザー自身が内部で実施するセキュリティレビューと意思決定を支援するための、提案される対応策や考慮事項で構成されています。このツールが生成するすべてのセキュリティ計画、脅威モデル、セキュリティモデル、緩和策の推奨事項は、使用前に、適切なセキュリティおよびコンプライアンスの審査担当者が独立してレビューし、検証する必要があります。このツールの出力は、セキュリティ承認、コンプライアンス認証、規制上の承認を構成するものではありません。
作成者による確認、ネイティブなフィードバックループのオペレーターの安全性、レイアウトオーバーレイの昇格を定めるヒューマン・イン・ザ・ループの契約は、tm7-generation-workflow.instructions.md が管理します。このスキルが扱うのは、仕組みのみです。
スキルの構成
必要なフェーズまたはトピックに対応するリファレンスファイルを読み込んでください。
| 参考 | トピック |
|---|---|
| references/00-index.md | ナビゲーションカタログと統合された出典表記 |
| references/operational-buckets.md | 運用バケットの定義、GS オーバーレイ、分類ガイダンス |
| references/stride-model.md | STRIDE 手法、AI 拡張、リスクマトリクス、データフロー分析 |
| references/standards-cross-reference.md | バケットと標準のマッピング表、およびコンポーネントマッピングの出力形式 |
| references/nist-control-families.md | NIST 800-53 の優先度レベルと NIST AI RMF のサブカテゴリマッピング |
| references/backlog-formats.md | セキュリティ固有の優先順位付けと RAI 作業項目カテゴリ |
| references/data-classification.md | 公開可能なデータ分類体系、レベル/カテゴリ/保持期間、およびスキーママッピング |
| references/threat-model-review.md | 脅威モデルの完全性チェックリスト、PASS/INCOMPLETE の判定、ギャップ一覧 |
| references/drift-input-contracts.md | Security Planner のベースライン抽出、正規化された現行検出事項の形式、証拠の範囲、ドリフト処理 |
| references/drift-comparison-model.md | 除外項目、証拠の前提条件、5 つの計画ドリフトカテゴリ、照合順序、推奨のみの引き継ぎ |
| references/drift-report-contract.md | 標準本文と、直接出力、Security Reviewer、Security Planner、Code Review の各出力先への適応 |
| references/drift-worked-examples.md | 完全、不完全、不正形式、差分範囲指定、除外、呼び出し元の回帰動作に関する合成シナリオ |
| references/tm7-generation.md | TM7 入力スキーマ、二重出力生成契約、プロファイルマッピング、出力契約、ネイティブフィードバックループ、オーバーレイとフィンガープリントの契約、運用者向け手順書 |
同梱の実行可能ファイルおよびデータリソース:
| リソース | 用途 |
|---|---|
scripts/generate_tm7.py | 脅威モデル仕様から .tm7 を生成するために実行します |
scripts/generate_markdown.py | 同じ仕様を Markdown レポートとしてレンダリングするために実行します |
scripts/generate_tb7.py | テンプレートファイルを出力するために実行します |
scripts/validate_tm7_with_tmt.py | Windows ネイティブの TMT 検証とオプトインのフィードバックループに使用します |
scripts/Deserialize-Tm7.ps1 | ツール独自のアセンブリとのラウンドトリップの忠実度を確認するために実行します |
assets/schemas/tm7-layout-overlay.schema.json | レイアウトオーバーレイのスキーマとして参照します |
assets/schemas/tm7-agent-review-request.schema.json | エージェントによるビジュアルレビューリクエストのスキーマとして参照します |
assets/schemas/tm7-visual-feedback-manifest.schema.json | エビデンスマニフェストのスキーマとして参照します |
templates/threat-model-spec-example.yaml | 新しい仕様の出発点としてコピーします |
このスキルには、分類体系と完全性チェックリストの公開デフォルトが含まれています。内部データ型の分類体系、内部認証サービス名、内部レビューゲートの手順など、組織固有の詳細は、state.overlayConfigPath で参照されるプライベート設定オーバーレイを通じて提供され、公開スキルには決して埋め込まれません。
帰属
このスキルの永続的なリファレンスコンテンツは、リファレンスファイルごとに整理され、references/00-index.md に要約されています。帰属および委任に関する統合された注記については、このインデックスを参照してください。