跨越次元的攻擊?連虛擬機都不安全了
近日,一位俄羅斯的漏洞研究人員Sergey Zelenyuk曝光了一個VirtualBox的0day漏洞,他將該漏洞的細節(jié)和漏洞復(fù)現(xiàn)過程發(fā)在了網(wǎng)上,進行了詳細的介紹說明。
根據(jù)披露的漏洞細節(jié)我們可以了解到,該漏洞存在于虛擬化軟件的共享代碼庫中,也就是說,所有支持該軟件的操作系統(tǒng)中都會受到這種漏洞的威脅。利用這個漏洞,攻擊者可以脫離用戶虛擬計算機的環(huán)境,從而進入到真實系統(tǒng)中,獲得RING 3以及更高級別的權(quán)限。
從“虛”到“實”
Sergey Zelenyuk發(fā)現(xiàn),這個漏洞適用于配置了網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)模式下的[英特爾PRO/1000 MT桌面(82540EM)]網(wǎng)絡(luò)適配器的虛擬機,這個設(shè)置相信用過虛擬機的都知道,是用來讓虛擬機和實體系統(tǒng)中的網(wǎng)絡(luò)能夠相互訪問的。
問題的關(guān)鍵就在于這個[英特爾PRO/1000 MT桌面(82540EM)]上,它存在的漏洞,能夠讓攻擊者獲得root或管理員權(quán)限的甚至主機的RING 3權(quán)限,然后還可以繼續(xù)通過/dev/vboxdrv將權(quán)限升級到RING 0。
Zelenyuk在報告中詳細解釋了漏洞的機制,以及描述了如何通過觸發(fā)虛擬操作系統(tǒng)中的緩沖區(qū)溢出來達到攻擊目的:
首先,因為數(shù)據(jù)段允許網(wǎng)絡(luò)適配器去跟蹤系統(tǒng)內(nèi)存中的網(wǎng)絡(luò)數(shù)據(jù)包,從而能夠使用描述符引起數(shù)據(jù)包中的整數(shù)下溢。
然后利用此狀態(tài)將來自用戶操作系統(tǒng)的數(shù)據(jù)讀入緩沖區(qū)并導(dǎo)致溢出情況,從而導(dǎo)致覆蓋函數(shù)指針,或?qū)е露褩R绯龅那闆r。
能夠100%實現(xiàn)的漏洞?
這個漏洞的實現(xiàn)主要依靠兩個溢出條件,但由于它初始只能提供對ring3級別的權(quán)限,因此仍需要再次提權(quán)才能取得對主機的控制。
Zelenyuk認為這個漏洞就屬于絕對的“不友好”類型,因為不論是發(fā)現(xiàn)還是利用都需要一定的技術(shù)水平。
他表示,緩沖區(qū)溢出的狀態(tài)并不一定穩(wěn)定,多數(shù)時候會導(dǎo)致系統(tǒng)崩潰。然而,他依舊認為這個漏洞是100%可用的,他說,這個漏洞可用于否取決于一些二進制文件是否匹配。
在進行漏洞復(fù)現(xiàn)的過程中,他分別使用了默認配置的32位和64位的Ubuntu 16.04和18.04兩個系統(tǒng),成功驗證了漏洞的可用性。
這并不是VirtualBox首次被曝出漏洞,此前該軟件的5.2.10版本也曾出現(xiàn)過漏洞事件,但是上一次Oracle修復(fù)的非???。
本次漏洞披露,Zelenyuk也清楚的說明了為什么選擇直接曝光而不是先通知廠商,據(jù)說是因為他上報了多次而沒有被采納,導(dǎo)致他一怒之下公開了漏洞細節(jié)。
對此我們也只能說,惹誰不好,偏要惹黑客。