日志审计事件忽略策略

编辑

全面的审计跟踪对于确保问责制至关重要。它在事件响应期间提供巨大的价值,甚至可能需要用于证明合规性。

已审计系统的缺点在于不可避免的性能损失。事实上,审计跟踪会消耗不再可用于用户查询的 *I/O 操作*。有时,审计跟踪的冗余性可能会成为一个问题,事件类型限制(includeexclude 定义)无法缓解。

审计事件忽略策略 是一种更精细的方式来调整审计跟踪的冗余性。这些策略定义了匹配将被忽略(即:不打印)的审计事件的规则。规则匹配审计事件属性的值,并补充 includeexclude 方法。想象一下审计事件的语料库和用于剔除不需要的事件的策略。除一个例外外,所有审计事件都受忽略策略的影响。例外是类型为 security_config_change 的事件,除非完全排除,否则无法过滤掉。

使用审计事件忽略策略时,您承认可能会出现问责差距,这可能会导致非法行为无法被检测到。请在系统架构发生变化时及时查看这些策略。

策略是一组命名的筛选规则。每个筛选规则都应用于单个事件属性,即 usersrealmsactionsrolesindices 属性之一。筛选规则定义了一个 Lucene 正则表达式 列表,其中任何一个必须与审计事件属性的值匹配才能使规则匹配。如果构成策略的所有规则都与事件匹配,则策略与事件匹配。如果审计事件与任何策略匹配,则会被忽略(因此不会打印)。所有其他不匹配的事件将按通常方式打印。

所有策略都在 xpack.security.audit.logfile.events.ignore_filters 设置命名空间下定义。例如,以下名为 *example1* 的策略匹配来自 *kibana_system* 或 *admin_user* 主体并在 *app-logs*** 通配符形式的索引上操作的事件。

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

*kibana_system* 用户生成的并在多个索引上操作的审计事件(其中一些索引与索引通配符不匹配)将不会匹配。正如预期的那样,所有其他用户(即使只在与 *indices* 筛选器匹配的索引上操作)生成的事件也不会匹配此策略。

不同类型的审计事件可能具有不同的属性。如果事件不包含某些策略为其定义筛选器的属性,则事件将不会与策略匹配。例如,以下策略将永远不会匹配 authentication_successauthentication_failed 事件,而不管用户的角色如何,因为这些事件模式不包含 role 属性。

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

同样,任何具有多个角色的用户事件(其中一些角色与正则表达式不匹配)也不会匹配此策略。

为完整起见,尽管实际用例应该很少见,但筛选器可以使用空字符串 ("") 或空列表 ([]) 匹配事件的缺失属性。例如,以下策略将匹配不具有 indices 属性的事件(anonymous_access_deniedauthentication_success 和其他类型),以及在 *next* 索引上的事件。

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