什麼是稽核記錄?為什麼它們很重要?
稽核記錄是一個關鍵工具,用於追蹤和記錄 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 至關重要。請考慮填寫一份簡短的調查問卷。