POC : AIを活用したMITRE攻撃検出とアラートエンリッチメント
このリポジトリは、ログからMITRE ATT&CKのテクニックを検出し、ローカルLLMを使用して出力をエンリッチする機械学習パイプラインを示しています。
概要
プロジェクトは2つの主要コンポーネントに分かれています:
- 機械学習モデル(ML) – ログをMITRE ATT&CKテクニックに分類
- LLMエンリッチメント – MLの予測をアナリスト向けの説明と実用的な洞察でエンリッチ
機械学習モデル
目的
MLモデルは、ログイベントからMITREテクニック(またはBENIGN)を予測するようにトレーニングされています。
これにより、潜在的に悪意のある動作の検出と分類を自動化できます。
アプローチ
- 特徴量: ログの
commandlineフィールド
- ベクトル化: TF-IDF(Term Frequency – Inverse Document Frequency)
- モデル: RandomForestClassifier(ロバスト、解釈可能、CPUフレンドリー)
- ターゲット:
mitre_label(例:T1059.001、T1105、BENIGN)
トレーニング
python scripts/train_mitre_model.py
このスクリプトは:
- データセット
dataset_full_160k.csvを読み込む
- データをトレーニング/テストセットに分割
- コマンドラインをTF-IDFベクトルに変換
- Random Forestモデルをトレーニング
- パフォーマンスを評価(適合率、再現率、F1スコア、混同行列)
- トレーニング済みモデルとベクトライザーを保存:
- models/mitre_ml_model.pkl
- models/tfidf_vectorizer.pkl

LLMエンリッチメント
目的
MLモデルがMITREテクニックを予測すると、LLMは以下の情報を提供して結果をエンリッチします:
- テクニックの説明
- コマンドがテクニックに一致する理由
- 攻撃者の意図
- 推奨される調査手順
- 提案される検出ルール
このステップは、生のML予測とSOCアナリストの実用的な洞察を橋渡しします。
使用方法
ローカルLLM(例:Ollama経由のPhi-3)は、以下の内容を含むプロンプトで呼び出されます:
python scripts/enrich_with_llm.py

Pythonの依存関係
pip3 install -r requirements.txt
ライブラリ
- pandas
- scikit-learn
- requests
注意事項
- test_model.pyはモデルのテストに使用されます(オプション)。
- スクリプトは、リストされた依存関係を持つPython 3.13+環境でローカルに実行するように設計されています。
- マシンにOllamaをインストールし、Phi-3ミニモデルを追加してください。