亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于硬件虛擬化的模塊化計算機取證系統(tǒng)及其方法

文檔序號:6546486閱讀:326來源:國知局
一種基于硬件虛擬化的模塊化計算機取證系統(tǒng)及其方法
【專利摘要】一種基于硬件虛擬化的計算機模塊化實時取證系統(tǒng)及其方法,包括初始化驅動、系統(tǒng)控制中心、系統(tǒng)支持模塊組和取證功能模塊組;本方法基于硬件虛擬化技術,在操作系統(tǒng)運行時通過初始化驅動搭建輕量化虛擬機,并在系統(tǒng)控制中心提供硬件虛擬化平臺的支持和所有子模塊的管理;系統(tǒng)支持模塊組為取證模塊組提供所有基礎功能的支持;本方法規(guī)范了取證功能模塊組的接口,支持模塊的復用和擴展,使取證工具能夠關注核心功能,減少大量重復工作;本發(fā)明不修改目標操作系統(tǒng)的任何代碼,性能損耗低,內存占用少,建立了一個安全可信的實時取證基礎平臺,為各類基于虛擬化的取證工具的實現(xiàn)提供了便利。
【專利說明】一種基于硬件虛擬化的模塊化計算機取證系統(tǒng)及其方法
【技術領域】
[0001]本發(fā)明涉及的是一種計算機取證領域的方法,尤其是一種基于硬件虛擬化的計算機模塊化實時取證系統(tǒng)及其方法。
【背景技術】
[0002]計算機取證的目的是將犯罪者留在計算機的痕跡作為有效證據(jù)提供給法庭,打擊計算機和網絡犯罪。其中一個難點問題是在發(fā)生計算機入侵時,如何第一時間獲取入侵證據(jù),找到犯罪程序或犯罪者。當前的取證方法主要是基于先獲取再分析的方式,即先獲取內存鏡像,再從鏡像信息中重建入侵事件,設法取得證據(jù)。這種方法的缺陷之一是內存獲取需要大量時間和空間,為保證內存快照的一致性還需停止目標機器的運行,即產生較長的停機時間影響重要機器的正常運行。分析階段要處理一份完整的內存鏡像,也是非常復雜的。另外,由于內存的易失性,無法保證鏡像中恰好包含入侵證據(jù),鏡像獲取和分析的耗時性又導致頻繁的基于鏡像的證據(jù)獲取方法難以實施。基于上述原因,當前多數(shù)在內核中發(fā)生的入侵行為是無法被重建的。
[0003]硬件虛擬化技術首次在IBM System/370中提出,它的特性保證了運行環(huán)境的一致性,即計算機軟件在硬件虛擬機下的行為和在機器上直接運行保持一致;保證了 VMM能夠完全控制虛擬機的資源,包括內存、寄存器、I/O、中斷和指令的執(zhí)行;并保證了高效性,即普通指令的運行不受VMM干擾,能夠全速運行。目前在x86架構下支持硬件虛擬化的技術有INTEL的Intel VT-x(2005)和AMD的AMD-V (2006),都已經廣泛運用在各類個人電腦和服務器中。大多數(shù)商用虛擬化軟件如Linux KVM> Microsoft Hyper-V> Xen> VMware等都已支持了該項技術。
[0004]輕量化虛擬機技術利用了硬件虛擬化提供的便利,可以使用少量代碼即可實現(xiàn)一個完整的虛擬化平臺。由于輕量化虛擬機精簡的代碼量,完整性檢查可以更加迅速和完全的進行,這保證了虛擬機監(jiān)視器的安全性。ST King在2006IEEE S&P會議上提出了在運行的操作系統(tǒng)下動態(tài)部署一個輕量化虛擬機的方法,證明了輕量化虛擬機具有能夠在運行時部署的靈活性和對目標系統(tǒng)的透明性。

【發(fā)明內容】

[0005]本發(fā)明針對現(xiàn)有技術的不足,旨在提供一種基于硬件虛擬化的計算機模塊化實時取證系統(tǒng)及其方法,實現(xiàn)了一個輕量化的虛擬機監(jiān)視器,使取證工具可以直接利用硬件虛擬化技術帶來的便利和靈活性,在入侵事件發(fā)生時,提供工具進行迅速分析和獲取實時證據(jù)。本方法能夠在支持硬件虛擬化技術的平臺上部署,在操作系統(tǒng)運行時構建,而無需停止或重啟目標操作系統(tǒng),無需修改任何操作系統(tǒng)內核代碼,具有很高的透明性。本方法利用硬件虛擬機技術,使用信號處理功能、接收外部控制命令、控制客戶虛擬機內存和數(shù)字證據(jù)獲取功能,并能夠忽略無關的虛擬機管理邏輯,復用已有的取證模塊功能,實現(xiàn)重要實時證據(jù)的獲取。[0006]本發(fā)明的技術方案是:一種基于硬件虛擬化的模塊化計算機取證系統(tǒng),包括初始化驅動、系統(tǒng)控制中心、系統(tǒng)支持模塊組和取證功能模塊組;取證系統(tǒng)為各取證工具的實現(xiàn)提供便利,各取證工具即為取證功能模塊組的各模塊,由系統(tǒng)控制中心統(tǒng)一管理,其中,取證系統(tǒng)的基礎支持功能可以通過增加系統(tǒng)支持模塊或修改現(xiàn)有的系統(tǒng)支持模塊實現(xiàn)擴展。
[0007]所述初始化驅動用于在運行的操作系統(tǒng)中部署和卸載取證平臺,并在初始化過程完成后將控制權交給系統(tǒng)控制中心;
[0008]所述系統(tǒng)控制中心提供硬件虛擬化平臺支持,控制初始化過程和卸載過程,以及對硬件虛擬化平臺截獲的目標操作系統(tǒng)的事件進行預處理、并提供給取證功能模塊組;
[0009]所述系統(tǒng)支持t吳塊組基于系統(tǒng)控制中心實現(xiàn)系統(tǒng)的基礎功能,包括為SMP系統(tǒng)提供多核間的信號傳播功能的信號模塊、外部控制模塊、監(jiān)視目標操作系統(tǒng)的內存行為的內存虛擬化模塊、和實時獲得操作系統(tǒng)中的重要證據(jù)的虛擬機內省模塊;
[0010]所述取證功能模塊組由若干個取證模塊組成,為所需監(jiān)視的事件提供事件響應接口來跟蹤系統(tǒng)狀態(tài)和收集證據(jù),并在取證平臺的支持下完成初始化、卸載和外部控制。
[0011]進一步的,所述系統(tǒng)支持模塊組和取證功能模塊組中每個模塊需要實現(xiàn)或部分實現(xiàn)4組接口,分別是初始化接口、事件響應接口、控制接口、和卸載接口 ;所述4組接口由系統(tǒng)控制中心統(tǒng)一管理,具體管理方法如下:
[0012](I)系統(tǒng)控制中心管理各模塊的初始化接口,控制各模塊的初始化順序,即初始化驅動時,先初始化系統(tǒng)控制中心、再初始化系統(tǒng)支持模塊組、最后初始化取證功能模塊,控制初始化的單線程性;
[0013](2)系統(tǒng)控制中心管理各模塊的控制接口,將控制接口注冊到外部控制模塊中,接受外部控制模塊的控制;
[0014](3)系統(tǒng)控制中心管理各模塊的事件響應接口,將事件響應接口注冊到各目標操作系統(tǒng)的事件處理函數(shù)中;
[0015](4)系統(tǒng)控制中心管理各模塊的卸載接口,控制各模塊的卸載順序,即卸載時,先卸載取證功能模塊、再卸載系統(tǒng)支持模塊組、最后系統(tǒng)控制中心將CPU控制權限交還目標操作系統(tǒng)。
[0016]本發(fā)明還提供一種基于硬件虛擬化的模塊化計算機取證方法,具體步驟如下:
[0017]步驟一、啟動階段,初始化驅動向目標操作系統(tǒng)請求分配內存,逐CPU開啟虛擬機模式,配置硬件相關的虛擬機控制數(shù)據(jù)結構,即復制當前操作系統(tǒng)的各寄存器和運行狀態(tài)配置到虛擬機中;原CPU控制權限轉由系統(tǒng)控制中心接管;
[0018]步驟二、運行階段,支持硬件虛擬化的硬件平臺根據(jù)系統(tǒng)控制中心的配置自動截獲虛擬機中產生的硬件事件,即控制流陷入虛擬機監(jiān)視器;事件由系統(tǒng)控制中心預處理后,繼續(xù)被分派給對應注冊的取證功能模塊處理,最后再返回客戶虛擬機;
[0019]對于硬件事件,所述系統(tǒng)控制中心預處理的具體步驟如下:
[0020]系統(tǒng)中各模塊通過系統(tǒng)控制中心配置硬件虛擬化的硬件數(shù)據(jù)結構,保證只有取證平臺關心的事件才會觸發(fā)虛擬機的陷入;
[0021](I)當目標操作系統(tǒng)的控制流陷入到虛擬機監(jiān)視器時,系統(tǒng)控制中心首先將硬件事件注冊成邏輯事件;
[0022](2)系統(tǒng)控制中心首先判斷步驟(I)中所述邏輯事件是否為虛擬機異常及錯誤事件,若是,則強制關閉發(fā)生錯誤的功能,如果強制關閉的功能無法恢復,則向串口報告錯誤信息;若不是,則進入步驟(3);
[0023](3)系統(tǒng)控制中心將邏輯事件分發(fā)到對應注冊的取證功能模塊的事件響應處理接口中處理;
[0024]對于外部控制事件,所述系統(tǒng)控制中心預處理的具體步驟如下:系統(tǒng)控制中心將外部控制事件分發(fā)到外部控制模塊,外部控制模塊解密外部控制事件中的控制信息,若符合定義好的格式,則轉發(fā)到對應注冊的取證功能模塊的控制接口中處理;若不符合定義好的格式,則丟棄,不產生任何行為;
[0025]所述取證功能模塊處理,具體為:調用內存虛擬化模塊接口監(jiān)視目標操作系統(tǒng)的內存行為,調用信號模塊將控制信息傳播給其他CPU,使用虛擬機自省模塊實時獲得操作系統(tǒng)中的重要證據(jù),或者調用其他取證模塊提供的接口獲得對應功能;
[0026]步驟三、卸載階段,初始化驅動通知系統(tǒng)控制中心卸載,系統(tǒng)控制中心先卸載取證功能模塊、再卸載系統(tǒng)支持模塊組,然后將CPU控制權限交還目標操作系統(tǒng),最后初始化驅動歸還步驟一中分配的內存,并完成卸載。
[0027]進一步的,所述步驟一啟動階段的具體步驟如下:
[0028](I)初始化驅動向操作系統(tǒng)請求分配內存,被分配的內存在整個取證平臺生命周期中不歸還;
[0029](2)系統(tǒng)控制中心初始化內存管理系統(tǒng),同時記錄所有內存分配情況,搭建虛擬主機的頁表結構,建立從主機線性地址到物理地址的映射;
[0030](3)系統(tǒng)控制中心先調用系統(tǒng)支持模塊組中各模塊的初始化接口對各模塊進行初始化,再調用取證功能模塊組中各模塊的初始化接口對各模塊進行初始化;
[0031](4)初始化驅動逐CPU檢查硬件平臺對硬件虛擬化的支持情況并保存,開啟虛擬機模式,配置硬件相關的虛擬機控制數(shù)據(jù)結構,并將正在運行的操作系統(tǒng)狀態(tài)復制入虛擬機中;
[0032](5)原CPU控制權限轉由系統(tǒng)控制中心接管,即在虛擬機控制數(shù)據(jù)結構中設置虛擬主機的指令指針寄存器、段寄存器、標志寄存器和描述符表,然后恢復目標操作系統(tǒng)的運行;
[0033](6)判斷是否完成所有CPU的虛擬化,如果是,則進入步驟(7);否則返回步驟
(4),繼續(xù)虛擬化下一個CPU ;
[0034](7)當所有CPU完成虛擬化后,啟動階段結束。
[0035]進一步的,所述將硬件事件注冊成邏輯事件,具體為:讀寫控制寄存器事件中的寫入CR3寄存器被注冊成為程序上下文切換事件,CPUID指令執(zhí)行事件被注冊成為外部控制事件,內存權限事件中的寫內存權限違反事件被注冊成內存頁改動事件。
[0036]進一步的,所述信號模塊將控制信息傳播給其他CPU,具體運行步驟如下:
[0037](I)調用信號模塊接口向其它CPU發(fā)送信號;
[0038](2)信號模塊記錄當前信號值,并向其他CPU發(fā)送中斷;
[0039](3)其他CPU收到中斷后,讀取信號值,進行對應的處理,并返回是否成功;
[0040](4)信號模塊收集步驟(3)中中斷的處理結果,返回給步驟(I)的調用者。
[0041]進一步的,所述內存虛擬化模塊接口監(jiān)視目標操作系統(tǒng)的內存行為,包含3種不同的運行模式,對應不同的控制模式,具體包含:
[0042]模式1:關閉模式,即不使用內存虛擬化;
[0043]模式2:單一運行模式,即所有核共用一套二級頁表,虛擬化模塊統(tǒng)一控制內存讀寫執(zhí)行權限和從虛擬物理地址到真實物理地址的轉換;
[0044]模式3:精細運行模式,每個CPU使用獨立的二級頁表,虛擬化模塊分別控制各個CPU核心的讀寫執(zhí)行權限和從虛擬物理地址到真實物理地址的轉換;
[0045]其中,內存虛擬化頁表結構是對客戶物理內存到真實物理內存的映射,通過解析PCI寄存器獲得完整的物理內存布局;在運行時,若內存虛擬化模塊由于配置錯誤產生異常,運行模式自動切換成模式I;
[0046]運行模式切換步驟如下:
[0047](I)調用內存虛擬化模塊設置內存運行模式;
[0048](2)內存虛擬化模塊調用信號模塊將內存模式修改信號發(fā)送給所有CPU ;
[0049](3)當CPU收到信號后,內存虛擬化模塊檢查設置于當前CPU的運行模式值,然后更新當前CPU的二級地址轉換頁表;
[0050](4)當所有CPU都成功更新頁表后,模式切換設置返回成功;
[0051]控制虛擬物理地址到真實物理地址的轉換和內存讀寫執(zhí)行權限的具體步驟如下:
[0052](I)調用內存虛擬化模塊指定目標地址的內存讀寫執(zhí)行權限或者修改目標地址的物理地址映射;若處于運行模式3,還需要指定目標CPU。
[0053](2)修改對應的頁表結構;若是內存讀寫執(zhí)行權限修改,則修改目標地址對應頁表項的讀權限、寫權限或執(zhí)行權限;若是映射修改,則修改目標地址對應頁表項的物理地址引用;
[0054](3)調用信號模塊向目標CPU發(fā)送刷新TLB和頁表結構緩存;
[0055](4)當步驟(3)中緩存成功刷新后,返回成功。
[0056]進一步的,所述虛擬機自省模塊實時獲得的操作系統(tǒng)中的重要證據(jù)包括:在事件發(fā)生時記錄當前操作系統(tǒng)的運行狀態(tài),以及當前正在運行的進程行為;具體是:當前硬件正在運行的任務狀態(tài)段的詳細情況、當前運行的代碼、當前的堆棧結構和當前進程的詳細情況;并輔助取證模塊組實時獲得操作系統(tǒng)中的數(shù)據(jù)結構副本作為證據(jù)。
[0057]進一步的,所述虛擬機自省模塊中的輔助取證模塊組實時獲得操作系統(tǒng)內的證據(jù),包括操作系統(tǒng)中的靜態(tài)內容和動態(tài)數(shù)據(jù)結構;所述輔助取證模塊組輔助的內容包括操作系統(tǒng)虛擬地址的翻譯以及跨內存頁數(shù)據(jù)結構的組裝;目標數(shù)據(jù)結構的獲取邏輯由對應的取證功能模塊完成,具體運行步驟如下:
[0058](I)通過操作系統(tǒng)內核中的靜態(tài)符號獲得根靜態(tài)數(shù)據(jù)結構的地址,地址的來源是導出符號表或者使用目標操作系統(tǒng)的驅動編譯器;
[0059](2)虛擬機自審模塊在虛擬機監(jiān)視器中直接訪問靜態(tài)數(shù)據(jù)結構,若是目標數(shù)據(jù)結構,則將其副本返回給調用的取證模塊,若否,取證模塊選擇該靜態(tài)數(shù)據(jù)結構指向的下一個數(shù)據(jù)結構交給自省模塊處理;
[0060](3)自省模塊將操作系統(tǒng)虛擬地址交給軟件MMU轉換,通過該虛擬地址和對應的CR3值,軟件MMU使用客戶操作系統(tǒng)的頁表結構從對應的PTE中獲得物理地址;[0061](4)根據(jù)步驟(3)中所述物理地址和符號表中描述的數(shù)據(jù)結構的大小,對象組裝器可以判斷出該數(shù)據(jù)結構是否跨越了頁邊界,若跨越頁邊界,則對象組裝器自動計算下一個內存頁的操作系統(tǒng)虛擬地址,并返回步驟(3);若沒有跨越頁邊界,則對象組裝器直接讀取物理內存內容,將之前所獲得的內存內容組裝成數(shù)據(jù)結構的副本,并進入步驟(5);
[0062](5)若步驟(4)中獲得的數(shù)據(jù)結構的副本不是最終數(shù)據(jù)結構,則返回步驟(3),繼續(xù)解析取證模塊要求的下一個數(shù)據(jù)結構;若獲得的數(shù)據(jù)結構的副本是最終數(shù)據(jù)結構,則將該最終數(shù)據(jù)結構返回給取證模塊。
[0063]本發(fā)明有益效果為:
[0064](I)本方法使用虛擬化技術克服了當前事后取證方法的缺陷,即不是根據(jù)事后的內存鏡像去重建證據(jù),而直接在目標機器中監(jiān)視并截獲硬件配置的事件,交給取證模塊分析,獲取真實的實時證據(jù),最大程度上防止證據(jù)在事后丟失或篡改,保證了獲取的證據(jù)的可信度。
[0065](2)本發(fā)明直接針對數(shù)據(jù)結構的證據(jù)獲取大大減少了數(shù)據(jù)獲取量,使取證工具能夠基于入侵事件短時間多次獲取證據(jù),在host模式中停止目標操作系統(tǒng)的運行保證證據(jù)的一致性。
[0066](3)本方法還克服了虛擬化技術本身的靈活性缺陷,不事先搭建虛擬化平臺,而是基于硬件虛擬化技術即時搭建輕量級虛擬機獲取最高權限,并將操作系統(tǒng)移入虛擬機中進行監(jiān)視。使用模塊化的設計為取證工具的實現(xiàn)減少了大量的重復開發(fā)工作。其模塊封裝了內部數(shù)據(jù),只暴露接口,大大簡化了方法的改進的難度,使模塊能夠被復用。
[0067](4)本發(fā)明虛擬機自省模塊能夠在虛擬機監(jiān)視器中獲取操作系統(tǒng)中的動態(tài)數(shù)據(jù)結構和靜態(tài)數(shù)據(jù)結構,但不修改目標操作系統(tǒng)的運行狀態(tài),由于不修改操作系統(tǒng)源代碼,不虛擬化額外的硬件設備以及使用了內存虛擬化模塊,可以保證本平臺對于目標操作系統(tǒng)的透明性,即保障了硬件環(huán)境和軟件環(huán)境的前后一致性,從而保證了收集證據(jù)的可信度和準確性。
【專利附圖】

【附圖說明】
[0068]圖1為取證平臺生命周期示意圖;
[0069]圖2為取證平臺結構示意圖;
[0070]圖3為模塊結構示意圖;
[0071]圖4為取證平臺虛擬內存布局示意圖;
[0072]圖5為內省模塊流程圖。
【具體實施方式】
[0073]下面結合附圖對本發(fā)明做進一步的說明。
[0074]本方法詳細運作流程如圖1-圖5所示。
[0075]圖1所示的為本方法的三個生命周期,包括啟動階段、運行階段和卸載階段。初始化驅動用于在運行的操作系統(tǒng)中部署和卸載取證平臺。
[0076]本實施例采用了 Intel VT技術,啟動時通過初始化驅動獲得操作系統(tǒng)的內核權限,調用內存分配函數(shù)為虛擬機的運行分配足夠空間,配置VMCS結構體來設置整個虛擬機。然后將當前操作系統(tǒng)運行狀態(tài)復制到Guest-State Area中,并在Host-State Area中配置取證平臺的事件處理函數(shù),各描述符表,堆棧和寄存器。最后,控制中心將控制流轉入各模塊的初始化過程中。這樣,在之后的VMLAUNCH指令啟動時,整個平臺已經完成部署,CPU會自動在虛擬機模式中繼續(xù)運行原有的操作系統(tǒng)。虛擬機運行時,若有事件觸發(fā)VM exit,CPU會產生VMexits并進入root模式運行。此時,操作系統(tǒng)將保持在事件被觸發(fā)時的狀態(tài),取證平臺的事件處理函數(shù)將被調用,各系統(tǒng)模塊會響應對應的事件并在目標操作系統(tǒng)中收集重要證據(jù)。處理完相應事件后,取證平臺調用VMRESUME恢復目標操作系統(tǒng)的運行,整個過程對操作系統(tǒng)透明,即操作系統(tǒng)本身并不知道在虛擬機中運行這一事實。
[0077]在平臺卸載時,虛擬機監(jiān)視器首先通知各模塊進行卸載?;拘遁d過程完成后,監(jiān)視器將在內存中動態(tài)生成匯編指令,用于在關閉虛擬機功能后恢復操作系統(tǒng),模擬函數(shù)的返回行為,返回到正常運行狀態(tài)。成功關閉虛擬機后,初始化驅動將完成通常的驅動卸載程序,釋放所有已分配的內存,最后完成在操作系統(tǒng)中的卸載過程。
[0078]通過以上步驟,本取證平臺可以在支持硬件虛擬化技術的硬件平臺上,在目標操作系統(tǒng)運行時獲取高級別權限,在不終止操作系統(tǒng)運行的條件下將其移植入虛擬機中進行監(jiān)視和取證。
[0079]圖2所示的為運行階段取證平臺的系統(tǒng)結構示意圖。其中初始化驅動在該階段只用于占用操作系統(tǒng)內存,防止在用于配置虛擬機的內存被歸還后,用于其他用途而引起系統(tǒng)崩潰。其中,系統(tǒng)控制中心提供最基本的硬件虛擬化平臺支持、初始化過程控制和卸載過程的控制,以及基礎的事件處理,本實施例將硬件虛擬化平臺中的各事件處理成為邏輯事件,再提供給各模塊,如讀寫控制寄存器事件中的寫入CR3寄存器被注冊成為程序上下文切換事件,CPUID指令執(zhí)行事件被注冊成為外部控制事件,內存權限事件中的寫內存權限違反事件被注冊成內存頁改動事件等。系統(tǒng)支持模塊組基于系統(tǒng)控制中心實現(xiàn)了系統(tǒng)的基礎功能,包括內存虛擬化,外部控制,虛擬機內省和為SMP系統(tǒng)提供多核間的信號傳播功能。系統(tǒng)支持模塊組可以繼續(xù)增加額外的模塊來提供更豐富的功能。系統(tǒng)控制中心和系統(tǒng)支持模塊組為取證功能模塊組提供支持,簡化取證功能模塊的實現(xiàn),包括為其提供跨平臺支持,使取證模塊關注核心功能的開發(fā)。
[0080]圖3所示的為模塊結構設計示意圖。所有模塊只對外暴露4組接口:初始化接口提供給初始化過程,這樣在初始化驅動部署取證平臺時,會調用此接口進行模塊內部的初始化,包括相關的硬件虛擬化平臺設置、內存分配、模塊數(shù)據(jù)結構初始化和模塊狀態(tài)初始化,取證平臺本身無需知道其內部細節(jié);卸載接口為安全卸載該模塊提供支持,并在模塊或者系統(tǒng)發(fā)生錯誤時可以調用該接口自動關閉功能;取證模塊可以為監(jiān)視的事件注冊事件處理函數(shù),在重要事件發(fā)生時,模塊可以對目標操作系統(tǒng)產生響應,跟蹤系統(tǒng)狀態(tài)和收集重要證據(jù);取證模塊通過外部控制接口接受管理員控制,包括模式切換,詳細設置和功能開關等。
[0081]圖4所不的為本方法內存空間的布局情況和各系統(tǒng)支持模塊的實施方式。本方法將在初始化階段記錄所有在操作系統(tǒng)中分配的內存空間,在進入運行階段時,內存虛擬化模塊將開啟單一模式,并將取證平臺的內存區(qū)域對目標操作系統(tǒng)隱藏,通過硬件保護使得相關內存只有在host模式才能被訪問,防止關鍵內存被惡意程序篡改,保證了平臺的安全性和透明性,繼而保證獲得的證據(jù)的可信度。
[0082]本實施例使用了 INTEL的EPT技術實現(xiàn)了內存虛擬化模塊,提供給取證平臺和取證功能模塊組控制虛擬機內存權限和第二級地址翻譯的功能。內存虛擬化模塊在初始化階段為具有N個CPU的處理器分配N+1個第二級頁表,這樣就可以在運行階段提供3種不同的運行模式:
[0083]關閉模式完全關閉了內存虛擬化功能,不提供從客戶物理地址到真實物理地址的轉換;
[0084]單一模式提供了一張全局頁表,對該頁表的改動將應用到所有CPU上,同時,通過信號模塊將更新傳遞到所有CPU中,從而在刷新TLB緩存后,相關改動可以被其它CPU應用;
[0085]精細模式為每個CPU都提供了一張獨立的頁表,這樣,取證平臺可以修改某一個CPU上虛擬機的地址轉換和內存權限,而不至于影響到其余的核,目標CPU將收到信號刷新TLB緩存以應用更新。在有錯誤發(fā)生時,內存虛擬化模塊將自動轉為關閉模式。
[0086]虛擬機內省模塊由對象組裝器和軟件MMU組成,通過遍歷操作系統(tǒng)內核頁表,取證平臺在高地址范圍保持和目標操作系統(tǒng)相同的內存映射結構,并通過操作系統(tǒng)驅動編譯器編譯的內省邏輯對目標操作系統(tǒng)的進行內省,用于獲取在計算機取證中的證據(jù)。為了使取證模塊能夠直接使用物理地址訪問內存,虛擬機內省模塊在初始化階段在主機虛擬地址低地址范圍對物理內存進行映射,通過查詢PCI寄存器可以獲得可信的物理地址范圍。
[0087]信號模塊使用信號圖標記信號,并通過IPI中斷告知其余CPU接收信號,CPU在收到通知后,檢查當前核的信號圖,完成相關任務,返回成功。
[0088]虛擬機內省模塊通過圖5所示的步驟完成對目標操作系統(tǒng)關鍵數(shù)據(jù)結構的獲取:
[0089]步驟一:通過自定義的邏輯獲得任何在操作系統(tǒng)中數(shù)據(jù)結構的虛擬地址和其對應進程的CR3寄存器值。
[0090]步驟二:對象組裝器根據(jù)符號表或者數(shù)據(jù)結構定義獲得目標數(shù)據(jù)結構的大小和內部結構情況。
[0091 ] 步驟三:對象組裝器請求軟件MMU將CR3和虛擬地址翻譯成物理地址。
[0092]步驟四:軟件MMU通過CR3值獲得頁表結構的最高級別頁表地址,通過多級查詢找到虛擬地址對應的物理地址并返回給對象組裝器。
[0093]步驟五:對象組裝器訪問內存的物理地址映射區(qū)域,將數(shù)據(jù)結構內容復制到目標地址中。
[0094]步驟六:對象組裝器根據(jù)物理地址和數(shù)據(jù)結構大小判斷數(shù)據(jù)結構是否跨頁。
[0095]步驟七:若跨頁,對象組裝器繼續(xù)向軟件MMU請求下一頁虛擬地址在相同CR3值的物理地址。返回步驟五運行。
[0096]步驟八:對象組裝器完成組裝后,取證模塊提供的目標地址會包含一個完整的目標數(shù)據(jù)結構的副本。
[0097]雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬【技術領域】中具有通常知識者,在不脫離本發(fā)明的精神和范圍內,當可作各種的更動與潤飾。因此,本發(fā)明的保護范圍當視權利要求書所界定者為準。
【權利要求】
1.一種基于硬件虛擬化的模塊化計算機取證系統(tǒng),其特征在于:包括初始化驅動、系統(tǒng)控制中心、系統(tǒng)支持模塊組和取證功能模塊組;取證系統(tǒng)為各取證工具的實現(xiàn)提供便利,各取證工具即為取證功能模塊組的各模塊,由系統(tǒng)控制中心統(tǒng)一管理,其中,取證系統(tǒng)的基礎支持功能可以通過增加系統(tǒng)支持模塊或修改現(xiàn)有的系統(tǒng)支持模塊實現(xiàn)擴展; 所述初始化驅動用于在運行的操作系統(tǒng)中部署和卸載取證平臺,并在初始化過程完成后將控制權交給系統(tǒng)控制中心; 所述系統(tǒng)控制中心提供硬件虛擬化平臺支持,控制初始化過程和卸載過程,以及對硬件虛擬化平臺截獲的目標操作系統(tǒng)的事件進行預處理、并提供給取證功能模塊組; 所述系統(tǒng)支持1吳塊組基于系統(tǒng)控制中心實現(xiàn)系統(tǒng)的基礎功能,包括為SMP系統(tǒng)提供多核間的信號傳播功能的信號模塊、外部控制模塊、監(jiān)視目標操作系統(tǒng)的內存行為的內存虛擬化模塊、和實時獲得操作系統(tǒng)中的重要證據(jù)的虛擬機內省模塊; 所述取證功能模塊組由若干個取證模塊組成,為所需監(jiān)視的事件提供事件響應接口來跟蹤系統(tǒng)狀態(tài)和收集證據(jù),并在取證平臺的支持下完成初始化、卸載和外部控制。
2.根據(jù)權利要求1所述的一種基于硬件虛擬化的模塊化計算機取證系統(tǒng),其特征在于:所述系統(tǒng)支持模塊組和取證功能模塊組中每個模塊需要實現(xiàn)或部分實現(xiàn)4組接口,分別是初始化接口、事件響應接口、控制接口、和卸載接口 ;所述4組接口由系統(tǒng)控制中心統(tǒng)一管理,具體管理方法如下: (1)系統(tǒng)控制中心管理各模塊的初始化接口,控制各模塊的初始化順序,即初始化驅動時,先初始化系統(tǒng)控制中心、再初始化系統(tǒng)支持模塊組、最后初始化取證功能模塊,控制初始化的單線程性; (2)系統(tǒng)控制中心管理各模塊的控制接口,將控制接口注冊到外部控制模塊中,接受外部控制模塊的控制; (3)系統(tǒng)控制中心管理各模塊的事件響應接口,將事件響應接口注冊到各目標操作系統(tǒng)的事件處理函數(shù)中; (4)系統(tǒng)控制中心管理各模塊的卸載接口,控制各模塊的卸載順序,即卸載時,先卸載取證功能模塊、再卸載系統(tǒng)支持模塊組、最后系統(tǒng)控制中心將CPU控制權限交還目標操作系統(tǒng)。
3.—種權利要求1或2所述的基于硬件虛擬化的模塊化計算機取證系統(tǒng)的取證方法,其特征在于:具體步驟如下: 步驟一、啟動階段,初始化驅動向目標操作系統(tǒng)請求分配內存,逐CPU開啟虛擬機模式,配置硬件相關的虛擬機控制數(shù)據(jù)結構,即復制當前操作系統(tǒng)的各寄存器和運行狀態(tài)配置到虛擬機中;原CPU控制權限轉由系統(tǒng)控制中心接管; 步驟二、運行階段,支持硬件虛擬化的硬件平臺根據(jù)系統(tǒng)控制中心的配置自動截獲虛擬機中產生的硬件事件,即控制流陷入虛擬機監(jiān)視器;事件由系統(tǒng)控制中心預處理后,繼續(xù)被分派給對應注冊的取證功能模塊處理,最后再返回客戶虛擬機; 對于硬件事件,所述系統(tǒng)控制中心預處理的具體步驟如下: 系統(tǒng)中各模塊通過系統(tǒng)控制中心配置硬件虛擬化的硬件數(shù)據(jù)結構,保證只有取證平臺關心的事件才會觸發(fā)虛擬機的陷入; (I)當目標操作系統(tǒng)的控制流陷入到虛擬機監(jiān)視器時,系統(tǒng)控制中心首先將硬件事件注冊成邏輯事件; (2)系統(tǒng)控制中心首先判斷步驟(1)中所述邏輯事件是否為虛擬機異常及錯誤事件,若是,則強制關閉發(fā)生錯誤的功能,如果強制關閉的功能無法恢復,則向串口報告錯誤信息;若不是,則進入步驟⑶; (3)系統(tǒng)控制中心將邏輯事件分發(fā)到對應注冊的取證功能模塊的事件響應處理接口中處理; 其中,由硬件事件注冊后的外部控制事件,預處理的具體步驟如下:系統(tǒng)控制中心將外部控制事件分發(fā)到外部控制模塊,外部控制模塊解密外部控制事件中的控制信息,若符合定義好的格式,則轉發(fā)到對應注冊的取證功能模塊的控制接口中處理;若不符合定義好的格式,則丟棄,不產生任何行為; 所述取證功能模塊處理,具體為:調用內存虛擬化模塊接口監(jiān)視目標操作系統(tǒng)的內存行為,調用信號模塊將控制信息傳播給其他CPU,使用虛擬機自省模塊實時獲得操作系統(tǒng)中的重要證據(jù),或者調用其他取證模塊提供的接口獲得對應功能; 步驟三、卸載階段,初始化驅動通知系統(tǒng) 控制中心卸載,系統(tǒng)控制中心先卸載取證功能模塊、再卸載系統(tǒng)支持模塊組,然后將CPU控制權限交還目標操作系統(tǒng),最后初始化驅動歸還步驟一中分配的內存,并完成卸載。
4.根據(jù)權利要求3所述的一種基于硬件虛擬化的模塊化計算機取證方法,其特征在于:所述步驟一啟動階段的具體步驟如下: (1)初始化驅動向操作系統(tǒng)請求分配內存,被分配的內存在整個取證平臺生命周期中不歸還; (2)系統(tǒng)控制中心初始化內存管理系統(tǒng),同時記錄所有內存分配情況,搭建虛擬主機的頁表結構,建立從主機線性地址到物理地址的映射; (3)系統(tǒng)控制中心先調用系統(tǒng)支持模塊組中各模塊的初始化接口對各模塊進行初始化,再調用取證功能模塊組中各模塊的初始化接口對各模塊進行初始化; (4)初始化驅動逐CPU檢查硬件平臺對硬件虛擬化的支持情況并保存,開啟虛擬機模式,配置硬件相關的虛擬機控制數(shù)據(jù)結構,并將正在運行的操作系統(tǒng)狀態(tài)復制入虛擬機中; (5)原CPU控制權限轉由系統(tǒng)控制中心接管,即在虛擬機控制數(shù)據(jù)結構中設置虛擬主機的指令指針寄存器、段寄存器、標志寄存器和描述符表,然后恢復目標操作系統(tǒng)的運行; (6)判斷是否完成所有CPU的虛擬化,如果是,則進入步驟(7);否則返回步驟(4),繼續(xù)虛擬化下一個CPU ; (7)當所有CPU完成虛擬化后,啟動階段結束。
5.根據(jù)權利要求3所述的一種基于硬件虛擬化的模塊化計算機取證方法,其特征在于:所述將硬件事件注冊成邏輯事件,具體為:讀寫控制寄存器事件中的寫入CR3寄存器被注冊成為程序上下文切換事件,CPUID指令執(zhí)行事件被注冊成為外部控制事件,內存權限事件中的寫內存權限違反事件被注冊成內存頁改動事件。
6.根據(jù)權利要求3所述的一種基于硬件虛擬化的模塊化計算機取證方法,其特征在于:所述信號模塊將控制信息傳播給其他CPU,具體運行步驟如下: (I)調用信號模塊接口向其它CPU發(fā)送信號;(2)信號模塊記錄當前信號值,并向其他CPU發(fā)送中斷; (3)其他CPU收到中斷后,讀取信號值,進行對應的處理,并返回是否成功; (4)信號模塊收集步驟(3)中中斷的處理結果,返回給步驟(1)的調用者。
7.根據(jù)權利要求3所述的一種基于硬件虛擬化的模塊化計算機取證方法,其特征在于:所述內存虛擬化模塊接口監(jiān)視目標操作系統(tǒng)的內存行為,包含3種不同的運行模式,對應不同的控制模式,具體包含: 模式1:關閉模式,即不使用內存虛擬化; 模式2:單一運行模式,即所有核共用一套二級頁表,虛擬化模塊統(tǒng)一控制內存讀寫執(zhí)行權限和從虛擬物理地址到真實物理地址的轉換; 模式3:精細運行模式,每個CPU使用獨立的二級頁表,虛擬化模塊分別控制各個CPU核心的讀寫執(zhí)行權限和從虛擬物理地址到真實物理地址的轉換; 其中,內存虛擬化頁表結構是對客戶物理內存到真實物理內存的映射,通過解析PCI寄存器獲得完整的物理內存布局;在運行時,若內存虛擬化模塊由于配置錯誤產生異常,運行模式自動切換成模式I ; 運行模式切換步驟如下: (1)調用內存虛擬化 模塊設置內存運行模式; (2)內存虛擬化模塊調用信號模塊將內存模式修改信號發(fā)送給所有CPU; (3)當CPU收到信號后,內存虛擬化模塊檢查設置于當前CPU的運行模式值,然后更新當前CPU的二級地址轉換頁表; (4)當所有CPU都成功更新頁表后,模式切換設置返回成功; 控制虛擬物理地址到真實物理地址的轉換和內存讀寫執(zhí)行權限的具體步驟如下: (1)調用內存虛擬化模塊指定目標地址的內存讀寫執(zhí)行權限或者修改目標地址的物理地址映射;若處于運行模式3,還需要指定目標CPU。 (2)修改對應的頁表結構;若是內存讀寫執(zhí)行權限修改,則修改目標地址對應頁表項的讀權限、寫權限或執(zhí)行權限;若是映射修改,則修改目標地址對應頁表項的物理地址引用; (3)調用信號模塊向目標CPU發(fā)送刷新TLB和頁表結構緩存; (4)當步驟(3)中緩存成功刷新后,返回成功。
8.根據(jù)權利要求3所述的一種基于硬件虛擬化的模塊化計算機取證方法,其特征在于:所述虛擬機自省模塊實時獲得的操作系統(tǒng)中的重要證據(jù)包括:在事件發(fā)生時記錄當前操作系統(tǒng)的運行狀態(tài),以及當前正在運行的進程行為;具體是:當前硬件正在運行的任務狀態(tài)段的詳細情況、當前運行的代碼、當前的堆棧結構和當前進程的詳細情況;并輔助取證模塊組實時獲得操作系統(tǒng)中的數(shù)據(jù)結構副本作為證據(jù)。
9.根據(jù)權利要求8所述的一種基于硬件虛擬化的模塊化計算機取證方法,其特征在于:所述虛擬機自省模塊中的輔助取證模塊組實時獲得操作系統(tǒng)內的證據(jù),包括操作系統(tǒng)中的靜態(tài)內容和動態(tài)數(shù)據(jù)結構;所述輔助取證模塊組輔助的內容包括操作系統(tǒng)虛擬地址的翻譯以及跨內存頁數(shù)據(jù)結構的組裝;目標數(shù)據(jù)結構的獲取邏輯由對應的取證功能模塊完成,具體運行步驟如下: (I)通過操作系統(tǒng)內核中的靜態(tài)符號獲得根靜態(tài)數(shù)據(jù)結構的地址,地址的來源是導出符號表或者使用目標操作系統(tǒng)的驅動編譯器; (2)虛擬機自審模塊在虛擬機監(jiān)視器中直接訪問靜態(tài)數(shù)據(jù)結構,若是目標數(shù)據(jù)結構,則將其副本返回給調用的取證模塊,若否,取證模塊選擇該靜態(tài)數(shù)據(jù)結構指向的下一個數(shù)據(jù)結構交給自省模塊處理; (3)自省模塊將操作系統(tǒng)虛擬地址交給軟件MMU轉換,通過該虛擬地址和對應的CR3值,軟件MMU使用客戶操作系統(tǒng)的頁表結構從對應的PTE中獲得物理地址; (4)根據(jù)步驟(3)中所述物理地址和符號表中描述的數(shù)據(jù)結構的大小,對象組裝器可以判斷出該數(shù)據(jù)結構是否跨越了頁邊界,若跨越頁邊界,則對象組裝器自動計算下一個內存頁的操作系統(tǒng)虛擬地址,并返回步驟(3);若沒有跨越頁邊界,則對象組裝器直接讀取物理內存內容,將之前所獲得的內存內容組裝成數(shù)據(jù)結構的副本,并進入步驟(5); (5)若步驟(4)中獲得的數(shù)據(jù)結構的副本不是最終數(shù)據(jù)結構,則返回步驟(3),繼續(xù)解析取證模塊要求的下一個數(shù)據(jù)結構;若獲得的數(shù)據(jù)結構的副本是最終數(shù)據(jù)結構,則將該最終數(shù)據(jù)結構返回 給取證模塊。
【文檔編號】G06F11/30GK104021063SQ201410202898
【公開日】2014年9月3日 申請日期:2014年5月14日 優(yōu)先權日:2014年5月14日
【發(fā)明者】伏曉, 程盈心, 駱斌, 楊瑞, 阮豪 申請人:南京大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1