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