こんにちは、効率性を愛するセキュリティアナリストの皆さん!🕵️♂️
前回、サンドボックスでマルウェアを実行し、ProcMonでログを収集しましたね?
しかし、実際に収集されたログファイルを開いてみると… 10万行、20万行… 終わりのないテキストの饗宴に圧倒されることがあります。😱
「こんなにたくさん、いつ全部読むんだ?ここからハッカーがやったことだけをどうやって見つけるんだ?」
人間の目でこの「砂浜」から「針」を見つけるのはほぼ不可能です。しかし、私たちのAIアシスタントにとっては朝飯前です!🥣
今日は、膨大なシステムログ(Syslog、ProcMon、Firewall Logなど)をAIに渡し、「正常なものは無視して、怪しいやつだけを選び出して!」と指示するログフィルタリングおよび異常検知の実習を行います。

1. 🚧 現実的な問題:「AIよ、これを全部読んでくれ」(コンテキストリミット)
始める前に重要な点があります。ChatGPTやClaudeのようなAIモデルは、一度に読み込める文字数(トークンリミット)に制限があります。1GBのログファイルを丸ごと貼り付けると、「長すぎます!」と吐き出されます。
そこで、私たちは「賢い戦略」が必要です。
- 前処理 (Preprocessing): Pythonなどで明白な正常な振る舞い(例:Windowsシステムの基本動作)を一次的にフィルタリングするか、
- 分割入力 (Chunking): ログを100〜200行ずつに分割して入力するか、
- 核心区間抽出: 疑わしい時間帯(マルウェア実行直後1分)のログだけを抜粋して入力します。
今日の実習は、「核心区間ログ(約50〜100行)」をAIに分析依頼する方式で進めます。
2. 📝 [実習データ] 混乱したログの例
皆さんがProcMonから取得したログが以下のように混ざっていると仮定してみましょう。正常なものと悪意のあるものが混在しています。
[ログサンプル(シミュレーション)]
Plaintext
[INFO] 14:00:01 svchost.exe (PID: 892) - Network Connect 52.1.1.1:443 (Microsoft Update)
[INFO] 14:00:02 chrome.exe (PID: 4120) - WriteFile C:UsersUserAppDataLocalGoogleCache...
[WARN] 14:00:05 powershell.exe (PID: 5521) - Process Create -Command "powershell -W Hidden -Enc aW1wb3J0..."
[INFO] 14:00:06 explorer.exe (PID: 1204) - ReadFile C:WindowsSystem32shell32.dll
[CRIT] 14:00:08 malware.exe (PID: 5521) - RegSetValue HKCUSoftwareMicrosoftWindowsCurrentVersionRunEvil
[INFO] 14:00:10 kakaotalk.exe (PID: 3002) - Network Receive 203.21.1.1:8080
[WARN] 14:00:12 cmd.exe (PID: 6601) - Process Create "vssadmin.exe Delete Shadows /All /Quiet"
さあ、このテキストの塊をAIに持っていきましょう。
3. 🧠 [プロンプト] 「正常は無視して異常だけを見つけて」
単に「分析して」と言うだけでは、AIはすべての行を説明しようとするでしょう。「フィルタリング」を強く要求する必要があります。
📋 ログ分析専用プロンプト
[役割]
>
あなたはセキュリティオペレーションセンター(SOC)のシニア脅威ハンターです。
>
[タスク]
>
以下に提供されたシステムログ(Log Data)を分析し、「異常で脅威的な振る舞い(Anomalies)」のみを抽出してください。
>
[フィルタリングルール – 重要!]
>
1. ホワイトリスト: ウェブブラウザのキャッシュ書き込み、Windowsアップデート、メッセンジャー通信など、一般的なユーザー/システム動作は徹底的に無視(Ignore)し、結果に含めないでください。
2. 検出対象:
– 難読化されたスクリプト実行 (Encoded Command)
– レジストリ自動実行登録 (Persistence)
– バックアップ削除およびシステム復旧無効化の試み
– 未知のプロセスの疑わしいネットワーク接続
>
[出力形式]
>
分析結果を以下のフォーマットの表(Table)で整理してください。
>
| 時間 | プロセス | 行為の要約 | 脅威レベル(高/中/低) | 判断根拠 |
>
[ログデータ]
>
(上記のログサンプルをここに貼り付け)
4. 🕵️♂️ [結果] AIが選り分けた「本当の脅威」
AIは私たちの指示通り、chrome.exe、explorer.exe、svchost.exeのようなノイズをすべて取り除き、本質だけを残してくれます。
🤖 AI分析結果(例)
🚨 脅威検出レポート
>
一般的なシステム動作(Chromeキャッシュ、Windowsアップデート、カカオトークなど)を除外し、セキュリティ脅威として疑われる3件のログを特定しました。
>
| 時間 | プロセス | 行為の要約 | 脅威レベル | 判断根拠 |
| — | — | — | — | — |
| 14:00:05 | powershell.exe | 難読化されたコマンド実行 | 高 (Critical) | -W Hidden -Enc オプションは、ユーザーの目を欺き、悪意のあるコードを実行する際によく使用されます。 |
| 14:00:08 | malware.exe | スタートアッププログラム登録 | 高 (Critical) | HKCU…Run キーに値を書き込むことは、再起動後もマルウェアを継続的に実行するための典型的な手法(Persistence)です。 |
| 14:00:12 | cmd.exe | シャドウコピー削除 | 高 (Critical) | vssadmin Delete Shadowsは、ランサムウェアがファイル復旧を阻止するために実行する最も代表的な事前作業です。 |
>
💡 総合意見
>
当該システムはランサムウェアまたはバックドアに感染している可能性が非常に高いです。特にvssadminの実行は、即座の隔離が必要であることを示唆しています。
5. 💡 秘訣:大容量ログ処理のための「パイプライン」構築
もしログが数十万行もある場合はどうすればよいでしょうか?
このような場合は、PythonスクリプトとAI APIを連携させるハイブリッドな方法が必要です。
- Python(一次フィルター): findstrやgrepのようなロジックで「既知の正常な」プロセス(例:System、MsMpEng.exe)をまず除去します。これによりデータ量を90%削減できます。
- AI(二次精密分析): 残りの10%の「曖昧なログ」だけをAIに送り、「これは悪意のあるものか?」と尋ねます。
💬 プロンプトのヒント:
>
「私はPythonを使えます。ProcMon.csvファイルからMicrosoft署名のあるプロセスを除外し、残りの疑わしいプロセスだけを残すPython前処理スクリプトを作成してください。」
このように依頼すれば、AIが前処理ツールまで作成してくれます!🛠️
🎉 終わりに:森を見るな、腐った木を見ろ!
今日私たちは、「ログの洪水」の中で溺れることなく、AIというフィルターを通して「脅威」だけをすくい上げる方法を学びました。
- Before: 10,000行のログを目で見て「これは正常か?」と悩む。😵
- After: AIが要約してくれた5行の核心的な脅威だけを見て対応する。😎
これこそがセキュリティ監視(SOC)の自動化であり、スマートなアナリストの業務方法です。
さて、私たちはマルウェアのコード(静的)、行動(動的)、そしてログ(痕跡)まで全て分析しました。すべてのパズルのピースが揃いました。
次回は、これらすべてのピースを一つに合わせ、[最終実習]「専門家レベルのマルウェア分析レポート自動生成」で大団円を迎えます。お楽しみに!👋
コメントを残す