• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于分立架構的系統(tǒng)完整性保護模型

      2016-05-09 07:07:44陳左寧
      計算機應用與軟件 2016年4期
      關鍵詞:內(nèi)核完整性內(nèi)存

      鄧 銳 陳左寧

      基于分立架構的系統(tǒng)完整性保護模型

      鄧 銳 陳左寧

      (江南計算技術研究所 江蘇 無錫 214083)

      針對現(xiàn)有的各類系統(tǒng)完整性保護方案在隔離性和可實現(xiàn)性的融合上的不足,提出一種兼顧隔離性和可實現(xiàn)性的基于分立架構的系統(tǒng)完整性保護模型。對多核CPU架構做較小改動,添加特權主核及其專有的頁保護安全功能擴展,達到單顆CPU下監(jiān)控系統(tǒng)和目標系統(tǒng)并行隔離獨立運行。監(jiān)控系統(tǒng)運行在主核上擁有更高特權,且監(jiān)控功能不需要運行在從核上的目標系統(tǒng)的支持。監(jiān)控系統(tǒng)通過設置目標系統(tǒng)內(nèi)核代碼頁保護、內(nèi)核數(shù)據(jù)頁不可執(zhí)行,以及內(nèi)核數(shù)據(jù)完整性掃描功能充分保障目標系統(tǒng)內(nèi)核的完整性,而應用層的完整性則可依托自身安全內(nèi)核來解決。該模型在隔離性和可實現(xiàn)性上達到了較好的平衡,并且使用Bochs進行的模擬驗證也表明該模型能夠有效保護系統(tǒng)的完整性。

      完整性 分立架構 多核 系統(tǒng)架構 操作系統(tǒng)

      0 引 言

      計算機的信息安全必須從中央處理器、硬件結構、操作系統(tǒng)和應用軟件,從底層支撐到上層應用,全盤考慮,綜合采取措施,提供整體解決方案。在系統(tǒng)完整性保護方面已有學者做了大量研究并提出了多種模型架構和相關的實施方案。

      近年來在這方面的成果,按照軟硬件結合的程度,模型對軟、硬件倚重的比例,初始可信部件、模型工作原理的差異性等因素分為如下幾類:

      1) 強調(diào)硬件尤其是CPU部件的核心功能地位,幾乎所有的完整性保護功能實現(xiàn)在CPU內(nèi)部,典型的例子有XOM[1]、AGES[2]等。XOM實現(xiàn)了程序在內(nèi)存中的全密態(tài)運行,即數(shù)據(jù)和指令只在CPU內(nèi)部以明文形式出現(xiàn),在內(nèi)存以密態(tài)形式存在,不同進程在內(nèi)存中的加密密鑰均不同,均由CPU臨時產(chǎn)生??蓤?zhí)行程序在編譯生成時就使用對稱密碼進行保護,加密密鑰使用目標CPU的公鑰進行保護,并在程序運行中使用HMAC來防止對程序的篡改和破壞。但該模型高度依賴硬件的安全功能,對CPU硬件的改動太大,系統(tǒng)運行效率不高,需要從硬件到編譯器到操作系統(tǒng)的整體改造,至今仍停留在理論和仿真層面。AGES在機制上與XOM類似,但提供了更強的內(nèi)存完整性保護,使用硬件加速的Hash樹來快速驗證內(nèi)存的完整性?;谙嗤脑?,該模型也沒有得到實現(xiàn)和應用。

      2) 以可信計算技術[3]為基礎的完整性保護模型。這類模型以可信計算模塊TPM為硬件可信根,以可信度量為主要手段,綜合運用可信啟動、信任鏈傳遞、可信封存等技術來搭建完整性保護系統(tǒng)。典型的例子有IMA[4]、PRIMA[5]、BIND[6]、LKIM[7]、DIMA[8]等,這方面涌現(xiàn)了大量的研究和應用嘗試。IMA和PRIMA專注于程序加載時的度量驗證,屬于基本的靜態(tài)度量。BIND系統(tǒng)需要程序員自己決定度量點并插入其提供的hook接口,提高了度量精度,但加重了程序員負擔,兼容性較差。LKIM以預定義的內(nèi)核變量的變化為事件來觸發(fā)度量驗證,但這些事件未必能覆蓋所有的情況。DIMA使用度量代理來完成對進程和模塊的度量,但主動性和實時性有所不足。我們也在以前的工作中提出了PEDIAMA[9]模型,以策略嵌入為基礎,增強了度量的主動性和系統(tǒng)運行效率,策略的制訂較為靈活。

      3) 充分利用CPU提供的安全特性或者經(jīng)少許改造后得到的安全功能,典型的系統(tǒng)有Flicker[10]、LLM[11]和H-SVM[12]等。Flicker利用 CPU提供的安全功能支撐,即Intel的TXT[13]技術以及AMD的SVM[14]技術,在執(zhí)行目標程序時暫停整個操作系統(tǒng)的運行,保證其有一個安全隔離的運行環(huán)境。由于沒有操作系統(tǒng)的支持,受保護的程序必須進行訂制,而且只能保護程序中的核心代碼片段。LLM系統(tǒng)假定每個CPU核都配有少量的私有本地內(nèi)存來運行程序,外部共享主內(nèi)存和本地私有內(nèi)存間通過換頁(paging)來彌補空間不足,并通過在特權啟動核core0上運行安全換頁系統(tǒng)來保證運行在core0上的監(jiān)控程序的安全,core0通過讀取其它CPU核的本地內(nèi)存來監(jiān)控運行在其它核上的目標系統(tǒng),LLM對軟硬件的改動均較大。H-SVM通過額外的硬件設計把物理頁映射和換頁功能獨立出來,并通過密碼技術保證虛擬機數(shù)據(jù)的完整性不受虛擬機監(jiān)控器的影響。

      4) 利用虛擬化技術,比如Terra[15]、HyperSafe[16]和Overshadow[17]。這類模型的共同特定是,利用CPU硬件提供的虛擬化技術,將目標系統(tǒng)運行在虛擬層,而監(jiān)控程序運行在更底層的虛擬管理層,并結合密碼技術等手段來保護系統(tǒng)或應用的完整性。

      5) 利用外接的設備來輔助監(jiān)控,典型的如Copilot[18]和Gibraltar[19]系統(tǒng)。其特點是利用外接設備將目標系統(tǒng)和監(jiān)控系統(tǒng)進一步隔離,Copilot和Gibraltar就是使用PCI卡通過DMA直接獲取主機內(nèi)存進行分析,分析系統(tǒng)可直接實現(xiàn)在PCI卡上,也可將數(shù)據(jù)送到外部進行處理。

      以上的分類并不絕對,各類模型所使用的技術也有交叉的情況。總的來看,1)和3)對CPU硬件的依賴和改動較大,2)和5)借助了外部硬件設備,但2)的軟硬結合比5)要緊;4)對硬件的要求最低,在主流商用處理器下就可實現(xiàn),軟硬件結合最為緊密,但更多的功能倚重于軟件,安全性相對較低。

      這幾類模型各有側重,但核心的問題是,在盡量保障監(jiān)控系統(tǒng)和目標系統(tǒng)充分隔離的情況下,又不增加監(jiān)控和保護的實現(xiàn)難度,即監(jiān)控系統(tǒng)和目標系統(tǒng)不能相互干擾,同時也要方便監(jiān)控和保護的實施。1)和3)注重了隔離,但系統(tǒng)實現(xiàn)比較困難;4)的實現(xiàn)相對容易,但是隔離性不夠,虛擬機監(jiān)控器容易被突破[20];2)和5)兼顧了隔離和可實現(xiàn)性,但是由于硬件上徹底分離,在監(jiān)控上不夠緊密,比如PCI卡的DMA可以被旁路,TPM只是個被動部件,功能有限。

      如何在隔離性和可實現(xiàn)性間進行平衡是模型設計的一個難題。本文提出一種兼顧隔離性和可實現(xiàn)性的基于分立架構的系統(tǒng)完整性保護模型。以多核CPU中主核(core0)的頁保護安全功能擴展為基礎,在主核上運行監(jiān)控系統(tǒng),對其它從核上運行的目標系統(tǒng)進行保護。目標系統(tǒng)使用安全內(nèi)核,監(jiān)控系統(tǒng)能保證目標系統(tǒng)安全內(nèi)核的完整性,而安全內(nèi)核則向上支撐應用系統(tǒng)的完整性,從而實現(xiàn)整體的完整性保護。監(jiān)控系統(tǒng)完全隔離和獨立于目標系統(tǒng),同時也能啟動和復位目標系統(tǒng),并能讀取目標系統(tǒng)的內(nèi)存。這樣就達到了既“分立”又監(jiān)控的目標,同時由于監(jiān)控系統(tǒng)主要保證安全內(nèi)核的完整性,應用系統(tǒng)的完整性主要由安全內(nèi)核完成,且該模型對硬件的改造較少,因此在可實現(xiàn)性也不會有過多負擔。本模型在隔離性和可實現(xiàn)性上達到了較好的平衡。

      1 架構設計準備

      1.1 設計思想

      如果監(jiān)控系統(tǒng)和目標系統(tǒng)沒有做到充分隔離,比如監(jiān)控系統(tǒng)依賴于目標系統(tǒng)內(nèi)核的某些功能,則只要目標內(nèi)核被侵入,監(jiān)控系統(tǒng)就有可能失效。因此必須做到監(jiān)控系統(tǒng)充分獨立于目標系統(tǒng)。獨立造成的后果就是監(jiān)控系統(tǒng)和目標系統(tǒng)之間的聯(lián)系和交互會很少,甚至沒有,這就對監(jiān)控造成了較大困難,所以在獨立的同時還要保證監(jiān)控的有效性。

      考慮現(xiàn)在大多數(shù)對目標系統(tǒng)造成較大破壞的惡意程序,均是以掌控系統(tǒng)內(nèi)核為基礎,往往更難以發(fā)現(xiàn)和清除。如果能夠保證目標系統(tǒng)內(nèi)核的完整性,則應用層面的完整性大都可以在系統(tǒng)內(nèi)核的支撐下完成。因此只要監(jiān)控系統(tǒng)能保證目標系統(tǒng)內(nèi)核的完整性,則其余的工作均可以直接在目標系統(tǒng)上實現(xiàn)。由于二者的獨立性,監(jiān)控系統(tǒng)很難得到目標系統(tǒng)的運行時狀態(tài)等相關信息,這樣做也彌補了獨立性帶來的問題。

      1.2 硬件支撐

      首先CPU應具備多核、分頁、進程隔離、特權級等主流CPU(如X86系列)的特性。CPU應該有一個主核core0是整個CPU的啟動核,具有最高的權限,能夠啟動、停止和復位其他從核。主核啟動時,將從內(nèi)存中劃分一塊區(qū)域由自己獨占使用,其他從核將無法訪問這片區(qū)域,主機上的所有內(nèi)存對主核可見。主核且只有主核可以標記內(nèi)核級代碼頁,使得所有核上對內(nèi)核級代碼頁的寫入和內(nèi)核數(shù)據(jù)頁上的執(zhí)行都會在主核上產(chǎn)生異常。主核具備類似IOMMU的功能,以防止關鍵內(nèi)存受到DMA的破壞,從核不具備該項功能。主核啟動后,將從外部(比如ROM和FLASH)中加載一個微型的監(jiān)控系統(tǒng),該監(jiān)控系統(tǒng)負責在其它從核上加載目標系統(tǒng)。目標系統(tǒng)加載之后就獨立于監(jiān)控系統(tǒng)開始自主運行,至此,監(jiān)控系統(tǒng)和目標系統(tǒng)之間將完全獨立,也不會有任何后續(xù)信息交互。另外,為了方便目標系統(tǒng)上的完整性保護應用實現(xiàn),在硬件上還應配備相應的密碼模塊,如TPM或TCM,以實現(xiàn)加密、數(shù)字簽名、HASH等基礎功能。

      1.3 主要監(jiān)控原理

      監(jiān)控系統(tǒng)的主要任務就是保證目標系統(tǒng)內(nèi)核(這里以Linux為例)的完整性。由于Linux操作系統(tǒng)內(nèi)核在編譯生成時,其在內(nèi)存中的物理加載地址是確定的,其代碼段、數(shù)據(jù)段、全局內(nèi)核變量等數(shù)據(jù)結構的地址均可以在System.map文件中確定。因此監(jiān)控系統(tǒng)不需要和目標系統(tǒng)進行交互,就能事先確定大部分所需信息。

      內(nèi)核的完整性包括載入時完整性和運行時完整性,而運行時完整性又包括代碼完整性和數(shù)據(jù)完整性。載入時完整性屬于靜態(tài)完整性,只需要主核在從核上加載目標系統(tǒng)內(nèi)核之前對其進行完整性驗證即可,比如計算HASH值,然后和基準值進行對比。運行時完整性分為兩個方面,代碼完整性依賴于硬件支撐,即主核對所有的內(nèi)核代碼頁進行標定,這些物理頁的地址可以通過System.map文件事先確定。如果有破壞代碼頁完整性的行為發(fā)生,即內(nèi)核代碼頁發(fā)生寫入操作,就會在主核上產(chǎn)生異常,破壞行為隨即被發(fā)現(xiàn),這樣就保證了代碼頁的完整性。另外,由于LKM模式加載的內(nèi)核模塊的代碼頁是動態(tài)分配的,主核無法得知其地址,也就無法對其進行標記,因此加載的模塊一旦執(zhí)行就會在主核產(chǎn)生異常(未被標記的內(nèi)核頁被認為是數(shù)據(jù)頁,即在內(nèi)核數(shù)據(jù)頁上執(zhí)行),所以目標操作系統(tǒng)將不支持LKM。而運行時的數(shù)據(jù)完整性是通過類似Gibraltar[19]的技術來保證的。通過事先采集和規(guī)約的內(nèi)核“不變量”作為基準,定時的掃描目標系統(tǒng)物理頁,從中提取出檢測項進行對比,如果不一致,則表示內(nèi)核的數(shù)據(jù)完整性遭到破壞。這里的“不變量”的形式可以多樣,可以是具體的數(shù)據(jù)常量,比如系統(tǒng)調(diào)用表里的函數(shù)地址,驅動程序里的函數(shù)指針等;也可以是數(shù)據(jù)的大小、相等關系,集合的屬于關系,比如某個數(shù)據(jù)的取值只能在某個集合之內(nèi);還可以是鏈表項的長度等。只要事先進行“不變量”的采集和基準制作,就能在后續(xù)的定時掃描中發(fā)現(xiàn)針對這些“不變量”的攻擊,從而保證運行時內(nèi)核數(shù)據(jù)的完整性。另外,由于主核只對目標系統(tǒng)內(nèi)核的固有代碼頁進行了標定,其他未被標定的內(nèi)核頁均認為是數(shù)據(jù)頁,而在數(shù)據(jù)頁上執(zhí)行代碼是會產(chǎn)生異常的,所以任何通過緩沖區(qū)溢出來觸發(fā)內(nèi)核shellcode的企圖都會失敗,這也進一步保證了外來惡意代碼無法在內(nèi)核執(zhí)行。這樣監(jiān)控系統(tǒng)就保證了目標系統(tǒng)內(nèi)核在加載時和運行時的全生命周期的完整性。

      在保證目標系統(tǒng)內(nèi)核完整性的基礎上,目標系統(tǒng)內(nèi)其他部分的完整性保護可以依托自身解決?,F(xiàn)有的各種完整性保護模型都可以結合進來,比如可信度量技術、針對進程頁交換的頁加密保護技術、白名單技術、加密文件系統(tǒng)、各類訪問控制模型等。這里作為示例,采用的是我們在以前的工作中提出的PEDIAMA[9]架構,但針對本文的模型做了少許改動,比如將相應LKM模塊直接編譯進內(nèi)核,可信啟動流程的簡化等。

      2 模型描述及工作流程

      整個模型的架構如圖1所示,分為監(jiān)控系統(tǒng)和目標系統(tǒng)兩個部分。監(jiān)控系統(tǒng)運行在CPU的主核上,主核從外部導入固件系統(tǒng)運行,并通過輸入輸出接口,比如串口,進行命令輸入、信息輸出、固件燒寫和更新等工作。監(jiān)控系統(tǒng)可以訪問全部物理內(nèi)存,但也有自己獨占的內(nèi)存區(qū)域。監(jiān)控系統(tǒng)是一個輕量級的單任務系統(tǒng),主要負責周期性的掃描目標系統(tǒng)的物理內(nèi)存。目標系統(tǒng)運行在其他從核上,只能訪問除主核獨占區(qū)外的其它內(nèi)存區(qū)。目標操作系統(tǒng)通過外圍的密碼部件,如TPM或TCM,輔助實現(xiàn)其他完整性保護應用。監(jiān)控系統(tǒng)和目標系統(tǒng)各自獨立運行,沒有信息交互,對外設的訪問在運行時也不交叉。

      圖1 模型架構圖

      2.1 監(jiān)控系統(tǒng)工作流程

      系統(tǒng)啟動時,CPU的主核作為啟動核從外部導入固件先運行,固件第一時間掃描整個物理內(nèi)存,并從中劃出一塊供主核獨占使用(比如內(nèi)存高地址的最后一部分),該部分內(nèi)存對其他從核不可見。隨后固件從外部讀取目標系統(tǒng)內(nèi)核文件,這里系統(tǒng)內(nèi)核文件可以存放在硬盤上,甚至也可以存放在主核一端的FLASH里,這均可以根據(jù)具體的應用需求來訂制。在完成對目標系統(tǒng)內(nèi)核文件的完整性檢查后,將其加載進目標物理內(nèi)存,對系統(tǒng)內(nèi)核的代碼頁進行標定,并對相關內(nèi)核頁進行DMA保護。隨后啟動其余從核,目標系統(tǒng)自行進入加載流程開始獨立運行。而主核隨即進入運行時監(jiān)控狀態(tài),定時掃描目標系統(tǒng)相關內(nèi)存頁,檢查系統(tǒng)內(nèi)核的數(shù)據(jù)完整性。一旦發(fā)生異常告警,或者在掃描中發(fā)現(xiàn)內(nèi)核數(shù)據(jù)完整性遭到破壞,則監(jiān)控系統(tǒng)將立即停止所有從核運行,并在輸入輸出接口輸出相關告警信息,然后等待后續(xù)的命令,或者延時一段時間后對整機進行復位。

      2.2 目標系統(tǒng)工作流程

      在從核啟動后,目標系統(tǒng)內(nèi)核就已經(jīng)加載在內(nèi)存固定地址,從核即從系統(tǒng)內(nèi)核開始啟動整個操作系統(tǒng)。目標系統(tǒng)和監(jiān)控系統(tǒng)完全隔離,因此完全感知不到監(jiān)控系統(tǒng)的存在,由于二者之間沒有任何信息交互,目標系統(tǒng)幾乎不用做任何更改就可以直接運行在本模型中。為了向上支撐應用層的完整性保護需求,目標系統(tǒng)上可以使用現(xiàn)有的各類完整性保護架構,由于操作系統(tǒng)內(nèi)核的完整性是有保障的,這使得上層的完整性保護架構在設計和實現(xiàn)上都要簡化很多。作為示例,這里采用PEDIAMA[9]架構,并做了少許改造,整個架構如圖2所示,這里省略了原架構中對內(nèi)核模塊的度量支持,因為本模型中目標系統(tǒng)不支持LKM模塊加載。

      圖2 PEDIAMA架構圖

      PEDIAMA分為應用層的策略管理、日志審計部分和內(nèi)核層的度量核心處理部分。應用層的部分主要負責和系統(tǒng)用戶之間的管理交互工作,內(nèi)核層的部分負責策略的提取與應用、動態(tài)度量和結果報告。PEDIAMA的主體工作都在內(nèi)核層完成。整個架構的運作以TPM為基礎支撐,以可信啟動來保證初始運行環(huán)境的完整性。由于目標系統(tǒng)加載方式的變化,可信啟動的具體流程也要稍做調(diào)整,比如可直接從系統(tǒng)內(nèi)核后面的部分開始進行度量。應用程序加載時,PEDIAMA會進行截獲,并從應用程序中提取度量策略,進而對程序的初始狀態(tài)進行度量,以保證其靜態(tài)初始可信。然后動態(tài)度量模塊對度量策略實施部署和應用,以保證程序在運行中的完整性,更具體的內(nèi)容請參考文獻[9]。

      3 模型分析

      3.1 安全性分析

      模型的安全性有兩個方面,一個是監(jiān)控系統(tǒng)自身的安全性。首先是監(jiān)控系統(tǒng)自身的安全性,由于監(jiān)控系統(tǒng)和目標系統(tǒng)采用分立的架構,各自獨立運行,沒有任何信息交互,亦即監(jiān)控系統(tǒng)不會受到目標系統(tǒng)的干擾,因此監(jiān)控系統(tǒng)的安全性完全取決于自身。而監(jiān)控系統(tǒng)上僅運行的是一個輕量級的物理內(nèi)存掃描和檢測程序,任務單一,結構簡單,與外界幾乎沒有任何數(shù)據(jù)交互,因此監(jiān)控系統(tǒng)完全是一個自封閉的系統(tǒng),其安全性是有保障的。

      另一方面是目標系統(tǒng)的完整性。目標系統(tǒng)內(nèi)核的完整性由監(jiān)控系統(tǒng)來保證,其中內(nèi)核代碼頁的完整性由主核的硬件頁保護機制直接支撐,內(nèi)核數(shù)據(jù)的完整性則通過定時掃描檢測“不變量”條件來保證。系統(tǒng)內(nèi)核之外的其他部分的完整性由目標系統(tǒng)自身來完成,在內(nèi)核完整性的強有力支撐下,應用層的完整性相對容易做到?,F(xiàn)有的各種完整性保護模型均可結合進來,作為示例的PEDIAMA架構,度量策略比較靈活,能夠依據(jù)策略對進程進行動態(tài)度量,保障應用的完整性。

      3.2 模型比較

      按照前面的分類,本模型大體可歸為第3類,同LLM有相似之處,但在模型硬件架構和工作原理上有較大區(qū)別。主要區(qū)別在于,本模型對硬件的改造較小,主要是加入了特權主核及其對內(nèi)核頁的標記和保護,而LLM對軟硬件的改造均較大,不僅加入了特權主核,還要求每個核都有本地內(nèi)存,程序均在本地內(nèi)存執(zhí)行。這個設計只是為了方便安全換頁程序的駐留及其對監(jiān)控系統(tǒng)的保護,對目標系統(tǒng)意義不大。而安全換頁程序的存在也是因為監(jiān)控系統(tǒng)和目標系統(tǒng)共享外部內(nèi)存,監(jiān)控系統(tǒng)數(shù)據(jù)可能被篡改,隔離性不夠。LLM對目標系統(tǒng)的完整性保護全部依賴于監(jiān)控系統(tǒng)的內(nèi)存掃描功能,比較單薄,而本模型則分解為從底向上支撐的幾個部分,硬件支撐內(nèi)核代碼頁保護、數(shù)據(jù)頁不可執(zhí)行及DMA保護。引入“不變量”特性的內(nèi)存掃描系統(tǒng)僅需關注內(nèi)核的數(shù)據(jù)完整性,而目標系統(tǒng)的應用完整性則依托自身安全內(nèi)核及其完整性來解決。因此本模型在軟硬件實現(xiàn)、保護有效性等方面較LLM有一定優(yōu)勢。

      3.3 模型缺點

      由于無法獲得動態(tài)加載內(nèi)核模塊的地址,所以本模型無法支持LKM,這將造成系統(tǒng)內(nèi)核過于龐大,而且每添加一個新設備或者更新一個驅動程序都需要重新訂制內(nèi)核,并相應刷新監(jiān)控端的內(nèi)核數(shù)據(jù)信息。由于同樣的限制,模型也無法將針對內(nèi)核代碼頁的保護機制延伸到應用層的進程代碼頁,對應用層進程代碼頁的保護可依靠目標操作系統(tǒng)內(nèi)核來完成。如果在監(jiān)控系統(tǒng)和目標系統(tǒng)間增加接口,目標系統(tǒng)可以向監(jiān)控系統(tǒng)提出申請,將某塊內(nèi)存標記為可執(zhí)行,是可以解決地址定位問題的,但該接口可能變成新的攻擊點,比如被惡意使用,使得作為數(shù)據(jù)傳送進內(nèi)核的惡意代碼得以執(zhí)行。因此如何分辯這些申請的合法性又變成了難題。

      監(jiān)控系統(tǒng)在發(fā)現(xiàn)問題時的善后處理不夠完善。在發(fā)現(xiàn)問題時,監(jiān)控系統(tǒng)掛起了所有的從核,系統(tǒng)管理員可以dump出目標系統(tǒng)的內(nèi)存,甚至可以在異常發(fā)生時獲得各從核的寄存器值,然后進行后續(xù)的離線分析。但是對于目標系統(tǒng)正在完成的工作卻無法保留和善后,比如待寫入磁盤的數(shù)據(jù)等。這可能會造成目標系統(tǒng)應用數(shù)據(jù)的丟失甚至導致目標系統(tǒng)無法在下次啟動時正常運作。

      以上的問題都是由于采用了分立的架構,監(jiān)控系統(tǒng)和目標系統(tǒng)隔離地十分徹底,缺少信息交互所造成的。本模型在充分保證隔離性和獨立性的同時犧牲了部分靈活性。

      4 模型驗證

      由于完全符合本模型要求的硬件還不存在,按照本文所依托基金項目的進度安排,還處于部分功能的FPGA仿真驗證階段,對模型只能進行主要功能的模擬驗證。由于目標系統(tǒng)上使用的PEDIAMA架構已經(jīng)在文獻[9]中驗證過了,所以這里只需要驗證監(jiān)控系統(tǒng)對目標操作系統(tǒng)內(nèi)核的保護功能。我們使用Bochs 2.2.1系統(tǒng),對模型的主要功能進行了驗證,模擬的硬件平臺是32 bit的X86平臺,配置128 MB物理內(nèi)存。我們把監(jiān)控系統(tǒng)的功能直接融合進Bochs系統(tǒng),目標系統(tǒng)使用RedHat 7.2(考慮驗證效率,選擇該版本,并進行最簡安裝),內(nèi)核2.4.18版本,為了方便驗證,加入了LKM支持。驗證的內(nèi)容包括內(nèi)核代碼頁保護、內(nèi)核數(shù)據(jù)頁不可執(zhí)行、內(nèi)核數(shù)據(jù)完整性。

      通過查看系統(tǒng)相關文件,可以確定內(nèi)核的代碼頁范圍,只要在內(nèi)核層運行的代碼不在這個范圍就需要告警,這樣就保證了內(nèi)核數(shù)據(jù)頁不可執(zhí)行。注意,內(nèi)核的初始準備代碼可能不在該范圍內(nèi),監(jiān)測時需要跳過,比如剛啟動時的實模式代碼、保護模式準備代碼等。對于內(nèi)核代碼頁的保護,只需要關注內(nèi)存寫入,如果是內(nèi)核代碼頁范圍就要告警。而對于內(nèi)核數(shù)據(jù)完整性,需要在Bochs系統(tǒng)內(nèi)定時掃描目標系統(tǒng)的模擬物理內(nèi)存并進行檢測。

      為了把監(jiān)控系統(tǒng)加入Bochs,我們對其代碼做了部分修改。數(shù)據(jù)頁不可執(zhí)行功能是在Bochs的函數(shù)void BX_CPU_C::cpu_loop(Bit32s max_instr_count) 內(nèi)部實現(xiàn)的,由于Bochs是譯碼一條指令就立即執(zhí)行的,比如對于非重復指令(重復指令類似),譯碼完成后執(zhí)行過程如下:RIP += i->ilen(); BX_CPU_CALL_METHOD(execute, (i)); 首先更改指令指針,然后執(zhí)行指令。因此可以在每次執(zhí)行指令前對RIP進行檢查,如果處于內(nèi)核層并且不在內(nèi)核代碼頁范圍內(nèi)則給出告警提示。

      對代碼頁的保護是在函數(shù)BX_MEM_C::writePhysicalPage(BX_CPU_C *cpu, Bit32u addr, unsigned len, void *data)內(nèi)部實現(xiàn)的。所有對內(nèi)存的寫操作最終都會調(diào)用這個函數(shù),因此只需要對參數(shù)addr做范圍檢查,如果在代碼頁的物理地址范圍,則進行告警。

      對于內(nèi)核數(shù)據(jù)完整性檢測,也是在cpu_loop函數(shù)里面完成的,每執(zhí)行完一定數(shù)量的指令,比如10萬條,就對目標系統(tǒng)內(nèi)核的相關數(shù)據(jù)頁進行掃描和檢查。在實際驗證中,檢測的“不變量”包括系統(tǒng)調(diào)用表、中斷向量表、VFS功能函數(shù)指針等。

      在測試中我們自己編寫了一個惡意內(nèi)核模塊,根據(jù)實驗內(nèi)容的不同,它會去修改系統(tǒng)調(diào)用表的sys_open函數(shù)地址為該模塊自身的一個函數(shù)地址,或者改寫函數(shù)sys_kill的部分指令代碼為0x90(nop指令)。首先我們以LKM方式加載該模塊,發(fā)現(xiàn)在加載后執(zhí)行該模塊的module_init()函數(shù)時Bochs系統(tǒng)告警,即執(zhí)行該模塊的第一條指令時就告警了,做到了內(nèi)核數(shù)據(jù)頁不可執(zhí)行。然后我們把該模塊編譯進內(nèi)核,在該模塊修改sys_kill指令代碼時,Bochs系統(tǒng)進行了告警;在該模塊惡意修改sys_open函數(shù)地址后,cpu_loop函數(shù)里的定時掃描檢測程序也發(fā)現(xiàn)了該次攻擊,代碼頁保護和內(nèi)核數(shù)據(jù)完整性保護均得到了驗證。其實在代碼頁保護及數(shù)據(jù)頁不可執(zhí)行的情況下,除非內(nèi)核代碼自身的問題,內(nèi)核重要數(shù)據(jù)很難被篡改,惡意代碼沒有進入內(nèi)核執(zhí)行的機會。

      5 結 語

      通過分析現(xiàn)有的各類系統(tǒng)完整性保護方案,提出了基于分立架構的系統(tǒng)完整保護模型。該模型通過對現(xiàn)有多核CPU硬件架構做較小改動,實現(xiàn)單顆CPU下監(jiān)控系統(tǒng)和目標系統(tǒng)并行隔離獨立運行,監(jiān)控系統(tǒng)比目標系統(tǒng)擁有更高特權,且監(jiān)控功能不需要目標系統(tǒng)支持。通過監(jiān)控系統(tǒng)設置目標系統(tǒng)內(nèi)核代碼頁保護、數(shù)據(jù)頁不可執(zhí)行,以及內(nèi)核數(shù)據(jù)完整性掃描等手段充分保障目標系統(tǒng)內(nèi)核的完整性。在內(nèi)核完整性的基礎上,系統(tǒng)應用層的完整性則可依托自身來解決,作為示例,模型中采用PEDIAMA架構來保障應用的完整性。使用Bochs對模型的主要功能進行了模擬驗證,實驗表明監(jiān)控系統(tǒng)能檢測出針對系統(tǒng)內(nèi)核的完整性攻擊,結合文獻[9]對PEDIAMA架構的驗證,整個模型能夠有效保護系統(tǒng)的完整性。

      [1] Lie D,Thekkath C A,Mitchell M,et al.Architectural Support for Copy and Tamper Resistant Software[C]//Proc of the ninth international conference on Architectural support for programming languages and operating systems,Massachusetts:Cambridge,2000:168-177.

      [2] Suh G E,O’donnell C W,Sachdev I,et al.Design and implementation of the AEGIS single-chip secure processor using physical random functions[C]//Proc of the 32nd Annual International Symposium on Computer Architecture,New York: IEEE Press,2005:25-36.

      [3] 沈昌詳,張煥國,馮登國,等.信息安全綜述[J].中國科學E輯:信息科學,2007,37(2):129-150.

      [4] Sailer R,Zhang X L,Jaeger T,et al.Design and implementation of a TCG-based integrity measurement architecture[C]//Proc of USENIX Security Symposium.California:ACM,2004:223-238.

      [5] Jaeger T,Sailer R,Shankar U.PRIMA:Policy-reduced integrity measurement architecture[C]//Proc of the eleventh ACM symposium on Access control models and technologies.California:ACM,2006:19-28.

      [6] Shi E,Perrig A,Van Doorn L.BIND:A fine-grained attestation service for secure distributed systems[C]//Proc of the IEEE Symposium on Security and Privacy.Oakland:IEEE Press,2005:154-168.

      [7] Loscocco P A,Wilson P W,Pendergrass J A,et al,Linux kernel integrity measurement using contextual inspection[C]//Proc of the 2007 ACM workshop on Scalable trusted computing.Virginia:ACM,2007:21-29.

      [8] 劉孜文,馮登國.基于可信計算的動態(tài)完整性度量架構[J].電子與信息學報,2010,32(4):875-879.

      [9] 鄧銳,陳左寧.基于策略嵌入和可信計算的完整性主動動態(tài)度量架構[J].計算機應用研究,2013,30(1):261-264.

      [10] Mccune J M,Parno B,Perrig A,et al.Flicker:An Execution Infrastructure for TCB Minimization[C]//Proc of the 3rd ACM European Conference on Computer Systems, Glasgow:ACM,2008:315-328.

      [11] Kinebuchi Y,Butt S,Ganapathy V,et al.Monitoring Integrity Using Limited Local Memory[J].IEEE Transactions on Information Forensics and Security,2013,8(7):1230-1242.

      [12] Seongwook J,Jeongseob A,Sanghoon C,et al.Architectural Support for Secure Virtualization under a Vulnerable Hypervisor[C] //The 44th Annual IEEE/ACM International Symposium on Microarchitecture,Porto Alegre:ACM,2011:937-949.

      [13] Intel Corporation.Trusted eXecution Technology-preliminary architecture specification and enabling considerations.No.31516803[R].Santa Clara:Intel,2006.

      [14] Advanced Micro Devices.AMD64 Architecture Programmer’s Manual Volume 2:System Programming,No.24593[R].Sunnyvale:AMD 2010.

      [15] Tal G,B Pfa,J Chow,et al.Terra:A virtual machine based platform for trusted computing[C]//Proc of the Symposium on Operating System Principles,New York:ACM,2003:193-206.

      [16] Wang Zhi,Jiang Xuxian.HyperSafe:A lightweight approach to provide lifetime hypervisor control-flow integrity[C]//IEEE Symposium on Security and Privacy,Oakland:IEEE,2010:380-395.

      [17] Chen X X,Tal G,Lewis E,et al.Overshadow: A virtualization-based approach to Retrofitting protection in commodity operating systems[C]//Proc of the ACM Conference on Architectural Support for Programming Languages and Operating Systems,Washington:ACM,2008:2-13.

      [18] Petroni N,Fraser T,Molina J,et al.Copilot:A coprocessor-based kernel runtime integrity monitor[C]//Proc of the 13th conference on USENIX Security Symposium.San Diego:Berkeley,2004:13-13.

      [19] Arati B,Vinod G,Liviu L.Detecting Kernel-Level Rootkits Using Data Structure Invariants[J].IEEE Transactions on Dependable and Secure Computing,2011,8(5):670-684.

      [20] Secunia Vulnerability Report:VMware ESX Server 4.x[EB/OL].[2014-07-20].http://secunia.com/advisories/product/25985/.

      SCHISM ARCHITECTURE-BASED SYSTEM INTEGRITY PROTECTION MODEL

      Deng Rui Chen Zuoning

      (JiangnanInstituteofComputingTechnology,Wuxi214083,Jiangsu,China)

      Focusing on the deficiency of various solutions of system integrity protection at present in integrating the isolation property and practicability, this paper presents a schism architecture-based system integrity protection model which takes both the isolation property and practicability into consideration. Through a minor revision to multi-core CPU architecture, and adding a privileged main core and the extension of its exclusive memory page protection security function, the parallel and independent running of the monitor system and the target system in isolation over a single CPU is achieved. The monitor running on main core has higher privilege, and its function doesn't need the support from the target system running on other cores. The monitor system can fully ensure the integrity of target system kernel by setting target system kernel code pages protection, kernel data page non-execution and kernel data integrity scanning function, while the integrity of applications level can be fixed by relying the security kernel in target system itself. The model achieves good balance between isolation property and practicability, and the prototype simulation by Bochs also shows that the proposed model can protect system’s integrity effectively.

      Integrity Schism architecture Multi-core System architecture Operating system

      2014-09-08。核高基重大專項(2011ZX01039-001-0 02)。鄧銳,工程師,主研領域:信息安全,可信計算,系統(tǒng)安全架構。陳左寧,院士,教授。

      TP309

      A

      10.3969/j.issn.1000-386x.2016.04.068

      猜你喜歡
      內(nèi)核完整性內(nèi)存
      萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
      稠油熱采水泥環(huán)完整性研究
      云南化工(2021年9期)2021-12-21 07:44:00
      強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      基于嵌入式Linux內(nèi)核的自恢復設計
      Linux內(nèi)核mmap保護機制研究
      莫斷音動聽 且惜意傳情——論音樂作品“完整性欣賞”的意義
      精子DNA完整性損傷的發(fā)生機制及診斷治療
      樁身完整性檢測中缺陷的綜合判別
      河南科技(2014年18期)2014-02-27 14:14:46
      基于內(nèi)存的地理信息訪問技術
      定结县| 洮南市| 长沙县| 西青区| 临朐县| 广德县| 昌都县| 石林| 泸水县| 瓦房店市| 孟津县| 德钦县| 资中县| 修文县| 板桥市| 盐城市| 明溪县| 通许县| 霍林郭勒市| 潍坊市| 青田县| 龙口市| 酉阳| 茌平县| 内江市| 浮梁县| 滁州市| 正镶白旗| 新乐市| 府谷县| 泾阳县| 桂阳县| 衡东县| 合阳县| 吴堡县| 铁力市| 沙雅县| 西峡县| 旌德县| 登封市| 双城市|