什么是审计日志,它们为何重要?
审计日志是一个关键工具,用于跟踪和记录 Cloudflare 环境中的更改、操作和资源访问模式。通过这些日志,可以了解操作执行者、操作内容、发生时间、发生位置以及执行方式。这使安全团队能够识别漏洞、确保法规遵从性并协助解决运营问题。审计日志提供了至关重要的透明度和责任追究能力。这就是为什么我们使其“自动化”——这消除了各个 Cloudflare 产品团队手动发送事件的需要。系统会在执行操作时以标准化格式自动生成审计日志,从而提供完整的可见性并确保全面覆盖我们的所有产品。
新特性
我们很高兴地宣布推出 Automatic Audit Logs 测试版——该系统统一了各 Cloudflare 产品的审计日志记录。这个新系统旨在为您提供环境活动的完整且一致的视图。以下是审计日志记录功能的增强情况:
标准化日志记录:以前,审计日志的生成依赖于不同的内部团队,这可能导致漏洞和不一致。现在,审计日志以无缝且标准化的方式自动生成,消除了对单个团队的依赖并确保在所有 Cloudflare 服务中的一致性。
扩大产品覆盖范围:Automatic Audit Logs 现在将我们的覆盖范围从 62 个产品扩大到 111 个产品,使总体覆盖范围从 75% 提高到 95%。我们现在从关键端点(例如
/accounts
、/zones
和/organizations
API)捕获操作。粒度筛选:通过统一格式的日志,可以快速确定特定的操作、用户、方法和资源,使调查更快、更高效。
增强上下文和透明度:每个日志条目都包含详细的上下文,例如所使用的身份验证方法、操作是通过 API 还是仪表板执行,以及到 Cloudflare Ray ID 的映射以实现更好的可追溯性。
全面的活动捕获:除了创建、编辑和删除操作,系统现在还记录 GET 请求和失败的尝试,确保不会忽视任何关键活动。
这一新系统体现了 Cloudflare 致力于构建更安全、更透明的互联网的承诺。这也是 Cloudflare 遵循 CISA 网络安全承诺的体现,并加强了我们致力于增强客户收集网络安全入侵证据之能力的决心。
Automatic Audit Logs(测试版)仅通过 API 提供。
审计日志的旅程:Cloudflare 如何创建可靠、安全的记录
在 Cloudflare,我们一直通过 Audit Log API 提供审计日志,但体验并不十分一致。
究其原因,是因为由单个产品团队来负责创建和维护其审计日志。这导致了不一致、覆盖范围上的缺口以及碎片化的用户体验。
认识到可靠审计日志的重要性,我们着手扩大其在所有 Cloudflare 产品中的覆盖范围。我们的目标是使流程标准化、安全化和自动化,为用户提供有关用户发起操作的全面洞察,同时增强可见性和可用性。我们来仔细看看 Cloudflare 如何创建审计日志。
哪些 API 有审计日志?
通过公共 API 或 Cloudflare 仪表板发出的所有用户请求都会生成审计日志。虽然存在一些例外情况(例如 GraphQL 请求和静态资产),但大多数用户操作都会被捕获。
当发生用户操作时,请求将转发到我们的审计日志记录管道。这可确保为所有产品自动生成日志,靠近操作的来源,并捕获最相关的细节。
对于生成 JSON 的 RESTful API,会记录经过清理的请求正文,以防止审计日志中包含任何敏感信息。而 GET 请求通常是只读的并且可能会生成大量响应,因此仅记录执行的操作和访问的资源,从而避免不必要的开销,同时仍保持必要的可见性。
流式传输 HTTP 请求
用户在 Cloudflare 上发起的任何操作(无论是通过 API 还是仪表板)均由 API Gateway 处理。然后,HTTP 请求及其相应的请求和响应数据都会被转发到名为审计日志编辑器的 Worker。这样就可以自动进行审计日志记录,而无需依赖内部团队发送事件。
为了最大限度地减少延迟,API Gateway 会使用服务绑定,通过 RPC(远程过程调用)将这些请求流式传输到编辑器 Worker。这种方法可确保无需通过可公开访问的 URL 即可成功发送请求。
编辑敏感信息
Worker 收到 HTTP 请求后,会引用Cloudflare OpenAPI 模式来处理敏感信息。OpenAPI 是一种广泛采用、机器可读且对人类友好的规范格式,用于定义 HTTP API。它依赖于 JSON 模式来描述 API 的底层数据。
编辑器 Worker 使用 OpenAPI 模式来识别 HTTP 请求的相应 API 模式。然后,它会编辑所有敏感信息,仅在模式中保留明确标记为可审计的信息。这个编辑过程可确保敏感数据不会在管道中进一步传输,同时保留足够的信息来调试和分析操作对资源价值的影响。
每个 Cloudflare 产品团队都在 OpenAPI 模式中定义其 API,并将特定字段标记为可审计。这样不仅能够获取有关资源变化的信息,还能保护敏感数据。
编辑后,数据将在 Cloudflare 的数据管道中流动。该管道包含几个关键组件,包括 Logfwdr、Logreceiver 和 Buftee 缓冲区,经过清理的数据最终被推送到这些缓冲区,等待进一步处理。
获取和构建审计日志
Ingestor 服务使用来自 Buftee 缓冲区的消息并将各个请求转换为审计日志记录。Ingestor 使用固定模式,确保审计日志在任意规模的所有 Cloudflare 产品中保持标准化。
因为 API Gateway(如上所述,从中记录大多数 Automatic Audit Logs 的系统)每秒处理数万个请求,所以 Ingestor 被设计为同时处理多个请求。
审计请求率图。x 轴表示时间,y 轴表示每秒处理的审计请求总数。
扩充和存储日志
从安全角度来看,记录发起更改的人以及其进行身份验证的方式至关重要。为了实现这一点,审计日志进行了扩充,包含从自定义响应标头中提取的用户详细信息和身份验证信息。
其他上下文详细信息(例如帐户名称)将通过调用内部服务来检索。为了提高性能,使用了通读缓存机制。系统首先检查缓存中的响应,如果不可用,则从内部服务获取数据并将其缓存以供将来使用。
在完全转换并扩充审计日志后,会将其分批存储在数据库中,以防止系统过载。对于测试版,审计日志将在数据库中存储 30 天。计划于 2025 年下半年推出 GA(普遍可用)版本,将此期限延长至 18 个月。
审计日志示例
下面是更新警报通知策略时所生成审计日志的完整示例。它提供了所有必要的细节来回答操作的执行者、内容、时间、地点和方式问题。
审计日志始终与帐户相关联,一些操作还包括相关的用户和区域信息。操作部分概述了更改的内容和时间,而执行者部分则提供了有关更改执行者以及执行方式的背景信息,包括更改是通过 API 还是通过 UI 完成的。
还包括有关资源的信息,以便您能够轻松识别更改的内容(在本例中,更新了高级安全事件警报)。此外,还提供原始 API 请求详细信息,让用户能通过审计日志追溯到特定的 API 调用。
curl -X PUT https://api.cloudflare.com/client/v4/accounts/<account_id>/alerting/v3/policies/<policy_id> --data-raw '{...'}
{
"account": {
"id": "<account_id>",
"name": "Example account"
},
"action": {
"description": "Update a Notification policy",
"result": "success",
"time": "2025-01-23T18:25:14.749Z",
"type": "update"
},
"actor": {
"context": "dash",
"email": "[email protected]",
"id": "<actor-id>",
"ip_address": "127.0.0.1",
"token": {},
"type": "user"
},
"id": "<audit_log_id>",
"raw": {
"cf_ray_id": "<ray_id>",
"method": "PUT",
"status_code": 200,
"uri": "/accounts/<account_id>/alerting/v3/policies/<policy_id>",
"user_agent": "Postman"
},
"resource": {
"id": "<resource-id>",
"product": "alerting",
"request": {
"alert_type": "clickhouse_alert_fw_ent_anomaly",
"enabled": false,
"filters": {
"services": [
"securitylevel",
"ratelimit",
"firewallrules"
],
"zones": [
"<zone_id>"
]
},
"name": "Advanced Security Events Alert"
},
"response": {
"id": "<resource_id>"
},
"scope": "accounts",
"type": "policies"
}
即将推出的增强功能
对于普遍可用 (GA) 版本,我们专注于在 Automatic Audit Logs 仪表板中开发新的用户界面,为审计日志提取更多的可审计字段(包括系统发起的操作和用户级操作,如登录事件),并允许通过 Logpush 导出审计日志。而在长期发展方面,我们计划为审计日志引入仪表板、趋势分析和警报功能,以进一步提高其实用性和易用性。通过增强我们的审计日志系统,Cloudflare 正在努力践行承诺,让用户能够以更高的透明度、安全性和效率管理其环境。
开始使用 Automatic Audit Logs
Automatic Audit Logs 现已可供测试。我们鼓励您探索新功能并提供宝贵的反馈。
使用以下端点检索审计日志:
/accounts/<account_id>/logs/audit?since=<date>&before=<date>
您可以在此处访问有关 Automatic Audit Logs 测试版 API 的详细文档。
请注意,测试版不包括对 Cloudflare 仪表板中审计日志 UI 的更新。在 Automatic Audit Logs 普遍可用之前,用于当前审计日志的现有 UI 和 API 将保持可用。
我们希望收到您的反馈:您的反馈对于改进 Automatic Audit Logs 至关重要。请考虑填写一份简短的调查问卷。