审计日志

编辑

审计日志是一个订阅功能,您可以启用它来跟踪与安全相关的事件,例如授权成功和失败。记录这些事件使您能够监视 Kibana 中是否有可疑活动,并在发生攻击时提供证据。

将 Kibana 审计日志与Elasticsearch 审计日志结合使用,以获得所有与安全相关的事件的整体视图。Kibana 遵从 Elasticsearch 安全模型进行身份验证、数据索引授权以及由集群范围权限驱动的功能。有关在 Elasticsearch 中启用审计日志的更多信息,请参阅审计安全事件

默认情况下,审计日志是禁用的。要启用此功能,您必须在 kibana.yml 中将 xpack.security.audit.enabled 设置为 true

您可以选择使用审计日志设置配置审计日志位置、文件/滚动文件附加器和忽略过滤器。

审计事件

编辑

请参阅可以为审计目的记录的事件表。

每个事件都分解为类别类型操作结果字段,以便轻松过滤、查询和聚合生成的日志。trace.id 字段可用于关联源自同一请求的多个事件。

请参阅审计模式,获取随审计事件记录的字段表。

为了确保即使在发生意外错误的情况下也能持久化每个操作的记录,在所有授权检查通过后,但在收到来自 Elasticsearch 的响应之前,异步写入操作会立即记录。有关潜在的写入错误,请参阅相应的 Elasticsearch 日志。

类别:身份验证

编辑

操作

结果

描述

user_login

success

用户已成功登录。

failure

登录尝试失败(例如,由于凭据无效)。

user_logout

unknown

用户正在注销。

session_cleanup

unknown

正在删除无效或过期的会话。

access_agreement_acknowledged

n/a

用户已确认访问协议。

类别:数据库

编辑
类型:创建
编辑

操作

结果

描述

saved_object_create

unknown

用户正在创建已保存的对象。

failure

用户无权创建已保存的对象。

saved_object_open_point_in_time

unknown

用户正在创建一个时间点,以便在查询已保存的对象时使用。

failure

用户无权为提供的已保存的对象类型创建时间点。

connector_create

unknown

用户正在创建连接器。

failure

用户无权创建连接器。

rule_create

unknown

用户正在创建规则。

failure

用户无权创建规则。

ad_hoc_run_create

unknown

用户正在创建一个即席运行。

failure

用户无权创建即席运行。

space_create

unknown

用户正在创建空间。

failure

用户无权创建空间。

case_create

unknown

用户正在创建案例。

failure

用户无权创建案例。

case_configuration_create

unknown

用户正在创建案例配置。

failure

用户无权创建案例配置。

case_comment_create

unknown

用户正在创建案例评论。

failure

用户无权创建案例评论。

case_comment_bulk_create

unknown

用户正在创建多个案例评论。

failure

用户无权创建多个案例评论。

case_user_action_create_comment

success

用户已创建案例评论。

case_user_action_create_case

success

用户已创建案例。

ml_put_ad_job

success

正在创建异常检测作业。

failure

创建异常检测作业失败。

ml_put_ad_datafeed

success

正在创建异常检测数据馈送。

failure

创建异常检测数据馈送失败。

ml_put_calendar

success

正在创建日历。

failure

创建日历失败。

ml_post_calendar_events

success

正在向日历添加事件。

failure

向日历添加事件失败。

ml_forecast

success

正在创建异常检测预测。

failure

创建异常检测预测失败。

ml_put_filter

success

正在创建过滤器。

failure

创建过滤器失败。

ml_put_dfa_job

success

正在创建数据框分析作业。

failure

创建数据框分析作业失败。

ml_put_trained_model

success

正在创建训练模型。

failure

创建训练模型失败。

product_documentation_create

unknown

用户请求安装产品文档以用于 AI 助手。

类型:更改
编辑

操作

结果

描述

saved_object_update

unknown

用户正在更新已保存的对象。

failure

用户无权更新已保存的对象。

saved_object_update_objects_spaces

unknown

用户正在向/从其他空间添加和/或删除已保存的对象。

failure

用户无权向/从其他空间添加或删除已保存的对象。

saved_object_remove_references

unknown

用户正在删除对已保存对象的引用。

failure

用户无权删除对已保存对象的引用。

saved_object_collect_multinamespace_references

success

用户已访问对多空间已保存对象的引用。

failure

用户无权访问对多空间已保存对象的引用。

connector_update

unknown

用户正在更新连接器。

failure

用户无权更新连接器。

rule_update

unknown

用户正在更新规则。

failure

用户无权更新规则。

rule_update_api_key

unknown

用户正在更新规则的 API 密钥。

failure

用户无权更新规则的 API 密钥。

rule_enable

unknown

用户正在启用规则。

failure

用户无权启用规则。

rule_disable

unknown

用户正在禁用规则。

failure

用户无权禁用规则。

rule_mute

unknown

用户正在使规则静音。

failure

用户无权使规则静音。

rule_unmute

unknown

用户正在取消规则静音。

failure

用户无权取消规则静音。

rule_alert_mute

unknown

用户正在使警报静音。

failure

用户无权使警报静音。

rule_alert_unmute

unknown

用户正在取消警报静音。

failure

用户无权取消警报静音。

space_update

unknown

用户正在更新空间。

failure

用户无权更新空间。

alert_update

unknown

用户正在更新警报。

failure

用户无权更新警报。

rule_snooze

unknown

用户正在暂停规则。

failure

用户无权暂停规则。

rule_unsnooze

unknown

用户正在取消暂停规则。

failure

用户无权取消暂停规则。

case_update

unknown

用户正在更新案例。

failure

用户无权更新案例。

case_push

unknown

用户正在将案例推送到外部服务。

failure

用户无权将案例推送到外部服务。

case_configuration_update

unknown

用户正在更新案例配置。

failure

用户无权更新案例配置。

case_comment_update

unknown

用户正在更新案例评论。

failure

用户无权更新案例评论。

case_user_action_add_case_assignees

success

用户已添加案例受让人。

case_user_action_update_case_connector

success

用户已更新案例连接器。

case_user_action_update_case_description

success

用户已更新案例描述。

case_user_action_update_case_settings

success

用户已更新案例设置。

case_user_action_update_case_severity

success

用户已更新案例严重性。

case_user_action_update_case_status

success

用户已更新案例状态。

case_user_action_pushed_case

success

用户已将案例推送到外部服务。

case_user_action_add_case_tags

success

用户已向案例添加标签。

case_user_action_update_case_title

success

用户已更新案例标题。

ml_open_ad_job

success

正在打开异常检测作业。

failure

打开异常检测作业失败。

ml_close_ad_job

success

正在关闭异常检测作业。

failure

关闭异常检测作业失败。

ml_start_ad_datafeed

success

正在启动异常检测数据馈送。

failure

启动异常检测数据馈送失败。

ml_stop_ad_datafeed

success

正在停止异常检测数据馈送。

failure

停止异常检测数据馈送失败。

ml_update_ad_job

success

正在更新异常检测作业。

failure

更新异常检测作业失败。

ml_reset_ad_job

success

正在重置异常检测作业。

failure

重置异常检测作业失败。

ml_revert_ad_snapshot

success

正在还原异常检测快照。

failure

还原异常检测快照失败。

ml_update_ad_datafeed

success

正在更新异常检测数据馈送。

failure

更新异常检测数据馈送失败。

ml_put_calendar_job

success

正在向日历添加作业。

failure

向日历添加作业失败。

ml_delete_calendar_job

success

正在从日历中删除作业。

failure

从日历中删除作业失败。

ml_update_filter

success

正在更新过滤器。

failure

更新过滤器失败。

ml_start_dfa_job

success

正在启动数据框分析作业。

failure

启动数据框分析作业失败。

ml_stop_dfa_job

success

正在停止数据框分析作业。

failure

停止数据框分析作业失败。

ml_update_dfa_job

success

正在更新数据框分析作业。

failure

更新数据框分析作业失败。

ml_start_trained_model_deployment

success

正在启动训练模型部署。

failure

启动训练模型部署失败。

ml_stop_trained_model_deployment

success

正在停止训练模型部署。

failure

停止训练模型部署失败。

ml_update_trained_model_deployment

success

正在更新训练模型部署。

failure

更新训练模型部署失败。

product_documentation_update

unknown

用户请求更新产品文档以用于 AI 助手。

类型:删除
编辑

操作

结果

描述

saved_object_delete

unknown

用户正在删除已保存的对象。

failure

用户无权删除已保存的对象。

saved_object_close_point_in_time

unknown

用户正在删除用于查询已保存对象的时间点。

failure

用户无权删除时间点。

connector_delete

unknown

用户正在删除连接器。

failure

用户无权删除连接器。

rule_delete

unknown

用户正在删除规则。

failure

用户没有删除规则的授权。

ad_hoc_run_delete

unknown

用户正在删除临时运行。

failure

用户没有删除临时运行的授权。

space_delete

unknown

用户正在删除空间。

failure

用户没有删除空间的授权。

case_delete

unknown

用户正在删除案例。

failure

用户没有删除案例的授权。

case_comment_delete_all

unknown

用户正在删除与案例关联的所有评论。

failure

用户没有删除与案例关联的所有评论的授权。

case_comment_delete

unknown

用户正在删除案例评论。

failure

用户没有删除案例评论的授权。

case_user_action_delete_case_assignees

success

用户已删除案例受让人。

case_user_action_delete_comment

success

用户已删除案例评论。

case_user_action_delete_case

success

用户已删除案例。

case_user_action_delete_case_tags

success

用户已从案例中删除标签。

ml_delete_ad_job

success

正在删除异常检测作业。

failure

删除异常检测作业失败。

ml_delete_model_snapshot

success

正在删除模型快照。

failure

删除模型快照失败。

ml_delete_ad_datafeed

success

正在删除异常检测数据源。

failure

删除异常检测数据源失败。

ml_delete_calendar

success

正在删除日历。

failure

删除日历失败。

ml_delete_calendar_event

success

正在删除日历事件。

failure

删除日历事件失败。

ml_delete_filter

success

正在删除过滤器。

failure

删除过滤器失败。

ml_delete_forecast

success

正在删除预测。

failure

删除预测失败。

ml_delete_dfa_job

success

正在删除数据框分析作业。

failure

删除数据框分析作业失败。

ml_delete_trained_model

success

正在删除训练模型。

failure

删除训练模型失败。

product_documentation_delete

unknown

用户请求删除用于 AI 助手的产品文档。

类型:访问
编辑

操作

结果

描述

saved_object_get

success

用户已访问已保存的对象。

failure

用户没有访问已保存的对象的授权。

saved_object_resolve

success

用户已访问已保存的对象。

failure

用户没有访问已保存的对象的授权。

saved_object_find

success

用户已访问作为搜索操作一部分的已保存对象。

failure

用户没有搜索已保存的对象的授权。

connector_get

success

用户已访问连接器。

failure

用户没有访问连接器的授权。

connector_find

success

用户已访问作为搜索操作一部分的连接器。

failure

用户没有搜索连接器的授权。

rule_get

success

用户已访问规则。

failure

用户没有访问规则的授权。

rule_get_execution_log

success

用户已访问规则的执行日志。

failure

用户没有访问规则的执行日志的授权。

rule_find

success

用户已访问作为搜索操作一部分的规则。

failure

用户没有搜索规则的授权。

rule_schedule_backfill

success

用户已访问作为回填计划操作一部分的规则。

failure

用户没有访问用于回填计划的规则的授权。

ad_hoc_run_get

success

用户已访问临时运行。

failure

用户没有访问临时运行的授权。

ad_hoc_run_find

success

用户已访问作为搜索操作一部分的临时运行。

failure

用户没有搜索临时运行的授权。

space_get

success

用户已访问空间。

failure

用户没有访问空间的授权。

space_find

success

用户已访问作为搜索操作一部分的空间。

failure

用户没有搜索空间的授权。

alert_get

success

用户已访问警报。

failure

用户没有访问警报的授权。

alert_find

success

用户已访问作为搜索操作一部分的警报。

failure

用户没有访问警报的授权。

case_get

success

用户已访问案例。

failure

用户没有访问案例的授权。

case_bulk_get

success

用户已访问多个案例。

failure

用户没有访问多个案例的授权。

case_resolve

success

用户已访问案例。

failure

用户没有访问案例的授权。

case_find

success

用户已访问作为搜索操作一部分的案例。

failure

用户没有搜索案例的授权。

case_ids_by_alert_id_get

success

用户已访问案例。

failure

用户没有访问案例的授权。

case_get_metrics

success

用户已访问案例的指标。

failure

用户没有访问案例指标的授权。

cases_get_metrics

success

用户已访问案例的指标。

failure

用户没有访问案例指标的授权。

case_configuration_find

success

用户已访问作为搜索操作一部分的案例配置。

failure

用户没有搜索案例配置的授权。

case_comment_get_metrics

success

用户已访问案例评论的指标。

failure

用户没有访问案例评论指标的授权。

case_comment_alerts_attach_to_case

success

用户已访问案例警报。

failure

用户没有访问案例警报的授权。

case_comment_get

success

用户已访问案例评论。

failure

用户没有访问案例评论的授权。

case_comment_bulk_get

success

用户已访问多个案例评论。

failure

用户没有访问多个案例评论的授权。

case_comment_get_all

success

用户已访问案例评论。

failure

用户没有访问案例评论的授权。

case_comment_find

success

用户已访问作为搜索操作一部分的案例评论。

failure

用户没有搜索案例评论的授权。

case_categories_get

success

用户已访问案例。

failure

用户没有访问案例的授权。

case_tags_get

success

用户已访问案例。

failure

用户没有访问案例的授权。

case_reporters_get

success

用户已访问案例。

failure

用户没有访问案例的授权。

case_find_statuses

success

用户已访问作为搜索操作一部分的案例。

failure

用户没有搜索案例的授权。

case_user_actions_get

success

用户已访问案例的用户活动。

failure

用户没有访问案例用户活动的授权。

case_user_actions_find

success

用户已访问作为搜索操作一部分的案例用户活动。

failure

用户没有访问案例用户活动的授权。

case_user_action_get_metrics

success

用户已访问案例用户活动的指标。

failure

用户没有访问案例用户活动指标的授权。

case_user_action_get_users

success

用户已访问与案例关联的用户。

failure

用户没有访问与案例关联的用户的授权。

case_connectors_get

success

用户已访问案例的连接器。

failure

用户没有访问案例连接器的授权。

ml_infer_trained_model

success

正在使用训练模型进行推断。

failure

使用训练模型进行推断失败。

类别:web

编辑

操作

结果

描述

http_request

unknown

用户正在发出 HTTP 请求。

审计模式

编辑

审计日志使用 Elastic Common Schema (ECS) 规范以 JSON 格式编写。

基本字段

编辑

字段

描述

@timestamp

事件生成的时间。

示例:2016-05-23T08:05:34.853Z

message

事件的人类可读描述。

事件字段

编辑

字段

描述

event.action

事件捕获的操作。

有关可能的操作表,请参阅审计事件

event.category

与事件关联的高级类别。

此字段与用作子类别的 event.type 密切相关。

可能的值:databasewebauthentication

event.type

与事件关联的子类别。

此字段可与 event.category 字段一起使用,以便将事件过滤到适合单个可视化的级别。

可能的值:creationaccesschangedeletion

event.outcome

表示事件是成功还是失败

  • 用户未被授权执行的任何操作都将记录为 outcome: failure
  • 授权读取操作仅在成功从 Elasticsearch 获取数据后记录,并带有 outcome: success
  • 授权的创建、更新或删除操作在尝试在 Elasticsearch 中执行操作之前记录,并带有 outcome: unknown

可能的值:successfailureunknown

用户字段

编辑

字段

描述

user.id

用户在会话中的唯一标识符(请参阅用户配置文件)。

user.name

用户的登录名。

示例:jdoe

user.roles[]

事件发生时用户的角色集。

示例:[kibana_admin, reporting_user]

Kibana 字段

编辑

字段

描述

kibana.space_id

与事件关联的空间 ID。

示例:default

kibana.session_id

与事件关联的用户会话 ID。

每次登录尝试都会产生唯一的会话 ID。

kibana.saved_object.type

与事件关联的已保存对象类型。

示例:dashboard

kibana.saved_object.id

与事件关联的已保存对象的 ID。

kibana.authentication_provider

与事件关联的身份验证提供程序的名称。

示例:my-saml-provider

kibana.authentication_type

与事件关联的身份验证提供程序的类型。

示例:saml

kibana.authentication_realm

验证用户身份的 Elasticsearch 领域的名称。

示例:native

kibana.lookup_realm

从中检索用户详细信息的 Elasticsearch 领域的名称。

示例:native

kibana.add_to_spaces[]

作为事件一部分,已保存对象要共享到的空间 ID 集。

示例:[default, marketing]

kibana.delete_from_spaces[]

作为事件一部分,要从中删除已保存对象的空间 ID 集。

示例:[marketing]

错误字段

编辑

字段

描述

error.code

描述错误的错误代码。

error.message

错误消息。

HTTP 和 URL 字段

编辑

字段

描述

client.ip

客户端 IP 地址。

http.request.method

HTTP 请求方法。

示例:getpostputdelete

http.request.headers.x-forwarded-for

X-Forwarded-For 请求标头,用于在通过代理服务器连接时识别原始客户端 IP 地址。

示例:161.66.20.177, 236.198.214.101

url.domain

URL 的域。

示例:www.elastic.co

url.path

请求的路径。

示例:/search

url.port

请求的端口。

示例:443

url.query

查询字段描述了请求的查询字符串。

示例:q=elasticsearch

url.scheme

请求的方案。

示例:https

跟踪字段

编辑

字段

描述

trace.id

唯一标识符,允许关联来自 Kibana 和 Elasticsearch 的同一事务的事件。

关联审计事件

编辑

审计事件可以通过两种方式进行关联:

  1. 来自同一请求的多个 Kibana 审计事件可以关联在一起。
  2. 如果启用了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” 为该用户创建了一个会话。