讀零信任網路:在不可信網路中構建安全系統06授權

躺柒發表於2024-08-02

1. 授權

1.1. 授權決策不容忽視,所有訪問請求都必須被授權

1.2. 資料儲存系統和其他各支撐子系統是授權的基石

1.2.1. 子系統提供訪問控制的權威資料來源和評估依據,直接影響授權決策

1.2.2. 謹慎區分各子系統的職責和能力,需要將其嚴格隔離

1.2.3. 儘量避免將它們合併到一個單體系統實現

2. 授權體系架構

2.1. 策略執行元件

2.1.1. 在整個零信任網路中大量存在,部署時需要儘可能地靠近工作負載

2.2. 策略引擎

2.2.1. 依據事先制定好的策略,對請求及其上下文進行比較並做出決策,根據決策結果通知策略執行點對訪問請求放行還是拒絕

2.3. 信任引擎

2.3.1. 策略引擎呼叫信任引擎,利用各種資料來源分析並評估風險

2.3.2. 風險評分類似信用等級,能有效防護未知威脅,透過風險評分可以提升策略的安全性和魯棒性,又不至於因為考慮各種邊界場景而引入複雜性

2.4. 資料儲存系統

2.4.1. 授權決策依據的大量資料都存放在資料儲存系統中,各種資料庫構成了授權決策的權威資料來源,基於這些資料,可以將所有請求的上下文清晰地描繪出來

2.4.2. 一般使用認證階段已經確認的實體標識資訊作為資料庫的主鍵,使用者名稱和裝置序列號都是常用的實體標識

2.4.3. 資料儲存系統是授權決策過程的重要支撐系統

2.5. 元件職責各不相同

2.5.1. 視為不同的子系統,從安全的角度來看,將這些元件彼此隔離大有必要

2.5.2. 授權元件是零信任安全模型的核心構成要素,其安全性至關重要,可維護性也需要妥善評估

2.5.3. 不管出於任何目的,如果不得不把這4大元件合併到一個單體系統實現,那麼其可行性和安全性都必須謹慎評估,最好是儘量避免這種實現方式

3. 策略執行元件

3.1. 兩大職責

3.1.1. 和策略引擎互動完成授權決策

3.1.2. 授權決策結果的強制執行

3.1.3. 可以透過一個元件實現,也可以由兩個系統元件來分別實現

3.2. 策略執行元件的位置非常重要

3.2.1. 作為零信任網路在資料平面的實際控制點,它也可以被稱為策略執行點

3.2.2. 需要確保其部署位置儘量靠近終端,否則信任“收縮”到策略執行元件之後,零信任的安全性可能會受到影響

3.3. 策略執行元件確保策略引擎的授權決策對所有的網路請求生效,一般位於使用者流量必經的資料平面,透過呼叫策略引擎進行授權決策並強制執行

4. 策略引擎

4.1. 策略引擎基於系統管理員制定的策略和資料儲存系統中存放的資料進行授權決策,是零信任網路的關鍵元件,其執行環境應該被嚴格地物理隔離

4.1.1. 在策略引擎和策略執行元件之間進行程序級隔離還是必須的

4.1.2. 將策略引擎作為獨立的程序進行部署,能確保其不受策略執行元件因為Bug或漏洞而導致的網路攻擊的影響

4.2. 策略引擎是零信任授權模型中進行授權決策的元件

4.2.1. 接收來自策略執行元件的授權請求

4.2.2. 和預先制定好的策略進行比較,決定請求是否被允許

4.2.3. 決策結果返回策略執行元件進行強制執行

4.3. 低延遲授權系統適用於對網路活動進行細粒度的複雜授權

4.3.1. 一種可能的場景是作為策略執行元件的負載均衡器透過程序間通訊(IPC)機制而不是網路遠端呼叫發起授權請求,這種架構可以降低授權決策的時間延遲,此優勢在某些場景下很有吸引力

4.3.2. 授權的低延遲就至關重要

4.4. 版本控制系統

4.4.1. 傳統的變更管理流程不能很好地滿足策略儲存的需求,為了能透過程式自動對系統進行配置,版本控制系統應運而生

4.4.2. 使用版本控制系統,策略規則資料可以透過程式自動讀取和使用,載入特定版本的策略就像部署一個軟體一樣簡單,而不是像以前一樣依賴系統管理員手動載入期望的策略版本

4.4.3. 系統管理員可以使用成熟的標準軟體開發過程來管理策略的變更,比如程式碼回顧、持續整合等軟體開發管理的技術手段都能派上用場

4.5. 策略儲存系統

4.5.1. 策略引擎進行授權決策時所使用的規則需要被持久化儲存,策略規則雖然最終被載入到策略引擎模組中,但是其制定、儲存和管理最好獨立於策略引擎

4.5.2. 將策略規則存放在版本控制系統中是一種值得推薦的方案

4.5.2.1. 策略的變更可持續跟蹤

4.5.2.2. 策略變更的緣由可透過版本控制系統進行跟蹤

4.5.2.3. 策略配置的當前狀態可透過實際的策略執行機制進行驗證

4.6. 制定策略

4.6.1. 零信任網路策略使用信任評分對未知攻擊向量進行預估和防護,制定策略時引入信任評分機制,管理員可以很好地緩解未知威脅,這種威脅很難透過一條具體的策略進行匹配和處置,因此,應該儘可能地採用信任評分機制

4.6.2. 零信任策略尚未標準化

4.6.2.1. 在零信任網路框架下,良好的策略往往是細粒度的,粒度的粗細一般和網路的成熟度有關

4.6.2.2. 零信任模型和傳統網路安全在策略上的差異點主要體現在用於定義策略的控制機制不同

4.6.2.2.1. 零信任策略不基於網路具體資訊(如IP地址或網段),而是基於網路中的邏輯元件來制定策略
4.6.2.2.1.1. 網路服務
4.6.2.2.1.2. 裝置終端分類
4.6.2.2.1.3. 裝置終端分類

4.6.2.3. 基於網路中的邏輯元件定義策略,有利於策略引擎充分利用網路的當前狀態等各類資訊作為授權決策依據

4.6.3. 尚無策略描述標準

4.6.3.1. 目前成熟的零信任網路方案大多是非公開的,它們採用了私有的策略語言和格式

4.6.3.2. 標準的、互操作性強的策略語言,其價值毋庸置疑,但遺憾的是,標準化工作目前尚未實質性開

4.6.3.3. 策略不僅僅依賴信任評分,訪問請求包含的其餘屬性對策略制定和授權決策也不可或缺

4.7. 需要將策略定義和管理的權責開放給資源或服務的所有者,以便分擔管理員的策略維護壓力

4.7.1. 將策略定義許可權開放給服務所有者會引入一些潛在風險

4.7.2. 一種有效的流程是策略審查

4.7.2.1. 策略都是基於邏輯實體進行定義的,和針對物理實體定義策略的傳統方式相比,前者變更的頻率會低很多

4.7.3. 另外一種手段是實施分層策略

4.7.3.1. 策略引擎可以預設拒絕來自非信任源的寬鬆的策略定義和宣告

4.8. 策略引擎週期性地從權威清單庫讀取各類實體的屬性值,並基於一定的演算法進行風險評分計算

4.8.1. 對風險進行量化並不簡單,一種可行的方案是定義一系列專門的規則來對實體的風險評分進行估計

5. 信任引擎

5.1. 信任引擎作為安全系統的新面孔,基於靜態規則或機器學習演算法計算訪問請求的信任評分

5.1.1. 信任引擎是對特定的網路請求或活動進行風險分析的系統元件

5.1.2. 其職責是對網路請求及活動的風險進行數值評估,策略引擎基於這個風險評估進行進一步的授權決策,以確定是否允許此次訪問請求

5.1.3. 信任評分是對系統和元件當前信任程度的量化表示,策略制定者可以基於訪問資源所需的信任等級來定義策略

5.1.4. 信任引擎是使用歷史資料的主要元件

5.2. 成熟的信任引擎除了使用靜態規則,還大量採用機器學習技術來實現信任評分功能

5.2.1. 信任引擎一般會混合使用基於規則的靜態評分方法和機器學習方法

5.2.2. 機器學習透過將活動資料的一個子集作為訓練資料進行模型訓練,推匯出評分函式,這些訓練資料來自於原始觀測,每一條訓練資料都和一個信任或不信任的實體相關聯,即這些資料已經進行了明確的標定

5.3. 哪些實體需要評分

5.3.1. 應該對攻擊者的網路代理進行阻止,這樣可以保證合法使用者的網路代理不受影響

5.3.1.1. 需要將網路代理作為整體進行風險評分

5.3.2. 僅僅對網路代理進行整體評分是無法對抗其他攻擊向量的

5.3.2.1. 裝置本身也應該被單獨評分

5.3.3. 內部威脅場景

5.3.3.1. 一個惡意使用者使用多臺網咖裝置竊取機密的交易資料,信任引擎應該識別這類行為,併為後續的授權決策持續地給出較低的信任評分,即便此使用者換用其他裝置發起訪問也不能改變其信任評分

5.3.3.2. 使用者及其行為需要被單獨評估

5.3.4. 應該同時對網路代理及網路代理的構成要素(裝置、使用者及應用程式)進行風險評分

5.4. 在很多場景下,一個實時的綜合信任評分就足夠了,但這樣會對信任引擎的可用性提出更高的要求

5.4.1. 為了動態選擇最佳的評分函式,信任引擎必須知道被授權請求的上下文資訊,這種方案的構建和運維都會變得更加複雜

5.5. 信任評分的暴露存在風險

5.5.1. 實體的信任評分看似並不機密,但仍然需要儘量避免將信任評分暴露給終端使用者

5.5.2. 對於潛在攻擊者,當前信任評分無疑是一種提示訊號,讓他們可以知悉自己在當前系統中的信任度正在上升還是下降,從而進行更多的攻擊嘗

5.5.3. 隱藏信任評分也需要適度,不要讓終端使用者完全無法理解他們的行為是如何影響信任評分的,安全和易用需要適量平衡

5.5.4. 一種較好的折中方式是,不直接提供信任評分給使用者,但明確標識出能提升信任評分的影響因子

6. 資料儲存系統

6.1. 零信任網路的權威資料庫存放系統當前和歷史的各類資料

6.1.1. 策略引擎直接或間接地使用這些資料進行授權決策

6.1.2. 策略引擎、信任引擎甚至其他第三方系統都大量使用這些資料庫作為信任源,使用率較高

6.2. 用於授權決策的資料庫可以被視為系統當前和歷史狀態的權威資料來源

6.2.1. 資料庫存放的資訊被控制平面的各個系統使用,是授權的一個重要的決策依據

6.3. 存放在控制平面資料庫內的資訊透過授權系統,最終傳遞給策略引擎進行授權決策

6.3.1. 這些資料被策略引擎直接或間接使用

6.3.2. 當其他系統需要知道網路的當前狀態時,這些資料庫也是非常有用的權威資料來源

6.4. 按照功能劃分的資料庫

6.4.1. 清單庫

6.4.1.1. 清單庫是記錄資源當前狀態的權威資料來源

6.4.1.2. 使用者清單庫存放所有的使用者資訊

6.4.1.2.1. 使用者清單庫一般使用使用者名稱做主鍵

6.4.1.3. 裝置清單庫則記錄公司所有在冊的裝置的最新資訊

6.4.1.3.1. 裝置清單庫則使用裝置序列號做主鍵

6.4.2. 歷史庫

6.4.2.1. 歷史資料庫的種類可能多種多樣,基於這些資料可以進行的風險分析也無窮無盡

6.4.2.2. 無論哪類歷史資料,都必須能夠透過裝置清單庫或使用者清單庫的主鍵(如裝置序列號或使用者名稱)進行查詢

相關文章