您所在的位置: 首頁 >
新聞資訊 >
技術(shù)前沿 >
等保2.0下,強(qiáng)制訪問控制技術(shù)大起底
等保2.0關(guān)于強(qiáng)制訪問控制的規(guī)定
1.1. 強(qiáng)制訪問控制要求
等保2.0標(biāo)準(zhǔn)在2018年四季度提交國家標(biāo)準(zhǔn)化管理委員會報批,并已在2019年5月正式出臺。等保標(biāo)準(zhǔn)中對計算環(huán)境的訪問控制做了詳細(xì)要求,下面表格中列出了等保2.0對訪問控制的要求,黑色字體表示是針對上一安全級別增強(qiáng)的要求。
在等級保護(hù)體系中,級別越高,對安全性要求越高。
在三級等保系統(tǒng)中,要求對重要的主體、客體采用強(qiáng)制訪問控制機(jī)制。
在四級等保系統(tǒng)中,要求對所有的主體、客體采用強(qiáng)制訪問控制機(jī)制。
等保2.0在原來基礎(chǔ)上,擴(kuò)展了對工控系統(tǒng)、大數(shù)據(jù)、云計算等領(lǐng)域的安全要求。工控系統(tǒng)中很多是涉及國計民生的關(guān)鍵基礎(chǔ)設(shè)施(比如:發(fā)電控制系統(tǒng)、、軌道交通控制系統(tǒng)、自來水控制系統(tǒng)、石油石化生產(chǎn)控制系統(tǒng)等),定級一般比較高,必須采用強(qiáng)制訪問控制機(jī)制來保證系統(tǒng)的安全性。
1.2. 強(qiáng)制訪問控制系統(tǒng)結(jié)構(gòu)
在等保2.0的設(shè)計技術(shù)要求中,強(qiáng)制訪問控制機(jī)制的系統(tǒng)結(jié)構(gòu)如下圖所示:
強(qiáng)制訪問控制系統(tǒng)的工作流程說明:
初始化:管理員根據(jù)需求確定強(qiáng)制訪問控制策略,對主體、客體進(jìn)行安全標(biāo)記。
啟動:系統(tǒng)啟動時,加載主體、客體安全標(biāo)記以及訪問控制規(guī)則表,并對其進(jìn)行初始化。
訪問控制:當(dāng)執(zhí)行程序主體發(fā)出訪問客體的請求后,系統(tǒng)安全機(jī)制截獲該請求,并從中取出訪問控制相關(guān)的主體、客體、操作三要素信息,然后查詢主體、客體安全標(biāo)記,得到安全標(biāo)記信息,并依據(jù)強(qiáng)制訪問控制策略對該請求實施策略符合性檢查。如果該請求符合系統(tǒng)強(qiáng)制訪問控制策略,則系統(tǒng)將允許該主體執(zhí)行資源訪問。否則,該請求將被系統(tǒng)拒絕執(zhí)行。
級別調(diào)整:管理員可以根據(jù)需要進(jìn)行級別調(diào)整,級別調(diào)整后,相關(guān)信息及時更新到訪問控制內(nèi)核。
審計:所有安全配置的修改調(diào)整及主體對客體的訪問信息都支持進(jìn)行日志審計。
強(qiáng)制訪問控制的歷史
訪問控制是一種很古老又很有效的計算機(jī)安全解決方案,也是最直觀最自然的一種方案,直到目前還是絕大多數(shù)系統(tǒng)的基礎(chǔ)必配策略。信息安全問題一般歸結(jié)為三大類:信息保密性(Confidentiality)、信息完整性(Integrity)和信息可用性(Availability),簡稱CIA。訪問控制主要是針對信息保密性和信息完整性問題的解決方案。
上世紀(jì)60年代末,Lampson開始對訪問控制進(jìn)行正式定義并進(jìn)行形式化描述工作。他提出了主體和客體這兩個基本概念,并提出需要有一個訪問矩陣來描述主體與客體之間的訪問關(guān)系。
1973年,Bell和LaPadula將軍事領(lǐng)域的訪問控制形式化為一套數(shù)學(xué)模型,即BLP模型,這個模型是一個類似于政府文件分級管理策略的多極安全訪問模型,側(cè)重于系統(tǒng)的保密性。
1977年,Biba對系統(tǒng)的完整性進(jìn)行了研究,提出了一種與BLP模型在數(shù)學(xué)上對偶的完整性保護(hù)模型,即BIBA模型。
同期,Boebert和Kain提出了DTE模型(Domain,Type,Entity),把主體分到不同的域(Domain),客體設(shè)定不同的類型(Type),主體和客體都被稱為實體(Entity),根據(jù)域和類型綜合判斷進(jìn)行訪問控制。
1983年,是訪問控制模型標(biāo)準(zhǔn)化最有紀(jì)念意義的一年。這一年美國國防部提出了《計算機(jī)系統(tǒng)可信賴性評估標(biāo)準(zhǔn)》,即TCSEC,也稱為橘皮書。該標(biāo)準(zhǔn)中詳細(xì)的定義了兩種軍事系統(tǒng)的訪問控制模式:自主訪問控制DAC(Discretionary Access Control)和強(qiáng)制訪問控制MAC(Mandatory Access Control)。
DAC即自主訪問控制,對象(一般指文件等)的屬主全權(quán)管理該對象的訪問控制策略,有權(quán)讀取、修改、轉(zhuǎn)移對象信息,并且可以把這種權(quán)限轉(zhuǎn)移給其他主體。通常DAC使用ACL(訪問控制列表)來控制主體對客體的訪問權(quán)限。DAC的優(yōu)點:非常簡單,在一定程度上實現(xiàn)了多用戶的權(quán)限隔離和資源保護(hù)。DAC的缺點:資源管理過于分散,給控制這個系統(tǒng)的安全造成很大不便;無法防范木馬攻擊,如果某個管理員登錄后帶進(jìn)來一個木馬程序,該木馬程序?qū)碛性摴芾韱T的全部權(quán)限。
MAC即強(qiáng)制訪問控制,它可以彌補(bǔ)DAC在防范木馬型攻擊方面不足。在MAC系統(tǒng)中強(qiáng)制執(zhí)行訪問控制策略,每一個主體(包括用戶和程序)和客體都擁有固定的安全標(biāo)記,主體能否對客體進(jìn)行相關(guān)操作,取決于主體和客體所擁有安全標(biāo)記的關(guān)系(如:安全標(biāo)記同為“機(jī)密”則可以執(zhí)行操作)。MAC的優(yōu)點:可以防范木馬攻擊,木馬程序無法繼承該用戶的安全級別,必須按強(qiáng)制訪問控制策略進(jìn)行相關(guān)訪問。MAC的缺點:適用于等級觀念明顯的行業(yè)(如軍隊等一些機(jī)要部門)或安全性要求極高的系統(tǒng),適用范圍比較小;不夠靈活,易用性比較差。
BLP、BIBA和DTE都屬于MAC模型。
在上世紀(jì)80年代到90年代初這段時期,計算機(jī)越來越普及,在企業(yè)中很多權(quán)限是和職位或角色直接綁定的。于是,一些研究人員開始將角色(Role)作為一個管理對象抽象出來,這時角色被認(rèn)為是組織中的一個職位或位置。角色和用戶開始分離,通過給用戶指定角色來獲得相應(yīng)的權(quán)限。
1992年,David Ferraiolo和Rick Kuhn合作提出了RBAC(Role-Based Access Control)模型,參見注【1】。在RBAC中,在用戶和訪問權(quán)限之間引入角色的概念,用戶與特定的一個或多個角色相關(guān)聯(lián),角色與一個或多個訪問許可權(quán)相關(guān)聯(lián),角色可以根據(jù)工作需要創(chuàng)建或刪除。
RBAC在2004年2月被美國國家標(biāo)準(zhǔn)委員會(ANSI)和IT國際標(biāo)準(zhǔn)委員會(INCITS)接納為ANSI INCITS 359-2004標(biāo)準(zhǔn)。RBAC在管理大型網(wǎng)絡(luò)應(yīng)用時表現(xiàn)出很強(qiáng)的靈活性和經(jīng)濟(jì)性,迅速成為當(dāng)前最具影響的高級訪問控制模型。
現(xiàn)在隨著分布式計算等新興技術(shù)的快速發(fā)展,企業(yè)應(yīng)用大集成、應(yīng)用邊界逐漸消失,傳統(tǒng)的面向封閉環(huán)境的RBAC模型面臨著新的難題。比如:在業(yè)務(wù)數(shù)據(jù)集成的場景,角色呈爆炸式增長,導(dǎo)致訪問控制的配置復(fù)雜度也呈指數(shù)式提升,RBAC要隨需求的變化不斷進(jìn)行策略的變更維護(hù),工作量巨大且很難保證及時性,也無法保證數(shù)據(jù)被安全訪問。一種新型的基于屬性的訪問控制技術(shù)ABAC(Attribute-Based Access Control)隨之誕生,這也是目前關(guān)于訪問控制方面的最新研究方向。
可以看出,訪問控制技術(shù)始終在隨著計算機(jī)技術(shù)一起發(fā)展。早期的計算機(jī)非常昂貴,主要應(yīng)用于軍事、金融等特殊應(yīng)用場景,當(dāng)時訪問控制技術(shù)也比較嚴(yán)格,以MAC模型為主。隨著計算機(jī)在企業(yè)的廣泛應(yīng)用,針對企業(yè)內(nèi)按角色分配權(quán)限的場景,RBAC模型成為主流。現(xiàn)在,分布式計算、云服務(wù)、互聯(lián)網(wǎng)、物聯(lián)網(wǎng)逐漸得到廣泛應(yīng)用,對訪問控制的靈活性要求越來越高,ABAC模型成為大家研究的焦點。
強(qiáng)制訪問控制模型和標(biāo)記技術(shù)
3.1. 基本概念
強(qiáng)制訪問控制機(jī)制的核心是為主體、客體做標(biāo)記,根據(jù)標(biāo)記的安全級別,參照策略模型決定訪問控制權(quán)限,保證數(shù)據(jù)的單向流動。
客體(Objects),是一種既包含有信息,又可以被訪問的實體(文件、目錄、記錄、程序、網(wǎng)絡(luò)節(jié)點等)。
主體(Subjects),是一種可以操作客體,使信息在客體之間流動的實體(進(jìn)程或用戶)。通常,主體同時也是一個客體。因為當(dāng)一個程序存放在內(nèi)存或硬盤上時,那么它就與其它數(shù)據(jù)一樣被當(dāng)作客體,可供其它主體訪問,但當(dāng)這個程序運行起來去訪問別的客體,它就成為了主體。
安全標(biāo)記,可能是安全級別或者其他用于策略判斷的標(biāo)記,典型的安全級別從低到高包括:公開(Unclassified)、秘密(Confidential)、機(jī)密(Secret)、高密(Top Secret)。
3.2. BLP模型
強(qiáng)制訪問控制模型中最經(jīng)典的是Bell和LaPadula提出的BLP模型,主要用于保證數(shù)據(jù)的機(jī)密性。該模型的核心規(guī)則是“不上讀、不下寫”,即低級別不能讀取高級別的數(shù)據(jù),高級別不能修改低級別的數(shù)據(jù),保證數(shù)據(jù)只能從低級別往高級別流動。該模型的示意圖如下:
BLP模型的來源是軍事安全策略,也受到美國國防部的特別推崇,是一種多級安全策略模型。
BLP模型的優(yōu)缺點分析:
3.3. Biba模型
和BLP完全對應(yīng)的另外一個經(jīng)典模型是Biba模型,主要用于保證數(shù)據(jù)的完整性,該模型的核心規(guī)則是“不下讀、不上寫”,即低級別不能修改高級別的數(shù)據(jù),高級別不能讀取低級別的數(shù)據(jù),保證數(shù)據(jù)只能從高級別往低級別流動。
Biba模型的優(yōu)缺點分析:
3.4. DTE模型
DTE是另外一種強(qiáng)制訪問控制的模型,基于訪問控制矩陣,通過增加域(Domain)和類型(Type)的概念,達(dá)到分域分類型控制的目的。
在DTE模型里,所有的控制集合為,D代表域,T代表類型,P代表訪問授權(quán),L代表安全級別。DTE的保密性模型判斷條件類似下面表格:
在DTE模型的訪問矩陣?yán)铮恳粋€域是一行,每一個類型是一列,所有的主體都屬于一個域,所有的客體都關(guān)聯(lián)一種類型。當(dāng)然,前面講過,主體也是客體,所有也關(guān)聯(lián)一種類型。通過規(guī)則模型判斷后生成的訪問控制矩陣類似下圖:
可以看出,DTE模型是一種更靈活的并且兼容了BLP和BIBA的MAC模型。
DTE模型的優(yōu)缺點分析:
3.5. 安全標(biāo)記技術(shù)
確定了訪問控制模型后,還有一個重要的技術(shù)點就是設(shè)立安全標(biāo)記。安全標(biāo)記需要針對每個主體和客體分別設(shè)定,并且需要隨主體、客體在系統(tǒng)內(nèi)的遷移而遷移,不能因為主體、客體的位置轉(zhuǎn)移而丟失或破壞安全標(biāo)記。在DTE模型里,主要是設(shè)定域和類型。比如一個發(fā)送郵件的程序作為主體所具有的安全級別,不會因為該程序被拷貝到另外一個目錄就發(fā)生改變。
目前對主體、客體進(jìn)行安全標(biāo)記的方法可以歸為2種,基于數(shù)據(jù)本身做標(biāo)記和基于數(shù)據(jù)的唯一性標(biāo)識做標(biāo)記,對比說明如下:
具體來講可以參考下面的幾個具體做法:
1. 對用戶基于用戶名進(jìn)行標(biāo)記,因為用戶名在系統(tǒng)里面都是唯一標(biāo)識并不允許改動的。
2. 對文件基于文件全路徑(有時需要附加Hash值)進(jìn)行安全標(biāo)記。文件的全路徑(有時需要附加Hash值)是文件的唯一標(biāo)識,類似家里的門牌號。該方案的難點在于跟蹤文件的拷貝、修改、重命名等操作,確保數(shù)據(jù)全程安全標(biāo)記的一致性。類似家里搬家或者有人員的增加減少都需要及時跟蹤調(diào)整相關(guān)安全標(biāo)記。
3. 對文件基于文件本身進(jìn)行安全標(biāo)記,安全標(biāo)記記錄在文件的屬性內(nèi)。這個方案可以很容易的保證安全標(biāo)記在各種情況下的全程一致性。該方案的難點在于需要研究各種操作系統(tǒng)的文件數(shù)據(jù)結(jié)構(gòu)(包括硬盤存儲數(shù)據(jù)結(jié)構(gòu)和內(nèi)存映像數(shù)據(jù)結(jié)構(gòu)),和操作系統(tǒng)的耦合比較緊。
4. 另外,還有一些像數(shù)據(jù)庫表之類的應(yīng)用數(shù)據(jù),適合采用獨立安全標(biāo)記的方法。主要原因是我們很難研究搞懂各種應(yīng)用數(shù)據(jù)的結(jié)構(gòu),其他應(yīng)用的數(shù)據(jù)結(jié)構(gòu)不一定有合適的擴(kuò)展方案供我們做標(biāo)記。
當(dāng)前主流產(chǎn)品的相關(guān)實現(xiàn)
強(qiáng)制訪問控制模式自提出以來,在目前的主流產(chǎn)品上都有相關(guān)實現(xiàn),主要包括:Linux系統(tǒng)上的SELinux、Windows系統(tǒng)上的MIC(Mandatory Integrity Control)、FreeBSD系統(tǒng)的TrustedBSD、Oracle為Solaris系統(tǒng)提供的Trusted Extensions等。
4.1. SELinux on Linux
SELinux主要由美國國家安全局NSA開發(fā),是一個內(nèi)核模塊,現(xiàn)在已經(jīng)被集成在版本號為2.6以后的Linux內(nèi)核版本中,可以控制打開或關(guān)閉。SELinux有三種工作模式:強(qiáng)制模式(違反規(guī)則被阻止并記錄日志)、容忍模式(違反規(guī)則不阻止只記錄日志)、關(guān)閉模式(不生效)。
SELinux主要擴(kuò)展了類型Type標(biāo)簽,實現(xiàn)強(qiáng)制訪問控制策略。SELinux提供了各種常見的MAC模型,比如BLP、Biba都有現(xiàn)成的模板可以使用。
SELinux在Linux內(nèi)核以安全模塊LSM(Linux Security Modules)的形式集成進(jìn)來,系統(tǒng)的架構(gòu)如下圖:
SELinux默認(rèn)是關(guān)閉的,要打開該功能需要修配置文件并重啟,配置文件修改見下圖:
SELinux的開源項目社區(qū)為:https://github.com/SELinuxProject
4.2. MIC on Windows
從Windows Vista和Windows 2008開始,微軟在Windows內(nèi)建了強(qiáng)制完整性保護(hù)機(jī)制,即MIC(Mandatory Integrity Control)。MIC采用類似Biba的模型實現(xiàn),保護(hù)Windows內(nèi)核模塊的安全。
Windows系統(tǒng)對外主要使用自主訪問控制模型DAC,MIC運行在DAC的下層,即優(yōu)先根據(jù)MIC策略進(jìn)行控制,再根據(jù)DAC策略進(jìn)行控制。
MIC模型中共分為4個安全級別:低、中、高、系統(tǒng)級。Windows系統(tǒng)服務(wù)運行在系統(tǒng)級,管理員運行的進(jìn)程運行在高安全級別,其他進(jìn)程運行在中安全級別。當(dāng)一個進(jìn)程試圖訪問另一個文件時,其安全級別必須高于被訪問對象。
MIC在Windows里沒有對外的圖形化操作界面,僅提供了命令行來設(shè)置文件的安全級別。命令行參考下圖:
4.3. TrustedBSD on FreeBSD
TrustedBSD 也是以內(nèi)核擴(kuò)展的形式集成在FreeBSD 系統(tǒng)中,為強(qiáng)制訪問控制策略提供支持。從FreeBSD 5.0 RC2版本開始,F(xiàn)reeBSD就開始內(nèi)部集成TrustedBSD,但是缺省情況下,內(nèi)核二進(jìn)制代碼中并沒有包括對MAC框架的支持。
MAC 框架是一個插入式的訪問控制框架,允許新的安全策略更方便地融入內(nèi)核。安全策略可以編譯時靜態(tài)鏈接到內(nèi)核中,也可以在引導(dǎo)時加載,甚至在運行時動態(tài)加載。該框架所提供的標(biāo)準(zhǔn)化接口,使得運行在其上的安全策略模塊能對系統(tǒng)對象進(jìn)行安全標(biāo)記,從而實現(xiàn)各種強(qiáng)制訪問控制的安全模型。
安全策略作為一個獨立的動態(tài)內(nèi)核鏈接(KLD)模塊,可以獨立于內(nèi)核進(jìn)行編譯,再在使用的時候掛接到MAC框架上。在主體訪問客體時,MAC框架會調(diào)用所有的安全策略,只有當(dāng)所有的安全策略均表示同意,MAC框架才會授權(quán)這次訪問,TrustedBSD的系統(tǒng)結(jié)構(gòu)如下圖:
關(guān)于TrustedBSD的詳細(xì)內(nèi)容請參考注 【2】官方網(wǎng)站相關(guān)文檔
4.4. Trusted Extensions on Solaris
Oracle提供可信擴(kuò)展Trusted Extensions 加入 Solaris 系統(tǒng),保護(hù)系統(tǒng)的安全性。Trusted Extensions可以提供自主訪問控制和強(qiáng)制強(qiáng)制訪問控制兩種控制模型。
Trusted Extensions提供的強(qiáng)制訪問控制模型在經(jīng)典的DTE模型基礎(chǔ)上進(jìn)行了改進(jìn):
1. 增加了區(qū)域(Zone)的概念,保證數(shù)據(jù)的隔離,不同區(qū)域之間不能通信。
2. 支持同級別的多個安全標(biāo)簽。比如設(shè)定絕密級別的安全標(biāo)記可以包括:絕密、絕密A、絕密B、絕密AB,如下圖:
則不同標(biāo)簽之間的比較關(guān)系為:絕密 AB支配自身并且嚴(yán)格支配其他標(biāo)簽,絕密A支配自身并且嚴(yán)格支配絕密,絕密 B支配自身并且嚴(yán)格支配絕密,絕密 A和絕密B不相交無法比較。
綜合來看,Trusted Extensions的強(qiáng)制訪問控制模型有點像DTE模型但又不是DTE模型,應(yīng)該是Oracle結(jié)合自身業(yè)務(wù)設(shè)計出來的模型。
基于LSM框架的SELinux作為Linux的一個安全模塊,可以禁用,或?qū)⑵湓O(shè)置為容忍或強(qiáng)制執(zhí)行模式。而Trusted Extensions是Solaris的一個配置,無法禁用,權(quán)限策略可擴(kuò)展,但始終強(qiáng)制執(zhí)行。這兩個框架都利用內(nèi)核解釋的進(jìn)程權(quán)限管理(特權(quán))來進(jìn)行訪問控制。
Trusted Extensions為Solaris添加了區(qū)域的安全標(biāo)簽,而SELinux則擴(kuò)展了類型的安全標(biāo)簽。Trusted Extensions的區(qū)域概念可以提供完全虛擬化的環(huán)境,標(biāo)記區(qū)域中的應(yīng)用程序無需修改即可運行,同時提供了一套圖形化界面來配置安全策略和標(biāo)記,易用性更好一些。