書名: 黑客攻防從入門到精通(Web技術實戰篇)作者名: 明月工作室 王棟本章字數: 3935字更新時間: 2020-05-22 18:52:22
5.3 訪問控制的授權與審計
5.3.1 授權行為
授權是資源的所有者或者控制者準許他人訪問這種資源,這是實現訪問控制的前提。對于簡單的個體和不太復雜的群體,我們可以考慮基于個人和組的授權,即便是這種實現,管理起來也有可能是困難的。當我們面臨的對象是一個大型跨國集團時,如何通過正常的授權以保證合法的用戶使用公司公布的資源,而不合法的用戶不能得到訪問控制的權限,這是一個復雜的問題。
授權是指客體授予主體一定的權力,通過這種權力,主體可以對客體執行某種行為,如登錄、查看文件、修改數據、管理賬戶等。授權行為是指主體履行被客體授予權力的那些活動。因此,訪問控制與授權密不可分。授權表示的是一種信任關系,需要建立一種模型對這種關系進行描述。
5.3.2 信任模型
信任模型(Trust Model)是指建立和管理信任關系的框架。信任關系是這樣一種情形,如果主體能夠符合客體所假定的期望值,那么稱客體對主體是信任的。信任關系可以使用期望值來衡量,我們用信任度表示。主客體間建立信任關系的范疇稱為信任域,也就是主客體和信任關系的范疇集合,信任域是服從于一組公共策略的系統集。
信任模型有3種基本類型:層次信任模型、對等信任模型和網狀信任模型。
1.層次信任模型
層次信任模型是實現最簡單的模型,使用也最為廣泛。建立層次信任模型的基礎是所有的信任用戶都有一個可信任根。例如,我們通常所說的根管理員,事實上就是處于根的位置,所有的信任關系都基于根來產生。
層次信任關系是一種鏈式的信任關系,如可信任實體Leaf CA可以表示為這樣一個信任鏈:(Root CA, Intermediate CA, Leaf CA),說明可以由Leaf CA向上回溯到產生它的信任根Root CA。這種鏈式的信任關系我們稱為信任鏈。層次信任模型是一種雙向信任的模型,假設Leaf Ai和Leaf Bj是要建立信任關系的雙方,Leaf Ai和Leaf Bj間的信任關系很容易建立,因為它們都基于可信任根Root CA。層次信任模型對應于層狀結構,有一個根節點Root CA作為信任的起點,也就是信任源。這種建立信任關系的起點或是依賴點我們稱為信任錨。信任源負責下屬的信任管理,下屬再負責下面一層的信任管理,如圖5-15所示,這種管理方向是不可逆的。

圖5-15 下屬層次信任模型
這個模型的信任路徑是簡單的,從根節點到葉子節點的通路構成了簡單唯一的信任路徑。層次信任模型的優點在于結構簡單、管理方便、易于實現;缺點是Leaf Ai和Leaf Xk的信任關系必須通過根來實現,而可信任根Root CA是默認的,無法通過相互關系來驗證信任,一旦信任根出現問題,那么信任的整個鏈路就被破壞了。現實世界中,往往建立一個統一信任的根是困難的。對于不在一個信任域中的兩個實體如何來建立信任關系?這用一個統一的層次信任模型來實現需要在建立信任的框架中預留有未來的發展余量,而且必須強迫信任域中的各方都統一信任可信任根Root CA。
層次信任模型適用于孤立的、層狀的企業,對于有組織邊界交叉的企業,要應用這種模型是很困難的。另外,在層次信任模型的內部必須保持相同的管理策略。層次信任模型主要使用在以下3種環境。
(1)嚴格的層次結構。
(2)分層管理的PKI商務環境。
(3)保密性增強郵件(Privacy-Enhanced Mail, PEM)環境。
2.對等信任模型
對等信任模型是指兩個或兩個以上對等的信任域間建立的信任關系。對等信任模型的示意圖如圖5-16所示。相對而言,對等信任關系靈活一些,它可以解決任意已經建立信任關系的兩個信任模型之間的交互信任。不同信任域的Engineering CA和Marketing CA之間的信任關系要通過對等信任域Root CA1和Root CA2的相互認證才能實現,因此這種信任關系在PKI領域中又叫作交叉認證。建立交叉認證的兩個實體間是對等的關系,因為他們既是被驗證的主體,又是進行驗證的客體。對等信任模型不會建立在信任域以外,這是因為如果任意兩個主客體都建立對等信任,那么對于n個主客體而言,需要建立n×(n-1)/2個信任鏈。

圖5-16 點到點的對等交叉認證
對等信任模型非常適合表示動態變化的信任組織結構,這樣,引入一個可信任域是易于實現的。但是在構建有效的認證路徑時,也就是說,假定Engineering CA和Marketing CA是建立信任的雙方,那么,很難在整個信任域中確定Root CA2是否是Marketing CA的最適當的信任源。
3.網狀信任模型
網狀信任模型可以看成是對等信任模型的擴充。我們沒有必要在任意兩個對等的信任域建立交叉認證,完全可以通過建立一個網絡拓撲結構的信任模型來實現,也就是建立信任域間的間接信任關系。網狀信任模型的示例如圖5-17所示。假設圖中CA是不同的信任域,他們之間的信任關系用實線箭頭表示,那么位于相同信任域下的主體間可以建立的信任鏈通過圖中的虛線來表示。

圖5-17 網狀交叉認證信任模型
首先,建立一個恰當合理的信任網絡模型比我們想象的要復雜得多。我們曾經探討過安全標簽列表的實現,這是引入安全級別和考慮保護敏感信息的必然。同樣,在建立的對等或非對等的信任集合中,很難想象一個安全級別低(如C級別)的信任域和一個安全級別高(如S級別)的信任域,在他們中間建立的信任模型是什么樣子的。因為對整個信任域的信任鏈的可信程度很難不令人質疑,S級別可能需要通過使用智能卡才能通過訪問控制最初的驗證,而C級別也許只是進行簡單的IP地址檢驗就可以任意訪問客體的信息資源。在建立信任模型、實現訪問控制的過程中,不但要選擇合適的信任模型,保護客體的資源,而且應該避免主體的信息資源暴露在攻擊和危險的情況下。這種情況下,主客體信息的交換有時候更多地依賴于可信第三方。另外,網絡資源和時限也是一個問題,盡管主體間有多條信任鏈可以實現,但我們總是希望耗用最少的時間,也就是說,走最短的路徑,那么,怎樣來計算這條路徑也是一個困難的問題。
其次,跨越多個可信域根建立的漫長的非層狀的信任路徑被認為是不可信的,顯然在這樣的信任關系實現上,構造合理的信任路徑和檢驗適當的信任錨都是巨大的挑戰。因為我們不得不對不同的信任錨進行驗證,不得不要建立一個從被信任發起方開始到信任到達者所在信任域的完整的信任路徑,每一個驗證者還需要建立自己到信任錨的路徑。同時,信任路徑中的封閉環路一定要檢測出來并丟棄掉,對可能存在的多條路徑也要進行過濾和優先級的設置。
5.3.3 信任管理系統
闡述信任模型很容易產生一個問題,這就是在實際中是由誰管理信任?如果我們就是信任中的主體,我們憑什么信任他們?這就是信任管理需要解決的問題。
信任管理的產生是一個漫長而復雜的過程,這和企業的發展與市場的制約有很大關系。現代企業有向大型化、集團化發展的趨勢,一個企業往往包括多個職能部門,分別完成生產、管理、結算等功能,而這些職能部門又可劃分為多個各司其職的更小的部門,與此同時企業內部的職能劃分越來越細,獨立運作能力也越來越強,可以獨立和別的企業的相應或相關職能部門進行交易,所以在現實的商業運作中企業內部的多級管理和企業間的無級別貿易是并存的。這種關系必然反映在信任管理中,怎么來實現和約束正確的信任關系來訪問資源和進行交易,建立相應的信任關系。目前,層次信任模型的建立和管理在一定的信任域內建立是正常的,但在信任域間的交叉認證和混合多級信任模型方面,還沒有就信任管理達成一致。
信任管理包含了兩個方面,一是對于信任鏈的維護與管理,二是對信任域間信任關系的管理與維護。用戶是信任的主要參與者,因此用戶有必要對信任鏈加以管理,也就是說應該由他自己來判斷該相信誰和該相信什么。信任域的管理通常由認證機構來負責。
5.3.4 審計跟蹤概述
審計是對訪問控制的必要補充,是訪問控制的一個重要內容。審計會對用戶使用何種信息資源、使用的時間及如何使用(執行何種操作)進行記錄與監控。審計和監控是實現系統安全的最后一道防線,處于系統的最高層。審計與監控能夠再現原有的進程和問題,這對于責任追查和數據恢復非常有必要。
審計跟蹤是系統活動的流水記錄。該記錄按事件自始至終的途徑,順序檢查、審查和檢驗每個事件的環境及活動。審計跟蹤通過書面方式提供應負責任人員的活動證據以支持訪問控制職能的實現(職能是指記錄系統活動并可以跟蹤到對這些活動應負責任人員的能力)。審計跟蹤記錄系統活動和用戶活動。系統活動包括操作系統和應用程序進程的活動;用戶活動包括用戶在操作系統中和應用程序中的活動。通過借助適當的工具和規程,審計跟蹤可以發現違反安全策略的活動、影響運行效率的問題以及程序中的錯誤。審計跟蹤不但有助于幫助系統管理員確保系統及其資源免遭非法授權用戶的侵害,還能提供對數據恢復的幫助。
5.3.5 審計內容
審計跟蹤可以實現多種安全相關目標,包括個人職能、事件重建、入侵檢測和故障分析。
(1)個人職能(individual accountability)。審計跟蹤是管理人員用來維護個人職能的技術手段。如果用戶知道他們的行為活動被記錄在審計日志中,相應的人員需要為自己的行為負責,他們就不太會違反安全策略和繞過安全控制措施。例如,審計跟蹤可以記錄改動前和改動后的記錄,以確定是哪個操作者在什么時候做了哪些實際的改動,這可以幫助管理層確定錯誤到底是由用戶、操作系統、應用軟件還是由其他因素造成的。允許用戶訪問特定資源意味著用戶要通過訪問控制和授權實現他們的訪問,被授權的訪問有可能會被濫用,導致敏感信息的擴散,當無法阻止用戶通過其合法身份訪問資源時,審計跟蹤就能發揮作用。審計跟蹤可以用于檢查和檢測他們的活動。
(2)事件重建(reconstruction of events)。在發生故障后,審計跟蹤可以用于重建事件和數據恢復。通過審查系統活動的審計跟蹤可以比較容易地評估故障損失,確定故障發生的時間、原因和過程。通過對審計跟蹤的分析就可以重建系統和協助恢復數據文件;同時,還有可能避免下次發生此類故障的情況。
(3)入侵檢測(intrusion detection)。審計跟蹤記錄可以用來協助入侵檢測工作。如果將審計的每一筆記錄都進行上下文分析,就可以實時發現或者過后預防入侵檢測活動。實時入侵檢測可以及時發現非法授權者對系統的非法訪問,也可以探測到病毒擴散和網絡攻擊。
(4)故障分析(problem analysis)。
- RESTful Java Web Services Security
- 信息安全導論(在線實驗+在線自測)
- Kali Linux CTF Blueprints
- 白帽子講Web安全(紀念版)
- Web安全與攻防入門很輕松(實戰超值版)
- Kali Linux Wireless Penetration Testing Cookbook
- Python Penetration Testing Cookbook
- 數據安全與隱私計算(第3版)
- CTF競賽權威指南(Pwn篇)
- 黑客攻防與網絡安全從新手到高手(絕招篇)
- 計算機網絡安全基礎(第5版)
- 數據要素安全:新技術、新安全激活新質生產力
- 數據安全與流通:技術、架構與實踐
- Cybersecurity Threats,Malware Trends,and Strategies
- 復雜信息系統網絡安全體系建設指南