Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
threatmap — IaC脅威モデリングツール(STRIDE、MITRE ATT&CK、PASTAフレームワークを使用)。REST API、GraphQL、Docker対応: Terraform、CloudFormation、Kubernetes向け。 | Kitploit
ツール/GitHubGitHub/bogdanticu88/threatmap
静的分析コンテナセキュリティ脆弱性分析構成監査クラウドセキュリティDevSecOps脅威インテリジェンスAPIセキュリティ
GitHubbogdanticu88/threatmap

threatmap

IaC脅威モデリングツール(STRIDE、MITRE ATT&CK、PASTAフレームワークを使用)。REST API、GraphQL、Docker対応: Terraform、CloudFormation、Kubernetes向け。

リポジトリを見る
6191ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
2026-03-25_12-36

threatmap

CI Version PyPI Python Docker STRIDE MITRE PASTA GraphQL API License: MIT Offline

静的 IaC 脅威モデラー。Terraform、CloudFormation、Kubernetes マニフェストを解析し、STRIDE、MITRE ATT&CK、または PASTA フレームワークを使用した構造化脅威モデルレポートを生成します。ネットワーク呼び出し不要、クラウド資格情報不要、完全オフライン。CLI、REST API、コンテナ化サービスとして実行可能。


クイックスタート

CLI:

root@kitploit:~
pip install threatmap
threatmap scan ./examples --output report.md --fail-on HIGH

Docker:

root@kitploit:~
docker run -v $(pwd):/workspace bogdynn/threatmap:2.1.0 threatmap scan /workspace --output /workspace/report.md

REST API サーバ:

root@kitploit:~
threatmap serve --host 0.0.0.0 --port 8000
# Docker 経由:
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# API エンドポイント: /health, /version, /rules, /analyze

GraphQL API:

root@kitploit:~
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# GraphQL エンドポイント: http://localhost:8000/graphql
# クエリ: health, version, rules
# ミューテーション: analyze(content, filename, framework)

対応フォーマットとプロバイダ


インストール

PyPI からインストール:

root@kitploit:~
pip install threatmap

ローカル開発用:

root@kitploit:~
git clone https://github.com/bogdanticu88/threatmap.git
cd threatmap
pip install -e .

使い方

ディレクトリをスキャンし、Markdown レポートを標準出力に出力:

root@kitploit:~
threatmap scan ./terraform/

複数のパスをスキャンし、JSON レポートをファイルに書き込み:

root@kitploit:~
threatmap scan ./terraform/ ./k8s/ ./cloudformation/ --format json --output report.json

インタラクティブな HTML レポート、または GitHub Security 用の SARIF レポートを生成:

root@kitploit:~
threatmap scan ./infra/ --format html --output report.html
threatmap scan ./infra/ --format sarif --output report.sarif

CI ゲート — CRITICAL または HIGH の脅威が1つでも見つかると終了コード1:

root@kitploit:~
threatmap scan ./infra/ --fail-on HIGH --output threat-report.md

完全なレポートを書き出さず、端末にサマリテーブルのみ表示:

root@kitploit:~
threatmap scan ./infra/ --summary

Unicode をサポートしない環境向けに ASCII のみの深刻度インジケータ(絵文字なし):

root@kitploit:~
threatmap scan ./infra/ --ascii --output report.md

異なる脅威モデリングフレームワークを使用して解析:

root@kitploit:~
# STRIDE (デフォルト)
threatmap scan ./infra/ --framework stride

# MITRE ATT&CK (戦術と技法にマッピング)
threatmap scan ./infra/ --framework mitre --format json

# PASTA (資産中心の脅威モデリング)
threatmap scan ./infra/ --framework pasta --format json

脅威モデリングフレームワーク

STRIDE (73 ルール)

  • なりすまし (Spoofing)、改ざん (Tampering)、否認 (Repudiation)、情報漏洩 (Information Disclosure)、サービス拒否 (Denial of Service)、特権昇格 (Elevation of Privilege)
  • 攻撃対象領域の特定に最適な脅威中心のアプローチ
  • プロバイダ別: AWS (22ルール)、Azure (19ルール)、GCP (15ルール)、Kubernetes (17ルール)
  • 最適な用途: 従来の脅威モデリング、セキュリティアーキテクチャレビュー

MITRE ATT&CK (11ルール、14の戦術)

  • インフラ脅威を実際の攻撃者の戦術・技法にマッピング
  • リソースを考慮した技法選択により正確な TTP マッピングを実現
  • 戦術: 偵察 (Reconnaissance)、初期アクセス (Initial Access)、実行 (Execution)、永続化 (Persistence)、特権昇格 (Privilege Escalation)、防御回避 (Defense Evasion)、認証情報アクセス (Credential Access)、探索 (Discovery)、収集 (Collection)、コマンド&コントロール (Command & Control)、漏洩 (Exfiltration)、影響 (Impact)、横移動 (Lateral Movement)
  • 最適な用途: 脅威インテリジェンスとの連携、インシデント対応計画、レッドチーム演習

PASTA (12ルール、資産中心)

  • 攻撃シミュレーションと脅威分析のプロセス (Process for Attack Simulation and Threat Analysis)
  • 保護すべきものに焦点を当てた資産中心のアプローチ
  • 資産タイプ: データ、アイデンティティ、コンピューティング、ネットワーク、インフラストラクチャ
  • 脅威アクター: 内部、外部、設定ミス、サプライチェーン
  • 最適な用途: リスクベースの優先順位付け、資産保護戦略、サプライチェーン脅威

サンプルレポート出力

バンドルされたサンプルに対して threatmap scan ./examples --output report.md を実行すると、完全な Markdown レポートが生成されます。以下は代表的な抜粋です。

STRIDE 脅威テーブル

緩和策の詳細 (抜粋)

root@kitploit:~
### T-002 — なりすまし (CRITICAL)

リソース:   AWS::EC2::SecurityGroup.WebSecurityGroup
プロパティ: ingress.ssh_rdp_open
検出事項:  セキュリティグループ 'WebSecurityGroup' が SSH/RDP(ポート 22/3389)を 0.0.0.0/0 に公開しています。
緩和策:   公開 SSH/RDP アクセスを削除してください。AWS Systems Manager Session Manager
           または IP 制限付きの踏み台ホストを使用してください。

データフロー図 (Mermaid)

レポートには Mermaid flowchart LR 図が付加されます。ノードは最悪の深刻度に応じて色分けされます(🔴 赤 = CRITICAL、🟠 オレンジ = HIGH)。ブロックを任意の Mermaid レンダラに貼り付けるか、GitHub 上で直接表示できます。

root@kitploit:~
flowchart LR
    Internet((Internet))
    subgraph Networking
        aws_security_group_web_sg{web_sg}
        NetworkPolicy_default_deny{default-deny}
        azurerm_network_security_group_app_nsg{app_nsg}
    end
    subgraph Compute
        aws_instance_web[web]
    end
    subgraph Kubernetes
        Namespace_myapp[myapp]
        Deployment_api[api]
        Service_api_svc[api-svc]
        Ingress_api_ingress[api-ingress]
    end
    subgraph Data
        aws_s3_bucket_app_data[(app_data)]
        aws_db_instance_app_db[(app_db)]
        azurerm_storage_account_app_storage[(app_storage)]
    end
    subgraph Security
        azurerm_key_vault_app_kv[app_kv]
    end
    subgraph Identity
        azurerm_role_assignment_app_contributor[/app_contributor/]
    end
    AWS__S3__Bucket_AppBucket -->|ref| AWS__S3__Bucket_AuditBucket
    AWS__CloudTrail__Trail_AppTrail -->|ref| AWS__S3__Bucket_AuditBucket
    Internet -->|HTTPS| Ingress_api_ingress
    style aws_security_group_web_sg fill:#ff4444,color:#fff
    style aws_s3_bucket_app_data fill:#ff4444,color:#fff
    style aws_instance_web fill:#ff8800,color:#fff
    style Deployment_api fill:#ff8800,color:#fff
    style azurerm_key_vault_app_kv fill:#ffcc00,color:#000
    style azurerm_network_security_group_app_nsg fill:#ff8800,color:#fff
    style azurerm_role_assignment_app_contributor fill:#ff4444,color:#fff

高度な機能 (v2.1.0以降)

グラフベースの攻撃パス分析

threatmap には、リソース間の関係を追跡する グラフインテリジェンス (Graph Intelligence) が組み込まれています。あるリソース(例:インターネット公開 EC2)の侵害が別のリソース(例:プライベート S3 バケット)に直接つながる「連鎖的」脅威を自動的に特定し、これらを 特権昇格 (Elevation of Privilege) の攻撃パスとしてフラグ付けします。

カスタム YAML ルール

プロジェクトルートに threatmap_rules.yaml を作成することで、内部セキュリティ要件を定義できます。

root@kitploit:~
rules:
  - resource_type: "aws_s3_bucket"
    property: "force_destroy"
    expected: false
    stride: "Tampering"
    severity: "MEDIUM"
    description: "Production buckets should not have force_destroy enabled."
    mitigation: "Set force_destroy = false."

修復ヒント

現在、ほとんどの検出事項には 修復 (remediation) フィールドが含まれており(JSON、HTML、SARIF レポートで表示)、セキュリティ問題を修正するための正確なコードスニペットが提供されます。


アーキテクチャ

STRIDE Analyzer — プロバイダ固有の脅威ルール:

root@kitploit:~
threatmap/analyzers/
├── aws.py         # 22 ルール — S3, IAM, EC2, RDS, EKS, CloudTrail, KMS, Lambda
├── azure.py       # 19 ルール — Storage, Key Vault, NSG, RBAC, AKS, ACR, SQL
├── gcp.py         # 15 ルール — GCS, Firewall, Compute, Cloud SQL, GKE, IAM, KMS
└── kubernetes.py  # 17 ルール — workloads, RBAC, network, secrets

MITRE ATT&CK Analyzer — MITRE 戦術にマッピングされた 11 ルール:

  • リソースを考慮した技法選択
  • 対応対象: IAM、ストレージ、ネットワーク、コンピューティング、Kubernetes、データベース
  • 脅威インテリジェンス連携のための戦術→技法マッピングを提供

PASTA Analyzer — 資産中心の 12 ルール:

  • リソースを資産タイプ(データ、アイデンティティ、コンピューティング、ネットワーク、インフラストラクチャ)ごとに分類
  • 脅威アクター(内部、外部、設定ミス、サプライチェーン)を特定
  • 各脅威に攻撃シナリオを割り当て

API:

  • REST API: /health, /version, /rules, /analyze, /analyze/file
  • GraphQL API: /graphql (Query: health, version, rules; Mutation: analyze)

各ルールは関数であり、Resource オブジェクト(解析元のソース形式から正規化されたもの)を受け取り、条件が満たされた場合に Threat を返します。ルールはプレーンな Python 条件文で記述されています。DSL、正規表現エンジン、外部ルールセットファイルは不要です。

深刻度の割り当て方法

深刻度は 悪用可能性 (exploitability) と 影響範囲 (blast radius) の両方を反映します:

深刻度意味
CRITICAL追加の前提条件なしで直接悪用可能(例:SSH が 0.0.0.0/0 に公開、ワイルドカード IAM ポリシー、匿名への cluster-admin バインド)
HIGHもう一段階のステップが必要な重大なリスク(例:公開アクセス可能な暗号化なし RDS、EC2 インスタンス上の IMDSv1)
MEDIUM多層防御の制御が欠如 — 即時のリスクは低いがセキュリティ基準に違反(例:バージョニングなし、ログ記録なし、リソース制限なし)
LOW単独での悪用可能性が限られたベストプラクティスのギャップ(例:Lambda が VPC 内にない)

誤検知の回避方法

  • ヒューリスティックや機械学習は使用しません — すべてのルールは具体的で曖昧さのないプロパティ値(例:publicly_accessible = true、Principal: "*")に基づいて発火します。
  • 控えめなデフォルト — プロパティが欠落している場合、ルールは安全でないデフォルトを仮定します(例:EC2 インスタンスに metadata_options ブロックがない場合、AWS のデフォルトである IMDSv1 がアクティブとみなします)。
  • クロスアカウントや実行時状態は考慮しません — ツールはテンプレート内で宣言されたもののみを確認します。SCP、許可境界、実行時設定によって検出事項が緩和される可能性を推測することはありません。
  • エンジン内での重複排除 — 検出事項は (stride_category, resource_name, trigger_property) でキー付けされるため、同一の論理的問題が複数のファイル形式に現れても二重に報告されることはありません。

CI 統合

root@kitploit:~
# .github/workflows/threat-model.yml
name: Threat Model

on: [pull_request]

jobs:
  threatmap:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install threatmap
        run: pip install threatmap

      - name: Run threat model scan
        run: |
          threatmap scan ./infra/ \
            --format markdown \
            --output threat-report.md \
            --fail-on HIGH

      - name: Upload threat report
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: threat-report
          path: threat-report.md

--fail-on HIGH フラグにより、HIGH または CRITICAL の脅威が1つでも見つかるとジョブが終了コード 1 で終了し、PR のマージを阻止します。アップロードされたアーティファクトにより、レビュー担当者はプルリクエストを離れることなく完全なレポートを確認できます。


STRIDE ルールカバレッジ

プロバイダルール数
AWS (Terraform + CloudFormation)22
Azure (Terraform)

プロバイダ別のカバレッジカテゴリ:

(S=なりすまし, T=改ざん, R=否認, I=情報漏洩, D=サービス拒否, E=特権昇格)


開発

テストの実行:

root@kitploit:~
pytest tests/ -v

カバレッジ付きで実行:

root@kitploit:~
pytest tests/ --cov=threatmap --cov-report=term-missing

コントリビューション

  1. リポジトリをフォーク
  2. 既存のパターンに従って threatmap/analyzers/<provider>.py にルールを追加
  3. 新しいルールをトリガーするフィクスチャを tests/fixtures/ に追加
  4. tests/test_analyzers.py にアサーションを追加
  5. プルリクエストを送信
ツールをダウンロード
フォーマットプロバイダ拡張子
Terraform HCLAWS, Azure, GCP.tf
CloudFormationAWS.yaml, .yml, .json
Kubernetes マニフェストKubernetes.yaml, .yml
ID深刻度STRIDE カテゴリリソース説明
T-001🔴 CRITICAL情報漏洩 (Information Disclosure)AuditBucketS3 バケット 'AuditBucket' に公開アクセスブロックが設定されていません。バケットが公開アクセス可能になる可能性があります。
T-002🔴 CRITICALなりすまし (Spoofing)WebSecurityGroupセキュリティグループ 'WebSecurityGroup' が SSH/RDP(ポート 22/3389)を 0.0.0.0/0 に公開しています。
T-003🔴 CRITICAL特権昇格 (Elevation of Privilege)app_contributorロール割り当て 'app_contributor' が特権ロール 'Contributor' を付与しています。
T-006🟠 HIGH情報漏洩 (Information Disclosure)AuditBucketS3 バケット 'AuditBucket' にサーバサイド暗号化が設定されていません。
T-008🟠 HIGH特権昇格 (Elevation of Privilege)apiDeployment 'api' 内のコンテナ 'api' がルートで実行される可能性があります(runAsNonRoot=true または runAsUser=0 が設定されていません)。
T-011🟠 HIGH特権昇格 (Elevation of Privilege)webEC2 インスタンス 'web' が IMDSv1 を許可しています。メタデータサービスがセッショントークンなしでアクセス可能となり、SSRF ベースの認証情報窃取を可能にします。
19
GCP (Terraform)15
Kubernetes17
合計73
プロバイダSTRIDE
AWS✓✓✓✓✓✓
Azure✓✓✓✓—✓
GCP✓✓✓✓—✓
Kubernetes✓✓—✓✓✓