1. 程式人生 > >【漏洞預警】最新VirtualBox 0day漏洞公開

【漏洞預警】最新VirtualBox 0day漏洞公開

根據最初披露的細節,這個問題存在於虛擬化軟體的共享程式碼庫中,該庫在所有作業系統都支援。

利用該漏洞,攻擊者可以實現虛擬機器逃逸,到達Ring 3層,該層用於大多數使用者程式執行程式碼,許可權最少。

將一個“溢位”變成另一個“溢位”

Sergey Zelenyuk發現這個安全漏洞可以在配置了Intel PRO/1000 MT桌面(82540EM)網路介面卡的虛擬機器上使用,採用網路地址轉換(NAT)模式,這是允許客戶系統訪問外部網路的預設設定。

而[Intel PRO/1000 MT桌面(82540EM)]網絡卡有一個漏洞,允許虛擬機器上具有管理員許可權的攻擊者逃逸到物理機上的ring 3層。然後攻擊者可以使用現有的技術升級許可權,通過/dev/vboxdrv從ring 3層升級到ring 0層。

Zelenyuk說,理解漏洞如何工作的一個重要方面就是理解上下文描述符在資料描述符之前被處理。

研究人員詳細描述了安全缺陷的機制,展示瞭如何觸發必須的條件,以獲得一個緩衝區溢位,而該緩衝區溢位可能被濫用,以逃脫虛擬作業系統的限制。

首先,他使用包描述符(允許網路介面卡在系統記憶體中跟蹤網路包資料的資料段)造成整數溢位。

然後利用這種狀態將客戶作業系統中的資料讀入堆緩衝區,並導致溢位,從而導致重寫函式指標;或導致堆疊溢位。

100%可利用

Zelenyuk編寫的這個漏洞利用依賴於兩個溢位條件。由於它提供對Ring 3層的訪問,因此需要許可權升級來控制物理機作業系統。

儘管這並非不可能,但攻擊者必須利用另一個漏洞,以提升系統許可權。

研究人員描述了利用他在VirtualBox中發現的0day的步驟,這些步驟肯定不適合編寫指令碼,因為它們需要更高階的技術知識。

緩衝區溢位總不是穩定的,大多數情況下會導致目標崩潰。但是,Zelenyuk說他的利用過程是“100%可靠的”,並且“它要麼總是工作,要麼從不工作,至於為什麼,因為某些微妙的原因,我暫且不說明。”

他在Ubuntu 16.04和18.04上測試了自己的成果,並且都分別在都是86位和64位系統上測試的,配置都是預設的。成功的證明是下面的視訊顯示了在虛擬機器作業系統中進行利用操作後,成功在物理機作業系統打開了一個shell:

這不是研究人員第一次公開VirtualBox中漏洞。今年早些時候,他報告了VirtualBox中的另一個安全漏洞。該漏洞影響力了5.2.10版本。但是,出於某種原因,Oracle在5.2.18版本中悄無聲息地修復了這個問題,並且沒有將發現和報告漏洞的工作歸功於漏洞研究人員。

在今天報告的開頭,Zelnyuk明確說明了促使他公開宣佈0day的全部細節,然後才通知開發人員的原因。甲骨文過在去對其報告的不重視似乎在其中起到了一定作用。

1.等待半年,直到漏洞被修補完。
2.在bug bounty中,這些行為都是被認可的:
      1.等待一個多月,直到提交的漏洞得到驗證,然後才作出購買或不購買的決定。
      2.在整體流程中改變決定。今天你發現了漏洞獎勵計劃中軟體的漏洞,一週後你就會發現你的漏洞和利用程式得到“不感興趣”的回報。
      3.沒有急需的軟體漏洞的價格的精確列表。漏洞獎勵很隨便,研究人員很尷尬。
      4.漏洞沒有精確的下限和上限的價格。影響價格的因素有很多,但研究人員需要知道什麼值得研究,什麼不值得。

3.誇大營銷:命名漏洞併為它們建立網站;一年召開上千次會議;誇大自己作為安全研究員的工作重要性;認為自己是“世界的救世主”。

我因為前兩點已經筋疲力盡了,所以我的舉動是完全公開的。請把注意力放在資訊保安。

原文連結:https://www.bleepingcomputer.com/news/security/virtualbox-zero-day-vulnerability-details-and-exploit-are-publicly-available/