<tr id="i20gg"></tr>
<strike id="i20gg"></strike>
<samp id="i20gg"></samp>
  • <ul id="i20gg"></ul>
  • <strike id="i20gg"></strike>
  • <ul id="i20gg"><tbody id="i20gg"></tbody></ul>
    國家保密局網站>>保密科技

    虛擬機逃逸安全研究

    2021年05月13日    來源:國家保密科技測評中心【字體: 打印

    【摘   要】 虛擬化技術是云計算實現提供用戶靈活增減IT資源、按需付費等特色服務的基礎。虛擬化技術架構主要由宿主機、虛擬化層和虛擬機3部分組成,每個部分都存在各種安全問題,其中虛擬機逃逸被認為是對虛擬機安全最嚴重的威脅之一。本文提煉虛擬機逃逸的提權模型,劃分其表現特征,并對虛擬化安全的研究提出了展望。

    【關鍵詞】 虛擬化 虛擬機逃逸 提權模型 表現特征

    1 引言

    近些年,虛擬化技術從開源KVM、XEN到Docker和Kubernetes,微服務和軟件定義網絡的理念模糊了開發和運維的界限,也把更多的安全問題帶入到虛擬化技術中。更多基礎設施即服務(Iaas)管理平臺的問題以及云供應商的不可控都給虛擬化技術的安全應用帶來阻礙,而真正的虛擬化安全要從虛擬化技術本身談起。虛擬機分享宿主機的資源,宿主機提供了虛擬機之間、宿主機與虛擬機之間的隔離。虛擬機的設計理念是虛擬機上運行的程序不能監控和交互宿主機與其他虛擬機上運行的程序。但是隨著虛擬化技術的延展,這種隔離機制被弱化,導致安全問題的發生。一個最典型的攻擊類型是虛擬機逃逸,早在2007年,就有研究人員提出當宿主機與虛擬機之間的隔離機制被弱化的時候,它是最嚴重的威脅。虛擬機逃逸的定義是指虛擬機里運行的程序利用虛擬機的漏洞突破虛擬機管理器(Hypervisor),獲得宿主機操作系統管理權限,并控制宿主機上運行的其他虛擬機,導致安全環境架構的徹底破壞。

    虛擬化環境中,上層虛擬機與底層虛擬機監控器進行交互,實現對底層物理資源的訪問,而這種交互過程就是潛在的引入虛擬機逃逸漏洞的關鍵。虛擬機逃逸的發生來源于虛擬化技術自身的安全問題,而虛擬化自身的安全問題往往由虛擬化技術的機制產生。下面從虛擬機逃逸的提權模型和表現特征展開討論。

    2 虛擬機逃逸的提權模型

    虛擬機逃逸種類繁多,原因復雜,很難對其進行歸納總結,提取共同特征。本小節基于虛擬化系統中指令處理的機制和原理,嘗試揭示虛擬機逃逸的根本原因,提出虛擬機逃逸的提權模型,發掘虛擬機逃逸的根源。

    2.1 虛擬機逃逸的提權機理

    攻擊者利用虛擬機操作系統發起執行相關敏感指令的請求,該指令會交由內核態去處理,對于某些特權指令會交由Hypervisor處理,此時攻擊者可利用Hypervisor的脆弱性漏洞使得Hypervisor執行完特權指令后不產生指令狀態的返回,導致用戶態停留在了內核態,攻擊者實現了提權,隨后攻擊者可以滲透到Hypervisor和虛擬機的其他區域,破壞虛擬化的隔離機制,完成逃逸操作。虛擬機逃逸的關鍵機理是先提權后滲透,提權完成系統級別的控制切換,滲透完成隔離機制的破壞,從而打破虛擬化體系的安全機制。

    虛擬機逃逸是一個復雜多變的過程,完成一次成功的逃逸攻擊,需要具備下面4個條件:

    (1) 一個有漏洞的內核;

    (2)一次可匹配漏洞的逃逸;

    (3)擁有將逃逸轉移到目標位置的能力;

    (4)擁有在目標位置上執行逃逸攻擊的能力。

    假設用戶處于Ring3狀態,實現逃逸利用的通用流程為:

    (1)誘使內核在根模式Ring0下運行企圖的有效載荷;

    (2)修改任意數據,例如進程權限;

    (3)以新權限啟動一個Shell,并獲取root權限。

    權限提升的目的:

    (1)讀/寫任意的敏感文件;

    (2)系統重啟后依然運行;

    (3)插入永久后門。

    2.2 虛擬機逃逸的提權模型構建

    CPU指令按照運行級別的不同,可以劃分為特權指令和非特權指令兩類。特權指令只能在最高級別上運行,非特權指令可以在各個級別的狀態下執行。引入虛擬化后,客戶機操作系統就不能運行在Ring 0上,原本需要在最高級別下執行的指令不能直接執行,而是交由Hypervisor處理執行,這部分指令稱為敏感指令。屬于特權指令的敏感指令可以陷入Hypervisor下直接執行。而非特權指令的敏感指令在(軟件)全虛擬化模式和半虛擬化模式下需要進行復雜的陷入和模擬操作才能執行,該難題在硬件輔助虛擬化下得到解決。

    權限提升在虛擬化系統中尤為重要,包括兩部分權限提升,從用戶層到內核層,從內核層到虛擬化層。權限提升可以使得攻擊者獲得更高的權限,運行的代碼級別更高,危害更大。下面分別給出全虛擬化/半虛擬化模式提權模型和硬件輔助虛擬化模式提權模型。

    全虛擬化/半虛擬化的提權模型如圖1所示。

    在全虛擬化和半虛擬化模式下,敏感指令在Ring0級執行完后沒有返回用戶級Ring3,而是駐留在Ring0級,表示用戶態應用程序成功逃逸到最高特權級。

    為了減輕全虛擬化模式應用二進制翻譯技術帶來的性能消耗過大,以及克服半虛擬化模式需要修改虛擬機操作系統帶來的不便,硬件輔助虛擬化模式在2005年出現,并成為至今普遍推廣的虛擬化模式,其提權模型如圖2所示。

    在硬件輔助虛擬化模式下,非根模式Ring3級的用戶操作使得敏感指令在根模式的Ring0級執行后駐留在Ring0,表示虛擬機非根模式應用程序成功逃逸到根模式宿主機最高特權級。

    3 虛擬機逃逸的表現特征

    當前對虛擬機逃逸的分類沒有一定的標準,為了最大程

    度涵蓋截至當前出現的虛擬機逃逸漏洞,本小節從國內外專業漏洞庫CVE(Common Vulnerabilities and Exposures,公共漏洞和暴露)和NVD(National Vulnerability Database,國家漏洞數據庫)搜集信息,采用造成虛擬機逃逸漏洞的表現特征來進行分類,任何一個逃逸漏洞包括表現特征的一個或多個組合,其表現特征主要劃分為以下4個方面。

    3.1 拒絕服務類型

    傳統拒絕服務是指通過占滿服務器的所有服務線程或者網絡帶寬,導致正常的服務請求無法得到響應,致使服務器處于癱瘓的狀態。拒絕服務類型虛擬機逃逸與傳統網絡攻擊中的拒絕服務攻擊有所區別,虛擬機環境中,惡意用戶以正常租戶的身份獲取客戶虛擬機,利用設備仿真或其他類型漏洞,引起緩沖區溢出或內核崩潰,導致客戶機惡意停止工作,甚至影響其他客戶虛擬機,造成嚴重的拒絕服務。一個典型的拒絕服務類型虛擬機逃逸漏洞如CVE-2019-3887:基于內核虛擬機的虛擬化系統(Kernrel-based Virtual Machine,KVM)的Hypervisor在啟用嵌套虛擬化的情況下處理x2APIC特殊機器寄存器(MSR)訪問的方式存在缺陷。在這種情況下,當啟用“virtualize x2APIC mode”時,L1 guest虛擬機可以通過L2 guest訪問L0的APIC寄存器值。攻擊者可以利用此漏洞致使主機內核崩潰,從而導致拒絕服務問題。

    3.2 內存隔離失效類型

    內存隔離失效類型主要包括緩沖區溢出和堆棧溢出等,緩沖區溢出是一種非常普遍、非常危險的漏洞,在各種操作系統、應用軟件中廣泛存在。緩沖區在系統中的表現形式是多樣的,高級語言定義的變量、數組、結構體等在運行時可以說都是保存在緩沖區內的,因此所謂緩沖區可以更抽象地理解為一段可讀寫的內存區域,緩沖區攻擊的最終目的就是希望系統能執行這塊可讀寫內存中已經被蓄意設定好的惡意代碼。按照馮·諾依曼存儲程序原理,程序代碼是作為二進制數據存儲在內存的,同樣程序的數據也在內存中,因此直接從內存的二進制形式上是無法區分哪些是數據哪些是代碼的,這也為緩沖區溢出攻擊提供了可能。

    利用緩沖區溢出攻擊,可以導致程序運行失敗、系統宕機、重新啟動等后果。而緩沖區溢出類型的虛擬機逃逸漏洞,則更為嚴重,它可以利用溢出執行非授權指令,甚至可以取得系統特權,進而進行各種非法操作,對數據的安全造成嚴重威脅。

    CVE-2020-8834是較新的堆棧損壞逃逸攻擊,在Power8處理器上的Linux內核中,KVM在kvmpc{save,restore}tm中使用HSTATE_HOST_R1將R1狀態存儲在kvmpcuhv_entry plus中時發生沖突,導致堆棧損壞。具有在客戶虛擬機內核空間中運行代碼能力的攻擊者可以導致主機內核死機。

    3.3 權限提升類型

    權限提升漏洞是指利用該安全漏洞使得自己突破了原來的限制,能夠非法訪問其他信息,甚至使得自己能夠如管理員那樣來獲取整個系統控制權。權限提升型虛擬機逃逸漏洞即:客戶機非法獲取了宿主機操作系統權限,進而實現對整個集群的控制能力。這種權限提升要么來源于指令操作的錯誤結果,要么來源于系統對某些指令或指針沒有預先的限制而導致潛在的權限提升可能。

    CVE-2018-10853虛擬機逃逸漏洞是一個權限提升類型的代表,在KVM4.18版本之前,Linux內核的Hypervisor處發現了一個仿真指令的錯誤。在仿真非權限指令時,它不檢查當前權限級別,導致一個非權限用戶或進程可以利用這個錯誤提升權限。

    3.4 QEMU仿真錯誤類型

    KVM的內核模塊存在于系統Linux內核,并且直接在內核態上執行,一旦內核模塊攻陷,攻擊者甚至無須進一步提權。但是,內核模塊比用戶空間組件的代碼量少很多,攻擊者難以下手,而且從實施的角度講,攻擊者很難從客戶機上接觸到存在于物理機的內核組件。QEMU是由法布里斯·貝拉(Fabrice Bellard)所編寫的以GPL許可證分發源碼的模擬處理器,可以模擬多款不同架構的CPU,還包含部分硬件模擬,例如軟驅、顯卡、并口、串口、聲卡、網卡等以提供基本的操作系統運行所需環境。而QEMU作為組件中代碼量最龐大也最陳舊的部分,在設備仿真過程中,更容易成為攻擊者的下手對象,當前的QEMU-KVM可以多線程實現硬件I/O虛擬化。

    例如:CVE-2020-25637的漏洞,是在libvirt6.8.0之前的版本中,出現雙可用內存問題,該問題發生在請求有關正在運行的QEMU域的網絡接口信息的過程中,影響訪問控制驅動程序。尤其是使用有限的ACL權限連接到讀寫套接字的客戶端,可能會利用此漏洞使libvirt守護程序崩潰,可升級其在系統上的權限。

    從以上4種虛擬機逃逸的類型中可以看出,無論逃逸用什么方法,最終的目的是提權,只有這樣,才能造成宿主機或Hypervisor崩潰,或執行任意代碼,從而控制Hypervisor或其他虛擬機戶。

    4 虛擬化安全研究展望

    本文設計了虛擬機逃逸的提權模型,概括了虛擬機逃逸的表現特征。當前對虛擬化技術的安全威脅、安全研究點以及安全架構眾說紛紜,是為了研究虛擬化安全而試圖增添更多的威脅還是脫離了虛擬化技術本身而去研究實際系統安全,筆者做出以下的研究展望。首先,虛擬化技術本身是充分利用資源,是計算資源的高效利用,而不是敏感數據的無規則處理。研究虛擬化技術安全,應該從其本身的機理、特征出發,分析其對系統造成的影響。其次,虛擬化的管理平臺帶來了更多的安全問題,從最早的cloudstack到openstack管理平臺,從紅帽的RHEV管理平臺到開源的oVirt管理平臺,以及各家各自基于開源代碼的虛擬化管理平臺均是如此。與其說是虛擬化技術選擇了管理平臺,不如說是管理平臺選擇了虛擬化,而所謂的安全問題、安全威脅讓虛擬化技術脫離其自身的機理,而是更偏向了傳統系統安全。最后,云供應商當前被認為是存儲數據不可控的源頭,甚至是虛擬化系統不安全的一個重要原因。實際一個安全的系統不應該由外界接觸,而是建立自己的補丁測試團隊和安全運維團隊。美國很早就讓敏感系統脫離外界接觸,供應商根本不知道給誰提供了系統,給誰提供了服務,而是由敏感系統的設計團隊負責,只有這種模式才能解決外界不可控的問題。總之,虛擬化安全融入系統安全得到重視,也應因系統安全而萌發獨特活力。

     

    (原載于《保密科學技術》雜志2020年10月刊)


    精品熟女少妇AV免费观看| 午夜麻豆国产精品无码| heyzo加勒比高清国产精品| 2020亚洲男人天堂精品| 久久九九有精品国产23百花影院| 国产精品中文字幕在线| 国产精品乳摇在线播放| 青青青青久久精品国产h| 亚洲午夜精品久久久久久浪潮| 国产久热精品无码激情| 91久久福利国产成人精品| 青草青草久热精品视频在线网站| 久久国产成人精品国产成人亚洲| 精品久久久久久久99热| 国产91精品在线观看| 日韩精品无码一区二区中文字幕| 91老司机深夜福利精品视频在线观看| 国产精品亚洲专区一区| 人妻少妇看A偷人无码精品视频| 亚洲精品成人图区| 精品久久久久香蕉网| 亚洲精品国精品久久99热一| 凹凸国产熟女精品视频| 国产乱人伦偷精品视频免 | 国产成人精品无码片区在线观看| 精品国内自产拍在线观看 | 久久伊人精品一区二区三区| 国产成人精品2021| 亚洲精品成人片在线播放| 久久国产成人亚洲精品影院| 国产成人精品曰本亚洲79ren| 国产精品久久久久久久网站| 大香视频伊人精品75| 国语自产精品视频在线第| 玩弄人妻少妇精品视频| 国产精品国产福利国产秒拍| 91精品观看91久久久久久| 91精品久久久久久无码| 久久亚洲精品高潮综合色a片| 亚洲精品美女视频| 99精品视频在线观看免费专区|