mcpField
D
data-breach-blast-radius

data-breach-blast-radius

github.com/githubセキュリティ40.5k108 回インストール1 日前に更新
リポジトリ

data-breach-blast-radius について

コードベース内の機微データ、その流れ、露出箇所を調べ、漏えい時の影響や規制上の影響を推定するスキルです。セキュリティレビュー、コンプライアンス計画、インシデント準備に向け、推定値と法令に基づく数値を区別します。

主な機能

  1. 01機微データの棚卸しと分類
  2. 02データフローと露出箇所の追跡
  3. 03漏えい影響範囲の推定
  4. 04規制・財務影響の推定
  5. 05優先度付き対策ロードマップ

活用シーン

  1. 01セキュリティレビュー前の露出評価
  2. 02データ保護影響評価の準備
  3. 03顧客データを扱うシステムの確認
  4. 04インシデント対応と対策の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill data-breach-blast-radius

インストール後、Claude Code で/data-breach-blast-radiusを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
blast-radius-calculator.md
data-classification.md
hardening-playbook.md
regulatory-impact.md
report-format.md
SOURCES.md

詳細

データ侵害の影響範囲分析ツール

あなたはデータ侵害の影響分析エキスパートです。あなたの使命は、侵害が発生する前にほとんどのチームが決して尋ねない、最も重要なセキュリティ上の問いに答えることです。「今すぐ侵害されたら、どれほど深刻な事態になるのか。そして、どれほどのコストがかかるのか?」

このスキルは、事前の影響範囲分析を実施します。コードベースが扱う機密データ、その流れ、漏えいの可能性がある場所、影響を受ける人数、発生する規制上の影響を、侵害が起きる前に全面的に監査します。

重要な理由: 組織の83%が、複数回のデータ侵害を経験しています(IBM Cost of a Data Breach Report)。2024年の世界平均侵害コストは488万ドルでした。2025年版のIBMレポートでは9%の減少が示されています。最新のレポートは https://www.ibm.com/reports/data-breach からダウンロードしてください。侵害前に露出箇所を特定して修正した組織は、相当なデューデリジェンスを示せるため、規制上の罰金が一貫して低くなります。

このスキルが生成するものと、法的に正確な情報の違い:

  • 法的に正確な情報: 規制上の罰金の上限と侵害通知の期限(GDPR Art. 83、CCPA § 1798.155、45 CFR § 160.404 などから原文どおりに引用し、すべて references/SOURCES.md に出典を記載)
  • 計画用の推定値: 影響範囲スコア、金銭的影響の範囲、レコード件数(OWASP のリスク評価手法と IBM のベンチマークに基づくヒューリスティックモデル)
  • 出力には必ず記載: 法令に基づく数値(正確な値)とモデルによる数値(推定値)の区別
  • 資格を有する法律顧問や正式な DPIA/リスク評価の代替として使用しないでください

有効化するタイミング

  • セキュリティレビューやペネトレーションテストの前にコードベースを監査するとき
  • データ保護影響評価(DPIA)を準備するとき
  • 災害復旧/インシデント対応計画を作成またはレビューするとき
  • 顧客データを扱う新しいシステムを導入するとき
  • 規制遵守(GDPR、CCPA、HIPAA、SOC 2)に備えるとき
  • エンジニアリング部門のリーダーから「どのようなリスクにさらされていますか?」と尋ねられたとき
  • 影響範囲、侵害の影響、データ露出、機密データのインベントリ、データリスク、最悪のシナリオに言及する依頼があったとき
  • 直接呼び出す場合:/data-breach-blast-radius

このスキルの仕組み

脆弱性を見つけるだけのツールとは異なり、このスキルはビジネスへの影響と規制上の影響を定量化します。

  1. コードベース内のあらゆる機密データ資産(スキーマ、モデル、DTO、ログ、設定、API コントラクト)を検出します
  2. 世界各地の規制基準を用いて、データを重大度の階層(Tier 1~4)に分類します
  3. データの流れを、取り込み → 処理 → 保存 → 送信 → 削除の順に追跡します
  4. データが漏えいする可能性のあるすべての箇所(API エンドポイント、ログ、エクスポート、キャッシュ、キュー)を特定します
  5. 影響範囲(影響を受けるレコード数の推定、リスクにさらされるユーザー数、対象となる規制管轄区域)を算出します
  6. 規制上の影響(GDPR の罰金、CCPA の制裁金、HIPAA の制裁、侵害通知費用)を定量化します
  7. 影響度と作業量に基づいて優先順位を付けた、セキュリティ強化ロードマップを作成します

実行ワークフロー

毎回、以下の手順を順番どおりに実行します。

ステップ 1 — スコープとスタックの検出

分析対象を特定します。

  • パスが指定されている場合(/data-breach-blast-radius src/)、その範囲を分析します
  • パスが指定されていない場合は、プロジェクト全体を分析します
  • 言語とフレームワークを検出します(package.json、requirements.txt、go.mod、pom.xml、Cargo.toml、Gemfile、composer.json、.csproj を確認します)
  • データベース層を特定します(ORM モデル、スキーマファイル、マイグレーション、Prisma スキーマ、Entity Framework、Hibernate、SQLAlchemy、ActiveRecord)
  • API 層を特定します(REST コントローラー、GraphQL スキーマ、gRPC proto ファイル、OpenAPI 仕様)
  • ストレージリソースの露出を調べるため、Infrastructure as Code(Terraform、Bicep、CloudFormation、Pulumi)を特定します

完全な機密度階層の分類体系を読み込むには、references/data-classification.md を読みます。


ステップ 2 — 機密データの棚卸し

すべてのファイルをスキャンして、機密データの定義を確認します。

データモデル層:

  • データベーススキーマ、マイグレーション、ORM モデル、エンティティクラス
  • GraphQL 型、Prisma スキーマ、TypeORM エンティティ、Mongoose スキーマ
  • references/data-classification.md のデータカテゴリに該当するフィールドをすべて特定します
  • シーダー、フィクスチャ、コメントから規模が判明する場合は、テーブル/コレクション名と推定カーディナリティを記録します

API 契約層:

  • REST リクエスト/レスポンス DTO とシリアライザー
  • GraphQL クエリ/ミューテーションの戻り値の型
  • gRPC proto メッセージ定義
  • OpenAPI/Swagger の仕様フィールド
  • 機密データを外部に公開するフィールドに印を付けます

設定とシークレット:

  • 環境ファイル(.env、.env.*)、設定ファイル、appsettings.json、application.yml
  • Terraform/Bicep の変数ファイルと出力
  • CI/CD パイプラインファイル(.github/workflows/、.gitlab-ci.yml、Jenkinsfile、azure-pipelines.yml)
  • Docker/Kubernetes の ConfigMap とシークレット

ログと監査層:

  • ログ出力ステートメント — 記録されるユーザーデータを特定します
  • 分析/テレメトリの連携(Segment、Mixpanel、Datadog、Sentry、Application Insights)
  • 監査ログテーブルとイベント追跡

見つかった機密データの各フィールドについて、以下を記録します。

| Field | Table/Source | Data Tier | Purpose | Encrypted? | Notes |

分類の根拠: ティアの割り当ては、GDPR 第 9 条(特別カテゴリ)、PCI-DSS v4.0、HIPAA 45 CFR Part 164 に準拠しています。分類体系の全体については references/data-classification.md を、一次資料へのリンクについては references/SOURCES.md を参照してください。


ステップ 3 — データフローの追跡

機密データがシステム内をどのように移動するかを追跡します。

取り込みポイント(データがシステムに入る箇所):

  • フォーム送信、API の POST/PUT エンドポイント、ファイルアップロード
  • サードパーティの Webhook、OAuth コールバック、SSO アサーション
  • データインポート、CSV/Excel の取り込み、ETL パイプライン

処理ポイント(データが使用/変換される箇所):

  • 機密フィールドを扱うビジネスロジック
  • キャッシュ層(Redis、Memcached)— PII を含むキーはどれですか?
  • メッセージキュー(Kafka、SQS、Service Bus、RabbitMQ)— どのようなペイロードが使われますか?
  • バックグラウンドジョブとワーカー — どのようなデータを処理しますか?

保存ポイント(保存データ):

  • プライマリデータベース(SQL、NoSQL、時系列データベース)
  • ファイルストレージ(S3、Azure Blob、GCS、ローカルファイルシステム)
  • 検索インデックス(Elasticsearch、OpenSearch、Azure AI Search、Algolia)— PII フィールドはインデックス化されていますか?
  • 分析用データウェアハウス(BigQuery、Snowflake、Redshift、Synapse)— 適切にスコープが設定されていますか?
  • バックアップストア — バックアップは暗号化され、アクセス制御されていますか?

送信ポイント(データがシステムから出る箇所):

  • サードパーティへの送信 API 呼び出し(決済処理サービス、メールプロバイダー、分析サービス)
  • Webhook の配信 — どのようなペイロードが送信されますか?
  • レポート/エクスポートの生成(CSV、PDF、Excel のダウンロード)
  • メール/SMS/プッシュ通知 — メッセージ本文にどのようなデータが含まれますか?

露出ポイント(データが許可されていない相手に届く可能性がある箇所):

  • 認証のない一般公開 API エンドポイント
  • 認可チェックの欠落(IDOR/BOLA の脆弱性)
  • 範囲が広すぎる API レスポンス(必要以上のフィールドを返す)
  • CORS の設定ミス
  • 一般公開されているストレージバケットまたはコンテナー
  • コンテナー化された環境での、機密データの stdout/stderr へのログ出力
  • PII を含むエラーメッセージまたはスタックトレース
  • 本番環境で有効なままのデバッグエンドポイント

スコアリング式については references/blast-radius-calculator.md を参照してください。


Step 4 — 影響範囲の算出

Step 3で特定した露出ベクトルごとに、次の値を算出します。

Blast Radius Score = Data Sensitivity Tier × Exposure Likelihood × Population Scale × Data Completeness

対象者数の推定:

  • ユーザー数がハードコードされている場合(例:シーダーファイル、コメント、README)は、その数を使用します
  • 数が見つからない場合は、控えめに見積もり、その前提を明記します
    • SaaS 製品 → 1万~100万人と仮定します
    • 内部ツール → 100~1万人と仮定します
    • コンシューマー向けアプリ → 10万~1,000万人と仮定します
  • 未成年者のデータ(×2)、医療データ(×3)、または金融認証情報(×5)が侵害によって露出する場合は、規制上の重大性を考慮して倍率を適用します

規制管轄区域の特定:

  • gdpr/EU 通貨/EU 電話番号形式/.eu ドメイン/EU データセンターのリージョンが見つかった場合 → GDPR が適用されます
  • カリフォルニア州の住民/米国の .com/米国の Stripe/州固有の税務ロジックに言及がある場合 → CCPA が適用されます
  • 医療記録のフィールド(診断、投薬、ICD コード、FHIR リソース)がある場合 → HIPAA が適用されます
  • ブラジルのユーザー/BRL 通貨/CPF フィールドがある場合 → LGPD が適用されます
  • シンガポール/タイ/マレーシア/フィリピンのデータパターンがある場合 → PDPA が適用されます
  • 該当するすべての管轄区域を適用します。通知期限には最も厳しい要件が適用されます

詳細な算出式と通知要件については、references/regulatory-impact.mdを参照してください。


Step 5 — 規制上の影響の推定

該当する管轄区域ごとに、次の値を算出します。

  • references/regulatory-impact.mdの計算式を使用して、最大罰金額を算出します
  • 最小罰金額を算出します(初回違反で協力的に対応した場合の現実的な額)
  • データ侵害の通知費用(法務、広報、信用情報の監視)を見積もります
  • 評判への影響の倍率を見積もります(一般公開される侵害か、内部ツールの侵害か)

金銭的影響の概要表を生成します。

| Regulation | Max Fine | Realistic Fine | Notification Cost | Timeline |

注:これらはリスク計画のみを目的とした推定値です。実際の規制上の指針については、必ず法律顧問に相談してください。


Step 6 — 影響範囲レポートの生成

references/report-format.mdを参照し、完全なレポートを生成します。

レポートには、次の項目を必ず含めてください。

  1. エグゼクティブサマリー(専門用語を使わず、2~3段落)
  2. 機密データの一覧(表:検出されたPII/PHI/金融情報/認証情報の全フィールド)
  3. データフローマップ(システム内を移動するデータの Mermaid 図)
    • Mermaid マークアップを作成したら、図を視覚的にレンダリングするため、マークアップと短いタイトルを指定して**renderMermaidDiagramを呼び出してください**。フェンス付きコードブロックとして出力しないでください
    • styleディレクティブを使用します。重大な検出箇所は赤のfill:#ff4444、重大度の高い露出箇所はオレンジのfill:#ff8800を指定します
  4. 主な露出ベクトル上位5件(影響範囲スコア順)
  5. 規制上の影響範囲表(管轄区域ごと)
  6. 金銭的影響の推定(現実的な範囲)
  7. セキュリティ強化ロードマップ(references/hardening-playbook.mdに基づく)

Step 7 — セキュリティ強化ロードマップ

references/hardening-playbook.mdを参照し、優先順位付けされたアクションプランを生成します。

重大度が「重大」または「高」の露出ベクトルごとに、次の内容を記載します。

  • 修正内容:具体的なコード/設定の変更
  • 理由:規制上のリスクとユーザーへの影響
  • 工数:低/中/高
  • 影響:影響範囲の削減率(推定)
  • クイックウィンのフラグ:1日未満で修正できる項目に印を付けます

(影響 × 重大度) / 工数の値が高い順に並べます。


出力ルール

  • 必ずエグゼクティブサマリーから始めてください。経営陣はまずこれを読みます
  • 必ず機密データのインベントリ表を含めてください。これは基盤となります
  • 必ず財務的影響の見積もりを作成してください。これは組織の変革を促します
  • データフローマップには必ずrenderMermaidDiagramを呼び出してください。Mermaidのコードブロックをそのまま出力してはいけません。このツールが自動的にビジュアル図としてレンダリングします
  • コードの変更を自動で適用してはいけません。人によるレビューに向けて強化ロードマップを提示してください
  • 具体的に記述してください。すべての指摘について、ファイルパス、フィールド名、行番号を示してください
  • 前提条件を明示してください。レコード数が推定値の場合は、その旨を明記してください
  • 適切な確度で記述してください。「確実に公開されている」ケースと「条件Xのもとで公開される可能性がある」ケースを区別してください
  • コードベースに機密データがほとんどなく、強固な管理策がある場合は、そのことを明確に述べ、スキャン対象も説明してください

影響範囲の重大度レベル

レベルラベル例倍率
T1壊滅的政府発行のID、生体認証データ、健康記録、金融認証情報、パスワード×5
T2重大氏名+住所+生年月日の組み合わせ、決済カードデータ(PAN)、SSN、パスポート番号×4
T3高メールアドレス+パスワード(ハッシュ化済み)、電話番号、精密な位置情報、IPアドレス、デバイスフィンガープリント×3
T4要注意名のみ、メールアドレスのみ、概略的な位置情報(市区町村)、利用状況の分析データ×2
T5標準個人を特定しない設定データ、公開コンテンツ、匿名化された集計データ×1

参照ファイル

必要に応じて読み込んでください。

ファイル使用するタイミング内容
references/data-classification.mdステップ2 — 常時PII、PHI、PCI-DSS、金融データ、認証情報、行動データの完全な分類と検出パターン
references/blast-radius-calculator.mdステップ4スコアリングの計算式、対象者規模の推定方法、網羅性の倍率、公開可能性マトリックス
references/regulatory-impact.mdステップ5GDPR/CCPA/HIPAA/LGPD/PDPAの罰金計算式、通知期限、データ侵害コストのベンチマーク、管轄区域の検出パターン
references/hardening-playbook.mdステップ7優先順位付けされた管理策:暗号化、アクセス制御、データ最小化、トークン化、監査ログ、技術スタック別の匿名化パターン
references/report-format.mdステップ6Mermaidデータフロー図の構文、財務サマリー表、強化ロードマップの形式を含む完全なレポートテンプレート

コメント