我們很高興推出一系列技術分析文章,重點介紹各種常見漏洞和披露 (CVE),這些文章使用我們的高階威脅檢測技術進行識別和修復。 所有研究均由參與 OPSWAT 網路安全獎學金計劃於 2023 年 9 月啟動。
在這篇文章中,我們將解釋Google Chrome CVE-2019-13720以及組織如何防禦 CVE-2019-13720 漏洞利用攻擊。
什麼是谷歌瀏覽器,它是什麼時候成立的?
Google Chrome 是由 Google 開發的跨平台網路瀏覽器,於 2008 年 9 月 2 日正式發布。它是作為Google努力創建更好、更現代的瀏覽器的一部分而開發的。它當時提供了許多新功能,包括選項卡式瀏覽、隱私模式以及與Google服務的同步。自發佈以來,它已成為全球最受歡迎的網路瀏覽器之一。截至 2021 年,谷歌瀏覽器估計擁有約 32 億使用者。
由於谷歌瀏覽器的普及,它已成為研究和攻擊的焦點,吸引了道德駭客和惡意駭客。Google Chrome 中發現的常見漏洞包括拒絕服務 (DoS)、資訊洩露和遠端代碼執行等。關於遠端代碼執行漏洞,Google Chrome 上存在兩種類型的漏洞:沙箱逃逸和非逃逸。
什麼是CVE-2019-13720?
CVE-2019-13720 是 Google Chrome 版本 78.0.3904.87 之前的 WebAudio 的 Web Audio 釋放後使用(UAF)漏洞,允許遠端攻擊者透過建構的 HTML 頁面潛在地利用堆損壞。當受害者在易受攻擊的 Google Chrome 瀏覽器上訪問惡意網頁或打開精心製作的 HTML 頁面時,惡意代碼會在受害者的端點上執行。該CVE由Anton Ivanov和Alexey Kulaev於2019年首次報導。
從技術角度來看,由於 Qt WebEngine 音訊元件中的 Render 和 Audio 線程之間存在爭用條件,因此可以利用釋放後使用漏洞,允許遠端攻擊者執行 WebAssembly shell 代碼,從而導致受害者的設備受到威脅。此問題的解決方案是讓所有Qt WebEngine使用者更新到最新版本。
進攻階段
攻擊者使用惡意 HTML 創建一個特殊的 URL,並向受害者發送帶有連結的網路釣魚電子郵件。當受害者打開電子郵件並按兩下連結時,惡意代碼將被執行並允許攻擊者接管受影響的系統。可以 在此處參考 HTML 檔案中顯示的遠端代碼策略的詳細資訊。
什麼是釋放後使用(UAF)和堆噴霧漏洞?
UAF 漏洞是一種安全漏洞,當程式在釋放記憶體後繼續使用記憶體時會發生。這可能會導致各種不利後果,包括資料損壞、任意代碼執行和系統崩潰。
堆噴洒是一種有效負載傳送技術,需要在整個堆的不同位置寫入多個字節。這涉及將建構的有效負載(即有害資料)注入記憶體堆,確保執行流跳轉到噴出的記憶體中,而不是應用程式的原始代碼中。此攻擊的目的通常是獲得對 EIP 註冊表的控制權。
什麼是 WebAssembly?
WebAssembly,通常縮寫為 Wasm,是一種新的二進位指令格式,可作為編譯 C/C++ 等高階語言的可移植目標,允許它們在 Web 瀏覽器的 JavaScript 引擎中以接近本機的速度運行。
但是,由於 WebAssembly 可以從非記憶體安全的語言(如 C/C++)編譯,因此可以在交叉編譯的 WebAssembly 二進位檔案中引入常見的編碼漏洞,如緩衝區溢出或格式字串漏洞。這種漏洞包含在 WebAssembly 模組中的可能性增加了當代 網路應用程式的攻擊面。
什麼是爭用條件漏洞?
當多個進程或線程嘗試同時訪問共用資源時,就會出現軟體中的爭用條件漏洞,從而導致不可預知的結果或由於訪問時間而導致的操作中斷。當程式存在爭用條件漏洞時,可能會導致各種問題,例如應用程式崩潰、資料損壞、結果不正確或不一致。攻擊者可以利用此漏洞獲取未經授權的訪問、洩露資訊、提升許可權或導致系統崩潰。
TOCTTOU 漏洞被歸類為爭用條件漏洞,它利用檢查和使用資源之間的時間間隔。
CVE-2019-13720 如何工作?
為了利用此漏洞,研究人員將 JavaScript 代碼附加到 HTML 檔。當用戶啟動 HTML 檔時,腳本會嘗試透過創建處理相同緩衝區資料的兩個線程(主線程和音訊線程)來查找洩露的位址。然後,ReverbConvolverStage 中洩露的temporary_buffer_object地址用於獲取 IIRFilterNode(與 Convolver 共用同一超級頁面)中feedforward_array的指標。隨後,研究人員試圖在第二個觸發器UAF中獲取feedforward_array的指標。
WebAssembly 處理shell代碼的執行。為了能夠執行shellcode,研究人員嘗試釋放IIRFilter並寫入 GCPreventer,直到他們無需噴灑即可控制新分配的位置。最後,研究人員將shellcode寫入記憶體中的即時 (JIT) 區域。因此,在檔讀取器添加錯誤事件後,WebAssembly 模組將執行Shell代碼。
要執行與此漏洞關聯的shell代碼,用戶必須在易受攻擊的Chrome版本中禁用沙箱。
執行shell代碼時,它會自動在受害者的設備上打開記事本服務。
修復方法
MetaDefender Endpoint,由 OPSWAT,使用戶能夠檢測並保護其系統免受這些攻擊。使用者禁用隱私後 沙箱 功能 (--no-沙箱), MetaDefender Endpoint 可以檢測 CVE 並應用最新的 Google Chrome 補丁。之後,使用者可以手動將Google Chrome更新到最新版本或啟動 Patch Management 選項卡讓 OPSWAT MetaDefender 一旦有新的補丁可用,終端就會自動更新瀏覽器。
為防止暴露於惡意代碼,用戶應使用電子郵件過濾器工具來檢測網路釣魚攻擊,並避免按兩下電子郵件中的未知URL。
MetaDefender Endpoint主要產品特性和優勢
- 查看和修正有風險的應用程式。可以在 MetaDefender Endpoint UI。
- 檢查操作系統上是否正確配置了反惡意軟體保護。
- 確保符合組織安全標準。
- 硬碟加密保證。
- 操作系統補丁驗證。
- 惡意軟體掃描和在端點上發佈無惡意軟體公告的多個選項。
參考
- https://nvd.nist.gov/vuln/detail/CVE-2019-13720
- https://bugs.chromium.org/p/chromium/issues/detail?id=1019226
- https://www.w3.org/TR/webaudio/
- https://security.gentoo.org/glsa/202004-04
- https://www.cve.org/CVERecord?id=CVE-2019-13720
- https://packetstormsecurity.com/files/167066/Google-Chrome-78.0.3904.70-Remote-Code-Execution.html
- https://devopedia.org/race-condition-software
- https://webassembly.org/
- https://www.researchgate.net/figure/WebAssembly-high-level-architecture_fig1_360232889
- https://www.researchgate.net/publication/331990070_Native_Web_Audio_API_Plugins
- https://whitehat.vn/threads/gioi-thieu-ky-thuat-khai-thac-exploit-heap-spray.5056/
- https://www.opswat.com/