概要
すぐに使える検出ルールは脅威シナリオの大半をカバーしていますが、特定のユースケースに合わせてカスタム検出ルールを作成することもできます。カスタムルールの作成方法については、ルールの作成を参照してください。
ルールタイプ
以下のタイプのカスタム検出ルールを作成できます。
- リアルタイムルール: 受信ログを継続的に監視および分析します。
- スケジュールルール: 事前にスケジュールされた間隔で実行され、ログデータを分析します。
- ヒストリカルジョブ: 過去のログに対して検出を実行し、検出をバックテストします。
検出方法
カスタム検出ルールまたはヒストリカルジョブを作成する際、以下の検出方法を利用できます。
- しきい値: クエリ数が指定されたケース(しきい値以上 (
a > N) またはしきい値以下 (a < N または a <= 0) のケースを含む)を満たしたときに検知します。 - 新しい値: 属性が全く新しい値に変更されたときに検知します。
- 異常: 動作が過去のベースラインから逸脱したときに検知します。
- コンテンツ異常: イベントのコンテンツが過去のベースラインと比較して異常である場合に検知します。
- 不可能な移動: ユーザーアクティビティログで不可能な速度が検知された場合に検知します。
- サードパーティ: サードパーティのセキュリティログをシグナルにマッピングし、ログ属性に基づいて重大度を設定します。
- シグナル相関: 複数のシグナルを組み合わせて新しいシグナルを生成し、より複雑なユースケースでアラートを出せるようにして、アラート疲れを軽減します。
Reference Tableに基づくログのフィルター
Reference Tableを使用すると、メタデータとログを組み合わせて、アプリケーションの問題を解決するための詳細な情報を得ることができます。ルールのクエリを定義する際、Reference Tableに基づいたクエリフィルターを追加して、ルックアップクエリを実行できます。この機能の作成および管理の詳細については、Reference Tablesガイドを参照してください。
次の例では、製品情報を含むReference Tableを使用して、ログのフィルタリングとエンリッチメントを行っています。
ユニットテスト
ユニットテストを使用してサンプルログに対してルールをテストし、検出ルールが期待どおりに機能していることを確認します。これは、まだ発生していないイベントの検出ルールを作成する場合など、そのイベントの実際のログがない場合に役立ちます。例:login_attemptフィールドを含むログがあり、login_attempt:failedを含むログを検出したいが、login_attempt:successを含むログしかない場合。ルールをテストするには、login_attempt:successを含むログをコピーし、login_attemptフィールドをfailedに変更してサンプルログを作成します。
参考資料