MITER ENGENUITY という活動の中で、Azureの機能やログにてどんな防御や検知などができるか調査した資料があることを知り、自分でも少し調べてみました。
Microsoft Azure Security Control Mappings to MITRE ATT&CK® - MITER ENGENUITY
https://mitre-engenuity.org/cybersecurity/center-for-threat-informed-defense/our-work/security-stack-mappings-azure/
すると、付属の tool でAzureの機能やログにてどんな防御や検知などができるかを MITER ATT&CK Navigatorにマッピングする json ファイルを作成することができることがわかってきたので、実際にそのツールを使ってみました。
1.ツールのインストール
security-stack-mappingsのツールは以下の GitHubサイトからダウンロード可能です。
security-stack-mappings - GitHub
https://github.com/center-for-threat-informed-defense/security-stack-mappings
ダウンロードの仕方ですが、下図赤枠の「Code」をクリックするとブルダウンが表示されますので、その中から「Download ZIP」を選択することでダウロード可能です。
security-stack-mappings-main.zipをダウンロードしたら、zipを展開した後、以下のコマンドでインストールしていきます。
なお、環境が完全に整っていれば最後の3つのコマンドだけでインストールできますが、pip のバージョンが古かったり、pythonのバージョンが新しすぎたり(3.9以下でないとダメらしい)したので、結果的には以下のコマンドを実行しインストールしました。
% python3 -m pip install -U pip
% pip install -U wheel
% pip install -U setuptools
% pyenv versions
% pyenv local 3.8.3
% cd security-stack-mappings-main
% cd tools
% pip install -r requirements.txt
2.ツールを実行してみる
ツールが正しくインストールできたので、以下のコマンドを実行して MITER ATT&CK Navigator に読み込む jsonファイルを作成してみます。
今回は試しに以下のサイトに記載されていたサンプルのうち、AzureのIdentityProtectionに関するものだけをピックアップした jsonファイルを作成してみました。
security-stack-mappings/tools/ - GitHub
https://github.com/center-for-threat-informed-defense/security-stack-mappings/tree/main/tools
以下、実行したコマンドですが、あらかじめ作成した jsonファイルを保存する為のフォルダ my_layer を作成しています。
% mkdir ../my_layers
% cd tools
% ./mapping_cli.py visualize --visualizer AttackNavigator --mapping-file ../mappings/Azure/IdentityProtection.yaml --output ../my_layers
% cd ../my_layers
% ls
IdentityProtection.json
3.ATT&CK Navagatorにマッピング
最後に2.で作成した「IdentityProtection.json」を MITER ATT&CK Navagatorにマッピングしていきます。
MITER ATT&CK Navagator の「Open Existing Layer」から「upload from local」を選択し、先ほど先ほど作成したファイルを読み込みます。
なお、この時に以下のようにATT&CK v15にアップグレードする旨のメッセージがでますが、2.で作成したファイルはATT&CK v8用となっておりv15にアップグレードするとうまく表示されないので「No」を選択します。
すると以下の通り、AzureのIdentityProtectionに関するものだけが色塗りで表示されました。
(参考)マッピングの色を変える
なお、色については以下のファイルを修正すると変えられそうなので、あとで試してみようと思っています。
security-stack-mappings/tools/config/navigator_layer_config.yaml - GitHub
https://github.com/center-for-threat-informed-defense/security-stack-mappings/blob/main/tools/config/navigator_layer_config.yaml
その他情報
ちなみに、Azureに関しては各機能で防御・検知できるテクニックを整理した表があり、とてもわかりやすくなっています。
Microsoft Azure Security Control Mappings to MITRE ATT&CK®
https://center-for-threat-informed-defense.github.io/security-stack-mappings/Azure/README.html#azure-alerts-for-network-layer
一方で、M365についてはまだそこまで整理されていないようなので、これからの活動に期待しています。
Security Stack Mappings – Microsoft 365
https://mitre-engenuity.org/cybersecurity/center-for-threat-informed-defense/our-work/security-stack-mappings-microsoft-365/
<参考サイト>
・pyenvを使って、pythonバージョンの変更(Qiita)
https://qiita.com/twipg/items/75fc9428e4c33ed429c0
・subprocess-exited-with-error発生時の対応方法(こすたろーんエンジニアの試行錯誤部屋)
https://technoxs-stacker.hatenablog.com/entry/2023/04/28/000000
コメントを残す