第 5 集:由 Ade in Mountain View, CA (2019 年 8 月)
先前劇集
Chrome 分為多個程序。有些機構採用沙箱機制,因此可降低系統和使用者帳戶的存取權。在沙箱程序中,允許惡意程式碼執行的錯誤就大幅降低。
瀏覽器程序沒有沙箱機制,因此錯誤可能會讓惡意程式碼取得整個裝置的完整存取權。您該採取什麼不同的做法?其他程序為何?
所有程式碼都有錯誤。在瀏覽器程序中,這些錯誤會允許惡意程式碼安裝程式、竊取使用者資料、調整電腦設定、存取所有瀏覽器分頁的內容、登入資料等。
在其他程序中,OS 存取權會因為平台專屬的限製而受到限制。詳情請參閱 Chrome 的沙箱實作指南。
請務必避免下列常見錯誤:
- 請勿在瀏覽器程序中使用 C++ 剖析或解讀不可信任的資料。
- 請勿信任轉譯器聲明要代表的來源。可使用瀏覽器的 RenderFrameHost 安全地取得目前來源。
正確做法
請改用下列最佳做法:
- 如果程式碼處於瀏覽器程序,請特別留意。
- 驗證其他程序中的所有處理序間通訊 (IPC)。假設所有其他程序都已受到入侵,並阻止您進行詐騙。
- 請在轉譯器、公用程式程序或其他沙箱程序中進行處理作業。在理想情況下,也應使用 JavaScript 等記憶體安全語言 (因此 >50% 的安全性錯誤)。
多年來,我們會在瀏覽器程序中執行網路堆疊 (例如 HTTP、DNS、QUIC),導致一些重大安全漏洞。在某些平台上,網路現在有自己的程序,並且會加入沙箱。
其他資源
- Chromium 二法則:最多只能包含兩種不安全的資料、不安全的程式碼和不安全的程序。
- 驗證處理序間通訊 (IPC) 資料:說明如何確保轉譯器程序處理序間通訊 (IPC) 未含 fib 和不實陳述或行為。