戚建淮,宋 晶,汪 暘,劉建輝,鄭偉范
強制訪問控制(Mandatory Access Control,MAC)是保障系統安全的一項關鍵技術。所謂強制訪問控制,是指由系統根據用戶主體和資源客體所包含的敏感標記,按照確定的規則,決定主體對客體訪問權限的方法。有訪問權限的主體能按授權方式對指定客體實施訪問。其中,敏感標記由系統安全員或系統自動按照確定的規則進行設置和維護,是表示資源客體安全級別并描述客體數據敏感性的一組信息[1]。
傳統的強制訪問控制模型有Bell-LaPudula模型[2]、Biba模型[3]等,其針對保密性或完整性要求,對主體和客體做了不同的讀寫規定。此后,信息安全領域的研究人員針對傳統模型做了不同程度的改造。為了進一步提高訪問控制的靈活性,某些研究者允許超級管理員對主、客體的安全級做臨時修改,并在不同數據庫中應用了這一類改造后的強制訪問控制策略[4-6]。
然而,當前關于強制訪問控制在數據庫安全上的應用研究,往往只局限于數據庫層面進行安全設置。這樣會將數據庫提前暴露在危險環境中,使數據資源遭受嚴重威脅。因此,為保障數據庫安全,不能僅僅只在數據庫服務器上做安全配置。應當構建基于強制訪問控制的數據庫安全體系,在用戶訪問數據庫前鎖定可疑請求,然后再對正常請求進行數據庫資源與用戶等級比對,以確定是否允許系統對當前用戶的請求數據做出響應,以完成用戶操作的執行。
本文主要提出基于染色標記的數據庫安全強制訪問控制體系。該體系主要包括請求過濾、資源染色、數據庫系統改造、請求響應管控以及身份標記與虛擬通道加密等幾個步驟。
請求訪問數據庫的用戶需要通過基于PKI和虛擬化技術的認證虛擬化系統完成角色認證,然后才可以向數據庫發送請求。請求數據經過基于云計算的防火墻系統過濾后,才到達數據庫服務器前的主機管控系統。所謂角色,即用戶的安全等級和身份范疇。完整的訪問體系如圖1所示,其中審計取證系統記錄了系統中的關鍵訪問信息,能夠為系統訪問行為提供審計取證。

圖1 強制訪問控制數據庫安全訪問體系
主機管控系統控制主機代理對數據庫服務器等資源實體予以用戶權限的等級化染色,并以IP、端口、MAC地址及用戶權限等信息為標記,在管控主系統中開辟訪問通道,根據過濾后的請求行為,分發對應等級資源實體的操作密鑰,以獲取操作權限。若響應行為中的資源實體等級與訪問通道不匹配,則鎖死;否則,放行通過。
每一個主機管控系統可分為前端和后端兩部分。前端即為管理多臺數據庫服務器主機的主機管控器硬件實體上部署的主系統,后端則為被管控數據庫服務器上部署的主機代理軟件。每個管控主系統管控多個數據庫服務器,同時每個數據庫服務器都有一個主機代理。由于組織機構信息系統較多,一臺主機管控設備無法監控所有服務器主機,分支機構需要監控自己的服務器主機。這種情況下,可以采用分級模式部署,如圖2所示。

圖2 強制訪問控制數據庫安全物理部署
所謂資源染色(或等級化染色),是指通過安全標記以確定可操作數據資源的用戶等級。本操作中將涉及以下幾個概念。
(1)資源實體
資源實體包括受保護系統中的各種資源服務器。由于保護粒度細化到被訪問數據上,故本次染色策略最終會被配置在數據庫系統中。
(2)用戶角色
系統定義受保護系統中的用戶角色(用戶的分類狀況)和用戶關系(用戶之間是否具有某種關系以及關系結構,如層級結構等)。
(3)用戶行為
相對于資源實體,對用戶訪問數據庫服務器的行為類型進行定義(一般可按照行為目的區分、按照行為業務類別區分、按照行為與系統的交互類型區分),主要包括讀、寫和刪除等。
(4)資源等級與角色等級
定義每項資源的資源等級,以及各等級資源可被某用戶角色執行某項操作的向量列表。
確定染色策略后,管控主系統將會建立用戶角色與其能夠訪問的資源的對應關系,形成染色策略表,以供系統在必要時進行查詢。同時,主機管控系統將染色策略下發至數據庫服務器上的主機代理軟件,由主機代理將該染色策略接收并部署在數據庫系統上。
以上部分展示了系統染色工作的基本過程。通過染色策略的配置,系統將以完成系統主、客體的敏感標記,按照確定的染色策略規則,決定主體對客體訪問權限的方法。有訪問權限的主體能按授權方式對指定客體實施訪問。同時,染色策略由系統安全員或系統自動按照確定的規則進行設置和維護。以上產品安全管控行為符合相關安全等級保護標準和設計要求,是實現強制訪問控制的必要基礎。
部署在數據庫服務器上的數據庫系統需要針對染色策略表進行改造,以便對系統檢查強制訪問控制規則。
系統在數據庫的數據字典中添加安全等級表和范疇表,其中安全等級表對用戶和數據資源的安全等級做出描述,范疇表則定義了全部用戶的部門、分類的范疇信息。
根據上文描述,數據庫還添加了染色策略對照表。該表由管控主系統配置,并由數據庫服務器上主機代理接收,并根據安全等級表和范疇表定義的等級和范疇進行同步。該表詳細描述了資源可以被執行讀/寫等操作的用戶等級和范疇。安全等級表、范疇表以及根據染色策略配置生成的染色策略表,對所有用戶可讀,但只允許強認證用戶(一般是系統管理員)執行寫操作[6]。
每一個通過認證系統與防火云系統的用戶,都在管控主系統中留下了其IP、MAC地址和端口等信息的記錄。系統在此基礎上加入用戶的角色、權限信息,通過非加密算法生成一個數據,成為當前用戶唯一的身份標記。系統基于SDN(Software Define Network,軟件定義網絡)與虛擬化技術為用戶自動開辟一條虛擬訪問通道。每條虛擬訪問通道有唯一的標識碼,并與用戶的安全標記實施綁定。在當前用戶的本次訪問中,用戶只能通過該一一對應的虛擬通道來操作其擁有操作權限的各項資源實體。
如果用戶出現了誤操作、惡意操作或是系統發生了故障,導致用戶偏離了初始綁定的虛擬通道,則檢測異常報警模塊會自動產生報警警示。根據報警結果,管控系統能夠自動將用戶重新引導至初始通道,以避免用戶發起資源的誤操作。
系統在針對用戶請求行為做出響應前,會將當前通道與初始通道的標識碼進行比對。因此,如果存在用戶惡意更改虛擬通道,企圖通過其他用戶的虛擬通道欺騙主機系統響應請求的情況,管控主系統能夠自動修正通道,避免用戶獲得其權限以外的響應數據而造成對資源保密性的破壞。
由于用戶角色的身份標記與訪問路徑強制綁定,因此在上述引導行為發生后,無論引導前用戶的虛擬通道變更行為是無意還是惡意,都能夠保證用戶只能對擁有權限的數據資源進行操作。
用戶的身份標記和虛擬通道是非加密的。為了防止該標記被其他用戶非法獲取、仿冒、篡改,應當對其加密傳輸。該加密模塊應當在管控主系統與主機代理上同時部署,并運行不同的功能。系統通過密鑰對身份標記和虛擬訪問通道同時加密,將密文與請求數據進行綁定后,將數據傳送至主機代理軟件所在的被管控數據庫服務器上。然后,主機代理通過密鑰對身份標記和虛擬訪問通道密文進行解密,并將解密結果傳送至數據庫系統的染色策略表,從而實現用戶角色與請求操作的等級匹配,判斷是否允許用戶完成請求操作,并向用戶發送響應數據。
該模塊基于PKI[7]的密鑰管理機制進行設計,具體工作原理如下:
(1)在數據庫服務器上,由加密系統產生公鑰私鑰對,并在后端保存私鑰,同時將公鑰發送至CA中心;
(2)CA中心對公鑰進行加密認證,并發送至管控主系統;
(3)管控主系統完成對公鑰證書的驗證,確定公鑰由被管控數據庫服務器上的主機代理發送,然后保存該公鑰;
(4)管控主系統利用對稱加密算法產生隨機key,并用隨機key對用戶的安全標記和虛擬訪問通道進行加密。然后,使用公鑰對隨機key進行加密,將加密后的隨機key、安全標記和虛擬訪問通道的密文以及用戶的操作請求數據綁定后傳送至數據庫服務器;
(5)服務器上的主機代理接收到綁定數據后,先利用保存的私鑰對隨機key進行解密,然后再利用隨機key對密文進行解密,得到用戶的安全標記和虛擬訪問通道信息;
(6)在完成解密工作后,通過染色策略匹配,判斷是否允許用戶執行相應操作。之后,主機代理利用隨機key加密響應數據,再發送至管控主系統。最后,管控主系統利用保存的隨機key解密響應數據,完成整個響應過程。
隨著云計算的應用普及,大規模用戶操作的數據庫等資源面臨強制訪問控制的安全需求。本文采用數據庫資源的染色標記方法,提出了一種強制訪問技術在數據庫操作上的安全訪問應用。該應用主要構建了從用戶請求到系統響應的完整強制訪問控制操作鏈,實現了用戶身份的強認證和用戶數據庫操作的強制訪問控制。