戚建淮,宋 晶,汪 暘,劉建輝,鄭偉范
強(qiáng)制訪問控制(Mandatory Access Control,MAC)是保障系統(tǒng)安全的一項(xiàng)關(guān)鍵技術(shù)。所謂強(qiáng)制訪問控制,是指由系統(tǒng)根據(jù)用戶主體和資源客體所包含的敏感標(biāo)記,按照確定的規(guī)則,決定主體對客體訪問權(quán)限的方法。有訪問權(quán)限的主體能按授權(quán)方式對指定客體實(shí)施訪問。其中,敏感標(biāo)記由系統(tǒng)安全員或系統(tǒng)自動(dòng)按照確定的規(guī)則進(jìn)行設(shè)置和維護(hù),是表示資源客體安全級(jí)別并描述客體數(shù)據(jù)敏感性的一組信息[1]。
傳統(tǒng)的強(qiáng)制訪問控制模型有Bell-LaPudula模型[2]、Biba模型[3]等,其針對保密性或完整性要求,對主體和客體做了不同的讀寫規(guī)定。此后,信息安全領(lǐng)域的研究人員針對傳統(tǒng)模型做了不同程度的改造。為了進(jìn)一步提高訪問控制的靈活性,某些研究者允許超級(jí)管理員對主、客體的安全級(jí)做臨時(shí)修改,并在不同數(shù)據(jù)庫中應(yīng)用了這一類改造后的強(qiáng)制訪問控制策略[4-6]。
然而,當(dāng)前關(guān)于強(qiáng)制訪問控制在數(shù)據(jù)庫安全上的應(yīng)用研究,往往只局限于數(shù)據(jù)庫層面進(jìn)行安全設(shè)置。這樣會(huì)將數(shù)據(jù)庫提前暴露在危險(xiǎn)環(huán)境中,使數(shù)據(jù)資源遭受嚴(yán)重威脅。因此,為保障數(shù)據(jù)庫安全,不能僅僅只在數(shù)據(jù)庫服務(wù)器上做安全配置。應(yīng)當(dāng)構(gòu)建基于強(qiáng)制訪問控制的數(shù)據(jù)庫安全體系,在用戶訪問數(shù)據(jù)庫前鎖定可疑請求,然后再對正常請求進(jìn)行數(shù)據(jù)庫資源與用戶等級(jí)比對,以確定是否允許系統(tǒng)對當(dāng)前用戶的請求數(shù)據(jù)做出響應(yīng),以完成用戶操作的執(zhí)行。
本文主要提出基于染色標(biāo)記的數(shù)據(jù)庫安全強(qiáng)制訪問控制體系。該體系主要包括請求過濾、資源染色、數(shù)據(jù)庫系統(tǒng)改造、請求響應(yīng)管控以及身份標(biāo)記與虛擬通道加密等幾個(gè)步驟。
請求訪問數(shù)據(jù)庫的用戶需要通過基于PKI和虛擬化技術(shù)的認(rèn)證虛擬化系統(tǒng)完成角色認(rèn)證,然后才可以向數(shù)據(jù)庫發(fā)送請求。請求數(shù)據(jù)經(jīng)過基于云計(jì)算的防火墻系統(tǒng)過濾后,才到達(dá)數(shù)據(jù)庫服務(wù)器前的主機(jī)管控系統(tǒng)。所謂角色,即用戶的安全等級(jí)和身份范疇。完整的訪問體系如圖1所示,其中審計(jì)取證系統(tǒng)記錄了系統(tǒng)中的關(guān)鍵訪問信息,能夠?yàn)橄到y(tǒng)訪問行為提供審計(jì)取證。
圖1 強(qiáng)制訪問控制數(shù)據(jù)庫安全訪問體系
主機(jī)管控系統(tǒng)控制主機(jī)代理對數(shù)據(jù)庫服務(wù)器等資源實(shí)體予以用戶權(quán)限的等級(jí)化染色,并以IP、端口、MAC地址及用戶權(quán)限等信息為標(biāo)記,在管控主系統(tǒng)中開辟訪問通道,根據(jù)過濾后的請求行為,分發(fā)對應(yīng)等級(jí)資源實(shí)體的操作密鑰,以獲取操作權(quán)限。若響應(yīng)行為中的資源實(shí)體等級(jí)與訪問通道不匹配,則鎖死;否則,放行通過。
每一個(gè)主機(jī)管控系統(tǒng)可分為前端和后端兩部分。前端即為管理多臺(tái)數(shù)據(jù)庫服務(wù)器主機(jī)的主機(jī)管控器硬件實(shí)體上部署的主系統(tǒng),后端則為被管控?cái)?shù)據(jù)庫服務(wù)器上部署的主機(jī)代理軟件。每個(gè)管控主系統(tǒng)管控多個(gè)數(shù)據(jù)庫服務(wù)器,同時(shí)每個(gè)數(shù)據(jù)庫服務(wù)器都有一個(gè)主機(jī)代理。由于組織機(jī)構(gòu)信息系統(tǒng)較多,一臺(tái)主機(jī)管控設(shè)備無法監(jiān)控所有服務(wù)器主機(jī),分支機(jī)構(gòu)需要監(jiān)控自己的服務(wù)器主機(jī)。這種情況下,可以采用分級(jí)模式部署,如圖2所示。
圖2 強(qiáng)制訪問控制數(shù)據(jù)庫安全物理部署
所謂資源染色(或等級(jí)化染色),是指通過安全標(biāo)記以確定可操作數(shù)據(jù)資源的用戶等級(jí)。本操作中將涉及以下幾個(gè)概念。
(1)資源實(shí)體
資源實(shí)體包括受保護(hù)系統(tǒng)中的各種資源服務(wù)器。由于保護(hù)粒度細(xì)化到被訪問數(shù)據(jù)上,故本次染色策略最終會(huì)被配置在數(shù)據(jù)庫系統(tǒng)中。
(2)用戶角色
系統(tǒng)定義受保護(hù)系統(tǒng)中的用戶角色(用戶的分類狀況)和用戶關(guān)系(用戶之間是否具有某種關(guān)系以及關(guān)系結(jié)構(gòu),如層級(jí)結(jié)構(gòu)等)。
(3)用戶行為
相對于資源實(shí)體,對用戶訪問數(shù)據(jù)庫服務(wù)器的行為類型進(jìn)行定義(一般可按照行為目的區(qū)分、按照行為業(yè)務(wù)類別區(qū)分、按照行為與系統(tǒng)的交互類型區(qū)分),主要包括讀、寫和刪除等。
(4)資源等級(jí)與角色等級(jí)
定義每項(xiàng)資源的資源等級(jí),以及各等級(jí)資源可被某用戶角色執(zhí)行某項(xiàng)操作的向量列表。
確定染色策略后,管控主系統(tǒng)將會(huì)建立用戶角色與其能夠訪問的資源的對應(yīng)關(guān)系,形成染色策略表,以供系統(tǒng)在必要時(shí)進(jìn)行查詢。同時(shí),主機(jī)管控系統(tǒng)將染色策略下發(fā)至數(shù)據(jù)庫服務(wù)器上的主機(jī)代理軟件,由主機(jī)代理將該染色策略接收并部署在數(shù)據(jù)庫系統(tǒng)上。
以上部分展示了系統(tǒng)染色工作的基本過程。通過染色策略的配置,系統(tǒng)將以完成系統(tǒng)主、客體的敏感標(biāo)記,按照確定的染色策略規(guī)則,決定主體對客體訪問權(quán)限的方法。有訪問權(quán)限的主體能按授權(quán)方式對指定客體實(shí)施訪問。同時(shí),染色策略由系統(tǒng)安全員或系統(tǒng)自動(dòng)按照確定的規(guī)則進(jìn)行設(shè)置和維護(hù)。以上產(chǎn)品安全管控行為符合相關(guān)安全等級(jí)保護(hù)標(biāo)準(zhǔn)和設(shè)計(jì)要求,是實(shí)現(xiàn)強(qiáng)制訪問控制的必要基礎(chǔ)。
部署在數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)庫系統(tǒng)需要針對染色策略表進(jìn)行改造,以便對系統(tǒng)檢查強(qiáng)制訪問控制規(guī)則。
系統(tǒng)在數(shù)據(jù)庫的數(shù)據(jù)字典中添加安全等級(jí)表和范疇表,其中安全等級(jí)表對用戶和數(shù)據(jù)資源的安全等級(jí)做出描述,范疇表則定義了全部用戶的部門、分類的范疇信息。
根據(jù)上文描述,數(shù)據(jù)庫還添加了染色策略對照表。該表由管控主系統(tǒng)配置,并由數(shù)據(jù)庫服務(wù)器上主機(jī)代理接收,并根據(jù)安全等級(jí)表和范疇表定義的等級(jí)和范疇進(jìn)行同步。該表詳細(xì)描述了資源可以被執(zhí)行讀/寫等操作的用戶等級(jí)和范疇。安全等級(jí)表、范疇表以及根據(jù)染色策略配置生成的染色策略表,對所有用戶可讀,但只允許強(qiáng)認(rèn)證用戶(一般是系統(tǒng)管理員)執(zhí)行寫操作[6]。
每一個(gè)通過認(rèn)證系統(tǒng)與防火云系統(tǒng)的用戶,都在管控主系統(tǒng)中留下了其IP、MAC地址和端口等信息的記錄。系統(tǒng)在此基礎(chǔ)上加入用戶的角色、權(quán)限信息,通過非加密算法生成一個(gè)數(shù)據(jù),成為當(dāng)前用戶唯一的身份標(biāo)記。系統(tǒng)基于SDN(Software Define Network,軟件定義網(wǎng)絡(luò))與虛擬化技術(shù)為用戶自動(dòng)開辟一條虛擬訪問通道。每條虛擬訪問通道有唯一的標(biāo)識(shí)碼,并與用戶的安全標(biāo)記實(shí)施綁定。在當(dāng)前用戶的本次訪問中,用戶只能通過該一一對應(yīng)的虛擬通道來操作其擁有操作權(quán)限的各項(xiàng)資源實(shí)體。
如果用戶出現(xiàn)了誤操作、惡意操作或是系統(tǒng)發(fā)生了故障,導(dǎo)致用戶偏離了初始綁定的虛擬通道,則檢測異常報(bào)警模塊會(huì)自動(dòng)產(chǎn)生報(bào)警警示。根據(jù)報(bào)警結(jié)果,管控系統(tǒng)能夠自動(dòng)將用戶重新引導(dǎo)至初始通道,以避免用戶發(fā)起資源的誤操作。
系統(tǒng)在針對用戶請求行為做出響應(yīng)前,會(huì)將當(dāng)前通道與初始通道的標(biāo)識(shí)碼進(jìn)行比對。因此,如果存在用戶惡意更改虛擬通道,企圖通過其他用戶的虛擬通道欺騙主機(jī)系統(tǒng)響應(yīng)請求的情況,管控主系統(tǒng)能夠自動(dòng)修正通道,避免用戶獲得其權(quán)限以外的響應(yīng)數(shù)據(jù)而造成對資源保密性的破壞。
由于用戶角色的身份標(biāo)記與訪問路徑強(qiáng)制綁定,因此在上述引導(dǎo)行為發(fā)生后,無論引導(dǎo)前用戶的虛擬通道變更行為是無意還是惡意,都能夠保證用戶只能對擁有權(quán)限的數(shù)據(jù)資源進(jìn)行操作。
用戶的身份標(biāo)記和虛擬通道是非加密的。為了防止該標(biāo)記被其他用戶非法獲取、仿冒、篡改,應(yīng)當(dāng)對其加密傳輸。該加密模塊應(yīng)當(dāng)在管控主系統(tǒng)與主機(jī)代理上同時(shí)部署,并運(yùn)行不同的功能。系統(tǒng)通過密鑰對身份標(biāo)記和虛擬訪問通道同時(shí)加密,將密文與請求數(shù)據(jù)進(jìn)行綁定后,將數(shù)據(jù)傳送至主機(jī)代理軟件所在的被管控?cái)?shù)據(jù)庫服務(wù)器上。然后,主機(jī)代理通過密鑰對身份標(biāo)記和虛擬訪問通道密文進(jìn)行解密,并將解密結(jié)果傳送至數(shù)據(jù)庫系統(tǒng)的染色策略表,從而實(shí)現(xiàn)用戶角色與請求操作的等級(jí)匹配,判斷是否允許用戶完成請求操作,并向用戶發(fā)送響應(yīng)數(shù)據(jù)。
該模塊基于PKI[7]的密鑰管理機(jī)制進(jìn)行設(shè)計(jì),具體工作原理如下:
(1)在數(shù)據(jù)庫服務(wù)器上,由加密系統(tǒng)產(chǎn)生公鑰私鑰對,并在后端保存私鑰,同時(shí)將公鑰發(fā)送至CA中心;
(2)CA中心對公鑰進(jìn)行加密認(rèn)證,并發(fā)送至管控主系統(tǒng);
(3)管控主系統(tǒng)完成對公鑰證書的驗(yàn)證,確定公鑰由被管控?cái)?shù)據(jù)庫服務(wù)器上的主機(jī)代理發(fā)送,然后保存該公鑰;
(4)管控主系統(tǒng)利用對稱加密算法產(chǎn)生隨機(jī)key,并用隨機(jī)key對用戶的安全標(biāo)記和虛擬訪問通道進(jìn)行加密。然后,使用公鑰對隨機(jī)key進(jìn)行加密,將加密后的隨機(jī)key、安全標(biāo)記和虛擬訪問通道的密文以及用戶的操作請求數(shù)據(jù)綁定后傳送至數(shù)據(jù)庫服務(wù)器;
(5)服務(wù)器上的主機(jī)代理接收到綁定數(shù)據(jù)后,先利用保存的私鑰對隨機(jī)key進(jìn)行解密,然后再利用隨機(jī)key對密文進(jìn)行解密,得到用戶的安全標(biāo)記和虛擬訪問通道信息;
(6)在完成解密工作后,通過染色策略匹配,判斷是否允許用戶執(zhí)行相應(yīng)操作。之后,主機(jī)代理利用隨機(jī)key加密響應(yīng)數(shù)據(jù),再發(fā)送至管控主系統(tǒng)。最后,管控主系統(tǒng)利用保存的隨機(jī)key解密響應(yīng)數(shù)據(jù),完成整個(gè)響應(yīng)過程。
隨著云計(jì)算的應(yīng)用普及,大規(guī)模用戶操作的數(shù)據(jù)庫等資源面臨強(qiáng)制訪問控制的安全需求。本文采用數(shù)據(jù)庫資源的染色標(biāo)記方法,提出了一種強(qiáng)制訪問技術(shù)在數(shù)據(jù)庫操作上的安全訪問應(yīng)用。該應(yīng)用主要構(gòu)建了從用戶請求到系統(tǒng)響應(yīng)的完整強(qiáng)制訪問控制操作鏈,實(shí)現(xiàn)了用戶身份的強(qiáng)認(rèn)證和用戶數(shù)據(jù)庫操作的強(qiáng)制訪問控制。