谷歌週二披露,一夥攻擊者攻破了三個國家頂級域名(ccTLD)的註冊局系統,篡改其中部分域名的權威 DNS 記錄,藉此通過了證書頒發機構的自動化域名控制權驗證,爲"谷歌的多個域名"以及"多家全球知名品牌和常用在線服務"簽發了未經授權的 TLS 證書。谷歌已更新 Chrome 攔截已發現的全部僞造證書,並正協同相關證書機構吊銷涉事證書。
攻擊者把目標對準了三個國家頂級域的註冊系統:.gh(加納)、.sl(塞拉利昂)和 .as(美屬薩摩亞)。得手後,他們修改了這些域名空間下選定域名的權威 DNS 記錄和域名服務器委託關係。谷歌表示,事件並未涉及受影響域名所有者自身基礎設施被入侵,證書頒發機構在簽發時也遵守了全部合規要求——問題出在註冊局這一環被攻破後,域名控制權驗證就形同虛設。
TLS 證書籤發前,證書機構會用自動化手段覈驗申請人是否真正控制該域名,通常做法是在 DNS 記錄裏放一段驗證碼或響應特定 HTTP 請求。攻擊者既然已經掌控了權威 DNS 記錄,這類驗證自然一路綠燈。谷歌的原話是:攻擊者"通過控制這些 DNS 記錄,得以通過自動化域名控制權驗證",從而拿到證書。證書本身由正規機構簽發,瀏覽器不會報警,中間人攻擊、釣魚和流量劫持因此都變得難以察覺。
谷歌在披露中稱,僞造證書覆蓋了"谷歌的多個域名",以及"多家全球知名品牌和常用在線服務"的域名,但沒有點名具體是哪些域名,也沒有說明總共簽發了多少張證書、有多少家機構受影響。谷歌同時承認:"目前尚不清楚其他受影響機構是哪些,也不知道共簽發了多少張未經授權的證書"。
谷歌表示,已更新 Chrome 瀏覽器,攔截所有已識別出的未經授權證書,並正與簽發這些證書的機構合作,確保涉谷歌資產的僞造證書被吊銷。谷歌稱 Chrome 用戶無需採取任何操作即可受到保護。但谷歌也發出警告:"瀏覽器端的干預不應被依賴來保護你的用戶",並坦言"由於 DNS 劫持的複雜性,我們無法保證分析找出了每一個受影響域名,Chrome 的干預也無法可靠地保護非 Chrome 用戶"。
對網站所有者,谷歌給出兩條硬建議:一是持續監控證書透明度(Certificate Transparency)日誌,及時發現有人給自己的域名簽發了意外證書;二是發佈限制性更強的 CAA(證書頒發機構授權)DNS 記錄,防止攻擊者在 DNS 控制權恢復後繼續利用緩存的驗證數據重複簽發證書。谷歌指出,正式的證書吊銷流程緩慢繁瑣,這也是瀏覽器廠商要先做瀏覽器級攔截的原因——目前已知的僞造證書都已被攔截,風險基本可控,但尚未被發現的證書仍是隱患。
這不是互聯網第一次栽在證書體系上。2011 年,荷蘭證書機構 DigiNotar 被黑,攻擊者爲谷歌等 200 多個高流量網站簽發了僞造證書,其中部分被用於針對至少 30 萬與伊朗有關聯的網民的監控攻擊,DigiNotar 最終破產倒閉。十五年後,攻擊手法從攻破證書機構變成了攻破域名註冊局——信任鏈最薄弱的一環,永遠是攻擊者最愛下手的地方。