审计搜索查询

编辑

没有专门用于搜索查询的审计事件类型。搜索查询会被分析然后处理;处理会触发需要审计的授权操作。但是,当进行授权审计时,原始的客户端提交的原始查询是无法访问的。

搜索查询包含在 HTTP 请求主体中,但是,某些由协调节点上的 REST 层生成的审计事件可以切换为将请求主体输出到审计日志。因此,必须审计请求主体才能审计搜索查询。

要使某些审计事件包含请求主体,请编辑 elasticsearch.yml 文件中的以下设置

xpack.security.audit.logfile.events.emit_request_body: true

审计时不执行任何过滤,因此当审计事件包含请求主体时,敏感数据可能会以纯文本形式进行审计。此外,请求主体可能包含恶意内容,这些内容可能会破坏使用审计日志的解析器。

请求主体将作为转义的 JSON 字符串值 (RFC 4627) 打印到 request.body 事件属性中。

并非所有事件都包含 request.body 属性,即使切换了上述设置也是如此。包含该属性的事件有:authentication_successauthentication_failedrealm_authentication_failedtampered_requestrun_as_deniedanonymous_access_deniedrequest.body 属性仅在协调节点(处理 REST 请求的节点)上打印。这些事件类型中的大多数默认情况下不包含

一个很好的实用建议是将 authentication_success 添加到被审计的事件类型中(将其添加到 xpack.security.audit.logfile.events.include 中的列表中),因为此事件类型默认情况下不会被审计。

通常,include 列表还包含其他事件类型,例如 access_grantedaccess_denied