介紹
強制訪問控制(英語:
mandatory access control,縮寫
MAC)在
計算機安全領域指一種由
作業系統約束的
訪問控制,目標是限制主體或發起者訪問或對對象或目標執行某種操作的能力。在實踐中,主體通常是一個
進程或
執行緒,對象可能是
檔案、
目錄、
TCP/
UDP連線埠、
共享記憶體段、I/O設備等。主體和對象各自具有一組安全屬性。每當主體嘗試訪問對象時,都會由作業系統
核心強制施行授權規則——檢查安全屬性並決定是否可進行訪問。任何主體對任何對象的任何操作都將根據一組授權規則(也稱策略)進行測試,決定操作是否允許。在
資料庫管理系統中也存在訪問控制機制,因而也可以套用強制訪問控制;在此環境下,對象為表、視圖、過程等。
通過強制訪問控制,安全策略由安全策略管理員集中控制;用戶無權覆蓋策略,例如不能給被否決而受到限制的檔案授予訪問許可權。相比而言,
自主訪問控制(DAC)也控制主體訪問對象的能力,但允許用戶進行策略決策和/或分配安全屬性。(傳統
Unix系統的用戶、組和讀-寫-執行就是一種DAC。)啟用MAC的系統允許策略管理員實現組織範圍的安全策略。在MAC(不同於DAC)下,用戶不能覆蓋或修改策略,無論為意外或故意。這使安全管理員定義的中央策略得以在原則上保證向所有用戶強制實施。
在歷史上和傳統上,MAC與多層安全(MLS)和專業的軍用系統密切相關。在此環境中,MAC意味著高度嚴格以滿足MLS系統的約束。但在最近,MAC已從MLS本身中發展出來,並變得更加主流。最近的MAC實現有諸如面向Linux的
SELinux和
AppArmor,以及面向Windows的
強制完整性控制,它們使管理員得以關注沒有嚴格或MLS約束時遇到的如網路攻擊或惡意軟體等問題。
歷史背景
歷史上,MAC與作為保護美國等級信息的多層安全(MLS)手段密切相關。可信計算機系統評估標準(TCSEC)就是就這一主題的開創性工作,其中將MAC定義為“基於對象中包含信息的敏感性(由標籤表示)來顯示對對象的訪問途徑以及對象訪問這種敏感信息的授權”。MAC的早期實現有Honeywell的SCOMP、USAF SACDIN、NSA Blacker,以及的
波音MLS LAN。
術語MAC中的“強制性”已經因其在軍事系統中的使用而獲得了特殊含義。在這方面,MAC意味著非常高的健壯性,確保控制機制能夠抵抗任何類型的破壞,從而使他們能夠執行由政府命令授權的訪問控制,諸如面向美國等級信息的第12958號行政命令。強制施行的保證性要求要高於商業套用,因此這不允許採用“盡力而為”的機制。MAC只接受能夠絕對或者幾乎絕對地保證任務執行的機制。這點對於不熟悉高保證策略的人來說可能很困難或者被假定為不切實際。
MAC系統強度
在某些系統中,用戶有權決定是否向其他任何用戶授予訪問許可權。為允許這點,所有用戶都必須有所有數據的審查許可。這不是MLS系統所需必要條件。如果個人或進程可能被拒絕訪問系統環境中的任何數據,則系統必須可信以強制執行MAC。由於可能存在各種級別的數據等級和用戶許可,這也顯示了健壯性的量化指標。
客體
通常是指信息的載體或從其他主體或客體接收信息的實體。
主體有時也會成為訪問或受控的對象,如一個主體可以向另一個主體授權,一個進程可能控制幾個子進程等情況,這時受控的主體或子進程也是一種客體。
訪問控制分類
客體不受它們所依存的系統的限制,可以包括記錄、
數據塊、存儲頁、存儲段、檔案、目錄、目錄樹、庫表、信箱、訊息、程式等,還可以包括比特位、
位元組、字、欄位、變數、處理器、通信信道、時鐘、
網路結點等。
自主訪問控制
管理的方式不同就形成不同的訪問控制方式。一種方式是由客體的屬主對自己的客體進行管理,由屬主自己決定是否將自己客體的訪問權或部分訪問權授予其他主體,這種控制方式是自主的,我們把它稱為自主訪問控制(Discretionary Access Control——DAC)。在自主訪問控制下,一個用戶可以自主選擇哪些用戶可以共享他的檔案。Linux系統中有兩種自主訪問控制策略,一種是9位許可權碼(User-Group-Other),另一種是訪問控制列表ACL(Access Control List)。
強制訪問控制
強制訪問控制(Mandatory Access Control——MAC),用於將系統中的信息分密級和類進行管理,以保證每個用戶只能訪問到那些被標明可以由他訪問的信息的一種訪問約束機制。通俗的來說,在強制訪問控制下,用戶(或其他主體)與檔案(或其他客體)都被標記了固定的安全屬性(如安全級、訪問許可權等),在每次訪問發生時,系統檢測安全屬性以便確定一個用戶是否有權訪問該檔案。其中多級安全(MultiLevel Secure, MLS)就是一種強制訪問控制策略。
訪問規則
保密性規則
1)僅當主體的許可證級別高於或者等於客體的密級時,該主體才能讀取相應的客體。(下讀)
2)僅當主體的許可證級別低於或者等於客體的密級時,該主體才能寫相應的客體。(上寫)
完整性規則
1)僅當主體的許可證級別低於或者等於客體的密級時,該主體才能讀取相應的客體。(上讀)
2)僅當主體的許可證級別高於或者等於客體的密級時,該主體才能寫相應的客體。(下寫)
參見
Bell–LaPadula model
基於屬性的訪問控制(ABAC)
基於上下文的訪問控制(CBAC)
基於格的訪問控制(LBAC)
基於組織的訪問控制(OrBAC)
以角色為基礎的訪問控制(RBAC)
以規則集為基礎的訪問控制(RSBAC)
基於能力的安全性
基於位置的身份驗證
基於風險的身份驗證
Clark–Wilson model
Graham–Denning model
Multiple single-level
安全模型
Smack (software)
Systrace
授權保護模型
類型強制