關于網絡安全授權 你應該知道的……
與認證相對應的是授權。認證確定用戶身份;授權指定該用戶能做什么。通常認為是建立一種對資源的訪問方式,例如文件和打印機,授權也能處理用戶在系統或者網絡上的特權。在最終使用過程中,授權甚至能指定特定的用戶是否能訪問系統。有各種類型的授權系統,包括用戶權限,基于角色的授權,訪問控制列表和基于規則的授權。
授權通常是描述的用戶訪問資源,如訪問文件或行使特權,如關閉系統。然而,授權也專用于系統的特定區域。例如,很多操作系統分為用戶空間和內核空間,運行一個可執行文件的能力在某個空間或其他空間上是受到嚴格控制的。在內核中運行可執行文件,必須擁有特權,這種權限通常僅限于本機操作系統組件。
什么是網絡安全中的用戶權限
特權或用戶權限的權限不同。用戶權限提供授權去做可以影響整個系統的事情。可以創建組,把用戶分配到組,登錄系統,以及多用戶權限的分配。其他的用戶權限是隱含的,默認分配給組——由系統創建的組而不是管理員創建。無法移除這些權限。
在典型的Unix系統實現中,隱含的特權是與賬號綁定的。可以授權賬號在系統上做任何事情。另一方面,用戶擁有有限的權限,包括登錄,訪問某一文件,運行授權他們執行的應用程序。
在一些Unix系統上,系統管理員可以授予某一用戶權限使用特定的命令,類似超級用戶一樣,而不需要提供給他們超級用戶的密碼。在公共領域可以做到這一點的應用程序,被稱為sudo。
方式一:基于角色的授權(RBAC)
在公司中每個員工都有自己的工作職責。如果員工需要開展工作,則需要特權(做某些事情的權限)和權限(訪問特定資源和做他們職責范圍內的事情)。早期計算機系統的設計者認為用戶對于系統的要求可能會有所不同,并不是所有用戶都應該給予系統管理員權限。
早期計算機系統存在的兩個角色是用戶和管理員。早期的系統針對這些類型的用戶,基于他們的組成員關系來定義角色和授權的訪問。授予管理員(超級用戶,root用戶,系統管理員等等) 特權,并允許其比普通用戶訪問更多的計算機資源。例如,管理員可以增加用戶,分配密碼,訪問系統文件和程序,并重啟機器。這個群體后來擴展到包括審計員的角色(用戶可以讀取系統信息和在其他系統上的活動信息,但不能修改系統數據或執行其他管理員角色的功能)。
隨著系統的發展,用戶角色更加精細化。用戶可以通過安全許可來量化,例如,允許訪問特定的數據或某些應用程序。其他區別可能基于用戶在數據庫或者其他應用系統中的角色而定。通常情況下,角色由部門所分配,如財務,人力資源,信息技術和銷售部門。
最簡單的例子,在這些基于角色的系統中,將用戶添加到具有特定權限和特權的組里。其他基于角色的系統使用更復雜的訪問控制系統,包括一些專門為實現訪問控制所設計的操作系統。在Bell-Lapadula安全模型中,例如,將數據資源分為層或區域。每個區域代表一種數據類型,在沒有特定授權的情況下,數據不能從某個區域移動到其他區域,用戶必須提供某個區域的訪問權限才能使用數據。在這個角色中,用戶不能往低層次區域中寫入數據(例如,從機密區域到秘密區域),也不能從比他們更高層次的區域中讀取數據(例如,用戶獲取了訪問公共區域的權限,但不能讀取秘密或機密區域)。
Unix中基于角色的訪問控制工具可以將管理員權限委派給普通用戶。它通過定義好的角色賬號,或可以執行某些管理員任務的賬號來進行工作。角色賬號無法直接登錄,只能通過su命令進行訪問。
方式二:訪問控制列表(ACLs)
某些社交場合只有被邀請的人才能出席。為了確保只有邀請的嘉賓來參加歡迎派對,可能需要將一份被邀請人的名單提供給門衛那邊。當你抵達時,門衛會將你的名字與名單進行比對,以此來判斷你是否能夠入內。通過照片的形式進行比對的認證,可能不會出現在這里,但這是簡單使用訪問控制列表(ACL)很好的例子。
信息系統可能也可以使用ACL來確定所請求的服務或資源是否有權限。訪問服務器上的文件通常由保留在每個文件的信息所控制。同樣,網絡設備上不同類型的通信也可以通過ACL來控制。
1. 文件訪問權限
Windows和Unix系統都使用文件權限來管理文件訪問。實現方式雖然各不相同,但都適用于兩個系統。只有當你需要互通性時,問題才會出現,請確保授權可以支持跨平臺。
Windows文件——訪問權限 Windows NTFS文件系統為每個文件和文件夾都提供了一個ACL。ACL由一系列的訪問控制條目(ACEs)所組成。每個ACE都包含安全標識符(SID)和授予的權限。可以是允許或拒絕的權限,SIDs可能代表用戶賬號,計算機賬號或組。系統管理員,文件所有者,或有權限的用戶可以分配ACEs。
登錄過程中會確定特權用戶和組成員對特定的用戶或計算機的權限。列表包括用戶SID,以及該用戶所在組的SIDs。當與計算機進行連接時,訪問令牌為用戶創建并附加到用戶在系統上啟動的所有正在運行的進程中去。
在Windows系統中權限細粒度非常高。下表1中列出的權限實際上代表的是權限集,但是權限也可以單獨分配。
表1 Windows文件權限
注意:上表這些權限不同于表中所示的權限分組。表中列出的每個權限都可以單獨應用。當試圖訪問資源時,安全子系統會對資源的ACEs列表和訪問令牌中的SIDs和特權列表進行比對。如果SID和訪問權限兩者都比對成功,則授予權限,除非訪問授權為拒絕。權限積累(也就是說,如果授予了用戶讀取和寫的權限,那么用戶將擁有讀和寫的權限),但是拒絕授權將導致否定,甚至在有訪問權限的情況下。缺乏任何匹配結果都將導致拒絕。
值得注意的是在Windows中文件的權限和其他基于對象的權限,也可以通過共享文件夾的權限加以補充。也就是說,如果一個文件夾能夠通過服務器消息塊(SMB)協議直接從網絡中訪問,可以在可以文件夾上設置權限來控制訪問。將這些權限與直接使用NTFS權限設置在文件夾上的相關權限進行評估。在兩組權限之間存在沖突的情況下,選擇最嚴格的權限。舉例說明,如果給會計組共享了讀和寫的權限, Alice是其中一個成員,但底層的文件夾權限拒絕Alice訪問,最終Alice也將無法訪問該文件夾。
Unix 文件——訪問權限 傳統的Unix文件系統不使用ACL。相反,通過限制用戶賬號和組的訪問權限來保護文件。例如,如果你想授予讀的權限給所有者之外的人,是行不通的。如果你想授予讀的權限給一個組,寫的權限給另外一個組,也無法做到。這種缺乏細粒度的訪問控制在有些Unix(例如Solaris)系統中,可以通過提供ACL來彌補,但是在我們看那個系統之前,我們將審視傳統的文件保護系統。
有關文件的信息,除了文件名之外,都包括在索引之中。文件的索引包含文件信息、文件所有者、用戶ID、文件所屬組、文件模式,讀/寫/執行權限的設置。
文件的權限分配來控制訪問,他們包含三個級別的訪問權限:所有者,組和其他。所有者的特權包括確定誰可以訪問該文件并讀取它,寫入文件,或者,如果它是一個可執行文件,執行這個文件的權限。對于這些細粒度比較小的權限。目錄也可以有權限分配給所有者,組和其他。表2列出并解釋了權限。
表2 傳統的Unix文件權限
2. 網絡設備的ACLs
網絡設備使用ACLs來控制網絡的訪問和授予的訪問類型。具體來說,路由器和防火墻的訪問控制列表指明了來訪流量能夠訪問哪臺計算機的哪個端口,或是設備能接受并路由到其他網絡中的流量類型。
方式三:基于規則的授權
基于規則的授權需要開發一套規則來規定特定的用戶在系統上能做什么。這些規則可能會提供如下信息,如“用戶Alice能夠訪問資源Z但不能訪問資源D”,更復雜的規則是指定組合,例如“用戶Bob只有坐在數據中心的控制臺時才能閱讀文件P。”在小的系統中,基于規則的授權可能并不難維護,但是在大的系統和網絡中,極其繁瑣和難以管理。