Google 自曝:Chrome 70% 重大資安漏洞都出在記憶體問題

這份統計是來自 Chrome 2015 年起 912 項等級被列為「高」或「嚴重」的資安事件所算出來的;而且狀況恰巧跟微軟驚人地相似。
評論
Photo Credit: Shutterstock/ 達志影像
Photo Credit: Shutterstock/ 達志影像
評論

Chrome 無疑是當今全球使用度最高的瀏覽器,同時卻也以消耗記憶體資源出名。但你知道嗎?Chrome 本身大部分的資安漏洞也跟記憶體息息相關。

根據 Google 工程師自己在開發網站 Chrome.org 上說明,Chrome 先前的重大資安漏洞中裡,大約有 70% 是記憶體問題,而這 70% 中就有一半是屬於使用已釋放記憶體(Use-After-Free,UAF)的問題。這種漏洞的原理是透過應用程式在使用完記憶體將其釋放後,駭客趁機用之前植入的程式碼把這些記憶體偷偷挪用 。INSIDE 之前報導過的零日漏洞(CVE-2019-5786)就屬此類。

這份統計是來自 Chrome 2015 年起 912 項等級被列為「高」或「嚴重」的資安事件所算出來的;而且這數字恰巧也跟微軟驚人地相似,微軟工程師曾在去年一場資安會議上表示,在過去 12 年中微軟所有產品的資安更新裡,就有 70% 是為了記憶體相關漏洞。

這是為什麼呢?外媒 ZDNET 指出這是 C 和 C ++ 語言的問題,C 和 C ++ 允許工程師讓完全控制應用程式的記憶體指標(pointer),但另一方面 C 和 C ++ 語言缺乏例如自動邊界檢查等機制,連帶造成釋放記憶體、緩衝區過讀、緩衝區溢位等情形。

這導致記憶體攻擊成為日後駭客最喜歡的攻擊手法之一,同時也成了 Google 在內各大軟體公司最頭痛的一塊;這讓 Chrome 工程師在開發新功能時不得不遵守「The Rule of 2」的開發規則:

  • 程式碼本身不受信任
  • 程式沒有在沙盒下試運行過
  • 用 C、C++ 寫的程式(!)

只要犯了上面其中兩條,基本上 Chrome 內部就不接受程式碼。

核稿編輯:Mia

延伸閱讀: