
Azure Red Teamツール:AzureおよびAzure Active Directoryオブジェクトをグラフ化するためのツール

Stormspotterは、Azureサブスクリプション内のリソースの「攻撃グラフ」を作成します。これにより、レッドチームやペネトレーションテスターはテナント内の攻撃対象領域とピボットの機会を可視化でき、防御側の担当者はインシデント対応作業を迅速に方向付け、優先順位付けできるようになります。
ほとんどのユーザーはDocker経由でStormspotterをインストールする方が簡単だと感じるでしょう。これが推奨される方法です。
git clone https://github.com/Azure/Stormspotter
docker-compose up
docker-composeファイルは3つのコンテナを作成します:
デフォルトでは、Stormspotterコンテナはポート9091でUIを公開します。neo4jコンテナはポート7474(HTTP)と7687(Bolt)でneo4jを公開します。Neo4jのデフォルト設定ではSSLが有効になっていないため、最初はポート7474でneo4jインターフェースに直接アクセスできます。
注: 現在、Stormspotterはこれらのコンテナをローカルで実行することのみサポートしています。リモートでホストされているフロントエンドにアップロードしようとしても成功しませんが、この動作は将来的に変更される予定です。
neo4jのデフォルトの認証情報は neo4j/password です。これは docker-compose ファイル内の NEO4JAUTH 環境変数で変更できます。
Dockerを使わずにStormspotterを実行する場合は、Python 3.8、NodeJS/npm、Neo4jがインストールされている必要があります。最新のStormspotterリリースはこちらから入手できます。
バックエンドはデータを解析してNeo4jに格納する処理を担当し、FastAPIで構築されています。データベースに新しいコンテンツをアップロードする予定がない場合は、バックエンドを実行する必要はないかもしれません。バックエンドはポート9090で実行されるように設定されています。これはapp.pyの5行目のポート番号を変更することで変更できます。変更した場合は、DatabaseViewコンポーネント内のQ-Uploaderコンポーネントのポートも変更し、フロントエンドからのアップロードがバックエンドの正しいポートに送信されるようにする必要があります。
cd backend
python3 ssbackend.pyz
WebアプリはVueとQuasar Frameworkを使用して開発されています。シングルページアプリケーション(SPA)はすでにビルドされており、frontend/dist/spaにあります。このディレクトリを提供するには:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
その後、ブラウザで http://localhost:9091 にアクセスできます。
StormcollectorはStormspotterの一部で、提供された認証情報がアクセス権を持つサブスクリプションを列挙できます。Stormcollectorの 推奨 される使用方法は、お使いのオペレーティングシステムのリリースファイルにある sscollector.pyz パッケージを実行することです。このPYZはShivで作成されており、すべてのパッケージが既にzip圧縮されています!依存関係はユーザーのホームディレクトリの .shiv フォルダに自動的に展開されます。
cd stormcollector
python3 sscollector.pyz -h
何らかの理由で提供されたパッケージを使用したくない場合は、pip または pipenv で必要なパッケージをインストールできます。この方法では、パッケージの競合を防ぐために仮想環境にStormcollectorをインストールすることを 強くお勧め します。仮想環境の管理に問題がある場合は、上記の推奨方法を使用してください。
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
現在サポートされているログインタイプ:
az login first)上記のように -h スイッチを使用して、Stormcollectorが提供するすべてのオプションを確認できます。Stormcollectorの最も基本的な使用方法は次のとおりです:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
すべての認証タイプに共通のオプション
結果のアップロード
UIを起動すると、データベースタブに "Stormcollector Upload" と表示されたセクションが表示されます。このアップローダーにファイルを追加すると処理が開始されます。結果が処理されるにつれて、バックエンドのログで進行状況を確認でき、結果は同じDatabase Viewタブにも反映されます。
KeyVaultのアクセス許可を表示

Azure ADロールのメンバーを表示

受信と送信の関係を表示

このプロジェクトでは、コントリビューションと提案を歓迎しています。ほとんどのコントリビューションには、あなたがコントリビューションを使用する権利を実際に持っており、それを私たちに付与することを宣言するコントリビューターライセンス契約(CLA)に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プルリクエストを送信すると、CLAボットが自動的にCLAを提供する必要があるかどうかを判断し、PRを適宜装飾します(例:ステータスチェック、コメント)。ボットから提供される指示に従ってください。これは、当社のCLAを使用するすべてのリポジトリで一度だけ行う必要があります。
このプロジェクトはMicrosoft Open Source Code of Conductを採用しています。詳細については、Code of Conduct FAQを参照するか、追加の質問やコメントがある場合は[email protected]までお問い合わせください。