Chrome安全團(tuán)隊(duì)正計(jì)劃犧牲部分性能 換取更安全的使用環(huán)境
安全是一場(chǎng)貓捉老鼠的游戲。攻擊者會(huì)不斷創(chuàng)新攻擊方式,而瀏覽器廠商也在采取新的防御措施以保持領(lǐng)先。Chrome 在沙盒和網(wǎng)站隔離的基礎(chǔ)上不斷打造更強(qiáng)大的多進(jìn)程架構(gòu)。通過(guò)整合模糊處理,為用戶構(gòu)建起更牢固的安全防線。但這道主要防線已達(dá)到了極限,Google 不能再僅僅依靠這種策略來(lái)打敗野蠻的攻擊。
Chrome 軟件工程師在去年 5 月 23 日發(fā)布的報(bào)告中指出,70% 的嚴(yán)重安全漏洞都來(lái)自內(nèi)存安全問(wèn)題。更重要的是,Chrome 瀏覽器有一半的安全缺陷是“use-after-free”漏洞,這些安全問(wèn)題來(lái)自于對(duì)內(nèi)存指針的不正確管理,使 Chrome 瀏覽器進(jìn)一步受到攻擊。
犧牲性能來(lái)?yè)Q取安全
今天,Chrome 安全團(tuán)隊(duì)公布他們對(duì)瀏覽器內(nèi)存安全問(wèn)題的解決方案,其中一個(gè)涉及到以性能為代價(jià)。Chrome 瀏覽器的安全團(tuán)隊(duì)由 Andrew Whalley、Dana Jansens、Adrian Taylor 和 Nasko Oskov 組成。該團(tuán)隊(duì)進(jìn)一步列舉了所提到的來(lái)自內(nèi)存安全缺陷的安全漏洞的統(tǒng)計(jì)數(shù)據(jù)。
這三個(gè)方案包括
● 通過(guò) compile-time 檢查指針是否正確讓 C++ 變得更安全
● 通過(guò) runtime 檢查指針是否正確讓 C++ 變得更安全
● 研究在代碼庫(kù)中的某些代碼使用內(nèi)存安全語(yǔ)言
因此,為了應(yīng)對(duì)瀏覽器內(nèi)存管理中普遍存在的錯(cuò)誤,Chrome 瀏覽器的開(kāi)發(fā)人員提出了通過(guò)增加 runtime 檢查使其更加安全的想法。
盡管 runtime 檢查使 Chrome 的 C++ 語(yǔ)言比以往任何時(shí)候都更安全,不受內(nèi)存安全漏洞的影響,但它也有一些性能成本。安全團(tuán)隊(duì)進(jìn)一步寫(xiě)道:“檢查指針的正確性在內(nèi)存和 CPU 時(shí)間上是一個(gè)無(wú)限小的成本。但對(duì)于數(shù)百萬(wàn)個(gè)指針來(lái)說(shuō),它就會(huì)增加”。
也就是說(shuō),對(duì)內(nèi)存缺陷的修復(fù)可能是以一些內(nèi)存和CPU時(shí)間為代價(jià)。因此,影響了瀏覽器的整體性能。對(duì)于 Chrome 瀏覽器的用戶來(lái)說(shuō),這種權(quán)衡變得更加明顯,因?yàn)樗麄兊脑O(shè)備并不具備最高性能的 CPU,而且內(nèi)存不足。因此,額外的 runtime 檢查可能會(huì)導(dǎo)致網(wǎng)頁(yè)瀏覽的性能略微變慢。
然而,Chrome 安全團(tuán)隊(duì)仍然指出,它愿意就更安全但更慢的選項(xiàng)進(jìn)行實(shí)驗(yàn)。但該團(tuán)隊(duì)也在努力為瀏覽器編寫(xiě)一種不同的語(yǔ)言,不需要額外的運(yùn)行時(shí)間。