張助玲,劉 敏,秦煥青,馬劉杰
(1.上海航天計算機技術研究所,上海 201109;2.中遠海運科技股份有限公司,上海 200135;3.中天安泰(北京)信息技術有限公司,北京 100040)
隨著計算機技術和信息技術的快速發(fā)展,信息安全越來越受重視,信息安全技術得到不斷提升。然而,當前計算機惡意程序數(shù)量不斷增多,對重要行業(yè)關鍵信息基礎設施的威脅不斷加劇,信息安全形勢較為嚴峻[1]。中央處理器(Central Processing Unit,CPU)作為計算機的運算核心和控制核心,是保證計算機正常運行和處理相關程序及數(shù)據(jù)的核心設備。長期以來,盡管CPU的性能得到了很大提升,但其一直只具有對接收的指令進行運算和控制的功能,不能對指令是否有效和安全作出任何判斷,并阻止其執(zhí)行。因此,研制具有自主產權的具有指令邏輯實時控制和安全判斷功能的CPU,對于構建安全可靠的計算機信息系統(tǒng)和信息網絡而言具有重要意義。
當有的CPU架構設計加入了安全機制,主要采用分層設計思想和可信設計思想,其中:
1)分層設計思想即將CPU分為ring 0、ring 1、ring 2和ring 3(Intel X86架構)等4種特權級別[2],或用戶態(tài)和核心態(tài)2種安全級別(ARM架構),本質上是實現(xiàn)對指令調度權限的管理和控制;
2)可信設計思想即在CPU的架構設計、測試、量產、封裝和執(zhí)行階段構建可信計算環(huán)境,本質上是構建一個認證體系和動態(tài)可信鏈,與CPU的邏輯實現(xiàn)無關。
Intel和AMD等CPU廠商為配合虛擬技術的應用,都在其CPU中加入硬件虛擬化支持。硬件虛擬化技術不僅能為虛擬技術提供直接支持,而且能提高虛擬效率,提供一種安全CPU機制。VMM(Virtual Machine Monitor)[3]被稱為Hypervisor,專指在采用硬件虛擬化技術時創(chuàng)建出的特權層,將其提供給虛擬機開發(fā)者,用來實現(xiàn)虛擬硬件與真實硬件的通信和事件處理,其權限的級別高于操作系統(tǒng)權限的級別。圖1為Intel CPU架構權限分層,在Intel VT-x虛擬化技術架構中,VMM的權限可視為ring 1級。
由于新增了特權級別“ring 1”,需要有新的指令、寄存器和標志位來實現(xiàn)其功能。因此,硬件虛擬化技術也是一種基于指令調度權限管理和控制的安全機制。
為抵御惡意軟件的攻擊,Intel TXT(Intel Trusted Execution Technology)技術提供了一系列基于硬件的安全解決方案,支持計算機系統(tǒng)基于TXT的靜態(tài)可信根和動態(tài)可信根,采用靜態(tài)度量和動態(tài)度量技術構建安全可信的軟件執(zhí)行環(huán)境,在與硬件虛擬化技術配合應用時,發(fā)揮出更強的保護能力。
當Intel TXT技術與Intel VT-x技術相結合時,TXT的靜態(tài)可信根能實現(xiàn)對Hypervisor的身份驗證、數(shù)據(jù)和參數(shù)度量,保證其完整性和授權訪問;動態(tài)可信根技術可動態(tài)地將信任鏈向后續(xù)啟動的虛擬機操作系統(tǒng)和應用程序傳遞,構建動態(tài)可信鏈。
ARM TrustZone技術的核心思想是從CPU內核設計開始,將增強系統(tǒng)安全性的措施集成到系統(tǒng)的整體設計中,保證產品不受外部因素的惡意攻擊[4]。ARM系統(tǒng)一般基于TrustZone技術構建安全平臺。在ARM體系架構中,TrustZone為用戶模式和特權模式引入了安全狀態(tài)標識和判斷機制,以決定系統(tǒng)是運行在非安全的“普通”執(zhí)行環(huán)境中,還是運行在安全可信任的“安全”執(zhí)行環(huán)境中。安全監(jiān)控器控制著“安全”環(huán)境與“普通”環(huán)境之間的轉換。圖2為TrustZone模式下2種并行安全環(huán)境示意。
日本投入大量資金開發(fā)了具有過濾功能的安全CPU,并在總線上開發(fā)了邏輯分析器。由于技術架構設計存在缺陷,其未能形成有效的CPU安全技術體系。
龍芯、飛騰和申威等國產CPU基本上能滿足自主可控要求,但在安全性上采用的是與X86和ARM架構類似的權限管理機制,雖然能實現(xiàn)對指令調度權限的管理和控制,但未能在指令調度和執(zhí)行過程層面建立CPU邏輯安全機制,尚未開展CPU邏輯控制機制研究。
綜上所述,目前的CPU安全設計技術主要是在CPU架構的基礎上進行加固和權限管理,或引入部分可信計算技術,雖然能為計算機系統(tǒng)的安全運行提供一定的保障,但尚未實現(xiàn)對CPU指令邏輯的控制。因此,需在CPU內部構建指令邏輯控制單元,將信息安全防御技術從操作系統(tǒng)下沉到CPU內部,為計算機和信息系統(tǒng)提供基礎安全平臺支撐,抵御惡意攻擊。
在研究CPU指令邏輯控制技術時,需構建CPU指令邏輯控制平臺,建立指令安全性判斷機制,獲取指令安全性判斷方法,以實現(xiàn)對CPU指令邏輯實現(xiàn)過程的控制。
當前的CPU通常將流水線劃分為取指、譯碼、調度、發(fā)射、執(zhí)行和提交等階段,其中發(fā)射和執(zhí)行是亂序的,直到提交階段才能確定指令的順序和預測結果。提交階段是指令生效與未生效的臨界點,一旦提交成功,指令就會對內存、寄存器和CPU狀態(tài)等進行改變。要實現(xiàn)對CPU的邏輯控制,需構建CPU流水線邏輯控制平臺,實現(xiàn)對上述階段邏輯實現(xiàn)過程的干預和控制,在提交階段識別并阻止惡意指令,即通過對流水線進行控制,使CPU的邏輯可控。
CPU是開放的系統(tǒng),所有符合其編碼規(guī)范的指令,不管是否為惡意指令,都能進入CPU并被執(zhí)行。由于所有攻擊本質上都是用當前的指令邏輯改變后續(xù)指令邏輯的過程,因此需建立指令安全性判斷機制,在提交之前判斷當前的指令是否安全。由于指令提交之后不能更改,需在執(zhí)行階段與提交階段之間增加預提交程序,在提交之前判斷該指令是否為惡意指令。
計算機運行過程是用代碼邏輯處理數(shù)據(jù)的過程。在此過程中,代碼會在CPU執(zhí)行返回確認之前經過多次重組。對CPU的運行邏輯進行控制的核心是保證代碼邏輯重組過程不會被修改,即保護堆棧、內存和邏輯結構等數(shù)據(jù)不會被篡改。因此,需通過判斷當前的指令是否對堆棧、內存和邏輯結構等數(shù)據(jù)進行修改來判斷當前的指令是否安全。
指令邏輯控制CPU安全架構總體設計方案見圖3,其中:取指、譯碼、調度、發(fā)射、執(zhí)行、提交、ICache、發(fā)射隊列IQ、ROB和內存接口屬于基本CPU流水線及部件;預提交、提交控制邏輯、譯碼控制邏輯、調度控制邏輯、發(fā)射控制邏輯、執(zhí)行控制邏輯、邏輯控制平臺、配置寄存器組、控制寄存器、數(shù)據(jù)寄存器、異常單元和中斷單元共同構成指令邏輯控制安全CPU的運行控制平臺。
圖3 指令邏輯控制CPU安全架構總體設計方案
在CPU中執(zhí)行指令過程中,指令解析單元、內存序列控制單元、邏輯關聯(lián)關系控制單元和堆棧控制單元不斷更新指令、堆棧、內存和邏輯關聯(lián)信息。在預提交階段,指令傳輸?shù)竭壿嬁刂破脚_,由其分發(fā)給譯碼控制邏輯、調度控制邏輯、發(fā)射控制邏輯和執(zhí)行控制邏輯,這些邏輯根據(jù)指令、堆棧、內存和邏輯關聯(lián)信息對指令的安全性進行分析判斷。若該指令是惡意指令,則相應的控制邏輯向邏輯控制平臺報告異常,邏輯控制平臺通知提交控制邏輯,阻斷該惡意指令的提交,并向操作系統(tǒng)上報中斷;若發(fā)生了篡改行為,則向邏輯控制平臺上報中斷,由邏輯控制平臺向操作系統(tǒng)上報中斷。在判斷指令的安全性時,操作系統(tǒng)通過操作配置寄存器組、控制寄存器和數(shù)據(jù)寄存器,實現(xiàn)對安全CPU的配置及其狀態(tài)的讀取。
3.1.1 譯碼和調度控制邏輯
CPU首先從指令緩存中獲取將要執(zhí)行的指令,經過譯碼得到其類型、操作數(shù)和地址等信息。譯碼控制邏輯與指令解析單元一起對該指令信息進行協(xié)同分析,判定其是否被非法使用,并作標記。在預提交階段,邏輯控制平臺根據(jù)指令標記對該指令進行判斷處理,若其被非法使用,則邏輯控制平臺通知提交控制邏輯,阻止其提交,并上報中斷;否則,邏輯控制平臺通知提交控制邏輯正常提交。
在指令調度階段,分發(fā)邏輯將指令寫入發(fā)射隊列IQ和ROB,調度控制邏輯對當前的指令和邏輯關聯(lián)關系控制單元中的指令進行分析,并生成新的邏輯關聯(lián)關系。在預提交階段,調度控制邏輯根據(jù)該指令的類型和操作數(shù)判斷其是否對現(xiàn)有的邏輯關聯(lián)關系造成破壞,若造成破壞,則邏輯控制平臺通知提交控制邏輯阻止其提交,并上報中斷。
3.1.2 發(fā)射和執(zhí)行控制邏輯
發(fā)射控制邏輯保證在發(fā)射階段,同一個邏輯關聯(lián)節(jié)點指令組中的所有指令都準備就緒之后再送入執(zhí)行功能部件,使同一個邏輯節(jié)點上的指令在一個時間段內執(zhí)行,減少后續(xù)邏輯判斷的工作量。
對于訪存操作,執(zhí)行控制邏輯將操作數(shù)與內存序列控制單元中的數(shù)據(jù)相比對,判斷保護內存是否被篡改,若被篡改,則通知提交控制邏輯阻止其提交,并觸發(fā)中斷,通知操作系統(tǒng)。
3.1.3 邏輯和提交階段控制平臺
邏輯控制平臺是安全CPU運行控制平臺的中樞,負責在預提交階段對指令進行解析,并向其他邏輯分發(fā);接收其他邏輯的反饋結果,并向提交控制邏輯發(fā)送指令安全性反饋結果;同時,在出現(xiàn)異常時觸發(fā)中斷。
提交控制邏輯負責接收邏輯控制平臺發(fā)送的指令安全性返饋結果,若是安全指令,則直接提交,否則阻止提交。
基于上述邏輯控制過程,實現(xiàn)對指令邏輯控制安全CPU每條指令的控制,從而發(fā)現(xiàn)并阻止惡意指令的執(zhí)行,達到防止惡意代碼攻擊的效果。
邏輯控制平臺技術實現(xiàn)示意見圖4。指令解析單元負責解析預提交指令,分析其攜帶的指令碼和操作數(shù)對應的數(shù)值;指令分發(fā)邏輯負責根據(jù)指令碼,將指令分為特殊指令和其他指令2類。特殊指令由譯碼控制邏輯進行分析處理,其他指令由調度控制邏輯、發(fā)射控制邏輯和執(zhí)行控制邏輯進行分析處理。若指令為惡意指令,則將異常信息反饋給邏輯控制平臺,由其統(tǒng)一報告給操作系統(tǒng)。指令裁決單元負責對各站臺控制單元反饋的結果進行匯總,并將其發(fā)送給提交控制邏輯,由其決定該指令是否提交。
圖4 邏輯控制平臺技術實現(xiàn)示意
本文介紹了現(xiàn)有的CPU安全機制和在CPU內部對指令及其邏輯進行判斷的安全CPU設計方法和主要技術實現(xiàn)途徑,使得CPU不僅具有執(zhí)行指令的功能,而且具有防范惡意指令和惡意代碼的功能。通過將信息安全技術下沉到CPU內部,不僅能防范惡意代碼破壞信息防御技術,而且能最大程度地利用硬件的性能提升信息安全防御能力。
本文介紹的安全架構設計思路和方法已在龍芯3A4000CPU中得到應用和有效性驗證。通過研究信息安全技術,并將其融入到CPU的設計和實現(xiàn)中,能大大提升我國CPU的自主控制能力和信息安全防范能力。