J0ker的CISSP之路:複習Access Control(10)

 
    在《J0ker的CISSP之路》的上一篇文章《分佈式訪問控制方法》裏,J0ker給大家介紹了用於控制用戶資源訪問的幾種分佈式訪問控制方法。在實際的應用中,我們往往還需要對數據和信息進行更爲細緻的訪問控制,比如,企業需要允許財務部門訪問今年上半年的企業詳細財務報告,但同時應該拒絕其他部門訪問,之前介紹過的集中式或分佈式訪問控制方法就不太合適應用在這種場景中,這時候,我們就要用到下面提到的幾種數據訪問控制方法。
 
在CISSP的CBK中介紹了目前最爲常用的5種數據訪問控制方法:自主式訪問控制(Discretionary Access Control, DAC)、強制訪問控制(Mandatory Access Control, MAC)、基於角色的訪問控制(Role Based Access Control, RBAC)、基於內容的訪問控制(Content Based Access Control, CBAC)和固定界面訪問控制(Constrained Interface Access Control, CIAC)。J0ker將在本文和下一個文章中逐個介紹這些數據訪問控制方法:
 
     自主式訪問控制:自主式訪問控制是一種根據用戶標識和/或用戶所屬的組別,對文件及其他系統資源訪問進行控制的訪問控制方法,由於它主要進行訪問控制操作的標準主要基於用戶標識和權限分配,此外用戶權限的分配是由數據的所有者實施的,因此通常我們也認爲DAC也是一種基於訪問策略的訪問控制方法,這點也是DAC與下面將要提到的MAC最大的區別。在實踐中,自主式訪問控制通常是通過訪問控制矩陣(Access Control Matrix,ACM)和訪問控制列表(Access Control List, ACL)來實現的:
    我們知道,在計算機和網絡系統中,數據和信息的組織形式最多的還是基於文件結構(File Structure)形式,也即數據和信息存儲在文件中,而文件則根據一定的分類規則來分到不同的文件夾(目錄)中。數據和信息的這種組織形式,使得我們能夠很方便的決定某個用戶對某個集合(文件或文件夾)的信息有什麼樣的訪問權限,與此同時,其他的用戶對這個信息集合有什麼樣的訪問權限,在大多數的操作系統和網絡系統中,常常設置以下幾種數據訪問權限:
 
                                              表1: 常見的數據訪問權限設置
權限

描述

無權限或空(Null)

該權限的用戶無法對指定的文件和資源進行任何類型的訪問

讀(Readr

用戶可以對指定的文件和資源進行讀操作,但不能進行變更操作

寫(Writew

用戶可以對指定的文件和資源進行寫操作,如進行編輯等

執行(Execute, x

用戶可以執行指定的程序

刪除(Delete d

用戶可以刪除指定的文件和資源

變更(Changec

用戶可以對指定的文件和資源進行讀、寫和刪除操作,但不能改變它的訪問權限設置

完全控制(Full Control, f

用戶對指定的文件和資源有完全的權限,可以讀、寫、刪除、執行和改變該資源的訪問權限設置

 
         自主式訪問控制最爲重要的特徵是資源所有制(Resource Ownership),在某些操作系統中,數據的創建者默認就是數據的所有者。數據的所有者除了擁有該數據的完全控制權限外,還能夠對數據的訪問控制權限進行設置,如果某個用戶不是指定數據的所有者,那他就最多隻能操作該數據對象,而不能修改該數據對象的訪問控制設置。在一些組織中,系統管理員被默認爲所有文件的所有者,系統管理員統一爲組織中的用戶分配訪問權限,這種策略的缺陷主要在於系統管理員可能擁有太大的權限,瞭解太多他本來不應該瞭解的信息,因此,提供訪問權限的共享控制能夠在一定程度上提高數據的安全性。
 
           自主式訪問控制在操作系統和網絡系統中的表現形式就是訪問控制矩陣和訪問控制列表,每個用戶和每個訪問目標之間的關係通過一個矩陣列出,用戶爲行、訪問目標爲列,每一行列的交點就是該用戶對訪問目標的權限,下圖是一個簡單的訪問控制矩陣示例:
 
                                                        表2: 訪問控制矩陣示例

 

Mary的文件夾

Bob的文件夾

Bruce的文件夾

打印機01

Mary

完全控制

執行

Bob

完全控制

執行

Bruce

無權限

完全控制

執行

Sally

無權限

無權限

無權限

無權限

 
            如果是用戶和數據的數量非常多,系統需要維護一個巨大的訪問控制矩陣,在多個用戶同時發起訪問請求的時候,將會對系統造成資源的很大開銷。因爲自主式訪問控制是根據訪問用戶的標識進行的判斷的,所以,我們可以設定某些用戶允許訪問某個數據,並要求系統只在該數據被訪問到的時候根據用戶允許列表來判讀用戶是否有權限,這便是訪問控制列表的原理。訪問控制列表可以看作是訪問控制矩陣的簡化版,提供了一個控制一個或一組用戶對特定數據訪問的更簡便方法。
 
              強制訪問控制:強制訪問控制是一種用在處理高敏感性數據的系統中的訪問控制方法,和自主式訪問控制一樣,強制訪問控制也屬於基於策略的訪問控制方法。強制訪問控制的最顯著特徵是,要求對系統中的所有訪問者(用戶、程序等)和所有資源(文件、數據和設備等)都分配一個安全標識,在訪問者要求訪問資源時,系統會比較訪問者和資源各自的安全等級,在符合安全策略規定的前提下,訪問者才能訪問資源。安全等級的劃分和安全度的控制在強制訪問控制實現的設計文檔中規定。下圖是強制訪問控制實現的一個簡單示例:
 1:強制訪問控制的簡單示例

         我們來分析一下強制訪問控制的特性,它使用安全標籤來確定訪問者是否可以訪問某個資源,因爲組織的安全策略規定了安全標籤是如何定義的,因此,組織的系統管理員和信息的所有者共同維護強制訪問控制的部署,系統管理員部署並維護強制訪問控制措施,而信息的所有者負責對信息分配安全標籤,並對能夠訪問該資源的用戶進行授權。和自主式訪問控制一樣,用戶要訪問某個資源,必須經過該資源所有者的授權(爲資源標記合適的安全標籤),但強制訪問控制還要求用戶通過系統基於用戶標籤的控制這一額外控制措施,從這點上來說,強制訪問控制的安全性要比自主式訪問控制好。
 
        我們用一個簡單的例子來說明強制訪問控制是如何運作的:在某個組織中,安全等級從低到高分爲3級,公開、僱員、經理。如果一個名爲 Report.doc的文件的安全等級爲僱員,組織中所有標記爲僱員和經理的用戶都能夠訪問這個文件,而組織的客人(標記爲公共)則不能訪問該文件。這個文件即使是由經理級的用戶提交,只要該用戶將文件授權爲僱員級別就能訪問,只要是僱員以上級別的用戶就能訪問,這也體現了強制訪問控制的信息所有者授權這一特性。

        強制訪問控制的另外一個重要用途是控制信息從其他系統輸入或輸出到其他系統中,由於信息的輸入輸出操作往往可能造成未授權的訪問,例如一份標記爲祕密的文檔在一個不安全的打印機上輸出。因此,處理高敏感性信息的信息系統往往會使用強制訪問控制,來限制信息是如何輸入和輸出的。
 
下篇預告:在下一篇文章《Access Control (11)》中,J0ker將給大家介紹數據訪問控制中的其他方法,敬請期待!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章