張志強,黃曉昆
(工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)
隨著計算機與網絡技術的普及應用,信息系統(tǒng)將扮演著日趨重要的角色,其安全性全面地影響著我國政治、軍事、經濟、文化和社會的各個方面。目前由于信息安全事件的逐漸增多,惡意破壞等攻擊行為嚴重地影響了社會的穩(wěn)定和發(fā)展,并且呈現(xiàn)出了發(fā)生頻率逐年激增的趨勢,因而,構建牢固的安全保障體系已經被提升到了刻不容緩的戰(zhàn)略高度。
當前,常規(guī)的、對信息系統(tǒng)的安全進行防護的手段主要是在網絡層設防,并從外圍對非法用戶和越權訪問者進行封堵,從而防止黑客和病毒的傳播,而攻擊者主要通過假冒、越權、木馬、后門和拒絕服務攻擊,以及破壞審計數(shù)據(jù)等方法來實現(xiàn)信息竊取、破壞完整性和非法使用等目的。從計算機軟件系統(tǒng)的組成角度來看,可以將軟件安全劃分為應用軟件安全、數(shù)據(jù)庫安全、操作系統(tǒng)安全和網絡安全4個部分,若操作系統(tǒng)缺乏安全機制,數(shù)據(jù)庫也就會沒有安全可信的存取控制,網絡環(huán)境下的安全依賴于各主機的安全,同樣也就依賴于操作系統(tǒng)的安全,因而,操作系統(tǒng)的安全在計算信息系統(tǒng)的整體安全中具有至關重要的作用。
隨著棱鏡門、OpenSSL漏洞和Windows XP停止支持服務等事件的頻率發(fā)生,信息安全問題越來越受到了人們的關注。長期以來,在國內廣泛使用的主流操作系統(tǒng)大多都是從國外進口的,出于技術封鎖的原因,我們對操作系統(tǒng)安全可信度的了解僅僅局限于由國外廠商所提供的產品規(guī)格說明中所涉及到的內容,無法對操作系統(tǒng)的內部有深入的了解,各行業(yè)對國產自主可控產品與技術的需求越來越迫切,研究和開發(fā)高級別的安全操作系統(tǒng)對于保障信息系統(tǒng)的安全具有重大的意義,在開發(fā)高安全等級操作系統(tǒng)的過程中,依靠安全測評來提高產品的安全性就顯得尤為重要。
本文根據(jù)我國安全操作系統(tǒng)的現(xiàn)狀,在闡述安全操作系統(tǒng)的原理、測評方法和國內外安全評測標準的基礎上,依據(jù) 《計算機信息系統(tǒng)安全等級保護操作系統(tǒng)技術要求》,提出了安全操作系統(tǒng)等級測評模型,并依據(jù)測評標準中對數(shù)據(jù)完整性的功能要求給出了可測試的安全指標及其測試方法,設計并實現(xiàn)了測試工具原型,對國產中標麒麟操作系統(tǒng)進行了測試并對測試結果進行了分析。
本章主要對安全操作系統(tǒng)的原理、操作系統(tǒng)常見的安全測評方法,以及與安全操作系統(tǒng)測評相關的標準進行了簡單的介紹。
安全操作系統(tǒng),是指對所管理的數(shù)據(jù)和資源提供適當?shù)谋Wo級,有效地控制硬件和軟件的功能的操作系統(tǒng)。操作系統(tǒng)安全表達的是對操作系統(tǒng)的安全需求,安全操作系統(tǒng)的特色是其安全性與一定的安全等級相對應。
圖1 安全操作系統(tǒng)的結構示意圖
安全操作系統(tǒng)的一般結構如圖1所示。其中,安全內核用來控制整個操作系統(tǒng)的安全操作,安全內核是指系統(tǒng)中與安全性的實現(xiàn)有關的部分,包括應用驗證機制、訪問控制機制、授權機制和授權管理機制等部分。安全內核需設計精簡,以便于進行嚴格的安全性驗證,從而使得可以用這一小部分軟件的安全可信性來保證操作系統(tǒng)的安全可信性。
根據(jù)有關信息系統(tǒng)安全標準的定義,安全的操作系統(tǒng)[1]具有以下幾個特征:1)最小特權原則,即每個特權用戶都只能進行權力范圍內的操作;2)自主訪問控制;3)強制訪問控制,包括保密性和完整性訪問控制;4)安全審計;5)安全域隔離。只有具備這些底層的安全功能,操作系統(tǒng)才能夠真正地抵制各種病毒、木馬程序、網絡入侵和人為非法操作。
安全測評解決的是對信息產品自身的基本安全防護性能的評價問題,以及從產品的設計角度和實現(xiàn)角度分析產品中存在的安全隱患、安全漏洞,并適當?shù)乜紤]采取安全防護和抵御攻擊的方法。
安全測評是對安全測試產生的數(shù)據(jù)進行分析、形成結論的技術活動,包括安全測試與安全評估兩個技術過程。與一般意義上的軟件測試不同的是,安全測試的著眼點是系統(tǒng)中與安全相關的部分,即數(shù)據(jù)處理和存儲時進行數(shù)據(jù)保護的部分,以及預防、檢測和減小授權用戶、未授權用戶執(zhí)行的未授權活動所造成后果的部分,而對于系統(tǒng)應該具備的常用功能則不過多地關注。
為了保證操作系統(tǒng)的安全性,通常采用漏洞掃描評估和系統(tǒng)性安全測評兩種手段來對操作系統(tǒng)的安全性進行測評。
操作系統(tǒng)安全漏洞掃描的主要目的是:自動評估由于操作系統(tǒng)的固有缺陷或配置方式不當所導致的安全漏洞。掃描軟件在被測操作系統(tǒng)中運行,通過一系列的測試手段來探查、發(fā)現(xiàn)其潛在的安全缺陷。它從操作系統(tǒng)的角度評估單機的安全環(huán)境并生成所發(fā)現(xiàn)的安全漏洞的詳細報告。
系統(tǒng)性安全測評與安全操作系統(tǒng)的安全功能及其設計過程密切相關,是安全系統(tǒng)的安全性保障手段的高級形式,也是當前使用的保障安全系統(tǒng)的主要手段,主要包括形式化驗證與非形式化確認與驗證工作。形式化驗證是基于定理或者定義來證明操作系統(tǒng)的安全架構和安全模型的安全性的,非形式化確認與驗證主要是根據(jù)需求對代碼、模塊和系統(tǒng)進行測試,采用的是常用的系統(tǒng)測試方法。
計算機安全測評標準制定的目的是為了對現(xiàn)有的計算機系統(tǒng)的安全性進行統(tǒng)一的評價,為計算機系統(tǒng)各層次部件的制造商和測評機構提供一個權威的測評系統(tǒng)的安全性的標準,通過對現(xiàn)有的標準進行總結和整理,了解到目前國內外計算安全測評標準的大概情況如表1所示。
目前,我國通用的GB 17859-1999《計算機信息安全保護等級劃分準則》是建立安全等級保護制度、實施安全等級管理的重要基礎性標準。該標準在參考美國桔皮書 《可信計算機系統(tǒng)評估準則》[1]和 《可信計算機網絡系統(tǒng)說明》的基礎上,從自主訪問控制、強制訪問控制、標記、身份鑒別、客體重用、審計、數(shù)據(jù)完整性、隱蔽信道分析、可信路徑和可信恢復10個方面將計算機信息系統(tǒng)安全等級劃分為了5個安全等級。計算機信息系統(tǒng)安全保護能力隨著安全保護等級的增高而逐漸地增強。
GA/T 388-2002《計算機信息系統(tǒng)安全等級保護操作系統(tǒng)技術要求》是計算機信息系統(tǒng)安全等級保護技術要求系列標準的重要組成部分,用于指導設計者設計和實現(xiàn)達到了所需要的安全等級的操作系統(tǒng),主要從對操作系統(tǒng)的安全保護等級進行劃分的角度來說明其技術要求,即為實現(xiàn) 《計算機信息系統(tǒng)安全保護等級劃分準則》中每一個保護等級的安全要求對操作系統(tǒng)應采取的安全技術措施,以及各項安全技術要求在不同安全級中的具體實現(xiàn)上的差異。
表1 國內外計算測評標準概況
本章介紹了安全操作系統(tǒng)的開發(fā)模型,并依據(jù)測評標準提出了一個安全操作系統(tǒng)的等級測評模型。
在設計與開發(fā)安全操作系統(tǒng)的過程中[1],首先,應開展安全需求分析,即參考安全標準中各等級的安全目標來確定目標系統(tǒng)所要達到的安全等級的安全要求;然后,以此為依據(jù)建立安全模型;隨后,設計與實現(xiàn)安全機制;最后,開展安全操作系統(tǒng)認證??偟膩碚f,可以將設計與開發(fā)安全操作系統(tǒng)的過程分為如下幾個階段。
a)安全模型的建立。
操作系統(tǒng)的安全需求是一個被良好定義的、一致的,并且可以實現(xiàn)的規(guī)則集,是從安全策略中得到的,它是從整個系統(tǒng)的需求分析中抽取的涉及安全功能的那部分。只有明確了安全需求,才能給出相應的安全策略。安全模型是對安全策略所表達的安全需求的簡單、抽象和無歧義的描述,它為安全策略及其實現(xiàn)機制之間的關聯(lián)提供了一種框架。安全模型描述了對某個安全策略需要用哪種機制來滿足,而模型的實現(xiàn)則描述了如何把特定的機制應用于系統(tǒng)中,從而實現(xiàn)某一特定的安全策略所需的安全保護。
b)安全機制的設計與實現(xiàn)。
結合系統(tǒng)的特點,選擇一種實現(xiàn)安全模型的方法,逐步地建立安全模型所要求的安全訪問機制,同時在設計了安全功能后,檢查它所提供的安全尺度。
c)安全操作系統(tǒng)認證。
反復地對安全操作系統(tǒng)進行測試并對其安全性進行分析,委托專業(yè)機構根據(jù)測評標準進行安全認證。
安全操作系統(tǒng)安全測評模型是依據(jù)安全操作系統(tǒng)的開發(fā)模型而建立的,測評模型的結構[5]如圖2所示。
圖2 安全操作系統(tǒng)測評模型
根據(jù)圖2可以看出,安全測評分為安全功能測試、安全保證測試和滲透測試3個部分。根據(jù)安全標準,分別使用相關的安全測試工具對安全操作系統(tǒng)的安全功能、安全保證和系統(tǒng)3個部分進行測試,生成相應的測試結果;在評估過程中,依據(jù)安全測評標準,結合各類評價算法,對預期結果和測試結果進行比較,得到安全等級評估的結果。
安全功能主要說明操作系統(tǒng)所實現(xiàn)的安全策略和安全機制符合評價準則中相應級別的功能要求;而安全保證則是通過一定的方法保證操作系統(tǒng)提供的安全功能能夠達到確定的功能要求,主要從系統(tǒng)的實現(xiàn)、自身安全、安全管理、配置管理、發(fā)行使用、開發(fā)和指南、生命周期支持、測試和脆弱性評估等方面對系統(tǒng)提供的安全功能進行保障。
滲透測試的必要性在于,即便是在設計時采取了足夠的安全功能和安全保證措施,仍舊不能說明系統(tǒng)就不存在安全脆弱點,因而需要依靠滲透測試檢查系統(tǒng)的安全漏洞和抗攻擊能力[6]。
安全測評工具主要包括3類:1)檢查單,主要被用來獲取與被測系統(tǒng)有關的基本信息,進行基線檢查;2)人機交互式自動化測試工具,用于對系統(tǒng)的安全功能進行測試;3)滲透與漏洞檢測工具。
基于測評模型,本文主要針對安全功能中的數(shù)據(jù)完整性功能的測試方案進行了研究,對其他的安全功能的研究將在其他論文中進行論述。
數(shù)據(jù)完整性是指數(shù)據(jù)沒有遭受以非授權方式所作的篡改或破壞。數(shù)據(jù)的完整性包括數(shù)據(jù)存儲的完整性和數(shù)據(jù)網絡傳輸?shù)耐暾?。?shù)據(jù)存儲的完整性指數(shù)據(jù)在上一次保存之后不受未授權的非法修改,數(shù)據(jù)傳輸?shù)耐暾允侵笖?shù)據(jù)在發(fā)送和接收的過程中保持完整而不被修改。
數(shù)據(jù)完整性可以從兩個層面來理解,即單個數(shù)據(jù)單元或字段的完整性,以及數(shù)據(jù)單元流或字段流的完整性;如果沒有第一類完整性服務,則第二類服務無法提供。完整性保護是通過對文件和文件系統(tǒng)進行跟蹤,以及對相應的數(shù)據(jù)庫進行維護,在系統(tǒng)的某些數(shù)據(jù)發(fā)生非期望的變化時,迅速地做出響應,從而避免入侵者后門程序的存在及未經授權的篡改。結合備份機制,在一定程度上能夠有效地保證系統(tǒng)的安全。
不論是數(shù)據(jù)傳輸?shù)耐暾詸z查還是數(shù)據(jù)存儲的完整性檢查都需要借助于Hash函數(shù)來實現(xiàn),例如:MD5函數(shù)就是Hash函數(shù)中使用的較普遍的一種。完整性檢測 (Integrity Checking)或稱為一致性檢測不僅能夠檢測非法改動,提醒用戶監(jiān)測目標發(fā)生了變化,還能夠監(jiān)測系統(tǒng)其他方面的一致性,例如:完整性檢測能夠監(jiān)測系統(tǒng)是否保持著嚴格的訪問控制,是否保持了可靠的備份,以及能否保證所得到的軟件補丁不會產生新的漏洞等。
操作系統(tǒng)為數(shù)據(jù)完整性提供了許多重要的安全實現(xiàn)機制,以保證操作系統(tǒng)數(shù)據(jù)的完整性。它通過提供自主訪問控制和強制訪問控制來防止非法用戶對數(shù)據(jù)的惡意破壞,提供了豐富的密碼技術來保證數(shù)據(jù)的安全傳輸和數(shù)據(jù)完整性的驗證,提供了數(shù)據(jù)備份和修復程序,并提供了可靠的網絡傳輸功能用于數(shù)據(jù)的安全傳輸。
GA/T 388-2002《計算機信息系統(tǒng)安全等級保護操作系統(tǒng)技術要求》中最高等級第五級訪問驗證保護級對數(shù)據(jù)完整性的功能要求包括以下幾點。
a)應對系統(tǒng)中的信息采取有效的保護措施,防止其遭受非授權用戶的修改、破壞或刪除。
b)進程應具有高完整性,確保系統(tǒng)能正確地運行,不致于混亂或崩潰,需設計相應的可信計算基來實現(xiàn)有關功能。
c)對在操作系統(tǒng)中經網絡輸出的信息的完整性進行保護,應提供監(jiān)視用戶數(shù)據(jù)完整性的功能,即當被傳輸?shù)挠脩魯?shù)據(jù)被篡改、刪除、插入或重用時,系統(tǒng)能夠及時地發(fā)現(xiàn),并進行報警。
d)對存儲在可信計算基控制范圍內的用戶數(shù)據(jù)的完整性進行保護,實現(xiàn)存儲數(shù)據(jù)的完整性監(jiān)視,并進行報警。
e)對磁盤設備中存儲的數(shù)據(jù),可通過增加磁盤掃描程序來實現(xiàn)以下功能:自動檢查文件與磁盤表面是否完好;修復區(qū)交錯和扇區(qū)流失;將磁盤表面的問題自動記錄下來;將數(shù)據(jù)移到好的扇區(qū);隨時檢查、診斷和修復磁盤上的錯誤;可在系統(tǒng)中增加計算機病毒檢測、診斷和預防程序;也可增加磁盤數(shù)據(jù)備份和修復程序,將磁盤中的數(shù)據(jù)壓縮、備份,并在必要時恢復數(shù)據(jù)。
f)對在操作系統(tǒng)中進行處理的信息的完整性進行保護,應通過對各種異常情況或事務的回退,以事務的完整性來確保數(shù)據(jù)的完整性。
從數(shù)據(jù)完整性安全功能要求中得到的安全指標和測試方法為利用shell指令集,編寫測試相應安全功能的程序,全部寫入測試文檔test,在Linux命令行環(huán)境下,將測試文檔屬性修改為可執(zhí)行屬性,利用chmod的相關命令,形成可自動測試的文檔。
每個安全要素的測試方法與思路如下所述。
a)測試操作系統(tǒng)是否通過密碼技術對系統(tǒng)中的加密存儲數(shù)據(jù)進行完整性檢驗。
測試方法——在審查國家商用密碼委員會的批文的基礎上驗證以下幾項功能:1)利用shell命令程序檢測是否有加密算法 (例如:是否具有MD5加密工具);2)所使用的加密算法是否是其聲稱的加密算法;3)加密算法是否可以剝離,即驗證算法是否有清楚的接口以供替換加密算法;4)所提供的密碼算法是否可以對存儲數(shù)據(jù)進行完整性驗證。
b)測試操作系統(tǒng)可信計算基是否通過自主完整性策略阻止非授權用戶修改或破壞敏感信息。
測試方法——檢查非授權用戶是否可以修改、破壞或刪除未授權的敏感信息,例如:利用rm shell命令對/etc/password文件進行修改和刪除,若該操作被阻止,則說明安全功能有效。
c)對于通過網絡傳輸?shù)臄?shù)據(jù)測試操作系統(tǒng)是否使用密碼技術對其完整性進行檢驗。
測試方法——利用SSH、SSL等響應的shell命令進行相應的存在檢測,驗證其完整性檢驗是否有效。
d)測試操作系統(tǒng)識別出完整性錯誤時的自動響應能力。
測試方法——對包含系統(tǒng)敏感信息的文件進行改動操作,然后進行完整性檢驗,檢驗操作系統(tǒng)是否會自動響應。
e)測試操作系統(tǒng)中是否存在磁盤掃描程序或修復程序。
測試方法——測試是否有磁盤掃描或修復程序,是否有備份、恢復程序。利用fsck和badlocks等磁盤掃描程序命令,e2fsck等磁盤修復程序命令,dump、restore和backup等備份程序命令,以及 rdump、rstore、rep、ftp和 rdist等網絡備份程序,結合它們所特有的參數(shù)對系統(tǒng)進行檢查,驗證安全功能的有效性。
f)測試操作系統(tǒng)執(zhí)行特定操作的回退功能及其條件限制功能。
測試方法——驗證對于特定的客體是否提供了回退功能,并驗證對于回退時間、次數(shù)及角色要求的限制。
基于上述內容,以國產中標麒麟操作系統(tǒng)為測試對象,設計測試用例,根據(jù)相應的測試流程,開展數(shù)據(jù)完整性功能的驗證,測試結果如下所述。
a)操作系統(tǒng)可信計算基通過自主完整性策略能夠阻止非授權用戶修改或破壞敏感信息。
b)操作系統(tǒng)提供了眾多的密碼算法用于對加密存儲數(shù)據(jù)的完整性進行檢驗,例如:MD4算法、MD5算法和SHA1算法等,并且所使用的加密算法是其聲稱的加密算法,加密算法有清楚的接口以供替換加密算法,所提供的密碼算法可以對存儲數(shù)據(jù)進行完整性驗證。
c)通過測試和對相應的配置進行檢查可以得到通過郵件和瀏覽器所傳輸?shù)男畔?,操作系統(tǒng)提供了SSL、TSL選項用于安全連接,提供了SSH用于遠程服務。
d)當檢測到完整性錯誤時,系統(tǒng)會自動地給管理員發(fā)送一封含有相關信息的郵件,而相應系統(tǒng)操作成功的變量將會被記錄到相關結果的文件中,最終得到相應的測試結果。
e)系統(tǒng)提供了fsck和badlocks等磁盤掃描程序命令,e2fsck等磁盤修復程序命令,dump、restore和backup等備份程序命令,rdump、rstore、rep、ftp和rdist等網絡備份程序,且掃描、修復以及備份都是有效的。
f)操作系統(tǒng)安全功能對特定的客體提供了回退功能。
從上面的測試結果可以得到,國產中標麒麟操作系統(tǒng)達到了標準GA/T 388-2002中第三級數(shù)據(jù)完整性的功能要求。
本文通過總結和闡述安全操作系統(tǒng)的原理、常見的安全測評方法、安全測評標準及開發(fā)模型,提出了安全操作系統(tǒng)等級測評模型,并依據(jù)測評標準中對數(shù)據(jù)完整性的功能要求,給出了可測試的安全指標以及它們的測試方法,利用shell命令對系統(tǒng)數(shù)據(jù)的完整性安全功能所涉及的安全要素進行了測試,設計并實現(xiàn)了測試工具原型,對國產中標麒麟操作系統(tǒng)進行了測試并對測試結果進行了分析,結果表明,中標麒麟操作系統(tǒng)的數(shù)據(jù)完整性安全功能達到了GA/T 388-2002標準中第三級數(shù)據(jù)完整性的功能要求。限于能力和精力,本文對不少問題未能充分地研究。同時針對安全操作系統(tǒng)等級測評領域,本文作者所在的項目組正在全力攻關訪問控制、可信路徑和隱通道分析,以及安全模型形式化驗證等關鍵問題,項目組將開展進一步的深入研究工作。
[1]袁春陽,梁洪亮.高可信安全操作系統(tǒng)的開發(fā)及核心技術 [J].信息安全,2005(3):47-49.
[2]US DoD 5200.28-STD-1985,Trusted Computer System Evaluation Criteria (TCSEC) [S].
[3]ISBN 92-826-3004-8-1991,Information Technology Security Evaluation Criteria (ITSEC), Version 1.2[S].
[4]CCIMB-99-031-1999,Common Criteria for Information Technology Security Evaluation,Version 2.1[S].
[5]陸幼驪.安全操作系統(tǒng)測評工具箱的設計與實現(xiàn) [D].鄭州:解放軍信息工程大學,2005.
[6]熊婧,黃曉昆.安全操作系統(tǒng)滲透性測試方案研究 [J].電子產品可靠性與環(huán)境試驗,2013,31(S1):141-146.