审计日志
编辑审计日志
编辑审计日志是一个订阅功能,您可以启用它来跟踪与安全相关的事件,例如授权成功和失败。记录这些事件使您能够监视 Kibana 中是否有可疑活动,并在发生攻击时提供证据。
将 Kibana 审计日志与Elasticsearch 审计日志结合使用,以获得所有与安全相关的事件的整体视图。Kibana 遵从 Elasticsearch 安全模型进行身份验证、数据索引授权以及由集群范围权限驱动的功能。有关在 Elasticsearch 中启用审计日志的更多信息,请参阅审计安全事件。
默认情况下,审计日志是禁用的。要启用此功能,您必须在 kibana.yml
中将 xpack.security.audit.enabled
设置为 true
。
您可以选择使用审计日志设置配置审计日志位置、文件/滚动文件附加器和忽略过滤器。
审计事件
编辑请参阅可以为审计目的记录的事件表。
每个事件都分解为类别、类型、操作和结果字段,以便轻松过滤、查询和聚合生成的日志。trace.id 字段可用于关联源自同一请求的多个事件。
请参阅审计模式,获取随审计事件记录的字段表。
为了确保即使在发生意外错误的情况下也能持久化每个操作的记录,在所有授权检查通过后,但在收到来自 Elasticsearch 的响应之前,异步写入操作会立即记录。有关潜在的写入错误,请参阅相应的 Elasticsearch 日志。
类别:身份验证编辑 |
||
操作 |
结果 |
描述 |
|
|
用户已成功登录。 |
|
登录尝试失败(例如,由于凭据无效)。 |
|
|
|
用户正在注销。 |
|
|
正在删除无效或过期的会话。 |
|
n/a |
用户已确认访问协议。 |
操作 |
结果 |
描述 |
|
|
用户正在创建已保存的对象。 |
|
用户无权创建已保存的对象。 |
|
|
|
用户正在创建一个时间点,以便在查询已保存的对象时使用。 |
|
用户无权为提供的已保存的对象类型创建时间点。 |
|
|
|
用户正在创建连接器。 |
|
用户无权创建连接器。 |
|
|
|
用户正在创建规则。 |
|
用户无权创建规则。 |
|
|
|
用户正在创建一个即席运行。 |
|
用户无权创建即席运行。 |
|
|
|
用户正在创建空间。 |
|
用户无权创建空间。 |
|
|
|
用户正在创建案例。 |
|
用户无权创建案例。 |
|
|
|
用户正在创建案例配置。 |
|
用户无权创建案例配置。 |
|
|
|
用户正在创建案例评论。 |
|
用户无权创建案例评论。 |
|
|
|
用户正在创建多个案例评论。 |
|
用户无权创建多个案例评论。 |
|
|
|
用户已创建案例评论。 |
|
|
用户已创建案例。 |
|
|
正在创建异常检测作业。 |
|
创建异常检测作业失败。 |
|
|
|
正在创建异常检测数据馈送。 |
|
创建异常检测数据馈送失败。 |
|
|
|
正在创建日历。 |
|
创建日历失败。 |
|
|
|
正在向日历添加事件。 |
|
向日历添加事件失败。 |
|
|
|
正在创建异常检测预测。 |
|
创建异常检测预测失败。 |
|
|
|
正在创建过滤器。 |
|
创建过滤器失败。 |
|
|
|
正在创建数据框分析作业。 |
|
创建数据框分析作业失败。 |
|
|
|
正在创建训练模型。 |
|
创建训练模型失败。 |
|
|
|
用户请求安装产品文档以用于 AI 助手。 |
类型:更改编辑 |
||
操作 |
结果 |
描述 |
|
|
用户正在更新已保存的对象。 |
|
用户无权更新已保存的对象。 |
|
|
|
用户正在向/从其他空间添加和/或删除已保存的对象。 |
|
用户无权向/从其他空间添加或删除已保存的对象。 |
|
|
|
用户正在删除对已保存对象的引用。 |
|
用户无权删除对已保存对象的引用。 |
|
|
|
用户已访问对多空间已保存对象的引用。 |
|
用户无权访问对多空间已保存对象的引用。 |
|
|
|
用户正在更新连接器。 |
|
用户无权更新连接器。 |
|
|
|
用户正在更新规则。 |
|
用户无权更新规则。 |
|
|
|
用户正在更新规则的 API 密钥。 |
|
用户无权更新规则的 API 密钥。 |
|
|
|
用户正在启用规则。 |
|
用户无权启用规则。 |
|
|
|
用户正在禁用规则。 |
|
用户无权禁用规则。 |
|
|
|
用户正在使规则静音。 |
|
用户无权使规则静音。 |
|
|
|
用户正在取消规则静音。 |
|
用户无权取消规则静音。 |
|
|
|
用户正在使警报静音。 |
|
用户无权使警报静音。 |
|
|
|
用户正在取消警报静音。 |
|
用户无权取消警报静音。 |
|
|
|
用户正在更新空间。 |
|
用户无权更新空间。 |
|
|
|
用户正在更新警报。 |
|
用户无权更新警报。 |
|
|
|
用户正在暂停规则。 |
|
用户无权暂停规则。 |
|
|
|
用户正在取消暂停规则。 |
|
用户无权取消暂停规则。 |
|
|
|
用户正在更新案例。 |
|
用户无权更新案例。 |
|
|
|
用户正在将案例推送到外部服务。 |
|
用户无权将案例推送到外部服务。 |
|
|
|
用户正在更新案例配置。 |
|
用户无权更新案例配置。 |
|
|
|
用户正在更新案例评论。 |
|
用户无权更新案例评论。 |
|
|
|
用户已添加案例受让人。 |
|
|
用户已更新案例连接器。 |
|
|
用户已更新案例描述。 |
|
|
用户已更新案例设置。 |
|
|
用户已更新案例严重性。 |
|
|
用户已更新案例状态。 |
|
|
用户已将案例推送到外部服务。 |
|
|
用户已向案例添加标签。 |
|
|
用户已更新案例标题。 |
|
|
正在打开异常检测作业。 |
|
打开异常检测作业失败。 |
|
|
|
正在关闭异常检测作业。 |
|
关闭异常检测作业失败。 |
|
|
|
正在启动异常检测数据馈送。 |
|
启动异常检测数据馈送失败。 |
|
|
|
正在停止异常检测数据馈送。 |
|
停止异常检测数据馈送失败。 |
|
|
|
正在更新异常检测作业。 |
|
更新异常检测作业失败。 |
|
|
|
正在重置异常检测作业。 |
|
重置异常检测作业失败。 |
|
|
|
正在还原异常检测快照。 |
|
还原异常检测快照失败。 |
|
|
|
正在更新异常检测数据馈送。 |
|
更新异常检测数据馈送失败。 |
|
|
|
正在向日历添加作业。 |
|
向日历添加作业失败。 |
|
|
|
正在从日历中删除作业。 |
|
从日历中删除作业失败。 |
|
|
|
正在更新过滤器。 |
|
更新过滤器失败。 |
|
|
|
正在启动数据框分析作业。 |
|
启动数据框分析作业失败。 |
|
|
|
正在停止数据框分析作业。 |
|
停止数据框分析作业失败。 |
|
|
|
正在更新数据框分析作业。 |
|
更新数据框分析作业失败。 |
|
|
|
正在启动训练模型部署。 |
|
启动训练模型部署失败。 |
|
|
|
正在停止训练模型部署。 |
|
停止训练模型部署失败。 |
|
|
|
正在更新训练模型部署。 |
|
更新训练模型部署失败。 |
|
|
|
用户请求更新产品文档以用于 AI 助手。 |
类型:删除编辑 |
||
操作 |
结果 |
描述 |
|
|
用户正在删除已保存的对象。 |
|
用户无权删除已保存的对象。 |
|
|
|
用户正在删除用于查询已保存对象的时间点。 |
|
用户无权删除时间点。 |
|
|
|
用户正在删除连接器。 |
|
用户无权删除连接器。 |
|
|
|
用户正在删除规则。 |
|
用户没有删除规则的授权。 |
|
|
|
用户正在删除临时运行。 |
|
用户没有删除临时运行的授权。 |
|
|
|
用户正在删除空间。 |
|
用户没有删除空间的授权。 |
|
|
|
用户正在删除案例。 |
|
用户没有删除案例的授权。 |
|
|
|
用户正在删除与案例关联的所有评论。 |
|
用户没有删除与案例关联的所有评论的授权。 |
|
|
|
用户正在删除案例评论。 |
|
用户没有删除案例评论的授权。 |
|
|
|
用户已删除案例受让人。 |
|
|
用户已删除案例评论。 |
|
|
用户已删除案例。 |
|
|
用户已从案例中删除标签。 |
|
|
正在删除异常检测作业。 |
|
删除异常检测作业失败。 |
|
|
|
正在删除模型快照。 |
|
删除模型快照失败。 |
|
|
|
正在删除异常检测数据源。 |
|
删除异常检测数据源失败。 |
|
|
|
正在删除日历。 |
|
删除日历失败。 |
|
|
|
正在删除日历事件。 |
|
删除日历事件失败。 |
|
|
|
正在删除过滤器。 |
|
删除过滤器失败。 |
|
|
|
正在删除预测。 |
|
删除预测失败。 |
|
|
|
正在删除数据框分析作业。 |
|
删除数据框分析作业失败。 |
|
|
|
正在删除训练模型。 |
|
删除训练模型失败。 |
|
|
|
用户请求删除用于 AI 助手的产品文档。 |
类型:访问编辑 |
||
操作 |
结果 |
描述 |
|
|
用户已访问已保存的对象。 |
|
用户没有访问已保存的对象的授权。 |
|
|
|
用户已访问已保存的对象。 |
|
用户没有访问已保存的对象的授权。 |
|
|
|
用户已访问作为搜索操作一部分的已保存对象。 |
|
用户没有搜索已保存的对象的授权。 |
|
|
|
用户已访问连接器。 |
|
用户没有访问连接器的授权。 |
|
|
|
用户已访问作为搜索操作一部分的连接器。 |
|
用户没有搜索连接器的授权。 |
|
|
|
用户已访问规则。 |
|
用户没有访问规则的授权。 |
|
|
|
用户已访问规则的执行日志。 |
|
用户没有访问规则的执行日志的授权。 |
|
|
|
用户已访问作为搜索操作一部分的规则。 |
|
用户没有搜索规则的授权。 |
|
|
|
用户已访问作为回填计划操作一部分的规则。 |
|
用户没有访问用于回填计划的规则的授权。 |
|
|
|
用户已访问临时运行。 |
|
用户没有访问临时运行的授权。 |
|
|
|
用户已访问作为搜索操作一部分的临时运行。 |
|
用户没有搜索临时运行的授权。 |
|
|
|
用户已访问空间。 |
|
用户没有访问空间的授权。 |
|
|
|
用户已访问作为搜索操作一部分的空间。 |
|
用户没有搜索空间的授权。 |
|
|
|
用户已访问警报。 |
|
用户没有访问警报的授权。 |
|
|
|
用户已访问作为搜索操作一部分的警报。 |
|
用户没有访问警报的授权。 |
|
|
|
用户已访问案例。 |
|
用户没有访问案例的授权。 |
|
|
|
用户已访问多个案例。 |
|
用户没有访问多个案例的授权。 |
|
|
|
用户已访问案例。 |
|
用户没有访问案例的授权。 |
|
|
|
用户已访问作为搜索操作一部分的案例。 |
|
用户没有搜索案例的授权。 |
|
|
|
用户已访问案例。 |
|
用户没有访问案例的授权。 |
|
|
|
用户已访问案例的指标。 |
|
用户没有访问案例指标的授权。 |
|
|
|
用户已访问案例的指标。 |
|
用户没有访问案例指标的授权。 |
|
|
|
用户已访问作为搜索操作一部分的案例配置。 |
|
用户没有搜索案例配置的授权。 |
|
|
|
用户已访问案例评论的指标。 |
|
用户没有访问案例评论指标的授权。 |
|
|
|
用户已访问案例警报。 |
|
用户没有访问案例警报的授权。 |
|
|
|
用户已访问案例评论。 |
|
用户没有访问案例评论的授权。 |
|
|
|
用户已访问多个案例评论。 |
|
用户没有访问多个案例评论的授权。 |
|
|
|
用户已访问案例评论。 |
|
用户没有访问案例评论的授权。 |
|
|
|
用户已访问作为搜索操作一部分的案例评论。 |
|
用户没有搜索案例评论的授权。 |
|
|
|
用户已访问案例。 |
|
用户没有访问案例的授权。 |
|
|
|
用户已访问案例。 |
|
用户没有访问案例的授权。 |
|
|
|
用户已访问案例。 |
|
用户没有访问案例的授权。 |
|
|
|
用户已访问作为搜索操作一部分的案例。 |
|
用户没有搜索案例的授权。 |
|
|
|
用户已访问案例的用户活动。 |
|
用户没有访问案例用户活动的授权。 |
|
|
|
用户已访问作为搜索操作一部分的案例用户活动。 |
|
用户没有访问案例用户活动的授权。 |
|
|
|
用户已访问案例用户活动的指标。 |
|
用户没有访问案例用户活动指标的授权。 |
|
|
|
用户已访问与案例关联的用户。 |
|
用户没有访问与案例关联的用户的授权。 |
|
|
|
用户已访问案例的连接器。 |
|
用户没有访问案例连接器的授权。 |
|
|
|
正在使用训练模型进行推断。 |
|
使用训练模型进行推断失败。 |
|
类别:web编辑 |
||
操作 |
结果 |
描述 |
|
|
用户正在发出 HTTP 请求。 |
审计模式
编辑审计日志使用 Elastic Common Schema (ECS) 规范以 JSON 格式编写。
基本字段编辑 |
|
字段 |
描述 |
|
事件生成的时间。 示例: |
|
事件的人类可读描述。 |
事件字段编辑 |
|
字段 |
描述 |
事件捕获的操作。 有关可能的操作表,请参阅审计事件。 |
|
与事件关联的高级类别。 此字段与用作子类别的 可能的值: |
|
与事件关联的子类别。 此字段可与 可能的值: |
|
表示事件是成功还是失败
可能的值: |
|
用户字段编辑 |
|
字段 |
描述 |
|
用户在会话中的唯一标识符(请参阅用户配置文件)。 |
|
用户的登录名。 示例: |
|
事件发生时用户的角色集。 示例: |
Kibana 字段编辑 |
|
字段 |
描述 |
|
与事件关联的空间 ID。 示例: |
|
与事件关联的用户会话 ID。 每次登录尝试都会产生唯一的会话 ID。 |
|
与事件关联的已保存对象类型。 示例: |
|
与事件关联的已保存对象的 ID。 |
|
与事件关联的身份验证提供程序的名称。 示例: |
|
与事件关联的身份验证提供程序的类型。 示例: |
|
验证用户身份的 Elasticsearch 领域的名称。 示例: |
|
从中检索用户详细信息的 Elasticsearch 领域的名称。 示例: |
|
作为事件一部分,已保存对象要共享到的空间 ID 集。 示例: |
|
作为事件一部分,要从中删除已保存对象的空间 ID 集。 示例: |
错误字段编辑 |
|
字段 |
描述 |
|
描述错误的错误代码。 |
|
错误消息。 |
HTTP 和 URL 字段编辑 |
|
字段 |
描述 |
|
客户端 IP 地址。 |
|
HTTP 请求方法。 示例: |
|
示例: |
|
URL 的域。 示例: |
|
请求的路径。 示例: |
|
请求的端口。 示例: |
|
查询字段描述了请求的查询字符串。 示例: |
|
请求的方案。 示例: |
跟踪字段编辑 |
|
字段 |
描述 |
唯一标识符,允许关联来自 Kibana 和 Elasticsearch 的同一事务的事件。 |
关联审计事件
编辑审计事件可以通过两种方式进行关联:
- 来自同一请求的多个 Kibana 审计事件可以关联在一起。
- 如果启用了Elasticsearch 审计日志记录,则来自一个请求的 Kibana 审计事件可以与创建 Elasticsearch 审计事件的后端调用相关联。
以下示例经过简化,为了清晰起见,省略了许多字段并缩短了值。
示例 1:关联多个 Kibana 审计事件
编辑当 "thom" 创建新的告警规则时,会写入五个审计事件。
{"event":{"action":"http_request","category":["web"],"outcome":"unknown"},"http":{"request":{"method":"post"}},"url":{"domain":"localhost","path":"/api/alerting/rule","port":5601,"scheme":"https"},"user":{"name":"thom","roles":["superuser"]},"kibana":{"space_id":"default","session_id":"3dHCZRB..."},"@timestamp":"2022-01-25T13:05:34.449-05:00","message":"User is requesting [/api/alerting/rule] endpoint","trace":{"id":"e300e06..."}} {"event":{"action":"space_get","category":["database"],"type":["access"],"outcome":"success"},"kibana":{"space_id":"default","session_id":"3dHCZRB...","saved_object":{"type":"space","id":"default"}},"user":{"name":"thom","roles":["superuser"]},"@timestamp":"2022-01-25T13:05:34.454-05:00","message":"User has accessed space [id=default]","trace":{"id":"e300e06..."}} {"event":{"action":"connector_get","category":["database"],"type":["access"],"outcome":"success"},"kibana":{"space_id":"default","session_id":"3dHCZRB...","saved_object":{"type":"action","id":"5e3b1ae..."}},"user":{"name":"thom","roles":["superuser"]},"@timestamp":"2022-01-25T13:05:34.948-05:00","message":"User has accessed connector [id=5e3b1ae...]","trace":{"id":"e300e06..."}} {"event":{"action":"connector_get","category":["database"],"type":["access"],"outcome":"success"},"kibana":{"space_id":"default","session_id":"3dHCZRB...","saved_object":{"type":"action","id":"5e3b1ae..."}},"user":{"name":"thom","roles":["superuser"]},"@timestamp":"2022-01-25T13:05:34.956-05:00","message":"User has accessed connector [id=5e3b1ae...]","trace":{"id":"e300e06..."}} {"event":{"action":"rule_create","category":["database"],"type":["creation"],"outcome":"unknown"},"kibana":{"space_id":"default","session_id":"3dHCZRB...","saved_object":{"type":"alert","id":"64517c3..."}},"user":{"name":"thom","roles":["superuser"]},"@timestamp":"2022-01-25T13:05:34.956-05:00","message":"User is creating rule [id=64517c3...]","trace":{"id":"e300e06..."}}
所有这些审计事件都可以通过相同的 trace.id
值 "e300e06..."
关联在一起。第一个事件是 HTTP API 调用,接下来的审计事件是验证空间和连接器的检查,最后一个审计事件是实际的规则创建。
示例 2:将 Kibana 审计事件与 Elasticsearch 审计事件相关联
编辑当 “thom” 登录时,会写入一个 "user_login" Kibana 审计事件。
{"event":{"action":"user_login","category":["authentication"],"outcome":"success"},"kibana":{"session_id":"ab93zdA..."},"user":{"name":"thom","roles":["superuser"]},"@timestamp":"2022-01-25T09:40:39.267-05:00","message":"User [thom] has logged in using basic provider [name=basic]","trace":{"id":"818cbf3..."}}
Kibana 审计事件中的 trace.id
值 "818cbf3..."
可以与这六个 Elasticsearch 审计事件中的 opaque_id
值相关联。
{"type":"audit", "timestamp":"2022-01-25T09:40:38,604-0500", "event.action":"access_granted", "user.name":"thom", "user.roles":["superuser"], "request.id":"YCx8wxs...", "action":"cluster:admin/xpack/security/user/authenticate", "request.name":"AuthenticateRequest", "opaque_id":"818cbf3..."} {"type":"audit", "timestamp":"2022-01-25T09:40:38,613-0500", "event.action":"access_granted", "user.name":"kibana_system", "user.roles":["kibana_system"], "request.id":"Ksx73Ad...", "action":"indices:data/write/index", "request.name":"IndexRequest", "indices":[".kibana_security_session_1"], "opaque_id":"818cbf3..."} {"type":"audit", "timestamp":"2022-01-25T09:40:38,613-0500", "event.action":"access_granted", "user.name":"kibana_system", "user.roles":["kibana_system"], "request.id":"Ksx73Ad...", "action":"indices:data/write/bulk", "request.name":"BulkRequest", "opaque_id":"818cbf3..."} {"type":"audit", "timestamp":"2022-01-25T09:40:38,613-0500", "event.action":"access_granted", "user.name":"kibana_system", "user.roles":["kibana_system"], "request.id":"Ksx73Ad...", "action":"indices:data/write/bulk[s]", "request.name":"BulkShardRequest", "indices":[".kibana_security_session_1"], "opaque_id":"818cbf3..."} {"type":"audit", "timestamp":"2022-01-25T09:40:38,613-0500", "event.action":"access_granted", "user.name":"kibana_system", "user.roles":["kibana_system"], "request.id":"Ksx73Ad...", "action":"indices:data/write/index:op_type/create", "request.name":"BulkItemRequest", "indices":[".kibana_security_session_1"], "opaque_id":"818cbf3..."} {"type":"audit", "timestamp":"2022-01-25T09:40:38,613-0500", "event.action":"access_granted", "user.name":"kibana_system", "user.roles":["kibana_system"], "request.id":"Ksx73Ad...", "action":"indices:data/write/bulk[s][p]", "request.name":"BulkShardRequest", "indices":[".kibana_security_session_1"], "opaque_id":"818cbf3..."}
Elasticsearch 审计事件显示 “thom” 已通过身份验证,随后 “kibana_system” 为该用户创建了一个会话。