日志文件审计事件忽略策略

编辑

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

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

审计事件忽略策略是更精细地调整审计跟踪冗长度的方法。这些策略定义了匹配将被忽略(即:不打印)的审计事件的规则。规则匹配审计事件的属性值,并补充 includeexclude 方法。想象一下审计事件的主体和策略,这些策略会剔除不需要的事件。除了一个例外,所有审计事件都受忽略策略的约束。例外情况是 security_config_change 类型的事件,除非完全排除,否则无法过滤掉。

当使用审计事件忽略策略时,您需要承认可能存在责任追究的漏洞,这可能会导致非法操作无法被检测到。请在系统架构发生更改时,花时间审查这些策略。

策略是已命名的过滤器规则集。每个过滤器规则都应用于单个事件属性,即 usersrealmsactionsrolesindices 属性之一。过滤器规则定义了一个 Lucene 正则表达式列表,其中 任何 一个表达式都必须与规则匹配的审计事件属性的值相匹配。如果组成它的 所有 规则都匹配事件,则策略匹配事件。如果审计事件匹配 任何 策略,则该事件将被忽略,因此不打印。所有其他不匹配的事件都将照常打印。

所有策略都在 xpack.security.audit.logfile.events.ignore_filters 设置命名空间下定义。例如,以下名为 example1 的策略匹配来自 kibana_systemadmin_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", ""]