审计搜索查询
编辑审计搜索查询编辑
没有专门用于搜索查询的审计事件类型。搜索查询经过分析然后处理;处理过程会触发经过审计的授权操作。但是,当进行授权审计时,客户端提交的原始原始查询在下游不可访问。
但是,搜索查询包含在 HTTP 请求正文中,并且可以切换由协调节点上的 REST 层生成的一些审计事件,以将请求正文输出到审计日志。因此,必须审计请求正文才能审计搜索查询。
要使某些审计事件包含请求正文,请在 elasticsearch.yml
文件中编辑以下设置
xpack.security.audit.logfile.events.emit_request_body: true
审计时不执行任何过滤,因此当审计事件包含请求正文时,敏感数据可能会以明文形式进行审计。此外,请求正文可能包含恶意内容,这些内容可能会破坏使用审计日志的解析器。
请求正文作为转义的 JSON 字符串值 (RFC 4627) 打印到 request.body
事件属性。
并非所有事件都包含 request.body
属性,即使切换了上述设置也是如此。包含此属性的事件有:authentication_success
、authentication_failed
、realm_authentication_failed
、tampered_request
、run_as_denied
和 anonymous_access_denied
。request.body
属性仅在协调节点(处理 REST 请求的节点)上打印。大多数这些事件类型默认情况下不包括在内。
一个很好的实用建议是将 authentication_success
添加到要审计的事件类型中(将其添加到 xpack.security.audit.logfile.events.include
中的列表中),因为默认情况下不会审计此事件类型。
通常,包含列表还包含其他事件类型,例如 access_granted
或 access_denied
。