Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Dop2Mop — BloodHound向けのOpenGraphコレクターで、DevOpsからMLOpsインフラへの攻撃経路をマッピングし、CI/CDパイプライン、サービスプリンシパル、MLプラットフォームリソースを収集して横方向移動の分析を行います。 | Kitploit
ツール/GitHubGitHub/h4wkst3r/dop2mop
クラウドインフラストラクチャセキュリティ偵察コンテナセキュリティ脆弱性分析情報収集ペネトレーションテストクラウドセキュリティDevSecOpsアイデンティティ&アクセス管理 (IAM)サプライチェーンセキュリティレッドチーミング
41205ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
h4wkst3r/dop2mop

Dop2Mop

BloodHound向けのOpenGraphコレクターで、DevOpsからMLOpsインフラへの攻撃経路をマッピングし、CI/CDパイプライン、サービスプリンシパル、MLプラットフォームリソースを収集して横方向移動の分析を行います。

リポジトリを見る

Dop2Mop

BloodHound用の概念実証OpenGraphコレクター。DevOpsからMLOpsインフラストラクチャへの攻撃パスをマッピングします。

Pipelines of Privilege: Attack Paths from DevOps to MLOps Infrastructure(Brett Hawkins (@h4wkst3r) 著)に基づいています。

目次

  • 謝辞
  • 概要
    • 対応プラットフォーム
    • マッピングされた信頼境界
  • インストール
    • オプションの依存関係
  • クイックスタート
    • デモデータの生成
    • BloodHoundへの取り込み
  • 設定
    • 設定ファイル
    • 認証情報の検証
  • CLIリファレンス
    • コマンド概要
    • グローバルオプション
    • dop2mop collect
    • dop2mop demo
  • CLI使用例
    • 基本収集
    • 単一プラットフォームの収集
    • 複数プラットフォームの収集
    • GitHub収集例
    • Azure DevOps収集例
    • Azure ML収集例
    • AWS SageMaker収集例
    • フル環境収集
  • 環境変数
  • ノードタイプ
    • DevOpsノード
    • MLOpsノード
    • IDノード
    • 成果物ノード
  • エッジタイプ
    • 攻撃パスエッジ
    • 構造エッジ
  • クエリ例
  • カスタムアイコン
    • BloodHoundへのアイコンアップロード
  • Python API
    • 個別コレクターの使用
    • カスタムグラフの構築
  • トラブルシューティング
    • よくある問題
  • ライセンス

謝辞

  • BloodHoundとOpenGraphの提供に対してSpecterOps

概要

Dop2MopはDevOpsおよびMLOpsプラットフォームからデータを収集し、CI/CDパイプラインから機械学習トレーニングインフラストラクチャへの横方向の移動を可能にする攻撃パスを特定します。可視化と分析のためにBloodHound互換のOpenGraph JSONを出力します。

対応プラットフォーム

DevOpsプラットフォームMLOpsプラットフォームIDプロバイダー
GitHub (Actions, Repos, Secrets)Azure Machine LearningAzure AD Service Principals
Azure DevOps (Pipelines, Service Connections)Amazon SageMakerAWS IAM Roles
OIDC/Federated Identity

マッピングされた信頼境界

Dop2Mopは研究で特定された5つの重要な信頼境界をモデル化します:

  1. TB1: コードリポジトリからCI/CDパイプラインへ - コードコミットからのパイプラインの自動トリガー
  2. TB2: サービスプリンシパル認証 - パイプラインがMLプラットフォームにアクセスするために使用するNHI資格情報
  3. TB3: コンテナ成果物の信頼 - 内部レジストリからのコンテナイメージへの暗黙的な信頼
  4. TB4: ジョブ定義の実行 - 検証せずにジョブ定義を実行するMLプラットフォーム
  5. TB5: コードのデシリアライズ - データセット(pickle、joblib)の安全でないデシリアライズ

インストール```bash

git clone https://github.com/h4wkst3r/dop2mop.git cd dop2mop pip install -r requirements.txt pip install -e .

## 収集対象

各コレクターは、プラットフォーム固有のリソースを収集し、それらの間の信頼境界をマッピングします。

| コレクター | 収集するリソース |
|-----------|-------------------|
| **GitHub** | 組織、リポジトリ、ワークフロー、シークレット、ブランチ保護ルール、OIDC構成、コンテナイメージ参照、S3バケット参照 |
| **Azure DevOps** | 組織、プロジェクト、パイプライン(YAML)、サービス接続(スコープ詳細付き)、変数グループ、エージェントプール、リポジトリ |
| **Azure ML** | ワークスペース、コンピュートクラスター/インスタンス、データストア、ML環境、登録済みモデル、ジョブ/実験、オンラインおよびバッチエンドポイント |
| **SageMaker** | トレーニングジョブ、モデル、エンドポイント、ドメイン、ノートブックインスタンス、IAM実行ロール(ポリシー分析付き)、ECRリポジトリ/イメージ、S3バケット(ML関連にフィルタリング済み) |

## クイックスタート

### デモデータの生成

Dop2Mopの動作を確認する最も速い方法は、研究からの攻撃シナリオを示すデモデータを生成することです。```bash
dop2mop demo -o demo.json

BloodHoundへの取り込み

  1. BloodHound CE(v8.0+)を開く
  2. 管理 → ファイル取り込み に移動
  3. 生成されたJSONファイルをアップロード
  4. Cypherでクエリを実行:```cypher // Azure DevOps to Azure ML Lateral Movement MATCH p=(repo)-[:TriggersPipeline]->(pipeline)-[:UsesServiceConnection]->(svcconn)-[:AuthenticatesAs]->(workspace)-[:CodeExecution]->(compute) RETURN p

// Container Image Poisoning (Supply Chain Attack) MATCH p=(workflow)-[:CanPoisonImage]->(image)<-[:PullsImage]-(job) RETURN p

// OIDC/Federated Identity Abuse (confirmed edges) MATCH p=(workflow)-[:OIDCTrust]->(oidc)-[:CanAssumeRole]->(role)-[:SubmitsJob]->(job) RETURN p

// OIDC abuse including inferred paths MATCH p=(workflow)-[:OIDCTrust]->(oidc)-[:InferredCanAssumeRole]->(role) RETURN p

// Dataset Poisoning via Pickle Deserialization MATCH p=(workflow)-[:CanPoisonDataset]->(dataset)<-[:LoadsDataset]-(job) RETURN p

// Find repos with weak/no branch protection (TB1 exploitable) MATCH (repo)-[:BypassesProtection]->(repo) RETURN repo.name, repo.default_branch

// Find overprivileged SageMaker IAM roles MATCH (role:IAMRole) WHERE role.is_admin = true OR role.has_s3_full_access = true RETURN role.name, role.attached_policies

// Find SageMaker notebooks with root + internet access MATCH (nb:SMNotebook) WHERE nb.root_access = 'Enabled' AND nb.direct_internet_access = 'Enabled' RETURN nb.name, nb.status

// Find self-hosted ADO agent pools MATCH (agent:ADOAgent) WHERE agent.is_hosted = false RETURN agent.name, agent.pool_type

---

## 設定

### 設定ファイル

毎回の実行で認証情報を渡す代わりに、設定ファイルに保存することができます。付属の例をコピーして、自分の値で埋めてください:```bash
cp dop2mop.yaml.example dop2mop.yaml
# Edit dop2mop.yaml with your credentials

Dop2Mopは以下の場所を順番に確認します:

  1. --configで指定されたパス
  2. カレントディレクトリのdop2mop.yaml / dop2mop.yml / .dop2mop.yaml
  3. ~/.dop2mop.yaml

注記: dop2mop.yamlは.gitignoreに含まれており、誤って認証情報をコミットするのを防ぎます。サンプルファイル(dop2mop.yaml.example)はコミットしても安全です。

利用可能なすべてのオプションとコメントについては、dop2mop.yaml.exampleを参照してください。

優先順位: CLI引数 > 設定ファイル > 環境変数。

認証情報の検証

完全な収集を実行する前に認証情報をテストしてください:```bash

Validate all configured collectors

dop2mop collect --validate -v

Validate specific collectors

dop2mop collect --validate --collectors github,sagemaker -v

これにより、各プラットフォームに対して軽量なAPI呼び出しを行い、トークンが有効であることを収集開始前に確認します。

### Collector Aliases

`--collectors` を使用して、完全なクラス名の代わりに短い名前を使用できます。

| Alias | Collector |
|-------|-----------|
| `github`, `gh` | GitHubCollector |
| `ado`, `azuredevops`, `azure-devops` | AzureDevOpsCollector |
| `azureml`, `azure-ml` | AzureMLCollector |
| `sagemaker`, `sm` | SageMakerCollector |```bash
# These are equivalent:
dop2mop collect --collectors GitHubCollector,SageMakerCollector
dop2mop collect --collectors github,sagemaker
dop2mop collect --collectors gh,sm

title: 概要 sidebar_label: 概要 slug: /

CLI リファレンス

コマンド概要```

dop2mop [options]

Commands: collect Collect data from DevOps/MLOps platforms demo Generate demo data with attack scenarios

### グローバルオプション

| オプション | 説明 |
|--------|-------------|
| `-v, --verbose` | 詳細出力を有効にする(INFOレベルのログ記録) |
| `--debug` | デバッグ出力を有効にする(DEBUGレベルのログ記録) |

---

### `dop2mop collect`

設定されたDevOpsおよびMLOpsプラットフォームからデータを収集します。```bash
dop2mop collect [OPTIONS]

一般オプション

OptionDescription
-o, --output FILE出力ファイルパス (デフォルト: dop2mop_output.json)
--zip出力をZIPファイルに圧縮
--config FILEYAML/JSON設定ファイルへのパス
--validate収集前に資格情報を検証
--collectors LISTカンマ区切りのコレクターまたはエイリアスのリスト(例:github,sm)
--max-items Nタイプごとに収集する最大アイテム数
--no-secretsシークレット/認証情報の列挙をスキップ

GitHubオプション

OptionDescription
--github-token TOKENGitHub個人アクセストークン
--github-org ORGGitHub組織名
--github-enterprise-url URLGitHub Enterprise ServerのURL

Azure DevOpsオプション

OptionDescription
--azure-devops-token TOKENAzure DevOps個人アクセストークン (PAT)
--azure-devops-access-token TOKENAzure DevOpsアクセストークン (Bearer認証、オプション)
--azure-devops-org ORGAzure DevOps組織名

Azure MLオプション

ツールをダウンロード