
MITRE ATT&CK、Sigma、Atomic Red Team のデータを BloodHound グラフに集約し、SOC アナリストが検知カバレッジを把握してギャップを特定し、Cypher クエリでインシデントを調査できるようにします。

BloodSOCer は、複数のソース(Mitre ATT&CK、Sigma rules、Atomic Red Team)から脅威インテリジェンスデータを集約し、OpenGraph 形式で BloodHound に取り込むための JSON ファイルを生成する Python 自動化ツールです。BloodSOCer は、設定に API トークンが定義されている場合、ファイルを BloodHound にアップロードし、カスタムオブジェクトのアイコンを設定することもできます。セキュリティアナリストは、あらゆる角度からデータを可視化でき、すぐに使い始めるための Cypher クエリもいくつか用意されています。
このプロジェクトの背景にあるアイデアは、SOC が Mitre ATT&CK フレームワークのカバレッジをマッピングできるようにし、インシデントレスポンス中に盲点がある場所をすばやく特定できるようにすることです。理想的には、SOC は Sigma の「既製」検知ではなく、自組織の検知をマッピングするべきです。誤解しないでください。Sigma は私が最も好きなオープンソースプロジェクトの 1 つですが、ほとんどの検知は、実用的なチケットを生成するよりも、コンテキスト/エンリッチメントや脅威ハンティングの手がかりの生成に適しています。
私が SOC にいた頃、私たちは自分たちの検知が ATT&CK フレームワークにどのようにマッピングされているかを表示・確認しようとよく試みていました。BloodHound タイプのグラフはそれに最適だと常々思っていたので、このプロジェクトを構築しました。仲間の Blue Teamer が自分たちのカバレッジと、さまざまな要素がどのように関連しているかを可視化するのに役立つことを願っています。
ART を取り込むことで、どの TTP がテストしやすいか、どの TTP が簡単にテストできないかを確認することも可能です。
検知・テストが存在しない TTP に対して Sigma ルールや ART を作成した場合は、ぜひ元のプロジェクトにフィードバックしてください。
UL-Cyphers.py または --setup で BloodHound にインポートするhttp://127.0.0.1:8080)リポジトリをクローンします:
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
依存関係をインストールします:
pip3 install -r requirements.txt
BloodSOCer.py で API 資格情報を設定します:
apikey = "your-api-key-here"
apiid = "your-api-id-here"
python3 BloodSOCer.py
python3 BloodSOCer.py -h
python3 BloodSOCer.py --mitre, -m
python3 BloodSOCer.py --sigma, -s
python3 BloodSOCer.py --art, -r
python3 BloodSOCer.py --define-icons, -di
python3 BloodSOCer.py --setup, -st
python3 BloodSOCer.py --upload-only, -ul
python3 BloodSOCer.py --all, -a
python3 BloodSOCer.py --mitre --sigma --define-icons
python3 BloodSOCer.py --clear-db
注意: --define-icons と --upload-only を使用するには、BloodSOCer.py に API キーと API シークレットが必ず定義されている必要があります
BloodSOCer.py を編集してカスタマイズします:
http://127.0.0.1:8080)BloodSOCer/
├── BloodSOCer.py # Main entry point
├── MitreHound.py # MITRE ATT&CK data fetcher
├── ARTHound.py # Atomic Red Team data fetcher
├── SigmaHound.py # Sigma rules data fetcher
├── Define-Icons.py # BloodHound icon customizer
├── UL-Cyphers.py # Upload custom Cyphers to help query ingested data
├── Cyphers/ # Saved queries (Cypher) JSONs
├── ressources/ # Images/diagrams (Arrows graph, logo)
├── README.md # This file
├── requirements.txt # Python dependencies
└── output/ # Generated *_graph.json files
このプロジェクトでは以下のノードタイプを追加します
このプロジェクトでは以下のエッジ/リレーションシップを追加します
ExploitsするUsesするPartOfであるSubTechniqueOfであるDetectedByされるTestedByされるInvestigateWithされるBloodSOCer Arrows Graph
この Arrows.app グラフの json ファイルをダウンロードするには、ここ をクリックしてください
Mimikatz を使用した FIN7 の検知

FIN7 が使用する戦術

FIN7 のアクティビティの検知とテスト

FIN7 と Scattered Spider のアクティビティを調査するプレイブック

Define-Icons.py で定義されたカスタムアイコンは BloodHound インターフェースに適用されますApache 2.0
OpenGraph のことを初めて聞いたとき、これは Mitre ATT&CK フレームワークを取り込んで BloodHound で可視化するのに最適な方法だと思いました。Olaf Hartong は数年前にそれを実行しました(彼のブログ を参照)。どうやら、現在私の同僚である SadProcessor に触発されたようです。これで完全に循環しました。
プルリクエストとイシューを歓迎します。