書名: 信息安全精要:從概念到安全性評估作者名: (美)杰森·安德魯斯本章字數(shù): 3596字更新時間: 2022-06-27 10:54:03
3.2 實施訪問控制
實施訪問控制主要有兩種方法,即訪問控制列表和訪問控制能力。這兩種方法各有優(yōu)缺點,實現(xiàn)前文所述的四個基本任務的方式也各不相同。
3.2.1 訪問控制列表
訪問控制列表(Access Control List,ACL)包含允許特定方對既定系統(tǒng)擁有何種訪問權限的相關信息列表。我們經(jīng)常看到,實施訪問控制列表時,通常作為應用軟件或操作系統(tǒng),以及某些硬件設備(如網(wǎng)絡基礎設施設備)固件的一部分。我們甚至可以看到,訪問控制列表概念通過控制物理資源的軟件系統(tǒng),如門控系統(tǒng)的徽章讀取器,能夠擴展到物理世界。根據(jù)圖3-2所示的訪問控制列表可以發(fā)現(xiàn),其允許Alice訪問資源,而明確拒絕Bob訪問。

圖3-2 簡單的訪問控制列表
這看起來像是一個簡單的概念,但在更大范圍的實施過程中,可能會變得相當復雜。各組織通常使用訪問控制列表,控制訪問其操作系統(tǒng)所運行的文件系統(tǒng),并控制連接網(wǎng)絡的系統(tǒng)流量。你將在本章中了解兩種類型的訪問控制列表。
1. 文件系統(tǒng)訪問控制列表
大多數(shù)文件系統(tǒng)中的訪問控制列表擁有三種類型的權限(授權允許以特定方式訪問特定資源):讀取,允許用戶訪問文件或目錄的內(nèi)容;寫入,允許用戶寫入文件或目錄;執(zhí)行,如果文件包含能夠在相關系統(tǒng)上運行的程序或腳本,則允許用戶執(zhí)行文件內(nèi)容。
一個文件或目錄還可以附加多個訪問控制列表。例如,在類似UNIX的操作系統(tǒng)中,給定文件可能有單獨的針對特定用戶或群組的訪問列表。系統(tǒng)可能會授予某些個人用戶(如特定開發(fā)人員)特定的讀取、寫入和執(zhí)行權限;授予某些用戶群組(如全體開發(fā)人員群組)不同的讀取、寫入和執(zhí)行權限;授予任何其他經(jīng)過身份驗證的用戶第三類讀取、寫入和執(zhí)行權限。在基于Linux的操作系統(tǒng)上,你可以通過輸入以下命令來查看這三組權限:

圖3-3中顯示了系統(tǒng)中的權限。

圖3-3 類似UNIX操作系統(tǒng)上的文件權限
圖3-3中每一行代表單個文件的權限。第一個文件ucf.conf的權限顯示如下:

這看起來可能有點神秘。把命令符分為以下幾個部分會有助于解讀這些權限:

第一個字符通常表示文件類型:-
表示常規(guī)文件,d
表示目錄。第二段表示擁有文件權限的用戶,并設置為rw -
,意味著用戶可以讀寫,但不能執(zhí)行文件。
第三段群組權限被設置為r- -
,意味著被授予文件所有權的群組成員可以讀取該文件,但不能寫入或執(zhí)行該文件。最后一段也被設置為r- -
,意味著任何非文件所有者或非文件群組成員的用戶也可以讀取,但不能寫入或執(zhí)行。在Linux系統(tǒng)中,用戶權限僅適用于單個用戶,群組權限適用于單個群組。
通過使用文件權限集,可以控制訪問使用你的文件系統(tǒng)的操作系統(tǒng)和應用程序。大多數(shù)文件系統(tǒng)所使用的系統(tǒng)與分配權限的系統(tǒng)相似。
2. 網(wǎng)絡訪問控制列表
如果查看網(wǎng)絡上的各種活動,無論是私有的還是公開的,你都會注意到控制活動的訪問控制列表。在網(wǎng)絡訪問控制列表中,你通常基于網(wǎng)絡事務標識符過濾訪問,例如互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址、媒介訪問控制地址和端口。你可以在網(wǎng)絡基礎設施(如路由器、交換機和防火墻設備)、軟件防火墻、類似Facebook和Google等網(wǎng)站、電子郵件以及其他形式的軟件中看到這樣的訪問控制列表。
網(wǎng)絡訪問控制列表中的權限往往是二元的,通常用于允許或拒絕某些活動,而不是讀取、寫入和執(zhí)行。網(wǎng)絡訪問控制列表授予的權限通常針對流量,而不是用戶。例如,當設置訪問控制列表時,可以使用選定的一個或多個標識符,指明你引用哪種流量以及是否允許引用該流量。最好依靠多個標識符來過濾流量,原因你很快就會清楚。
媒介訪問控制地址過濾是面向網(wǎng)絡訪問控制列表的最簡單的形式之一。媒介訪問控制地址是給定系統(tǒng)中對每個網(wǎng)絡接口硬編碼的唯一標識符。
遺憾的是,大多數(shù)操作系統(tǒng)中的軟件設置可能會覆蓋網(wǎng)絡接口的媒介訪問控制地址。由于更改起來很容易,因此它并非網(wǎng)絡設備唯一標識符的最佳選項。
你可以改用IP地址。理論上,IP地址是分配給任何使用IP通信的網(wǎng)絡中每臺設備的唯一地址。你可以基于單個地址或整個IP地址范圍進行過濾。例如,你可以允許10.0.0.2到10.0.0.10的IP地址傳輸流量,但拒絕10.0.0.11及以上的任何流量。然而,與媒介訪問控制地址一樣,你可以偽造IP地址,而且它們不是網(wǎng)絡接口所特有的。此外,互聯(lián)網(wǎng)服務提供商發(fā)布的IP地址經(jīng)常變化,因此將IP地址作為過濾的唯一基礎也存在不穩(wěn)定因素。
黑洞
一些組織,如運營Web服務器、郵件服務器和互聯(lián)網(wǎng)其他服務的組織,采用大規(guī)模過濾來阻止已知的攻擊、垃圾郵件發(fā)送者和其他惡意流量。這種過濾可能包括丟棄來自單個IP地址、某個范圍的IP地址或大型組織、互聯(lián)網(wǎng)服務提供商甚至整個國家的整個IP空間的流量。這通常被稱為黑洞,因為從用戶的角度看,發(fā)送到過濾目的地的任何流量似乎都消失在黑洞之中。
第三種過濾流量的方式是使用在網(wǎng)絡上用于通信的端口。網(wǎng)絡端口是兩臺設備之間連接的數(shù)字標識,用于標記流量應路由到的應用程序。許多常見的服務和應用程序使用的是特定端口。例如,F(xiàn)TP使用20和21端口來傳輸文件,交互式郵件存取協(xié)議(Internet Message Access Protocol,IMAP)使用143端口來管理電子郵件,安全外殼(Secure Shell,SSH)使用的是22端口來管理到系統(tǒng)的遠程連接。還有更多的例子,因為總計有65 535個端口。
你可以允許或拒絕來自或發(fā)送到你想要管理的任何端口的流量,控制網(wǎng)絡上許多應用程序的使用。但與媒介訪問控制和IP地址一樣,應用程序使用的特定端口是約定,而不是絕對規(guī)則。你可以相對輕松地將應用程序使用的端口更改為完全不同的端口。
正如你剛才看到的,如果使用單一屬性來構建網(wǎng)絡訪問控制列表,你可能會遇到各種問題。如果你使用的是IP地址,其屬性可能不是唯一的。如果你使用的是媒介訪問控制地址,你的屬性將很容易更改,如果你使用端口,則依賴的是協(xié)議而不是規(guī)則。
當把幾個屬性組合在一起時,你將開始獲得一種更安全的技術。例如,通常同時使用IP地址和端口,這種組合通常稱為套接字(socket)。在使用套接字時,你能夠通過網(wǎng)絡上一個或多個應用程序,以可行的方式允許或拒絕來自一個或多個IP地址的網(wǎng)絡流量。
你還可以構建訪問控制列表,根據(jù)各種其他標準進行過濾。在某些情況下,你需要根據(jù)更具體的信息,如單個數(shù)據(jù)包或相關的一系列數(shù)據(jù)包的內(nèi)容來允許或拒絕流量。你在使用這些技術時,可以過濾掉非法共享的受版權保護的資料的相關流量。
3. ACL系統(tǒng)的弱點
使用ACL管理權限的系統(tǒng)容易受到混淆代理問題的攻擊。當具有資源訪問權限的軟件(代理)擁有比控制軟件的用戶更高級別的資源訪問權限時,就會出現(xiàn)這類問題。如果你能欺騙軟件濫用其更高級別的權限,你就有可能實施攻擊[1]。
多種攻擊實際上就利用了混淆代理問題。這通常涉及欺騙用戶采取一些行動,而讓他們真正認為自己在做完全不同的事情。許多攻擊是客戶端攻擊,利用了用戶計算機上運行的應用程序的弱點。這些攻擊可能是通過Web瀏覽器發(fā)送并在本地計算機上執(zhí)行的代碼、格式錯誤的PDF文件,或嵌入攻擊代碼的圖片和視頻。在過去幾年中,軟件供應商越來越關注這類攻擊,并開始在他們的軟件中構建防御措施,但也經(jīng)常出現(xiàn)新的攻擊。跨站請求偽造(Cross-Site Request Forgery,CSRF)和點擊劫持(clickjacking)是兩種常見的利用混淆代理問題的攻擊。
跨站請求偽造是一種濫用用戶計算機瀏覽器權限的攻擊。如果攻擊者知道或可以猜到已經(jīng)驗證用戶身份的網(wǎng)站,類似Amazon.com這樣的常見網(wǎng)站,攻擊者就可以在網(wǎng)頁或基于HTML的電子郵件中嵌入鏈接,通常指向由攻擊者控制的網(wǎng)站所托管的圖片。當目標的瀏覽器試圖獲取鏈接中的圖片時,同時會執(zhí)行攻擊者嵌入的附加命令,并常常以目標完全不可見的方式執(zhí)行。
在圖3-4所示的示例中,攻擊者嵌入了將資金從BankCo賬戶轉(zhuǎn)移到攻擊者離岸賬戶的請求。由于BankCo服務器將請求視為來自經(jīng)過身份驗證和授權的用戶,因此會繼續(xù)轉(zhuǎn)賬。在這個示例中,混淆代理的是銀行的服務器。

圖3-4 跨站請求偽造攻擊示例
點擊劫持,也稱為用戶界面?zhèn)窝b,是一種特別狡猾且有效的客戶端攻擊,利用了較新的Web瀏覽器所提供的頁面渲染功能。攻擊者實施點擊劫持攻擊,必須合法控制或已經(jīng)控制網(wǎng)站的某一部分。攻擊者通過在客戶常點擊的地方放置一個看不見的層來創(chuàng)建或修改站點,這會導致客戶端執(zhí)行的命令與他們認為正在執(zhí)行的命令不同。你可以通過點擊劫持攻擊欺騙客戶購買、更改應用程序或操作系統(tǒng)中的權限,或執(zhí)行其他多余的活動。
3.2.2 能力
ACL基于指定資源、標識符和一組權限來定義權限,其通常保存在某種類型的文件中。然而,你也可以基于用戶的令牌或密鑰定義權限,它們也稱為能力。雖然令牌在大多數(shù)情況下不是實物,但你可以把它想象成用來打開樓門的徽章。這座大樓只有一道門,很多人都有一個可以開門的令牌,但是每個人都有不同的訪問等級。一個人可能只被允許在工作日的營業(yè)時間進入大樓,而另一個人可能會被允許在一周中任何一天的任何時間進入大樓。
在基于能力的系統(tǒng)中,訪問資源的權限完全基于擁有令牌,而不是誰擁有令牌。如果你將令牌交給其他人,他就能夠以你所擁有的任何權限進入大樓。當涉及邏輯資產(chǎn)時,應用程序可以與其他應用程序共享令牌。
如果你使用能力而不是ACL來管理權限,那么可以防止混淆代理攻擊。由于攻擊者無法濫用用戶權限,因此跨站請求偽造和點擊劫持攻擊就無法發(fā)生,除非攻擊者有權訪問用戶的令牌。
- CSO進階之路:從安全工程師到首席安全官
- 軟件開發(fā)安全之道:概念、設計與實施
- 同態(tài)密碼學原理及算法
- 信息安全案例教程:技術與應用(第2版)
- 數(shù)據(jù)安全領域指南
- 網(wǎng)絡安全設計、配置與管理大全
- 網(wǎng)絡安全應急響應實戰(zhàn)
- 信息系統(tǒng)安全等級化保護原理與實踐
- 聯(lián)邦學習原理與算法
- Hands-On Bug Hunting for Penetration Testers
- BeagleBone for Secret Agents
- AI+網(wǎng)絡安全:智網(wǎng)融合空間體系建設指南
- 反黑風暴:黑客社會工程學攻防演練
- Learning Metasploit Exploitation and Development
- Linux安全實戰(zhàn)