作者:来自 Elastic Valentin Crettaz

日志附带八条告警规则和七个仪表板,其中包括 Kibana 对象取证仪表板,可显示已删除的检测规则、删除该规则的人及其所在空间。
借助 Elastic Cloud 无服务器服务,从运维工作中解放出来。自动扩缩容,应对负载高峰,专注于构建 --- 开始为期 14 天的免费试用,亲自体验!
你可以按照这些指南构建人工智能驱动的搜索体验,或跨业务系统和软件进行搜索。
日志投递(Log delivery)现已在 Elastic Cloud 无服务器服务中正式发布。这意味着,你可以将任意无服务器项目的审计日志发送到同一组织中的 Elastic 可观测性无服务器项目或 Elastic 安全无服务器项目。日志附带八条告警规则和七个仪表板,涵盖 Kibana 中已保存对象的变更及每次变更发生的空间、谁读取了哪个 Elasticsearch 索引,以及谁的访问被拒绝。它们还涵盖登录活动及每次登录使用的凭据。五种忽略筛选条件可在投递前过滤掉整类日志,让你只需为将要调查的内容支付保留费用。此次首次发布提供的是项目活动日志,即源项目中 Elasticsearch 和 Kibana 的审计记录。
日志投递如何发送审计日志
你只需选择源项目和目标项目。如果不需要完整的审计记录,可以定义要忽略的内容。Elastic 会完成其余工作并投递审计记录,数据在传输和静态存储时均会加密。
组织中的任何项目类型都可以作为源项目,包括搜索、Elasticsearch 向量数据库 、可观测性或安全项目。目标项目必须是同一组织中的可观测性或安全项目。(如果源项目本身就是这两种类型之一,也可以将审计日志发送给自己。)
目标项目是你分析审计日志和设置保留时长的地方。它可以位于任何区域,也可以使用任何云服务提供商,但必须属于同一组织。
每个源项目都会将其审计记录发送到选定的目标项目。如果你的合规团队或安全 运营 中心希望在同一处开展调查,可以让多个源项目将日志发送到同一个可观测性或安全目标项目。
审计日志的摄取和保留费用计入目标项目。你可以直接修改目标数据流的保留时长,决定证据应保留多久,而保留时长也会影响费用。
如果将忽略 筛选条件留空,所有事件都会被投递。这是数据量最大的选项,繁忙项目的可观测性或安全费用会因此增加。添加忽略筛选条件后,匹配的事件会在投递前被丢弃,因此不会到达目标项目,也不会产生费用。
启用日志投递后,你可以在目标项目的自动运维存储层视图(AutoOps Storage Tier view)中查看摄取速率和当前保留的数据存储量:
自动运维存储层视图,可用于直观查看审计日志的摄取速率和当前保留的数据量。
Elastic Cloud 无服务器服务审计日志包含哪些内容
此次发布提供项目级活动日志,即源项目中 Elasticsearch 和 Kibana 的活动,包括索引、模板和流水线变更,数据搜索、读取和写入,以及 用户界面 访问。所有事件都会写入 logs-elastic_cloud.serverless_audit.otel-default。
service.name 用于区分事件生成方。Elasticsearch 事件使用 serverless-elasticsearch,Kibana 事件使用 serverless-kibana。每个事件都包含 project.id,因此,即使多个源项目共用同一个目标项目,你也能判断事件来自哪个项目。
安全运营中心可以使用同一数据流查看登录活动和访问失败情况,合规团队则可以将其保留为证据,记录谁更改了什么。组织管理活动也将很快纳入同一审计记录,包括登录、成员变更、身份与访问管理检查,以及项目设置变更。
如何启用审计日志投递(log delivery)
启用 Elastic Cloud 无服务器服务审计日志投递需要五个步骤,你需要拥有源项目的管理员或编辑者角色:
- 在 Elastic Cloud 首页找到源项目,选择管理(Manage)。
- 在导航菜单中选择日志投递(Log delivery)。
- 在审计记录(Audit trail)中选择目标项目。如果你的团队已经在可观测性项目中开展调查,可以选择该项目,但安全项目更适合存放此类日志。
- 选择所需的忽略(Ignore)筛选条件,将 审计记录(Audit trail)切换为已启用(Enabled) ,然后点击保存(Save)。
- 点击查看仪表板(View dashboard),从不同维度分析审计记录。
启用审计记录:选择目标项目,过滤掉不需要的内容,然后打开仪表板。
审计日志记录最佳实践:保留什么,过滤什么
每种筛选条件都会在投递前过滤掉数据流中的一部分内容:
| 忽略筛选条件( Ignore filter ) | 过滤的内容( What it drops ) | 适用场景( When to use it ) |
|---|---|---|
| 数据搜索和读取 | 对数据的搜索和读取操作 | 搜索密集型项目,除非你需要保留谁读取了数据的证据 |
| 用户界面请求 | Kibana 中的只读点击操作;已保存对象的变更仍会投递 | 只读点击操作属于干扰信息时 |
| 数据写入 | 摄取和批量写入操作 | 希望保留配置和对象变更,但不需要大量写入记录时 |
| 成功登录 | 成功的登录;失败登录仍会投递 | 只关注失败登录时 |
| 常规用户和角色检查 | 常规身份与访问管理角色检查;异常的身份与访问管理事件仍会投递 | 希望保留异常的身份与访问管理事件,而非每次角色检查时 |
可以先忽略数据搜索和读取,以及用户界面请求。这样既能保留变更,又能过滤掉大量搜索操作和界面点击记录。如果你需要完整的数据流,并能承担相应费用,就不要启用任何筛选条件。
捕获凭据攻击的 8 条告警规则
攻击者利用凭据实施攻击时,会在审计数据流中留下特定模式。可能是同一个身份反复失败,也可能是同一个地址依次尝试多个身份并失败。我们提供八条告警规则来监测这些模式。
分析师已经在采用这种工作方式:收到告警后,打开仪表板,从那里开始调查。这八条规则覆盖了第一步。
其中四条规则用于监测凭据攻击:
| 规则( Rule ) | 触发条件( What triggers it ) |
|---|---|
| 密码猜测 | 同一个身份在 10 分钟内至少登录失败 15 次。 |
| 密码喷洒 | 同一个客户端互联网协议地址在 15 分钟内尝试至少 10 个身份,均登录失败。 |
| 撞库 | 在 10 分钟内,涉及 10 个身份和五个公网地址的登录失败至少达到 30 次。 |
| 多次失败后成功登录 | 在同一个 30 分钟时间段内,至少失败五次后成功登录。 |
请特别关注第四条。从外部来看,一连串失败后最终成功,正是入侵的典型表现,而且这是这里唯一一条在攻击者已经进入系统后才触发的规则。
另外四条规则用于监测凭据的使用来源:
| 规则( Rule ) | 触发条件( What triggers it ) |
|---|---|
| 不可能的旅行 | 六小时内发生两次登录,地点相距至少 500 公里,且两次登录同时发生,或两地之间所需的移动速度超过每小时 800 公里。 |
| 从新国家登录 | 某个已知身份出现在其过去七天内未曾登录过的国家。 |
| 凭据在多地使用 | 一小时内出现在两个国家,或同一个接口密钥被观测到从三个公网地址使用。 |
| 首次出现的身份 | 七天内首次登录。 |
"首次出现的身份" 规则有一个需要了解的启动等待期。只有审计数据流积累至少一天的数据后,它才会开始工作,因为在此之前没有可供比较的历史数据。如果你今天上午启用日志投递,不要指望它今天下午就触发。
每条规则都会关联一个或多个仪表板,因此你可以从告警中了解触发原因,再从仪表板中获取相关上下文。
目标项目中的审计日志仪表板
目标项目中的 Elastic Cloud 无服务器服务审计日志附带七个仪表板。你也可以在数据探索中搜索该数据流,但这些仪表板才是启用此功能的理由。下面,我们将详细介绍其中三个。
Kibana 对象取证:谁更改了已保存对象
Kibana 对象取证仪表板记录已保存对象的创建、更新和删除操作,以及执行修改的人、被修改的对象和操作发生的空间。已删除的检测规则会显示在这里:
Kibana 对象取证,包括谁更改了已保存对象,以及变更发生的位置。
Elasticsearch 数据访问:谁读取了哪个索引
Elasticsearch 数据访问仪表板可回答谁读取了哪些内容,包括索引系列、使用的传输操作、被拒绝的请求,以及对系统索引和隐藏索引的读取。如果你想知道谁搜索了哪些索引,请不要启用忽略数据搜索和读取( Ignore data searches and reads )。
身份与访问,包括谁登录了、使用了什么凭据,以及哪些操作失败了。
日志投递接下来将推出什么
除了目前提供的 Elasticsearch 和 Kibana 审计日志,Elastic Cloud 无服务器服务的日志投递还将支持另外两种日志:
- Elasticsearch 查询日志( Elasticsearch query logs ):针对 Elasticsearch 查询语言( ES|QL )、查询领域专用语言( Query DSL )、结构化查询语言( SQL )、事件查询语言( EQL )和 Prometheus 查询语言( PromQL )的每次查询,输出一条协调节点级别的日志。
- Kibana 用户活动日志( Kibana user activity logs ):记录 Kibana 的使用情况。仪表板是该数据流首个覆盖的应用,记录内容包括谁查看、编辑或删除了仪表板,以及仪表板的加载耗时。
在 Elastic Cloud( Elastic Cloud ) 中打开一个项目,然后启用日志投递( Log delivery )。
本文所述任何特性或功能的发布及时间安排,均由 Elastic 自行决定。当前尚未提供的任何特性或功能,可能无法按时交付,也可能不会交付。
原文:Elastic Cloud Serverless audit logs: Who read your index? | Elasticsearch Labs