讀零信任網路:在不可信網路中構建安全系統04最小特權
躺柒發表於2024-07-30
1. 公鑰基礎設施
1.1. PKI
1.2. 數字證書本身並不能解決身份認證問題
1.2.1. 需要一種方法來驗證獲得的公鑰的確屬於某人
1.2.2. 公鑰基礎設施(PKI)解決了這個問題
1.3. PKI定義了一組角色及其職責,能夠在不可信的網路中安全地分發和驗證公鑰
1.4. PKI的目標是允許無特權的通訊雙方透過共同信任的第三方來驗證對方身份的真實性
1.5. PKI利用註冊中心(RA)把通訊實體的身份與其公鑰進行繫結,然後把這種繫結關係內嵌入數字證書,並由可信的第三方進行數字簽名
1.5.1. 只要傳送方和接收方信任同一個第三方,傳送方就可以使用經過第三方簽名的證書來證明自己的身份
1.6. 證書授權中心(CA)和信任網路(WoT)是較受歡迎的兩類供應商
1.6.1. CA的信任依賴於數字簽名鏈,使用者能夠根據數字簽名鏈回溯到初始的可信根節點
1.6.1.1. CA的流行程度遠遠超過信任網路
1.6.2. WoT沒有使用信任鏈的形式,而是允許參與通訊的系統斷言對等方身份的有效性,最終形成相互背書的網狀結構
1.6.2.1. WoT在PGP系統中得到了廣泛使用
1.7. PKI通常被部署為公共的信任系統,簽發和管理網際網路上使用的X.509證書
2. CA
2.1. CA是數字證書鏈的信任錨,它們簽署並公開發布公鑰及其繫結的身份資訊,允許無特權實體透過數字簽名來驗證這種繫結關係的有效性
2.2. CA證書用於表明CA自己的身份,CA證書對應的私鑰用於簽署由其頒發的客戶證書
2.3. CA證書是眾所周知的,所以通訊實體可以使用CA證書來校驗該CA頒發的客戶證書的數字簽名
2.4. CA作為可信的第三方,能夠為客戶簽發並維護數字證書的有效性
2.5. CA作為可信的第三方擁有非常高的特權,因此必須不惜一切代價保護CA的安全性
2.5.1. CA的安全性一旦遭到破壞,就會導致災難性的後果
2.6. X.509數字證書標準支援證書鏈,所以根CA可以保持離線狀態
2.6.1. 離線狀態的根CA可以得到更好的安全保護,這也是絕大多數PKI體系的根CA的標準做法
3. 零信任模型中PKI
3.1. PKI是零信任模型身份認證的基石,大多數零信任網路都採用PKI來證明身份的真實性
3.1.1. PKI可以繫結實體的身份和公鑰
3.1.2. 需要安全地儲存實體的私鑰,並且應當使其儘可能靠近實體的物理位置,這在身份認證機制中是非常重要的一點
3.2. 零信任網路頒發的證書數量可能會很多,因此非常有必要對證書進行自動化管理
3.2.1. 數字證書的簽發畢竟是敏感度很高的工作,因此很多系統在設計時都會保留人工可以介入的審批流程
3.3. 雖然公共PKI非常適合作為網際網路的信任基礎設施,但是卻不適合零信任網路
3.4. 為什麼公共PKI不適合零信任網路?
3.4.1. 突出缺點是成本
3.4.1.1. 機構都是商業化運作的,簽發證書需要收取費用
3.4.1.2. 零信任網路可能會使用大量的證書,如果考慮到憑據輪換策略,證書的使用量會更大,這會產生高昂的證書籤發費用,很多組織難以承受
3.4.2. 另一個重大缺點,那就是CA機構的可信度問題
3.4.2.1. 很多公共的CA機構是由不同的國家和政府運營的
3.4.2.2. 任何一個CA機構出現問題,都會切斷整個零信任網路的信任
3.4.2.3. 只使用特定的某一個公共CA,但是如果它與其他組織使用的CA沒有交集,那麼如何建立和保持信任就是一個挑戰
3.4.3. 使用公共CA會影響零信任網路的靈活性和可擴充套件性
3.4.3.1. 零信任網路為了完成身份認證,可能需要在證書中儲存與組織相關的後設資料,比如使用者角色或使用者ID等
3.4.3.2. 規定並不一定適用於特定組織的零信任網路
3.5. 使用公共PKI總比完全沒有PKI要好
3.5.1. 如果在零信任網路建設的初期選擇使用公共PKI,那麼在意識到風險變大時,需要有明確的路徑能夠切換成使用私有PKI
4. 最小特權
4.1. 最小特權原則是指一個實體應該只被授予完成任務所需要的特權,而不是被授予該實體想要得到的許可權
4.2. 最小特權原則能夠極大降低使用者或應用程式濫用許可權的可能性
4.2.1. 對應用程式來說,最小特權通常意味著其執行在服務賬號、容器或“監獄”(Jail)中
4.2.2. 對使用者來說,最小特權通常表現為“只有工程師才能訪問原始碼”這樣的安全策略
4.2.3. 終端裝置也同樣需要考慮最小特權原則,但通常情況下終端裝置採用與使用者或應用程式相同的策略
4.3. 以保護隱私的名義進行網路資料包加密是一種經常被忽視的最小特權應用
4.4. 如果確實需要更高的訪問許可權,那麼使用者可以並且只能在需要的時候獲得這些特權
4.4.1. 當需要提升許可權時,則需要使用擁有更高許可權的獨立賬戶執行操作
4.4.2. 提升使用者的許可權通常需要驗證其身份
4.5. 零信任網路的情形與之類似,使用者在大多數情況下以最小特權模式訪問網路資源,只在需要執行敏感操作時才提升許可權
4.5.1. 對於風險相對較低的操作,特權提升過程可以很簡單,只需重新提示使用者輸入口令、要求出示雙因素認證令牌或者給使用者的手機推送認證通知
4.5.2. 對於高風險的操作,可以選擇透過帶外方式要求相關人員進行主動確認
4.6. 強制性關聯身份認證的過程和現實世界是一個不錯的辦法,這能夠避免已被攻陷的系統干擾正常的操作
4.6.1. 人們在配置一臺新的計算機時,第一步往往就是禁用保護計算機應用程式的安全框架,這幾乎成了常態
4.7. 零信任網路中的特權比傳統網路更具有動態性
4.7.1. 除了使用者,零信任網路也應當為應用程式配置最小特權
4.7.2. 零信任網路還需要考慮裝置的特權
4.7.2.1. 這種方式有效地降低了使用者憑據丟失或被盜而造成的損失和影響
4.8. 傳統網路中的安全策略往往是靜態的,如果遇到需要更高特權的情形,則特權的請求者通常需要說服系統管理員變更安全策略,或者請求系統管理員代替他們執行操作,後一種做法更普遍
4.8.1. 在管理相對寬鬆的組織中,特權數量會隨著時間的推移而逐漸增長,最終導致最小特權原則失效
4.8.2. 無論組織的管理是寬鬆還是嚴格,系統管理員都被賦予了更高的訪問許可權,這會導致其成為攻擊者實施網路釣魚攻擊的主要目標
4.9. 零信任網路依靠網路活動的諸多屬性來分析當前訪問請求的風險
4.9.1. 時間屬性
4.9.1.1. 某使用者在正常活動時間視窗之外的訪問請求更加可疑
4.9.2. 空間屬性
4.9.2.1. 某使用者從與上次訪問不同的地理位置發起訪問請求
4.9.3. 行為屬性
4.9.3.1. 某使用者試圖訪問通常情況下不應該訪問的資源
4.9.4. 使用者在正常工作時間從其正常地理位置訪問資料庫的請求應該被授權,但是從新的地理位置或者在非工作時間訪問資料庫的請求則被要求使用多因子身份認證
4.9.5. 基於網路活動的風險分析主動調整訪問許可權的能力是零信任網路的安全特性之一
4.9.5.1. 透過動態調整安全策略和訪問許可權,零信任網路能夠積極應對已知和未知的惡意攻擊
5. 可變的信任
5.1. 信任管理是網路安全管理中非常困難的工作
5.1.1. 安全網路的黃金標準:根本就不存在高特權的系統管理員
5.2. 定義信任策略這項工作通常由安全工程師手工完成
5.2.1. 初級的使用者許可權區隔(如超級使用者、管理員和普通使用者),很難滿足高階使用者的需求
5.2.2. 安全策略變更之後導致的影響範圍也同樣很難界定,於是系統管理員對策略的變更非常謹慎
5.2.3. 許可權分配通常也是手工作業,系統管理員根據使用者在組織中的職責為其分配相應的許可權
5.2.4. 管理員不得不製造出許多信任池(pool of trust)
5.3. 安全策略動態性不足,無法應對日益變化的網路安全威脅
5.3.1. 需要重新思考網路參與者的信任關係,意識到網路參與者的信任是基於參與者過去和當前的行為而不斷變化的
5.3.2. 安全策略的定義不僅基於確定性的描述,還要基於不斷變化的度量分值,這為系統提供了一種防禦任意威脅的機制
5.3.2.1. 持續監視參與者的網路活動,並據此持續更新其信任評分,然後使用這個評分作為授權策略判定的依據之一
5.3.2.2. 能夠對確保信任所需的檢查與平衡進行細粒度的決策判定
5.4. 安全成熟度比較高的組織會針對網路活動部署審計裝置,執行審計流程,但是審計工作的執行頻率往往不高,而且坦率地說,網路活動的審計工作非常乏味,以至於沒人願意認真做好這件事
5.5. 由於零信任網路中的所有網路流量都是加密的,因此傳統的流量監聽方法很難達到預期的效果,只能看到有限的內容
5.6. 強策略是信任的“增壓器”
5.6.1. 基於信任評分的策略能夠根據歷史行為等多種變數動態影響授權的判定結果,這將極大地改善網路的安全態勢
5.6.2. 經由這種機制檢查和授權的訪問會話有更高的可信度
5.6.3. 這種信任評分積累機制可以顯著降低此依賴,從而改善使用者的使用體驗
5.6.4. 使用者的信任評分能夠基於歷史行為而降低,同樣也可以基於歷史的可信行為而增加
5.6.4.1. 只要延長使用者積累信任所需的“正常”行為的時間,就能夠延緩攻擊者積累信任的進度,從而應對這種威脅
5.6.4.2. 把敏感操作的若干條資訊公佈給控制平面,並將其配置成只有可信位置的可信使用者才能夠訪問
5.6.4.3. 既可以顯式描述確定的授權策略,又可以透過計算信任評分的方式應對未知的威脅
5.6.5. 單一的評分值是否足以保護所有的敏感資源
5.7. 安全策略和使用者組織角色之間的解耦可能會給終端使用者帶來一定的困擾
6. 控制平面和資料平面
6.1. 基本思想是,網路裝置有控制平面和資料平面兩個邏輯域,這兩個邏輯域之間存在清晰的介面
6.2. 資料平面的作用是轉發網路流量,它需要高速處理資料包,因此其處理邏輯相對簡單,通常使用專用硬體
6.2.1. 零信任網路中的資料平面由直接處理網路流量的應用程式、防火牆、代理伺服器和路由器組成
6.2.2. 不能使用資料平面上的服務來獲得控制平面的特權,從而在網路中橫向移動
6.2.2.1. 資料平面與控制平面之間的介面必須非常清晰,確保資料平面中的系統不會因為被攻陷而導致在網路內橫向移動
6.2.3. 資料平面和控制平面系統之間的互動請求必須使用私有PKI系統進行身份認證和加密,以確保接收方的可信度
6.3. 控制平面可以看作是網路裝置的大腦,系統管理員用它來配置管理網路裝置,因此控制平面會隨著策略的變化而變化
6.3.1. 控制平面的強可塑性導致其無法處理高速網路資料包流量
6.3.2. 任何在資料平面執行的策略行為,都要儘可能減少向控制平面傳送請求(相對於網路流量速率來說)
6.3.3. 控制平面和資料平面之間的介面應當類似於作業系統核心空間和使用者空間之間的介面,為了防止提權攻擊,兩個系統之間的互動需要進行高度隔離
6.3.4. 控制平面是整個網路的信任授予者
6.3.4.1. 由於控制平面對網路行為的控制力度非常大,因此其自身的可信度至關重要
6.3.4.2. 零信任網路中存在這樣一個具有極高特權的參與者
6.3.5. 控制平面授予資料平面的某個參與者的信任應該具有時效性
6.3.5.1. 租用訪問令牌或短生命週期證書是實現這一原則的較合適的解決方案
6.3.5.2. 透過限制資料平面和控制平面進行憑據互動的時間視窗,能夠降低對網路進行物理攻擊的可能性