
インシデントの原因となった可能性が最も高いAPTグループを特定する
このプログラムは、サイバーセキュリティインシデントのレポート(インシデントで使用されたことが検出されたMITRE ATT&CK手法を含む)を受け取り、そのインシデントの原因となった可能性が最も高いAPTグループを特定しようとします。
このスクリプトは、さまざまなMITRE ATT&CK手法やグループに簡単にアクセスするためにenterpriseattackモジュールに依存しているため、スクリプトを使用する前にこのモジュールをインストールする必要があります。このモジュールはPythonバージョン3.6以降を必要とするため、このスクリプトもそのようなバージョンのPythonでのみ動作します。
リポジトリをクローンします:
git clone https://gitlab.com/bontchev/whodunit.git
スクリプトのディレクトリに移動します:
cd whodunit
依存関係をインストールします:
pip install -r requirements.txt
python whodunit.py [-h] [-v] [-n NUMGROUPS] [-b] [-u] [-d] techniques
このスクリプトは以下のコマンドラインオプションを受け付けます:
-h, --help スクリプトの使用方法とコマンドラインオプションについての簡単な説明を表示します。
-v, --version スクリプトのバージョンを表示して終了します。
-n NUMGROUPS, --numgroups NUMGROUPS リストアップする最も近いグループの数(デフォルト: 10)。
-b, --verbose レポートからのMITRE ATT&CK手法をリストアップします。
-u, --update MITRE ATT&CKデータのローカルコピーを更新します。
-d, --deprecated 非推奨のATT&CK手法も使用します。
techniques サイバーセキュリティインシデント中に観測されたMITRE ATT&CK手法のリストを含むテキストファイル。空行は無視され、行内の#文字以降はすべてコメントと見なされて無視されます。同じ行に複数の手法をリストアップすることもでき、その場合は1つ以上の空白文字で区切る必要があります。
リポジトリには、report.txtファイルに(架空の)サイバーセキュリティインシデントのレポートが含まれています。観測された内容の自然言語による説明はコメントに記載されています。このレポートは次のようにスクリプトで処理できます:
python whodunit.py -u -b -n 5 report.txt
これにより、スクリプトはMITRE ATT&CKデータのローカルコピーを更新し(-uオプション)、インシデントレポートで認識された手法をリストアップし(-bオプション)、インシデントの原因となった可能性が最も高い5つのAPTグループを出力します(-n 5オプション):
Processing report file "report.txt"...
Observed techniques:
T1003.001
T1005
T1039
T1059.001
T1068
T1078.003
T1110.003
T1114.001
T1133
T1213.002
T1486
T1548.002
T1560
T1562.001
T1573.002
The 5 APT groups most likely responsible:
G0007 (APT28 ): 60.00%
G0016 (APT29 ): 53.33%
G0037 (FIN6 ): 46.67%
G0060 (BRONZE BUTLER ): 40.00%
G0114 (Chimera ): 40.00%
このスクリプトは、各APTグループによって使用されることが知られている手法のセットと、インシデントレポートにリストアップされている手法のセットの共通部分を見つけ、この共通部分がインシデントレポートにリストアップされている手法の部分集合として最も大きいグループをより高い信頼度で報告することで機能します。
最初の列はMITRE ATT&CKフレームワークにおけるAPTグループ識別子、2番目の列はそのグループの一般名、3番目の列はインシデントレポート内の手法のうち、対応するAPTグループによって使用されることが知られている手法の割合です。
注記: MITRE ATT&CKフレームワークのEnterpriseマトリクスのみがサポートされています(たとえばMobileやICSマトリクスはサポートされていません)。これはenterpriseattackモジュールがサポートしているものがこれだけだからです。
このプロジェクトはGNU v3.0ライセンスの下でライセンスされています。