Japan
サイト内の現在位置
Windowsイベントログのファストフォレンジックツール Chainsaw
NECセキュリティブログ2022年4月8日
Chainsawはインシデントの初動対応を想定して開発されたツールです。Windowsイベントログから脅威を特定します。
Windowsイベントログ[3]とは、アプリケーションやOS、システムサービスに関する重要なイベントが記録されるログ情報のことです。サイバー攻撃の被害にあった端末のOSがWindowsであった場合に、攻撃の痕跡を探すための情報のひとつとして活用できます。
WindowsイベントログはWindowsに標準搭載されているイベントビューアーから確認できます。下の画像は、筆者のWindows10の仮想マシン上でイベントビューアーを開いた画面です。Windowsイベントログを確認したことがない読者の方は、一度ご自身の端末でログの内容を確認してみると、以降の記事が理解しやすくなるかもしれません。

Chainsawの話に戻りましょう。Chainsawの開発元はChainsawの特徴を以下の通り挙げています(抜粋)。
- イベントID、文字列、正規表現等の検索条件を使って、イベントログのレコードを高度に検索および抽出できる。
- Sigmaルール(SIEMシステムのための一般化されたシグネチャフォーマット)
[4]およびChainsa用にカスタマイズされた検出ロジックを使って脅威を見つけることができる。
上記から分かるように、Chainsawは主に2つの機能を持ちます。①イベントログを条件によって絞り込む機能と、②検出ルールによって攻撃の痕跡を絞り込む機能です。
もう少しツールのイメージができるように、実際にツールを動かして出力を確認してみましょう。解析対象のWindowsイベントログは、オンライン学習サイトであるCyberDefenders[5] [6]のCyberCorp Case 1というプラクティスの問題ファイルを使いました。
プラクティスの問題ファイルをダウンロードして展開した後、フォルダ内を確認すると以下のように、Windowsイベントログを含めたファイル(winevtフォルダ)が格納されています。

winevtフォルダの中身を見ると、Windowsイベントログは以下のように格納されていました。画像は途中で切れてしまっていますが、全部で336個のファイルが格納されていました。

Chainsawはマルチプラットフォーム対応をしています。今回はUbuntu20.04の仮想マシン上でChainsawが動作することを確認しました(もちろん、Windowsでも動作可能です)。インストールは不要で、Githubから自身のプラットフォーム環境に合わせたものをダウンロードして、実行するだけです。
まずは、①イベントログを条件によって絞り込む機能を試してみます。今回はマルウェアの中間生成ファイルを探す、ということを目的として①の機能を使ってみます。例えば、イベントID= 5861(Windowsのリモート管理に利用されるWMI[7]関連のイベントID)、検索キーワード= tmpA7Z2.ps1を検索条件として探してみます。
コマンドは以下です。Searchコマンドを指定した後、Windowsイベントログが格納されたフォルダを指定し、-eオプションでイベントIDを、-sオプションで文字列を条件として指定しています。
./chainsaw search ~/work/cybercorp/winevt/Logs/ -e 5861 -s tmpA7Z2.ps1
結果は以下のように表示されます。マッチしたレコードが1件表示されました。tmpA7Z2.ps1という文字列は、今回の問題でマルウェアが途中に生成するファイルの名前でした。

次に②検出ルールによって攻撃の痕跡を絞り込む機能を試します。今回は、ビルトインされているSigmaルールを使って検出を行います。
コマンドは以下です。Huntコマンドを指定した後、Windowsイベントログが格納されたフォルダを指定し、--rulesオプションと--mappingオプションでルールを読みこませています。
./chainsaw hunt ~/work/cybercorp/winevt/Logs/ --rules sigma_rules/ --mapping mapping_files/sigma-mapping.yml
結果は以下のように表示されます。出力は一部のみ表示しています。
先頭で検出ルールにマッチしたレコードを表示し、最後にサマリを出力しています。結果からwhoamiやcertutil、netコマンドを悪用していることが分かります。


以上、Chainsawの主要な2つの機能について出力を確認しました。実際に動かしてみて、今回のケースではwinevtフォルダのサイズが約125MB程度に対してどちらも1分以内に出力が返ってきており、十分に高速だと感じました。細かなオプションやルールのカスタマイズについては、Githubやhelpオプションから確認してみてください。
今回は、Windowsイベントログの解析ツールのひとつであるChainsawをご紹介しました。筆者はお客様先で起きたセキュリティインシデント対応を担当しています。Chainsawはその初動調査に適したツールだと感じました。理由は2つあります。1つ目は、収集したWindowsイベントログをフォルダに格納するだけですぐに解析を始められることです。2つ目は検索機能が簡単に使えることです。ある程度IoC (Indicator of Compromise) を掴めてきた状況であれば、検索機能を使って感染範囲の特定に有益な情報を探し出すことができます。
今後も、インシデント対応に関連する様々なツールを調査し、私自身の業務に取り入れていきたいと考えています。インシデント対応依頼にスピーディかつ正確に調査を実施し、お客様の意思決定をサポートしていきたいと思っています。
[参考文献]
- [1]
- [2]
- [3]
- [4]
- [5]
- [6]
- [7]
執筆者プロフィール
松本 康平(まつもと こうへい)
セキュリティ技術センター リスクハンティングチーム
所属:
サイバーセキュリティ戦略統括部
セキュリティ技術センター リスクハンティングチーム
経歴:
2017年に新卒入社、セキュア開発運用に関するドキュメント整備、リスクアセスメントに従事
2018年にIPA 中核人材育成プログラムにて制御システムセキュリティについて知見を獲得
2019年から現在まで、ペネトレーションテスト、脆弱性診断、インシデントレスポンス対応、セキュリティ関連のツール調査に従事
その他:
趣味は、愛犬・キャンプ・料理

執筆者の他の記事を読む
アクセスランキング
2025年3月16日~3月22日に読まれた記事のランキング