很可怕!NSA、GitHub 被惡搞:Windows 的鍋
微軟披露漏洞突破證書驗證機制還不到24個小時,研究人員就演示了攻擊。
NSA官網被惡搞,使用Windows 10上的Chrome。
微軟披露有史以來最嚴重的一個Windows漏洞還不到一天,就有安全研究人員演示了攻擊者如何鉆該漏洞的空子,從密碼層面冒充互聯網上的任何網站或服務器。
周三,研究人員Saleem Rashid在Twitter上發布了上世紀80年代的知名歌手Rick Astley的視頻《Never Gonna Give You Up》在Github.com和NSA.gov上播放的畫面。
這種數字手法名為瑞克搖擺(Rickrolling),常被用作以一種惡搞、無害的方式來表明嚴重的安全漏洞。在這里,Rashid采用的攻擊程序導致Edge瀏覽器和Chrome瀏覽器都騙過了Github和國家安全局(NSA)的HTTPS驗證網站。Brave及其他Chrome衍生瀏覽器以及Internet Explorer也可能中同樣的招。(沒有跡象表明Firefox受此影響。)
Rashid模擬了攻擊漏洞:CVE-2020-0601,微軟接到NSA私下透露的情況后在周二給這個嚴重漏洞打上了補丁。正如外媒此前報道,該漏洞可以完全突破許多網站、軟件更新、VPN及其他安全攸關的計算機用途所采用的證書驗證機制。它影響Windows 10系統,包括服務器版本:Windows Server 2016和Windows Server 2019。Windows的其他版本不受影響。
Rashid告訴我,他的攻擊程序使用了大約100行代碼,但如果他想去除其攻擊所擁有的“幾個實用花招”,可以壓縮到10行代碼。雖然讓攻擊漏洞在實際情形下得逞存在一些限制和幾個可能很難滿足的要求,周三的概念驗證攻擊表明了NSA為何將該漏洞評為“嚴重”等級,稱狡猾的黑客會明白如何“迅速”利用漏洞。
“很可怕”
其他研究人員與NSA有著同樣的緊迫感。
MongoDB的研究人員和安全負責人Kenn White說:“Saleem剛演示的表明,使用[簡短]的腳本,你就可以為任何網站生成證書,而且證書在IE和Edge上完全受信任,僅使用Windows的默認設置。這很可怕。它會影響VPN網關、VoIP以及使用網絡通信的幾乎任何系統。”(在Rashid演示針對Chrome進行攻擊之前,我與White有過交談。)
該漏洞涉及新版本Windows對使用橢圓曲線加密技術(ECC)的證書的有效性進行核查的方式。雖然易受攻擊的Windows版本核查三個ECC參數,卻沒有核查第四個關鍵的參數:基點生成器,它在算法中通常表示為G'。這歸咎于微軟實現ECC的方法,而不是ECC算法本身存在任何漏洞或缺陷。
攻擊者只要提取Windows默認情況下隨帶的根證書的公鑰,就可以鉆這個漏洞的空子。這些證書之所以被稱為根證書,是由于它們屬于各大證書管理機構(CA),這些CA要么頒發自己的TLS證書,要么驗證代表根CA出售證書的中間CA。只要用ECC算法來簽名,任何根證書都可正常使用。Rashid的攻擊始于來自互聯網界最大的CA:Sectigo的根證書,Sectigo以前使用Comodo這個名稱。這名研究人員隨后修改了攻擊手法,使用GlobalSign根證書。他的代碼可使切換自動進行。
該攻擊者分析了用于生成根證書公鑰的特定ECC算法,隨后生成了一個私鑰,復制了該算法的所有證書參數(基點生成器除外)。由于易受攻擊的Windows版本無法核查該參數,因此它們視為該私鑰有效。這么一來,攻擊者就騙過了Windows信任的根證書,該根證書可進而生成用于對網站、軟件及其他敏感內容進行身份驗證的任何證書。
這種行為相當于執法人員核查某人的身份證,確保身份證如實描述此人的身高、住址、生日和臉部,卻沒有注意到標注的重量是250磅,而此人明明體重不到一半。
White說:“這個漏洞很奇怪,因為這就像對整個信任系統的基礎只核查了一半,而這是整條信任鏈的核心部分。”
注意事項
如前所述,有幾個要求和限制大大提高了Rashid的攻擊在實際情形下得逞的難度。首先是它很可能需要主動的中間人攻擊。這種類型的攻擊篡改網絡中傳輸的數據,可能難以實施。主動式中間人攻擊之外的替代手法是,說服攻擊對象點擊虛假的URL。這種方法容易得多,但也需要一定的針對性。(它不適用于對要求連接客戶端提供證書的網站或其他服務器發動的攻擊。)
該漏洞還要求攻擊對象最近訪問過使用傳輸層安全證書的站點,而該證書鏈接到ECC簽名的根證書。那是由于根證書必須已經被目標系統緩存起來。Rashid表示,如果目標系統沒有緩存根證書,攻擊者仍可以成功地鉆空子,只需添加可訪問鏈接到根證書的網站的JavaScript。
另一個限制是:Chrome針對google.com及其他眾多敏感網站使用了一種名為證書鎖定(certificate pinning)的機制。證書鎖定要求對網站進行身份驗證的證書包含特定的加密哈希,即使提供的證書在其他方面有效。該措施可阻止攻擊騙過受保護的網站后得逞。
谷歌代表稱,雖然安裝微軟周二發布的補丁是防止攻擊的唯一合理方法,但Chrome的開發人員已發布了測試版的修復程序,很快會并入到穩定版中。提醒一下:即使使用該修復程序,高危Windows版本的用戶仍將面臨來自其他攻擊場景的巨大風險。
時間問題
盡管面臨幾個要求和限制,該漏洞仍很嚴重。正如NSA官員在公告中所說:
該漏洞使Windows端點暴露在眾多攻擊途徑面前。NSA評估后認為該漏洞很嚴重,狡猾的網絡攻擊者很快就能明白底層漏洞;一旦被利用,會使前面提到的平臺岌岌可危。不給漏洞打補丁會帶來嚴重且廣泛的后果。遠程攻擊工具可能會迅速開發出來,唾手可得。迅速打上補丁是眼下唯一已知的緩解方法,應是所有網絡所有者關注的焦點。
該漏洞可能不會像2014年Heartbleed漏洞那樣造成極嚴重的威脅,Heartbleed漏洞讓攻擊者可以從成千上萬個易受攻擊的網站竊取私鑰、密碼及其他高度敏感的數據。但由于微軟的這個漏洞挫敗了廣泛的安全措施,它甚至比蘋果嚴重的GoToFail漏洞還危險,后者阻止iOS和macOS系統檢測到網站提供的無效TLS證書。這使CVE-2020-0601成為近年來最嚴重的漏洞之一。
Windows的自動更新機制可能已經給易受攻擊的系統打上了補丁。此處(https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2020-0601#ID0EGB)附有各種高危版本的修復程序。還沒有打上補丁的讀者應立即打上補丁。