岳 陽,鄭志蓉,徐 昆
(91977 部隊,北京 100841)
惡意代碼攻擊分為非法連接、惡意代碼植入、惡意代碼發作和非授權操作4 種手段[1]。在一次攻擊過程中,上述4 種類型手段交替使用。
(1)非法連接。攻擊者通過突破或繞過本地登錄以及網絡服務的安全機制與目標機建立連接。
(2)惡意代碼植入。它主要包括將惡意代碼附加在宿主執行代碼(病毒常用手段)或在系統中增加新的惡意代碼(特洛伊木馬常用手段)兩種方式。
(3)惡意代碼發作。攻擊者通過溢出攻擊等方式執行注入的惡意代碼。
(4)非授權操作。攻擊者利用竊取的特權獲取信息,修改系統配置破壞系統,修改系統記錄隱藏惡意行為。
針對PC惡意代碼攻擊的過程模型,如圖1所示。

圖1 惡意代碼攻擊過程模型
抗惡意代碼攻擊技術包括信任鏈傳遞技術、基于密碼的安全隔離技術、多級安全訪問控制技術以及安全管道域技術研究。
信任鏈傳遞技術解決可信計算基不能被篡改的問題。
目前已有的信任鏈傳遞過程是在系統控制權轉移前,先對待傳遞的執行代碼和配置數據進行完整性驗證,驗證通過后進行控制權轉移。使用完整性模型BIBA 模型[2]分析信任鏈傳遞過程發現,信息能夠從高完整性等級流入低完整性等級,存在潛在的安全隱患。
針對信任鏈傳遞過程中度量值和日志的寫入存在被惡意代碼利用的脆弱點,提出了改進的信任鏈傳遞模型[3]。該模型為系統中可運行的軟件賦予唯一的安全標識,以代碼安全標識為依據控制低完整性等級對高完整性等級的“寫”入,能有效阻止代碼的非授權寫入,解決了信任鏈傳遞過程的完整性,保證了可信計算基的完整性。
改進的信任鏈傳遞模型軟件安全標識能夠有效反映軟件的特征信息,并保證其完整性和真實性。軟件安全標識統一由安全管理中心生成。軟件運行前對該軟件進行完整性度量驗證,并根據軟件安全標識對代表該軟件運行的主體進行授權訪問控制。
與可信計算組織信任鏈傳遞規范對比,改進的信任鏈傳遞模型有以下特點:
(1)可信密碼模塊為可信度量根,取代可信平臺模塊和BIOS bootblock 共同為可信度量根;
(2)高安全等級“讀”低安全等級過程增加了代碼的恢復驗證;
(3)以代碼安全標識為依據控制低安全等級對高安全等級的“寫”入。
改進的信任鏈傳遞模型通過對系統軟件安全標識對系統軟件簽名驗證,基于軟件唯一性安全標識實施訪問授權,結合執行代碼完整性驗證和恢復,以可信密碼模塊為信任根,實現了從系統上電到系統裝載全過程可信校驗和訪問控制,確保系統可信計算基不被非法篡改,有效阻止了惡意代碼植入和發作,從而確保各項安全機制正確實施。
信任鏈傳遞從以下3 個方面阻止惡意代碼的攻擊。
(1)高安全等級對象運行低安全等級代碼之前,先進行可執行代碼的完整性驗證,阻止惡意代碼的運行。
(2)對于新增加的惡意代碼,信任鏈傳遞模型也能有效進行控制。安全標識規定了控制實體能夠執行的代碼集合,在集合外的代碼將被拒絕執行。
(3)安全標識規定了低完整級別對象執行過程中向高完整級別對象寫入信息的范圍和內容,阻止惡意代碼植入和破壞。
信任鏈傳遞與基于病毒特征的殺毒手段有著本質的區別。通過信任鏈傳遞,攻擊者安裝的后門、嗅探程序、惡意邏輯等將被拒絕執行,也不允許攻擊者修改或增加惡意信息,因此能夠有效阻止惡意代碼的植入和發作。
基于密碼的安全隔離技術解決可信計算基不能被繞過的問題。
目前可信計算基的實施相當大一部分依賴于軟件上的邏輯設計,在系統設計流程中加入安全實施過程,基于邏輯設計的可信計算基存在被繞過的可能性。
基于密碼的安全隔離技術將系統中受保護的可執行代碼的關鍵信息進行加密處理,執行代碼運行前必須經過解密才能進行后續工作,解密密鑰存放在可信密碼模塊內。這種方式要求代碼運行時,必須通過解密處理才能運行。如果僅僅依靠邏輯上的完整性驗證控制,由于代碼本身沒有發生變化,是可以被解析的,則存在繞過完整性驗證機制控制,直接解析執行代碼的可能。基于密碼加解密的處理,受保護的執行代碼是不能被篡改的。如果惡意代碼附加在可執行代碼,經過解密處理惡意代碼變成亂碼;如果惡意代碼篡改了可執行代碼,經過解密處理,可執行代碼不能執行。程序的執行和數據的訪問如圖2 所示。

圖2 基于密碼技術的程序執行和數據訪問流程
基于密碼的安全隔離技術在以下3 個方面得到了抗惡意代碼攻擊的效果。
(1)代碼的運行必須先解密,并通過完整性驗證。如果代碼的加、解密密鑰存放在可信計算基(Trusted Computing Base,TCB)內,則任何代碼的運行必須通過TCB,即不能繞過TCB,否則是不正確的可執行代碼格式,無法正確執行。
(2)如果惡意代碼附加在系統中合法的執行程序后,則在運行時通過解密,惡意代碼信息變成無效信息。
(3)如果惡意代碼通過授權用戶和程序注入到執行程序,則通過完整性驗證過程,惡意代碼仍然被拒絕執行。
1.3.1 多級安全訪問控制技術解決普通用戶信息交互的完整性和保密性問題
保密性模型BLP 模型要求信息只能從低保密等級流向高保密等級。但是,在實際應用中,高保密級別用戶也有向低保密級別用戶發送信息的需求。高保密級別用戶產生的信息不完全是高保密等級的信息,高保密級別用戶也有產生低保密等級信息的需求[4]。因此,在BLP 模型中引入特權用戶或特權程序——保密度測量主體,用于測量高保密等級向低保密等級發送信息內容的保密程度。當信息中內容不含有泄露高級別信息的信息時,允許該信息從高保密等級流向低保密等級。
根據完整性模型Biba 模型,不允許低保密等級向高保密等級“寫”,因此不少系統在實現BLP模型的過程中對BLP 模型進行了修正,主體只能“寫”同等級的客體。在這種限制條件下,低保密等級主體不能直接向高保密等級提交信息,只能先產生同保密等級的信息,然后被動等待高保密等級主體來讀。這對于希望直接向上級提交高保密等級信息的用戶來說,提供同級寫限制的系統是不可用的。因此,在BLP 模型中引入特權用戶或特權程序——完整度測量主體,用于測量低保密等級向高保密等級發送信息內容的完整性程度。當信息中內容不含有“惡意信息”時,允許該信息從低保密等級流向高保密等級。
結合BLP 模型和Biba 模型,引入完整度、保密度測量主體和完整性、保密性規則集測量系統信息流的保密度和完整度,滿足多安全等級普通用戶交互信息的保密性和完整性需求,能夠有效阻止惡意攻擊者竊取秘密和篡改敏感信息。
1.3.2 多級安全策略的規則描述
多級安全策略的規則[5]可以分解為基本安全規則和測量安全規則。基本安全規則與傳統的BLP 模型規則和Biba 模型規則相一致。測量安全規則分為安全級別為(低保密級,低完整級)的主體Si向安全級別為(高保密級,高完整級)的客體Oj寫入信息的安全規則;安全標識為(高保密級,高完整級)的主體從安全標識為(低保密級,低完整級)讀入信息的安全規則;安全級別為(高保密級,高完整級)的主體Si向安全級別為(低保密級,低完整級)的客體Oj寫入信息的安全規則;安全標識為(低保密級,低完整級)的主體從安全標識為(高保密級,高完整級)讀入信息的安全規則;安全級別為(高保密級,低完整級)的主體Si向安全級別為(低保密級,高完整級)的客體Oj寫入信息的安全規則;安全標識為(低保密級,高完整級)的主體從安全標識為(高保密級,低完整級)讀入信息的安全規則。
1.4.1 安全管道域技術解決特權用戶使用資源的范圍問題
操作系統中存在一些特權用戶或特權進程,它們能夠繞過為普通用戶制定的安全規則。由于可信應用程序具有特權且執行安全相關的功能,它們成為黑客或病毒主要攻擊的目標。解決病毒傳染問題,目前大都采用信任機制或檢查機制。信任機制下主體在讀取某些用戶的數據時,信任用戶不會攜帶惡意代碼;檢查機制下主體在讀入數據時,對讀入的數據按照已知的惡意代碼特征判斷數據中是否含有惡意代碼。信任和檢查機制都具有主觀特征,僅僅依賴這兩種機制解決病毒或黑客問題是不可能的。病毒最大的特點是傳遞性,減少病毒傳播最有效的方法是隔離。但是,計算機最大的特點是信息共享,讓系統中所有的進程訪問空間完全隔離不現實,且這樣的系統也無法使用。安全管道域模型在不影響用戶完成正常工作任務的前提下,使域與域之間的交集盡可能小。
1.4.2 劃分安全管道域的基本規則
(1)根據系統的非管理用戶情況,定義非管理用戶域。這些域的多少與系統提供的具體服務相關。如果操作系統支持多個應用類,那么使用不同的應用類則進入不同的域。
(2)根據系統管理用戶的設置情況,定義管理用戶域。這些域在功能上完全不同于非管理用戶域,這些域應設為與非管理用戶域不同的域。
1.4.3 基本的安全管道域分類
基本的安全管道域有以下幾類。
(1)保密檢查域:完成信息的保密性檢查工作。
(2)完整檢查域:完成信息的完整性檢查工作。
(3)審計域:監督、查看和分析系統中安全相關的事件。
(4)安全管理域:設置、維護與安全策略相關的配置。
(5)普通用戶域:完成系統中其它正常的工作職能。
安全管道域模型以Clark-Wilson 模型為基礎,將安全管理用戶、審計用戶、普通用戶、保密檢查用戶和完整檢查用戶按照“按需分配”和“職責隔離”的原則,在這些用戶之間劃分系統資源;依據特權用戶職責和執行代碼功能劃分系統安全管道域,建立域身份驗證、安全轉換、資源隔離和職責隔離規則,控制特權主體操作行為,有效隔離惡意代碼傳染和破壞的范圍。
1.4.4 安全管道域技術可以有效解決普通用戶型病毒的傳播問題
(1)根據域間隔離規則,只有處于安全管理域或檢查域中的主體才可以修改半良構應用類。模型有效阻止了普通用戶型病毒對半良構應用類代碼的破壞。
(2)根據域間隔離規則和執行規則,普通用戶域、保密檢查域和完整檢查域的主體無法對系統管理型和審計型的客體操作,也就是說,上述域的操作將無法影響系統管理型和審計型中的客體。
以信任鏈傳遞模型和基于密碼的安全隔離技術為基礎,結合多級安全訪問控制和安全管道域技術,構建了互相支撐、互為補充、相對較完備的抗惡意代碼攻擊模型體系,如圖3 所示。
TCB 是實施抗惡意代碼攻擊各種安全保密控制手段的實體,可信計算基要首先保證其隔離性即不被非法篡改,其次保證其完整性即不被繞過。惡意攻擊如果將可信計算基進行篡改或發現存在一條繞過安全控制的途徑,則任何抗惡意代碼攻擊技術手段都形同虛設。
信任鏈傳遞技術保證TCB 的隔離性,防止TCB被篡改;基于密碼技術的隔離模型保證TCB 完整性,防止TCB 被繞過。
在保證TCB 隔離性和完整性的基礎上,針對惡意攻擊的技術手段,采用各種安全控制技術手段阻止惡意代碼的攻擊。每種技術和能阻止的惡意代碼攻擊手段對應關系如表1 所示。

圖3 基于可信計算技術的抗惡意代碼攻擊模型

表1 抗攻擊模型與攻擊模型對應表
信任鏈傳遞基于軟件簽名認證完成系統受控代碼集的建立,防止惡意代碼植入。基于代碼完整性,驗證完成系統控制權的可信鏈式傳遞防止惡意代碼發作。基于軟件安全標識完成軟件的授權控制,防止非法連接和非授權操作。
基于密碼的安全隔離技術基于可執行代碼加密阻止惡意代碼的植入和發作,基于存儲加密阻止非授權操作,基于用戶/平臺身份認證阻止非法連接。
多級安全訪問控制技術解決系統普通用戶訪問資源的保密性和完整性問題。其中,對普通用戶登錄和網絡訪問控制防止非法連接,對普通用戶各種操作控制防止非授權操作,對普通用戶寫入控制防止惡意代碼植入,對普通用戶執行控制防止惡意代碼植入。
安全管道域技術解決特權用戶訪問資源的保密性和完整性問題。它根據用戶所承擔的職責、軟件完成的任務,控制系統主體操作資源的行為。其中,對特權用戶登錄和網絡訪問控制防止非法連接,對特權用戶各種操作控制防止非授權操作,對特權用戶寫入控制防止惡意代碼植入,對特權用戶執行控制防止惡意代碼植入。
用戶身份認證、平臺身份認證、完整性報告/度量阻止惡意攻擊從本地和網絡進行連接,防止惡意攻擊進行漏洞掃描、數據嗅探、ARP 欺騙、遠程溢出。這是整個可信計算系統抗攻擊的第一道防線。
軟件安裝簽名認證阻止攻擊者非授權植入惡意代碼,是可信計算系統抗攻擊的第二道防線。
完整性驗證恢復和可執行代碼加密是可信計算系統防病毒木馬起決定性作用的一個環節,也是可信計算技術抗惡意代碼攻擊的核心機制。該機制能有效阻止惡意代碼的發作,為系統提供自我免疫能力,是可信計算系統抗攻擊的第三道防線。
授權訪問控制是阻止惡意代碼行為的主要手段,限制的行為主要包括非法讀取、篡改信息、植入病毒和木馬。數據加密保護重要信息在存儲介質上以密文存放。在存儲介質被非授權人員獲取后,信息不會泄露,是可信計算系統抗攻擊的第四道防線。
基于可信計算技術的抗惡意代碼攻擊模型效能示意如圖4 所示。
抗惡意代碼攻擊模型的實施對系統性能測試結果表明:通過提高數據讀取速度、減少校驗值計算次數、修改預期值比較方式和減少與模塊交互次數等,可提高程序執行速度,最大程度得減少對系統資源的占用,并達到了預期的目標。

圖4 基于可信計算技術的抗惡意代碼攻擊模型效能示意
針對惡意代碼攻擊模型的類型手段,綜合運用信任鏈傳遞技術、基于密碼的安全隔離技術、多級安全訪問控制技術和安全管道域技術,構建基于可信計算技術的抗惡意代碼攻擊模型。該模型能有效防止惡意代碼植入,防止黑客攻擊,有效阻止信息泄露。