Mozilla推出了保護(hù)措施,以阻止Firefox Web瀏覽器中的代碼注入攻擊,并通過(guò)刪除類(lèi)似eva l()的函數(shù)和內(nèi)聯(lián)腳本來(lái)減少攻擊面。
Mozilla安全團(tuán)隊(duì)今天說(shuō):“一種有效的對(duì)抗代碼注入攻擊的方法是,通過(guò)消除代碼庫(kù)中潛在的危險(xiǎn)工件并減少各個(gè)級(jí)別的代碼來(lái)減少攻擊面,”
“為了使Firefox具有抵御這種代碼注入攻擊的能力,我們刪除了內(nèi)聯(lián)腳本的出現(xiàn)以及類(lèi)似eva l()的函數(shù)!
內(nèi)聯(lián)腳本刪除
Mozilla重寫(xiě)了所有內(nèi)聯(lián)事件處理程序,并將內(nèi)聯(lián)java script代碼移動(dòng)到了所有Firefox的about:pages打包文件中:這里有45個(gè)列表,可通過(guò)內(nèi)聯(lián)腳本進(jìn)行代碼注入攻擊。
這種類(lèi)型的頁(yè)面旨在為用戶(hù)提供一個(gè)簡(jiǎn)單的界面,以檢查與Firefox內(nèi)部工作相關(guān)的信息,就像about:config頁(yè)面的情況一樣,該頁(yè)面“公開(kāi)用于檢查和更新首選項(xiàng)和設(shè)置的API”。
鑒于about:pages像常規(guī)網(wǎng)頁(yè)一樣使用HTML和java script,潛在的攻擊者可能會(huì)利用它來(lái)在瀏覽器的安全上下文中注入惡意腳本,從而能夠代表Firefox用戶(hù)執(zhí)行任意操作。
Mozilla說(shuō):“這使我們能夠應(yīng)用強(qiáng)大的內(nèi)容安全策略(CSP),例如'default-src chrome:',它可以確保注入的java script代碼不會(huì)執(zhí)行! “相反,java script代碼僅在使用內(nèi)部chrome:協(xié)議從打包資源加載后才執(zhí)行。”
通過(guò)使無(wú)法在Firefox的about:pages中插入內(nèi)聯(lián)腳本,Mozilla創(chuàng)造了有效的屏障來(lái)抵制代碼注入攻擊,這些攻擊可能會(huì)通過(guò)濫用此攻擊媒介而導(dǎo)致任意代碼執(zhí)行。
運(yùn)行時(shí)斷言禁止eva l()函數(shù)
“ java script函數(shù)eva l()以及類(lèi)似的'new Function'和'setTimeout()/ setInterval()'是強(qiáng)大而又危險(xiǎn)的工具。它在與自身相同的安全上下文中解析和執(zhí)行任意字符串,”還添加了Mozilla安全團(tuán)隊(duì)。
“這種執(zhí)行方案可以方便地執(zhí)行在運(yùn)行時(shí)生成的代碼或存儲(chǔ)在非腳本位置(如文檔對(duì)象模型(DOM))的代碼!
隨著Mozilla 在其開(kāi)發(fā)網(wǎng)絡(luò)文檔中進(jìn)一步詳細(xì)介紹,“ eva l()是一個(gè)危險(xiǎn)函數(shù),它以調(diào)用者的特權(quán)執(zhí)行它所傳遞的代碼。如果您運(yùn)行eva l()時(shí)使用的字符串可能會(huì)受到惡意方的影響,您可能最終會(huì)在網(wǎng)頁(yè)/擴(kuò)展程序的許可下在用戶(hù)的計(jì)算機(jī)上運(yùn)行惡意代碼!
為了解決此問(wèn)題,Mozilla還重寫(xiě)了“從系統(tǒng)特權(quán)上下文和Firefox代碼庫(kù)中的父進(jìn)程中全部使用類(lèi)似'eva l()'的函數(shù)”,以遏制eva l()的使用,從而進(jìn)一步減少攻擊面。

運(yùn)行時(shí)斷言也已添加到Firefox的代碼庫(kù)中,該措施旨在在系統(tǒng)特權(quán)的腳本上下文中禁止類(lèi)似eva l()的函數(shù)。
Mozilla在致力于刪除所有類(lèi)似eva l()的函數(shù)時(shí),還發(fā)現(xiàn)了Firefox代碼庫(kù)外部對(duì)eva l()的調(diào)用。例如,F(xiàn)irefox用戶(hù)可以在自定義文件(例如userChrome.js)中包含eva l()函數(shù),以在啟動(dòng)時(shí)自定義Firefox。
Mozilla安全團(tuán)隊(duì)的運(yùn)行時(shí)檢查驗(yàn)證了用戶(hù)確實(shí)在其中的一些自定義文件中包含了評(píng)估。為了允許用戶(hù)自定義他們的Firefox體驗(yàn),Mozilla說(shuō),瀏覽器將禁用“阻止機(jī)制,并允許使用eva l()”。
Mozilla 總結(jié)說(shuō): “展望未來(lái),我們引入的eva l()斷言將繼續(xù)通知Mozilla安全團(tuán)隊(duì)未知的eva l()實(shí)例,隨著我們進(jìn)一步強(qiáng)化Firefox安全格局,我們將對(duì)其進(jìn)行密切審核,評(píng)估和限制!