ログファイル監査イベントの無視ポリシー

包括的な監査トレイルは、説明責任を確保するために必要です。これは、インシデント対応中に非常に価値があり、コンプライアンスを示すために必要とされることもあります。

監査されたシステムの欠点は、避けられないパフォーマンスペナルティによって表されます。実際、監査トレイルはユーザーのクエリに利用できなくなるI/O opsを消費します。時には、監査トレイルの冗長性が問題になることがあり、includeおよびexcludeで定義されたイベントタイプの制限では軽減されません。

監査イベント無視ポリシーは、監査トレイルの冗長性を調整するためのより洗練された方法です。これらのポリシーは、無視される(印刷されない)監査イベントに一致するルールを定義します。ルールは監査イベントの属性の値に基づいて一致し、includeまたはexcludeメソッドを補完します。監査イベントのコーパスと、不要なイベントを切り捨てるポリシーを想像してください。唯一の例外を除いて、すべての監査イベントは無視ポリシーの対象となります。例外はsecurity_config_changeタイプのイベントで、完全に除外されない限りフィルタリングできません。

監査イベント無視ポリシーを利用する際は、違法な行動を検出不可能にする可能性のある説明責任のギャップを認識していることになります。システムアーキテクチャが変更されるたびに、これらのポリシーを見直す時間を取ってください。

ポリシーは、名前付きのフィルタールールのセットです。各フィルタールールは、usersrealmsactionsroles、またはindices属性のいずれかの単一のイベント属性に適用されます。フィルタールールは、Lucene regexpのリストを定義し、いずれかが監査イベント属性の値に一致する必要があります。ポリシーは、構成するすべてのルールがイベントに一致する場合にイベントに一致します。監査イベントは、いずれかのポリシーに一致する場合、無視され、したがって印刷されません。他のすべての非一致イベントは通常通り印刷されます。

すべてのポリシーは、xpack.security.audit.logfile.events.ignore_filters設定ネームスペースの下で定義されています。たとえば、次のポリシーはexample1という名前で、kibana_systemまたはadmin_userプリンシパルからのイベントがワイルドカード形式のインデックスapp-logsに対して操作する場合に一致します。

Yaml

  1. xpack.security.audit.logfile.events.ignore_filters:
  2. example1:
  3. users: ["kibana_system", "admin_user"]
  4. indices: ["app-logs*"]

kibana_systemユーザーによって生成され、複数のインデックスに対して操作される監査イベントのうち、いくつかがインデックスのワイルドカードに一致しない場合、一致しません。予想通り、他のすべてのユーザーによって生成された操作(indicesフィルタに一致するインデックスのみに対して操作する場合でも)もこのポリシーには一致しません。

異なるタイプの監査イベントは、異なる属性を持つ場合があります。イベントがポリシーでフィルタを定義する属性を含まない場合、そのイベントはポリシーに一致しません。たとえば、次のポリシーは、ユーザーの役割に関係なく、authentication_successまたはauthentication_failedイベントには決して一致しません。なぜなら、これらのイベントスキーマにはrole属性が含まれていないからです。

Yaml

  1. xpack.security.audit.logfile.events.ignore_filters:
  2. example2:
  3. roles: ["admin", "ops_admin_*"]

同様に、複数の役割を持つユーザーのイベントのうち、いくつかが正規表現に一致しない場合、このポリシーには一致しません。

完全性のために、実用的なユースケースはまれであるべきですが、フィルタはイベントの欠落属性に一致することができます。空の文字列(””)または空のリスト([])を使用します。たとえば、次のポリシーは、indices属性を持たないイベント(anonymous_access_deniedauthentication_successおよび他のタイプ)や、nextインデックスに対するイベントに一致します。

Yaml

  1. xpack.security.audit.logfile.events.ignore_filters:
  2. example3:
  3. indices: ["next", ""]