2023 年 1 月 24 日,因為管理服務權杖的發布代碼發生錯誤,導致數個 Cloudflare 服務有 121 分鐘的時間無法使用。此事件導致多種 Cloudflare 產品降級,包括我們的 Workers 平台、Zero Trust 解決方案,以及內容傳遞網路 (CDN) 中的控制平面功能等方面。

Cloudflare 提供一項服務權杖功能,允許自動化服務對其他服務進行驗證。例如,客戶可使用服務權杖來確保在資料中心執行的應用程式與公有雲端提供者的資源之間進行互動。在發行版本中,我們打算引入對管理員顯示權杖最後使用時間的功能,讓使用者能夠安全地清除未使用的權杖。這項變更無意中覆寫了其他有關服務權杖的中繼資料,並使得受影響帳戶的權杖在事件發生期間失效。

此發行版本之所以影響其他服務,是因為 Cloudflare 在 Cloudflare 上運作。服務權杖會影響帳戶驗證的能力,而其中兩個受影響的帳戶為多個 Cloudflare 服務提供支援。這些帳戶的服務權杖遭到覆寫後,在這些帳戶上執行的服務就開始出現要求無效和其他非預期的錯誤。

雖然只有一小部分客戶和終端使用者直接受到此事件的影響,而且其他客戶可能遇到了服務降級,對 Cloudflare 網路與服務的整體影響並不嚴重。儘管如此,我們知道這對受影響的客戶而言是相當不愉快的體驗。我們正在記錄所發生的錯誤,以便您瞭解發生的原因,以及我們為防止此情況再次發生而採取的措施。

什麼是服務權杖?

使用者登入應用程式或身分識別提供者時,通常會輸入一組使用者名稱和一組密碼。密碼可讓該使用者證明他們擁有該使用者名稱的控制權,而且該服務應允許他們繼續至下一步。可以加上額外的驗證功能,例如硬體金鑰或裝置狀態,但工作流程會包括人員對服務證明其身分的真偽。

不過,人員並非唯一需要對服務進行驗證的使用者。應用程式經常需要與其他應用程式通訊。舉例來說,想像您建置了一款應用程式,會向使用者顯示有關其近期旅行計畫的資訊。

航空公司會在自有系統中保留有關航班及其飛行時間的詳細資料。他們並不想將個人行程的詳細資料公開到網際網路上,也無意邀請您的應用程式進入他們的私有網路。同樣地,旅館希望確保他們只對有效、經核准的第三方服務傳送客房預訂的詳細資料。

您的應用程式需要受信任的方式來對這些外部系統進行驗證。服務權杖可作為您服務的使用者名稱和密碼,以解決此問題。就像使用者名稱與密碼一樣,服務權杖由兩個部分組成:用戶端 ID 和用戶端密碼。ID 和密碼都必須與驗證要求一起傳送。系統也會對權杖指派一個期限,在該期限之後,權杖就會失效且必須替換。您可以對應用程式授予一組服務權杖,且如果您所需的上游系統對其進行驗證,您的服務就可以取得航空公司與旅館資訊,並在聯合報告中將該資訊呈現給終端使用者。

管理員建立 Cloudflare 服務權杖時,我們會產生一組配對的用戶端 ID 和用戶端密碼。接著,客戶可設定其要求的服務,以便在他們需要取得受保護的資源時將這兩個值以 HTTP 標頭的方式傳送。要求的服務可在任何環境中執行,包括在 Cloudflare 的網路中以 Worker 形式執行,或在公有雲端提供者這類的單獨位置中執行。客戶需要在 Cloudflare 的反向代理後方部署相應的受保護資源。我們的網路會檢查每個與已設定服務繫結之要求的 HTTP 標頭。如果存在,Cloudflare 就會驗證其真偽,並阻擋該要求或允許該要求繼續。我們也會記錄驗證事件。

事件時間軸

所有時間戳記均為 UTC

2023 年 1 月 24 日下午 4:55,Access 工程團隊啟動了發佈工作,無意中開始覆寫服務權杖中繼資料,因此導致此次事件。

2023 年 1 月 24 日下午 5:05,Access 工程團隊中有一位成員注意到一個不相關的問題,並將發行版本復原,因而停止了對服務權杖中繼資料的任何進一步覆寫。

在服務權杖本身更新之前,服務權杖值不會在 Cloudflare 的網路中更新(更多詳細資料請見下方)。這對於中繼資料遭到覆寫的服務權杖造成了交錯的影響。

2023 年 1 月 24 日下午 5:50,Cloudflare WARP 的第一個無效服務權杖同步到我們的全球網路。開始對 WARP 和 Zero Trust 使用者造成影響。

完整閱讀https://blog.cloudflare.com/zh-tw/cloudflare-incident-on-january-24th-20...

 

熱門新聞

Advertisement