SysmonSearch v2.0 リリース

SysmonSearchは、マイクロソフト社が提供しているSysmonが生成するイベントログの分析のためにJPCERT/CCが作成したツールです。

https://github.com/JPCERTCC/SysmonSearch

SysmonSearchは、Elastic Stack 6系で動作するように作られていましたが、新たにElastic Stack 7系で動作するバージョン2.0をリリースしました。なお、新しいバージョンではElastic Stack 6系での動作はサポートしていませんので、ご注意ください。

本記事では、SysmonSearchの以前のバージョンからの変更点や、新たな機能について紹介します。

Elastick Stack のバージョンアップへの対応

Kibana

バージョン6.6におけるフレームワークHapiのバージョンアップの影響により、Kibanaプラグインの書き方に変更がありました[1]。これに合わせてSysmonSearchプラグインのスクリプトをアップデートするとともに、機能ごとにスクリプトを分割するなどの変更を行いました。

Winlogbeat

バージョン7.0でElasticsearchにインデックスされるフィールド名がElastic Common Schemaに準拠し、6系のフィールド名から大きく変わりました[2]。複数種類のSIEMの検索クエリを生成できるツールSigmaの設定ファイルに、Winlogbeatのフィールド名がまとめられているため[3]、これを参考にフィールド名の変更に対応しました。

また、Winlogbeatはバージョン7.2.0からEVTXファイルの読み込みに対応しており[4]、既存のイベントログファイルのデータをElasticsearchにインデックスすることが可能になっています。

Sysmonイベント

Sysmonのバージョン10.0で追加されたイベントID 22(DNS query)に対応し、SysmonSearchプラグインのグラフやリストに表示されるようになっています。 図1は、DNS queryイベントのリストを表示した画面です。
SysmonのイベントID 3(Network Connection)では通信先のIPアドレスが記録されますが、プロキシサーバを使用している環境では、プロキシサーバのIPアドレスが通信先として記録され、実際の通信先の特定が難しくなります。イベントID 22では名前解決が行われたドメイン名が記録され、プロキシサーバを使用した環境で通信先を調査する際に、役立てることができます。

図1: DNS Query イベント
図1: DNS Query イベント

Reactに対応したプラグインの追加

SysmonSearchプラグインのクライアント側のスクリプトは、AngularJSで書かれています。AngularJSの最終バージョンである1.7系のサポートが2021年6月末で終了する[5]ことを考慮し、クライアント側のスクリプトをReactで作成したSysmonSearch Rプラグインを追加しました。SysmonSearch Rは、SysmonSearchプラグインとともにKibanaにインストールして使用できます。
図2は、SysmonSearch Rでプロセスの親子関係を表示した画面です。

図2: SysmonSearch Rプラグイン
図2: SysmonSearch Rプラグイン

おわりに

SysmonSearchのインストール手順や使用方法につきましては、GitHubリポジトリのWiki[6]をご参照ください。また、質問や要望、不具合の報告などがありましたら、GithubでIssueを作成していただけますと幸いです。

インシデントレスポンスグループ 添田 洋司

参考情報

[1] Elastic Blog - Kibana Plugin API Changes in 6.6
https://www.elastic.co/jp/blog/kibana-plugin-api-changes-in-6-6

[2] Elastic Blog - Beats環境におけるElastic Common Schema(ECS)への移行
https://www.elastic.co/jp/blog/migrating-to-elastic-common-schema-in-beats-environments

[3] GitHub - Neo23x0 /sigma
https://github.com/Neo23x0/sigma/blob/master/tools/config/winlogbeat.yml

[4] Elastic - Not sure how to read from .evtx files
https://www.elastic.co/guide/en/beats/winlogbeat/current/reading-from-evtx.html

[5] Angular Blog - Stable AngularJS and Long Term Support
https://blog.angular.io/stable-angularjs-and-long-term-support-7e077635ee9c

[6] GitHub – SysmonSearch Wiki
https://github.com/JPCERTCC/SysmonSearch/wiki/ホーム

≪ 前へ
トップに戻る
次へ ≫