重要: このREADMEおよびその他のドキュメントは、最新のベータリリースで行われた変更を反映するように更新されていません(多くの変更が行われたため)。安定版がリリースされた時点で、これらすべてが更新される予定です(次期リリースまでのロードマップを参照)。ご自身の判断でベータリリースを実行し、質問があればお気軽にどうぞ。

概要
EDR(エンドポイント検出・対応)であり、検出に基づくアーティファクト収集機能を備えています。検出エンジンは、Windowsイベントをユーザー定義のルールと照合するために特別に設計された以前のプロジェクトGeneをベースに構築されています。
「検出に基づくアーティファクト収集」とは何ですか?
これは、アラートが直接何らかのアーティファクト収集(ファイル、レジストリ、プロセスメモリ)をトリガーできることを意味します。これにより、可能な限り早期に(ほぼリアルタイムで)アーティファクトを収集できます。
このすべての作業は、他の人々の助けになることを願い、私の自由時間に行われました。楽しんでいただければ幸いです。プロジェクトをさらに発展させるための資金提供がない限り、ベストエフォートベースで開発を継続します。問題の修正やアップデートの提供には可能な限り尽力します。プロジェクトの改善と存続のために、遠慮なくIssueを開いてください。
なぜ作ったのか
- コミュニティにオープンソースのEDRを提供するため
- 検出ルールの透明性を確保し、アナリストがルールがトリガーされた理由を理解できるようにするため
- 柔軟なルールエンジンを通じて強力な検出プリミティブを提供するため
- インシデント対応プロセスを最適化し、検出からアーティファクト収集までの時間を大幅に短縮するため
どのように動作するか
注: EDRエージェントはスタンドアロンで実行可能です(EDRマネージャーに接続しなくても動作します)。
知っておくべきこと
- Windows上でのみ動作し、ETWログを使用します。
- すべての重い処理(カーネルコンポーネント)はSysmonに依存しています。
- 非常に強力でカスタマイズ可能な検出エンジン(geneを搭載)。
- インシデントレスポンダーがインシデントレスポンダーのために構築し、彼らの仕事をより楽にすることを目的としています。
- フットプリントが低い → プロセスインジェクションなし。
- 任意のアンチウイルス製品と共存可能(MS Defenderと併用することを推奨)。
- 高スループット向けに設計。パフォーマンスに影響を与えずに、エンドポイントあたり1日1500万イベントを容易にエンリッチメント・分析できます。これをSIEMで実現するのは困難です。
- 他のツール(Splunk、ELK、MISPなど)と容易に統合可能。
- ATT&CKフレームワークと統合。
- 大規模なデプロイメント管理を容易にする強力な管理APIがあります(まだGUIはありません)。
インストール
必要条件
- Sysmonのインストール
- Sysmonの設定
- 最適化されたSysmon設定はこちらにあります。
- ProcessCreateおよびProcessTerminateのログ記録は必須です。
- Sysmonバイナリへのパスをメモしておきます(後で必要になります)。
注: イベントフィルタリングは100%Geneルールで行えるため、複雑なSysmon設定を作成する必要はありません。
インストール前の推奨事項
WHIDSを最大限活用するには、ログ記録ポリシーを強化することをお勧めします。
- PowerShellモジュールログの有効化
- サービス作成の監査: gpedit.msc ->
Computer Configuration\Windows Settings\Security Settings\Advanced Audit Policy Configuration\System Audit Policies\System\Audit Security System Extension -> 有効化
- ファイルシステム監査の有効化。Sysmonは新しいファイルが作成されたときにのみFileCreateイベントを提供します。そのため、他の種類のアクセス(読み取り、書き込みなど)をログに記録したい場合は、FS監査を有効にする必要があります。
- gpedit.msc ->
Computer Configuration\Windows Settings\Security Settings\Advanced Audit Policy Configuration\System Audit Policies\Object Access\Audit File System -> 有効化
- 任意のフォルダを右クリック -> プロパティ -> セキュリティ -> 詳細設定 -> 監査 -> 追加
プリンシパルの選択(監査対象のユーザー/グループ名を入力)。すべてのユーザーからのアクセスを記録する場合は、グループ Everyone を指定します。
適用先 は、選択したフォルダから始まるこの監査ポリシーの範囲を選択するために使用します。
基本アクセス許可 で、ログを生成するアクセスの種類を選択します。
- 確認
- ファイルシステム監査ログは
Security ログチャネルに表示されます。
- エンドポイントでアンチウイルスを実行する場合は、Microsoft Defenderを維持してください。まず、これは優れたAVであることに加え、EDRによって監視される専用ログチャネル
Microsoft-Windows-Windows Defender/Operational にアラートを記録するためです。
EDRエンドポイントエージェント (Whids.exe)
このセクションでは、エンドポイントへのエージェントインストールについて説明します。
- 最新のWHIDSリリースをダウンロードして解凍します: https://github.com/0xrawsec/whids/releases
manage.bat を管理者として実行します。
- 適切なオプションを選択してインストールを開始します。
- インストールディレクトリにファイルが作成されたことを確認します。
manage.bat の適切なオプションを選択するか、お好みのテキストエディタを使用して設定ファイルを編集します。
- マネージャーに接続して実行する場合はこの手順をスキップしてください(ルールは自動的に更新されます)。ルールディレクトリに何もないとツールは無意味になるため、そこにいくつかのgeneルールが存在することを確認してください。いくつかのルールはWHIDSにバンドルされており、それらをインストールするかどうかを選択するよう促されます。最新のルールを取得する場合は、こちらから入手できます(コンパイル済みのものを使用)。
manage.bat の適切なオプションからサービスを起動するか、再起動します(推奨方法。そうしないと一部のエンリッチメントフィールドが不完全になり、誤警報が発生する可能性があります)。
- マネージャーを設定した場合は、アラートとダンプを受信するためにそれを実行するのを忘れないでください。
注: インストール時、SysmonサービスはWHIDSサービスに依存するように設定されます。これにより、Sysmonがイベントを生成する前にEDRが確実に起動します。
EDRマネージャー
EDRマネージャーは複数のプラットフォームにインストール可能で、Windows、Linux、Darwin向けのプリビルドバイナリが提供されています。
- HTTPS接続用のTLS証明書を必要に応じて作成します。
- 設定ファイルを作成します(基本構成を生成するコマンドライン引数があります)。
- バイナリを実行します。
設定例
doc/configuration.md をご覧ください。
その他のドキュメント
既知の問題
- ネットワークドライブとしてマッピングされたネットワーク共有から実行すると正常に動作しない(この場合、whidsが自身を識別できず、ノイズが発生します)。例:
\\vbox\test が Z: ドライブとしてマウントされている場合、Z:\whids.exe を実行しても動作しませんが、\\vbox\test\whids.exe を実行すれば動作します。
次期リリースまでのロードマップ
変更履歴
v1.7
- 新しい管理HTTP APIと以下の機能:
- エンドポイント管理(一覧、作成、削除)
- マネージャーに関する基本統計の取得
- エンドポイントでのコマンド実行と結果取得
- 実行前にファイルをドロップ可能(エンドポイントに存在しないバイナリ/スクリプトを実行)。ドロップされたファイルはコマンド実行後に削除されます。
- ファイルを取得可能(コマンド実行後)、コマンドの結果を取得するため
- フォレンジック目的のファイル収集
- マネージャーとの通信以外のネットワークトラフィックを制限してエンドポイントを隔離/隔離解除
- エンドポイントログのクエリ
- エンドポイントアラートのクエリ
- タイムスタンプを基点に、その時間前後のログ/アラートを取得
- エンドポイントレポートへのアクセス
- スコアリング(各環境に相対的)により、エンドポイントを並べ替え、他と異なる動作をしているものを特定可能
- 特定の時間枠で観測されたアラート/TTP
- ルール管理(一覧、作成、更新、保存、削除)
- Sysmon v12およびv13との統合
- ClipboardDataイベントの統合
- クリップボードデータの内容をイベント内に配置し、クリップボード内容に対するルール作成を可能に
- ProcessTamperingイベントの統合
- ディスク上の.textセクションとメモリ内の差分スコアでイベントをエンリッチメント
- 通信チャネルのセキュリティを強化するため、クライアント側で証明書ピンニングを実装
- ログフィルタリング機能により、コンテキストイベントの収集が可能。ログフィルタリングはGeneフィルタリングルール(Geneドキュメント参照)を作成することで実現。
- 読みやすさを向上させるため、TOML形式の設定ファイル
- インストールディレクトリの保護強化
関連プロジェクト