
Sysmon構成モジュールのリポジトリ
Sysmon Modularは、Microsoft Sysinternals Sysmon向けの設定リポジトリです。小さなXMLモジュールによって、組織にとって有用なテレメトリを選択、レビュー、維持しやすくなります。sysmon-modular Goツールは、これらのモジュールから設定をビルドし、検証、分析、比較を支援します。
すべての設定は出発点です。 広く展開する前に、アプリケーション、エンドポイントの役割、検出要件、ログ予算に合わせてレビューと調整を行ってください。ワークステーション、サーバー、ドメインコントローラー向けに管理可能なプロファイルセットを使用し、代表的なマシンでその動作を測定してください。
このプロジェクトは、Sysmon Modularにインスピレーションを与え、その基盤の一部であり続けているSwiftOnSecurityのオリジナル設定なしには実現できませんでした。
通常の開始設定は、最新のGitHubリリースからダウンロードできます。これらの統合されたXMLファイルはソースモジュールから生成され、リポジトリに保存されるのではなく、リリースアセットとして配布されます。
| プロファイル | ダウンロード | 収集目標 |
|---|---|---|
| Balanced | sysmonconfig.xml | FileDeleteアーカイブを含まない、通常の開始設定。 |
| Balanced with FileDelete | sysmonconfig-with-filedelete.xml | FileDelete収集とファイルアーカイブを追加。アーカイブのディスク要件を考慮してください。 |
| Excludes only | sysmonconfig-excludes-only.xml | 除外モジュールから構築された非常に詳細なプロファイル。大量のイベント量が見込まれるため、本番使用前に調整してください。 |
3つのプロファイルはすべて、Sysmon 15.21、14.16、13.34、12.03向けに生成されています。バージョン付きファイル名には対象が含まれます(例: sysmonconfig-14.16.xml)。上記のバージョンなしの名前は15.21のエイリアスです。エンドポイントにインストールされているバージョンを選択してください。制御されたロールアウトでは、latestを自動展開するのではなく、特定のリリースを固定してください。
2つのプロファイルは、リポジトリ内で別個のサンプルとして残っています:
このリリースには、ビルド済みツール、バランスの取れた 15.21 設定から導出された ATT&CK Navigator レイヤー、および SHA256SUMS マニフェストも含まれています。
Go CLI がサポート対象のジェネレーターです。この README の例は リポジトリルート から実行し、tooling に保存されたバイナリを使用します。ソースモジュールから設定を生成したい場合は、まずローカルチェックアウトから始めてください:
git clone https://github.com/olafhartong/sysmon-modular.git
cd sysmon-modular
お使いのオペレーティングシステムとアーキテクチャ用のバイナリを GitHub Releases からダウンロードしてください。これらのバイナリを使用するのに Go は必要ありません。
| システム | リリースアセット |
|---|---|
| Windows x64 | sysmon-modular-windows-amd64.exe |
| Windows ARM64 | sysmon-modular-windows-arm64.exe |
| Linux x64 | sysmon-modular-linux-amd64 |
| Linux ARM64 | sysmon-modular-linux-arm64 |
| macOS Intel | sysmon-modular-darwin-amd64 |
| macOS Apple silicon | sysmon-modular-darwin-arm64 |
ダウンロードしたファイルを tooling/sysmon-modular、Windows では tooling/sysmon-modular.exe として保存してください。Linux と macOS では、一度実行可能にしてください:
chmod +x tooling/sysmon-modular
ソースからのビルドには Go 1.22 以降が必要で、Go 標準ライブラリのみを使用します。
Linux または macOS のリポジトリルートから:
go -C tooling build -o "$PWD/tooling/sysmon-modular" ./cmd/sysmon-modular
Windows上のPowerShellから:
go -C tooling build -o "$PWD\tooling\sysmon-modular.exe" ./cmd/sysmon-modular
Goで直接コマンドを実行することもできます。例えば:
go -C tooling run ./cmd/sysmon-modular --version
go -C tooling run は tooling ディレクトリからプログラムを実行します。リポジトリルートの例をこの形式に適応させる場合は絶対パスを使用するか、コマンドリファレンス にある tooling 相対の例に従ってください。
ツールはビルドバージョン 1.0 から開始します:
./tooling/sysmon-modular --version
./tooling/sysmon-modular help
./tooling/sysmon-modular merge --help
version と --version は sysmon-modular 1.0 を出力します。ビルドバージョンはトップレベルおよびコマンド固有のヘルプにも表示されます。これはツールを識別するものであり、--sysmon-version は代わりに対象の Sysmon 実行ファイルを選択します。
デフォルトは version.go で定義されています。ローカルビルドとリリースビルドには自動的に含まれます。特定のビルドでこれを上書きするには:
go -C tooling build -ldflags="-X main.buildVersion=1.1" \
-o "$PWD/tooling/sysmon-modular" ./cmd/sysmon-modular
Windows では、以下のコマンドで ./tooling/sysmon-modular.exe を使用してください。複数行の PowerShell の例は、カスタム設定ガイドで確認できます。
インクルードリストの例とエクスクルードリストの例を編集して必要なコレクションを選択し、設定を生成します:
./tooling/sysmon-modular merge \
--base-path "$PWD" \
--template "$PWD/templates/sysmon_template.xml" \
--include-list "$PWD/0_custom_configuration/example_include_rules.txt" \
--exclude-list "$PWD/0_custom_configuration/example_exclude_rules.txt" \
--sysmon-version 15.21 \
--unsupported exclude \
--preserve-comments \
--output "$PWD/0_custom_configuration/sysmonconfig-example.xml"
提供されたリストは選択の例を示すものであり、本番環境向けのチューニングポリシーではありません。リストのエントリには個別のモジュール名または番号付きディレクトリを指定でき、モジュールが両方に含まれる場合は除外リストが優先されます。個別のモジュールに対して --path を繰り返し指定することも、CSV、TSV、または JSON の優先度リストで --file-list を使用することもできます。
明示的な選択がない場合、merge は番号付きディレクトリ内のすべてのモジュールを検出します。これには 23_file_delete も含まれるため、バランスの取れたリリースプロファイルでは除外されているアーカイブ機能が有効になります。マージャーはデフォルトでソースの RuleGroup 関係を保持します。カスタムテンプレートはグローバル設定を保持しつつ、そのイベントフィルターが選択されたモジュールによって置き換えられます。
デフォルトのターゲットは Sysmon 15/schema 4.90 です。schema 4.91 には --sysmon-version 15.21 を選択するか、12 から 15 までのサポートされている他の実行ファイルバージョンを選択してください。サポートされていないイベントとフィールドは、デフォルトでは警告とともに出力に残ります。--unsupported exclude は既知の互換性のないコンテンツを削除します。これらの削除は収集内容を変更するため、確認してください。merge リファレンスには、完全な選択ルール、フラグ、例、およびschema 互換性テーブルが含まれています。
ドライバー関連の可視性をさらに高めるには、設定を生成する前に現在の LOLdrivers 設定を 29_file_executable_detected に追加し、マージ結果を確認することを検討してください。
すべてのソースモジュールをチェックし、警告を失敗として扱います:
./tooling/sysmon-modular validate \
--all --base-path "$PWD" --sysmon-version 15.21 --warnings-as-errors