Web和移動(dòng)安全之?????沙盒
沙盒
現(xiàn)代移動(dòng)和瀏覽器平臺(tái)都利用不同的沙盒技術(shù)來(lái)隔離應(yīng)用程序和網(wǎng)站及其內(nèi)容(參見(jiàn)操作系統(tǒng)和虛擬化CyBOK知識(shí)領(lǐng)域[3])[37,38]。這也旨在保護(hù)平臺(tái)免受惡意應(yīng)用程序和站點(diǎn)的侵害。主要的網(wǎng)絡(luò)瀏覽器(例如谷歌瀏覽器[39])和移動(dòng)平臺(tái)(例如Android[40])在操作系統(tǒng)進(jìn)程級(jí)別實(shí)現(xiàn)隔離。每個(gè)應(yīng)用程序或網(wǎng)站都在自己的進(jìn)程中運(yùn)行2.默認(rèn)情況下,隔離的進(jìn)程無(wú)法相互交互,也無(wú)法共享資源。在瀏覽器中,站點(diǎn)隔離作為同源策略的擴(kuò)展的第二道防線(參見(jiàn)第2.4.2節(jié))。
應(yīng)用程序隔離
現(xiàn)代移動(dòng)平臺(tái)為每個(gè)應(yīng)用程序提供在專(zhuān)用進(jìn)程中運(yùn)行的沙箱和自己的文件系統(tǒng)存儲(chǔ)。移動(dòng)平臺(tái)利用底層操作系統(tǒng)進(jìn)程保護(hù)機(jī)制進(jìn)行應(yīng)用程序資源識(shí)別和隔離。例如,Android[40]中的應(yīng)用程序沙箱是在內(nèi)核級(jí)別設(shè)置的。安全性通過(guò)標(biāo)準(zhǔn)操作系統(tǒng)設(shè)施(包括用戶和組ID以及安全上下文)強(qiáng)制實(shí)施。默認(rèn)情況下,沙盒阻止應(yīng)用程序相互訪問(wèn),并且僅允許對(duì)操作系統(tǒng)資源的有限訪問(wèn)。若要訪問(wèn)受保護(hù)的應(yīng)用和操作系統(tǒng)資源,需要通過(guò)受控接口進(jìn)行應(yīng)用間通信。
內(nèi)容隔離
內(nèi)容隔離是現(xiàn)代瀏覽器中的主要安全保證之一。主要思想是根據(jù)文檔的來(lái)源隔離文檔,以便它們不會(huì)相互干擾。同源策略(SOP)[41]于1995年引入,影響JavaScript及其與文檔的DOM的交互,網(wǎng)絡(luò)請(qǐng)求和本地存儲(chǔ)(例如,餅干)。SOP背后的核心思想是,如果文檔主機(jī)之間完全匹配,則只允許兩個(gè)單獨(dú)的JavaScript執(zhí)行上下文操作文檔的DOM。以及協(xié)議、DNS名稱(chēng)和端口號(hào)3。不允許跨源操作請(qǐng)求。表2說(shuō)明了示例SOP驗(yàn)證結(jié)果。與JavaScript-DOM交互類(lèi)似,SOP將JavaScript XMLHttpRequest 功能限制為僅向宿主文檔的來(lái)源發(fā)出HTTP請(qǐng)求。
SOP的一個(gè)主要缺陷是它依賴(lài)于DNS而不是IP地址。因此,可以故意更改DNS條目的IP地址的攻擊者可以繞過(guò)SOP安全保證。
圖片
由于執(zhí)行同源策略的代碼偶爾會(huì)包含安全漏洞,因此現(xiàn)代瀏覽器引入了第二道防線:網(wǎng)站以自己的方式呈現(xiàn)。在沙盒中運(yùn)行的進(jìn)程。沙盒網(wǎng)站旨在防止諸如竊取跨站點(diǎn)cookie和保存的密碼之類(lèi)的攻擊[42]。
實(shí)施同源策略和提高Web應(yīng)用程序安全性的另一個(gè)附加防御層是內(nèi)容安全策略(CSP)機(jī)制[43]。CSP主要用于防止代碼注入攻擊,例如XSS(參見(jiàn)第4.1節(jié)),這些攻擊利用瀏覽器對(duì)Web服務(wù)器發(fā)送的內(nèi)容的信任。這允許在客戶端的瀏覽器中執(zhí)行惡意腳本。CSP允許Web開(kāi)發(fā)人員和服務(wù)器運(yùn)營(yíng)商限制瀏覽器應(yīng)被視為可信內(nèi)容源的源數(shù)量-包括可執(zhí)行代碼和媒體信息。可以使用CSP,以便服務(wù)器可以在客戶端上全局禁用代碼執(zhí)行。要啟用CSP,開(kāi)發(fā)人員或操作員可以將Web服務(wù)器配置為發(fā)送內(nèi)容安全策略HTTP響應(yīng)標(biāo)頭或向網(wǎng)站添加HTML<meta>標(biāo)記。兼容的瀏覽器將僅執(zhí)行代碼或從受信任的來(lái)源加載媒體文件。