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

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

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

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