安全研究人員發現廣告過濾外掛程式如AdBlock Plus及uBlock,其中一項功能可能反成為程式碼注入漏洞,被用來在Google服務等網頁上執行惡意程式碼。

研究人員Armin Sebastian是在AdBlock Plus 3.2版發現這項漏洞,涵括Chrome, Firefox 和Opera版本。去年7月公佈的AdBlock Plus 3.2版加入一項「$rewrite」的功能,之後AdBlock另一產品uBlock也實作了這項功能。研究人員發現,在特定條件下,$rewrite過濾功能可能讓維護過濾名單的單位,在網頁上注入任意程式碼。

按AdBlock、uBlock的用戶族群計算,受影響人數超過1億人。利用本漏洞駭客可以很簡單駭入複雜的網頁服務,包括Google服務在內。此外,這類攻擊在所有主要瀏覽器中都可發動、又難以偵測,加上過去也曾發生過濾名單被用作政治攻擊,是風險相當高的漏洞。

研究人員解釋,$rewrite過濾功能在廣告過濾程式中,旨在藉由重導向(而非封鎖)網頁呼叫,又能從URL移除追蹤資料及封鎖廣告,這是因為有時不需完全封鎖網頁。利用$rewrite指令,第三方過濾名單可以選擇性覆寫URL的參數。

但在某些條件俱足情況下,這項功能可被用來對網頁程式發動攻擊,包括網頁利用XMLHttpRequest 或Fetch指令載入JavaScript 字串以執行回傳的程式碼,網頁又無法限制透過內容安全政策或URL驗證來限制來源網域,而回傳程式碼的來源又允許伺服器端Open Redirect,或代管任意內容程式碼。三個條件滿足時,不肖的過濾名單維護業者,就可能加入惡意過濾字串進而執行惡意程式碼。

研究人員認為,個人或企業可能被鎖定IP成為攻擊目標。但雪上加霜的是,外掛程式會定期更新第三方單位提供的過濾名單,使外部業者包含的惡意程式碼很容易就被置換掉,以致無法被追查到。

湊巧的是,Gmail和Google圖片就完全符合三項條件。不過在Sebastian通報後,Google認為這是「意欲的行為(intended behavior)」而非漏洞,且只是AdBlock Plus及uBlock的安全問題。但研究人員指出,除了Google服務外,許多其他服務也受到影響。

研究人員指出,為防止此類攻擊,網頁服務業者以白名單列出允許的呼叫來源,或關閉伺服器端open redirect。而廣告外掛程式則應選擇不支援$rewrite功能的產品,例如uBlock Origin(並非uBlock供應商,AdBlock才是)。

The Register引述AdBlock方面指出,公司相當重視本問題,目前正在研究中。

熱門新聞

Advertisement