一個緩衝區溢位缺陷導致了資料洩露, 少量發往Cloudflare proxies的請求拿到了其他不相關請求資料, 包括潛在的敏感性資料, 例如密碼、其他秘密資訊。 這個問題已經被命名為“Cloudbleed”, 由穀歌零漏洞專案組研究員Tavis Ormandy發現並記錄。 部署了修復程式並嘗試清空搜尋引擎緩存之後, Cloudflare的John Graham-Cumming在一篇博客文章裡詳細地做出了解釋。 儘管有一些敏感性資料洩漏, Cloudflare的創始人和CEO Matthew Prince在推特發表申明“我認為我們很大程度上避開了實際影響”。
在這篇解釋性博客文章, 以及CEO Matthew Prince致客戶的郵件裡, Cloudflare費盡心力強調要保護好SSL私密金鑰, 因為這些私密金鑰被用於單獨隔離的Nginx實例中。
這次事故預計已經影響了2017年2月13日到2017年2月18日之間, 通過Cloudflare proxies的每3,300,000個HTTP請求當中的1個。 安全專家Troy Hunt在他的文章“實際思考CloudBleed”中指出, 這一可能性可以和“中大獎”相媲美, 雖然這裡的問題有雙重性:首先, 製造洩漏的網站本身也是無辜的受害網站, 它又進一步放大了洩露問題, 其次, 我們沒有辦法“檢查資訊”, 確保是否是洩漏受害者(同樣適用於調用Cloudflare和它們的訪客網站)。 Tony指出這些訪客或者例如博客一類的公共網站沒有什麼可以擔心的,
Cloudflare推遲了通知時間, 同時聯合搜尋引擎一起清空緩存資料, 追蹤從161個獨立功能變數名稱發送過來的770個請求URI。 這樣做的目的是防止通過進入搜尋引擎緩存的方式使用私人資料。 雖然Cloudflare和Google從一開始就進行合作, 這個問題看起來有點緊迫, 清除行動可能沒有像最初預期的那麼快完成。
Graham-Cumming的博客文章建議事故修復之後, 通過非常容易理解的日誌引導, 允許Cloudflare確定問題的範圍和規模, 並且設定補救措施的目標。 就像最初希望的那樣達到目標。 它的觀點是,
事故發生後我們通常會問:“我是不是應該修改密碼?”, 輿論(反感風險)的回答是應該, 安全比到時候說抱歉有用得多。 總的來說, 任何一個人的私密資訊被以一個可以利用的方式洩漏的機會非常低(可能遠遠低於相同的私密資訊通過惡意軟體或者其他類似方式洩漏的可能性)。 Cloudflare和更廣義的網路安全社區已經從這起事故中學到了很多, 但是當類似於C語言這樣的不安全語言被繼續用在對安全敏感的基礎設施領域的話, 我們可以確信類似的事故會再次發生(是的, 再一次發生時goto陷阱仍然會是元兇)。
感謝薛命燈對本文的審校。