Linux安全訪問控制模型應用及方案設計
1.引言
本文通過研究安全操作系統(tǒng)的訪問控制模型,結合國內、外的相關安全標準和已有的先進技術,將密碼服務與高級別存取控制機制有機地結合起來,形成一個適應各類安全2級實用操作系統(tǒng)。該安全服務器將在Linux操作系統(tǒng)的基礎上(目前Linux操作系統(tǒng)主要發(fā)行版本的安全性大致處于《TCSEC》標準[1,2] 的C2 級),參照GB/T 18336(等同采用CC標準)安全保證級別EAL4,開發(fā)符合GB 17859中規(guī)定的結構化保護級(相當于TCSEC中規(guī)定的B2級)功能要求的安全操作系統(tǒng)。
1. 安全策略訪問控制模型
該類模型是從訪問控制的角度描述安全系統(tǒng),主要針對系統(tǒng)中主體對客體的訪問及其安全控制。[2]
1.1 BLP模型
Bell&Lapadula(BLP)模型[3~5]---是由----Bell和Lapadula于1973年提出并于1976年修定、整合和完善的安全模型,它是最典型的信息保密性多級安全模型,通常是處理多級安全信息系統(tǒng)的設計基礎。
BLP模型的安全策略包括強制訪問控制和自主訪問控制兩部分。強制訪問控制中的安全特性,要求對給定安全級別的主體,僅被允許對同一安全級別和較低安全級別上的客體進行“讀”,對給定安全級別上的主體,僅被允許向相同安全級別或較高安全級別上的客體進行“寫”,任意訪問控制允許用戶自行定義是否讓個人或組織存取數(shù)據。
BLP模型為通用的計算機系統(tǒng)定義了安全性屬性,即以一組規(guī)則表示什么是一個安全的系統(tǒng)。其優(yōu)點是這種基于規(guī)則的模型比較容易實現(xiàn)。但是它不能更一般地以語義的形式闡明安全性的含義。因此,這種模型不能解釋主、客體框架以外的安全性問題,還不能較好的處理隱蔽通道的問題。
1.2 DTE模型
DTE (Domain and Type Enforcement)模型[5]是由O’Brien and Rogers于1991年提出的一種訪問控制技術。它通過賦予文件不同的型(type)、賦予進程不同的域(domain)來進行訪問控制,從一個域訪問其他的域以及從一個域訪問不同的型都要通過DTE策略的控制。
近年來DTE模型被較多的作為實現(xiàn)信息完整性保護的模型。該模型定義了多個域(Domain)和型(Type),并將系統(tǒng)中的主體分配到不同的域中,不同的客體分配到不同的型中,通過定義不同的域對不同的型的訪問權限,以及主體在不同的域中進行轉換的規(guī)則來達到保護信息完整性的目的。
DTE使域和每一個正在運行的進程相關聯(lián),型和每一個對象( e.g.文件、包)相關聯(lián)。如果一個域不能以某種訪問模式訪問某個型,則這個域的進程不能以該種訪問模式去訪問那個型的對象。當一個進程試圖訪問一個文件時,DTE 系統(tǒng)的內核在做標準的系統(tǒng)許可檢查之前,先做DTE許可檢查。如果當前域擁有被訪問文件所屬的型所要求的訪問權,那么這個訪問得以批準,繼續(xù)執(zhí)行正常的系統(tǒng)檢查。
1.3 RBAC模型
RBAC模型[5]是基于角色的訪問控制模型。該模型主要用于管理特權,在基于權能的訪問控制中實現(xiàn)職責隔離及極小特權原理。
RBAC包含以下基本要素:用戶集(Users),主體進程集(Subjects),角色集(Roles),操作集(Operations),操作對象集(Objects),操作集和操作對象集形成一個特權集(Privileges);用戶與主體進程的關系(subject_user),用戶與角色的關系(user_role), 操作與角色的關系(role_operations), 操作與操作對象的關系(operation_object)。
通常subject_user是一個多對一的關系,它把多個主體進程映射到一個用戶,這些進程都是替代該用戶的主體進程;在本模型中它就是一個典型的多對一的關系。user_role可以是多對多的關系,但在本模型中它被簡化為一對一的關系。role_operations是一個一對多的關系,它把一個角色映射到多個操作,是角色被授權使用的操作的集合;operation _object是一個一對多的關系,它把一個操作映射到多個操作對象,是操作被授權作用的操作對象集。
在本模型中,替代用戶的主體進程可能只激活用戶角色的被授權的操作的一部分,而且操作也可能僅作用在被授權作用的操作對象集的一個子集合上。在本系統(tǒng)中,將實現(xiàn)基于角色的授權和控制,支持角色互斥,不支持角色的繼承,不支持同一個用戶的多個角色。
2. 安全系統(tǒng)的設計
2.1 安全模型的設計
參照GB 17859中結構化保護級的安全功能特性要求,本系統(tǒng)中的安全服務器將遵循改進的BLP模型、DTE模型以及RBAC模型來實現(xiàn)系統(tǒng)的安全策略。其中,BLP模型是多級安全模型,保護信息的機密性;DTE模型是多域模型,保護信息的完整性;RBAC模型是基于角色的訪問控制模型,是授權模型。通過三種模型的相互作用和制約,保證系統(tǒng)中的信息以及系統(tǒng)自身的安全性。
授權策略RBAC是整個系統(tǒng)的基礎,它通過為用戶設置特定角色,影響IA控制、特權控制、多域訪問控制和強制訪問控制等基本功能,達到控制系統(tǒng)中用戶/主體對客體/對象的訪問的目的。在本系統(tǒng)中,每個用戶都有且只有一個角色。為某個用戶給定一個角色,相當于給定該用戶的***特權集、安全標記范圍、DTE域范圍和最小審計掩碼。該用戶的上述屬性只能夠在給定角色的范圍內指定。RBAC是通過最小特權、強制訪問控制(包括MAC機密性保護和DTE完整性保護)和安全審計等功能組合實現(xiàn)的。
而多域策略DTE和多級安全策略BLP則是在授權策略授權的基礎上,調用多域訪問控制和強制訪問控制功能,實現(xiàn)對客體/對象信息的完整性和機密性保護。
本系統(tǒng)在BLP模型的基礎上進行了一些改動:
1. 對BLP模型“上寫下讀”的信息流規(guī)則進行了限制,將其中的“上寫”改為:低安全等級的主體可以創(chuàng)建高安全等級的客體或向高安全等級的客體中添加信息,但是不能修改或刪除高安全等級客體中的原有信息。例如,低安全等級的主體可以在高安全等級目錄下(在通過了DAC和DTE檢查的情況下)創(chuàng)建新的文件(包括子目錄、命名管道等),但是不能刪除原有的文件(包括子目錄、命名管道等),也不能改寫高安全等級文件的內容;
2. 引入可信主體的概念,即:所謂可信主體,就是擁有多個安全級或一個安全級范圍的主體;
3. 引入可信客體的概念,即:所謂可信客體,就是擁有多個安全級或一個安全級范圍的客體。
本系統(tǒng)中DTE實現(xiàn)采用為主體/客體指定域/型標識(統(tǒng)稱為DTE標識)的方法,DTE策略將通過為主體賦“域”(Domain),為客體賦“型”(Type),并定義“域”和“型”之間的訪問權限實現(xiàn)DTE完整性保護,并采用DTEL(DTE Language)語言進行描述,通過命令設置到系統(tǒng)核心。
核心中將為每個主體維護一個“域”標記,為每個文件維護一個“型”標記。當操作發(fā)生時,系統(tǒng)將根據主體“域”標記、文件“型”標記以及訪問控制表判斷是否允許操作發(fā)生。
原則上,構造一個安全系統(tǒng)必須同時兼顧用戶應用系統(tǒng)、O/S服務系統(tǒng)、Linux 內核、硬件這四個子系統(tǒng),使它們都獲得有效的保護;但本系統(tǒng)主要關心用戶應用系統(tǒng)和Linux 內核系統(tǒng),因為它們與Linux 系統(tǒng)安全聯(lián)系最直接。構筑安全Linux 系統(tǒng)的最終目標就是支持各種安全應用,如果系統(tǒng)在構造之初就沒有區(qū)別地對待不同的應用,或者說不采取隔離的方式對待不同的應用,那么這樣的系統(tǒng)是不實用的,因為不同的應用對系統(tǒng)安全可能造成的威脅是不同的。對用戶應用系統(tǒng)的控制,我們主要采用角色模型與DTE技術的結合;而對Linux 內核的控制,則通過權能訪問控制、增強的BLP模型及DTE策略來實現(xiàn)。
2.2 安全系統(tǒng)的結構設計
用戶請求的系統(tǒng)操作進入核心后,首先經過安全策略執(zhí)行點,調用相應的安全策略執(zhí)行模塊,安全策略執(zhí)行模塊讀取相關的系統(tǒng)安全信息和主/客體安全屬性,并調用安全策略判定模塊進行安全判定,決定是否允許用戶請求的操作繼續(xù)執(zhí)行;當用戶請求的系統(tǒng)操作得到允許并執(zhí)行結束后,再次通過安全策略執(zhí)行點,進行相關安全信息/屬性的設置和安全審計。
安全服務器中的功能模塊與原有的系統(tǒng)操作是相對獨立的,雙方通過hook函數(shù)進行聯(lián)系。通過改變hook函數(shù)的指向,可以啟用不同的安全服務器。不同的安全服務器可以選擇不同的安全策略,從而達到支持多安全策略的目的。
2.3 安全系統(tǒng)的功能設計
安全系統(tǒng)在原有Linux操作系統(tǒng)基礎上,新增了的強制訪問控制、最小特權管理、可信路徑、隱通道分析和加密卡支持等功能組成,系統(tǒng)的主要功能如下:
1. 標識與鑒別
包括角色管理、用戶管理和用戶身份鑒別等三個部分。
2. 自主訪問控制
本系統(tǒng)在自主訪問控制中加入ACL機制。
3. 強制訪問控制
提供基于數(shù)據保密性的資源存取控制方法,提供了比DAC更嚴格的訪問約束。
4. 安全審計
本系統(tǒng)能創(chuàng)建和維護受保護客體的訪問審計跟蹤記錄,并能阻止非授權的用戶對它訪問或破壞。
5. 客體重用
在本系統(tǒng)中,出于系統(tǒng)效率和可靠性的考慮,只實現(xiàn)對核心重要數(shù)據結構剩余信息的自動清除和文件內容的人工清除。
6. 最小特權管理
特權管理實現(xiàn)的方法是:對特定角色的用戶和可執(zhí)行文件賦予相應的特權集,用戶登錄時獲取初始特權集,進程在執(zhí)行可執(zhí)行文件時,根據文件的特權集重新獲取新的特權;提供賦予可執(zhí)行客體的有效、繼承、許可三個特權集的能力。
7. 可信路徑
可信路徑要求為用戶提供與系統(tǒng)交互的可信通道。強制身份鑒別和網絡加密都是可信路徑的組成部分。此外,本系統(tǒng)將為用戶提供安全注意鍵,系統(tǒng)監(jiān)視到用戶使用該鍵后,將自動退出當前會話,回到登錄界面。
8. 隱蔽通道分析
本系統(tǒng)掩蔽通道分析將基于源代碼,采用下列方法進行:
分析所有操作,列出操作及其涉及的共享資源(客體屬性)
ü 列出操作與共享資源的關系圖。
ü 找出所有可能的存儲隱蔽通道。
ü 分析、標識每個存儲隱蔽通道,并給出帶寬。
9. 加密卡支持
本系統(tǒng)將支持一款經過國家商用密碼管理委員會辦公室認證的加密卡,為用戶提供加密API和對文件進行加/解密的功能,同時也為本系統(tǒng)的強身份鑒別和網絡加密部分提供支持。
3. 結論
本系統(tǒng)通過對Linux核心結構和操作系統(tǒng)域外層安全體系的層次結構的研究,遵循國內、外的相關安全標準,將三種安全策略模型和已有的先進技術有機地結合起來,增加了強制訪問控制、最小特權、可信路徑等安全功能,成功的在Linux操作系統(tǒng)上得已實現(xiàn),基本達到了GB17859中規(guī)定的結構化保護級(《TCSEC》的B2級)的要求。
操作系統(tǒng)安全增強技術作為信息安全的關鍵部分,得到了國內、外的普遍重視。在安全領域,系統(tǒng)的安全性總是相對的。因此,對安全模型的研究和建模以及信息安全系統(tǒng)體系和方案設計的研究還有待進一步的深入。本設計方案已經在Linux操作系統(tǒng)上得到具體的實現(xiàn),還有待于在實際應用中對安全操作系統(tǒng)進一步地考驗和完善。