Chrome團(tuán)隊出絕招阻斷混合腳本漏洞
“混合腳本執(zhí)行”漏洞通常在通過 HTTPS 傳送的頁面加載通過 HTTP 傳送的腳本、CSS 或插件資源時出現(xiàn)。中間攻擊者(如處于同一無線網(wǎng)絡(luò)的用戶)通常能截取 HTTP 資源加載,并對加載資源的網(wǎng)站獲取完全權(quán)限。情況糟糕的話跟沒用 HTTPS 一個樣。
稍輕但類似的問題——暫且稱之為“混合顯示”漏洞——通常在通過 HTTPS 傳送的頁面加載通過 HTTP 傳送的圖像、iFrame 框架或字體時出現(xiàn),但只能影響頁面外觀。
瀏覽器長期以來使用不同的指示符、情態(tài)動詞對話框、攔截選項甚至是點擊確認(rèn)等方法將這些情況告知用戶。如果網(wǎng)站頁面存在混合腳本執(zhí)行問題,Chromium 當(dāng)前會在 Omnibox 中這樣指示:
混合顯示內(nèi)容會這樣指示:

如果網(wǎng)站有 HTTPS 頁面顯示帶紅叉的 https,就非常值得主動調(diào)查了:
- 網(wǎng)站在其他主流瀏覽器(如 IE9 或 FF4)中會因為點擊確認(rèn)對話框與丑陋的情態(tài)動詞對話框而難以正常顯示。
- 可能存在危害整個 HTTPS 連接的安全漏洞。
自 Chromium 14 的首個版本 (14.0.785.0 canary) 起,Google 將開始測試默認(rèn)攔截混合腳本。當(dāng)攔截到混合腳本時會出現(xiàn)這樣的信息欄:

作為用戶,可以選擇不應(yīng)用攔截而重新加載。理想情況下,將來的信息欄將不再保留允許用戶繞過攔截的選項。Google 安全團(tuán)隊的經(jīng)驗表明,有些用戶即使在最可怕的警告信息面前也會點擊“允許執(zhí)行”——完全不顧可能的后果。
幫助站長分析的工具
如果 Chromium 的 UI 顯示網(wǎng)站上存在混合內(nèi)容問題,可以嘗試 Google 的開發(fā)工具定位問題。有用的信息通常記錄在 JavaScript 控制臺 (菜單 -> 工具 -> JavaScript 控制臺):

站長還可以打開“網(wǎng)絡(luò)”選項卡重新加載頁面,并查找通過 http:// 協(xié)議傳送的內(nèi)容。值得注意的是,混合腳本得以執(zhí)行時,整個原始頁面都會受到影響,因此需要查看所有引用了發(fā)現(xiàn)的來源的標(biāo)簽頁的控制臺。要清除錯誤,所有引用了有害來源的標(biāo)簽頁都要關(guān)閉。特別棘手的情況是不清楚來源如何產(chǎn)生危害,這時還可以啟用命令行控制臺調(diào)試功能查看相關(guān)的警告信息。
Chromium 13 提供了命令行標(biāo)記 --no-running-insecure-content。Google 建議站長與高級用戶附帶該標(biāo)記運行 Chrome,以便清理有問題的網(wǎng)站。(還針對較輕級別的混合內(nèi)容問題提供了 --no-displaying-insecure-content;Chromium 14 尚無計劃默認(rèn)攔截此內(nèi)容。)
而 Chromium 14 將提供相反的標(biāo)記: --allow-running-insecure-content,方便使用未能及時修正這些錯誤的內(nèi)部應(yīng)用程序的用戶與管理員。
原文:http://www.guao.hk/posts/google-chrome-trying-to-end-mixed-scripting-vulnerabilities.html
【編輯推薦】