讀零信任網路:在不可信網路中構建安全系統03威脅模型
躺柒發表於2024-07-29
1. 信任管理
1.1. 信任源自於人,並透過計算機可以執行的信任機制流入其他系統
1.1.1. 只有使用系統的人確信它確實按照其意願忠實地執行,該系統才能被認為是可信的
1.2. 信任管理是零信任網路的一個重要功能
1.3. 信任是如何產生的?
1.3.1. 你確實瞭解自己的家人
1.3.1.1. 你確實瞭解自己的家人
1.3.2. 你只是簡單地把所有能夠辨識的環境、與陌生人相關的所有資訊等,都納入考慮的範圍,然後判斷他們的可信度有多高
1.3.3. 在某些情況下,人們甚至可能連自己都無法完全信任,但是至少可以確信所採取的行動的確是自己所為
1.4. 零信任網路中的信任往往源自系統管理員
1.4.1. 如果不存在與生俱來的信任,那麼就必須從某個地方產生信任並小心地管理它
1.4.2. 系統管理員並不是總能有機會進行授權和授予信任
1.4.3. 當使用者數量急劇增多時,信任管理的工作量會非常大,而系統管理員的數量卻不可能無限制地隨之增加
1.5. 信任委託
1.5.1. 藉助信任委託,人們可以構建自動化系統,在無須人為干預的情況下,以安全可信的方式管理大規模增長的零信任網路
1.5.2. 系統管理員是可信的
1.5.3. 管理員就必須將責任委託給供應系統(Provisioning System),授予它建立新主機和為新主機授予信任的能力
1.5.4. 能夠返回給系統管理員的這一串信任通常被稱為信任鏈(Trust Chain),而系統管理員被稱為信任錨(Trust Anchor)
2. 威脅模型
2.1. 定義威脅模型是設計安全架構的第一步
2.2. 描述潛在的攻擊者及其能力、資源以及意圖攻擊的目標
2.3. 明確攻擊者的範圍
2.3.1. 按照攻擊者的能力高低進行排序,以便於人們按照從易到難的順序,合理部署相應的攻擊緩解措施
2.4. 薄弱的環節恰恰是攻擊者關注的地方
2.4.1. 聚焦於某個具體的威脅,並仔細思考緩解該威脅的具體措施
2.5. 流行的建模工具
2.5.1. STRIDE
2.5.2. DREAD
2.5.3. PASTA
2.5.4. Trike
2.5.5. VAST
2.5.6. 目標是一致的,都需要儘可能地列舉針對系統的威脅,然後進一步列舉能夠緩解這些威脅的系統和流程
2.6. 不同的威脅模型處理問題的視角也不盡相同
2.6.1. 聚焦於被攻擊者視為目標的資產
2.6.2. 獨立地審視每一個軟體元件,列舉針對每個元件的所有可能的攻擊
2.6.3. 使用與攻擊者相同的視角,把系統看作一個整體,分析攻擊者使用何種手段滲透進這個系統
2.7. 把攻擊者按照能力(造成的損害)從低到高排列
2.7.1. 碰運氣攻擊者
2.7.1.1. 指令碼小子
2.7.1.2. 利用那些眾所周知的漏洞和工具發起攻擊,廣撒網,碰運氣
2.7.2. 定向的攻擊者
2.7.2.1. 對特定的目標發起針對性的攻擊
2.7.2.2. 透過魚叉郵件、社交工程等手段發起攻擊
2.7.3. 內部人員
2.7.3.1. 擁有合法憑據的系統使用者
2.7.3.2. 外包人員、非特權的企業員工
2.7.4. 可信內部人員
2.7.4.1. 可信度很高的系統管理員
3. 零信任的威脅模型
3.1. RFC 3552描述了網際網路的威脅模型
3.2. 零信任網路遵循網際網路威脅模型來描述安全態勢,規劃緩解威脅的措施
3.3. 假設參與協議互動的端點系統自身並沒有被攻陷
3.3.1. 如果其中一個端點系統被攻陷,那麼阻止攻擊就變得非常困難了
3.3.2. 透過仔細設計安全協議,還是有可能縮小損害的範圍,降低損害的程度
3.4. Protocol Data Unit,協議資料單元
3.5. 即使與之通訊的端點系統本身是安全的,網際網路環境的特點也使得我們無法確認通訊資料包真的源自該端點系統
3.5.1. 零信任網路需要控制網路中的端點裝置,所以它對網際網路威脅模型進行了擴充套件,充分考慮了端點裝置被攻陷的情形
3.5.2. 面對端點裝置可能遭受的攻擊,通常的應對方式是首先對端點作業系統進行安全加固,然後採用端點系統安全掃描、系統活動行為分析等方式來進行攻擊檢測
3.5.3. 定期升級端點裝置中的軟體,定期更換端點裝置的登入憑證,甚至定期更換端點裝置本身等,也能夠緩解針對端點裝置的攻擊
3.6. 擁有無限資源的攻擊者本質上是無法防禦的,零信任網路充分考慮了這一因素
3.6.1. 零信任網路的防禦目標是那些常見型別(不是所有型別)的攻擊者
3.7. 零信任網路能夠防禦的攻擊者包括從低階別的“碰運氣攻擊者”到高階別的“可信內部人員”
3.7.1. 制定緩解措施具有更廣泛的適用性,能夠抵禦組織面臨的絕大多數攻擊,顯著提升組織的安全態勢
3.8. 零信任模型僅需要保證用於認證和授權操作的資訊的機密性,如儲存在磁碟上的憑據的機密性
3.8.1. 對端點系統安全性的進一步要求,如全盤加密等,是其他安全策略需要考慮的問題
3.9. 很難防禦的、相對小眾的威脅
3.9.1. 利用虛擬機器管理程式的漏洞複製虛擬機器記憶體等
3.9.2. 防禦這類威脅需要付出相當大的代價,可能需要專用的物理硬體
3.9.3. 多數零信任網路的威脅模型排除了這類攻擊
4. 強認證
4.1. 如果沒有辦法把物理世界中的人與其數字世界中的身份聯絡起來,那麼無論採用什麼方法都無法真正建立對一個人身份的信任
4.2. 人類多種感官的組合很難被欺騙
4.3. 計算機場景下的身份認證更像是透過電話與某人交談
4.3.1. 管理員採用檢查遠端系統的IP地址,並要求對方輸入口令的方式來完成身份認證
4.3.2. 僅僅採用這些方法進行身份認證是遠遠不夠的
4.3.2.1. 攻擊者能夠使用任意IP地址進行通訊,還能夠將自己置於兩臺遠端通訊的計算機之間發起中間人攻擊
4.3.3. 零信任網路中的每個訪問請求都需要經過強身份認證
5. X.509標準
5.1. 該標準定義了數字證書的標準格式,並能夠透過信任鏈認證身份
5.2. X.509證書是TLS協議(以前是SSL協議)用來驗證連線的主要機制
5.3. 大多數TLS應用例項僅配置了單向身份認證,即只是由客戶端驗證所訪問的資源是否可信,但是被訪問的資源沒有驗證客戶端是否可信,這種配置在零信任網路場景下來說存在明顯的問題
5.4. TLS協議本身支援雙向身份認證,即被訪問的資源也同樣可以驗證客戶端的身份
5.4.1. 這一步驟對私有資源的保護來說非常重要
5.5. X.509證書使用兩個金鑰:公鑰和私鑰
5.5.1. 公鑰需要被公佈出去,私鑰則被嚴格保密
5.5.2. 使用公鑰加密的資料,可以用私鑰解密,反之亦然
5.5.3. 人們可以證明其擁有正確的私鑰,就能夠在不暴露秘密的情況下驗證身份
5.6. 基於證書的身份認證機制可以讓通訊雙方確信對方擁有正確的私鑰,並且可以確信攻擊者透過搭線竊聽的方法無法竊取並重用金鑰
5.6.1. 該機制仍然依賴於一個秘密,而這個秘密可能會被竊取
5.7. 雖然身份憑據的合法性可以得到驗證,但是其機密性無法得到保證
5.7.1. 最好使用儲存在不同位置的多個秘密,根據這些秘密的組合授予訪問許可權
5.7.2. 攻擊者必須竊取多個秘密才能完成攻擊,這增加了攻擊的難度
5.8. 組合使用多個秘密的方式有助於防止未授權的訪問,但是仍然存在所有秘密都被竊取的風險
5.8.1. 所有身份認證憑據都應當有時間限制
5.9. 為身份認證憑據設定有效期限,不僅能夠最大限度地縮減憑據洩露或金鑰被盜的影響範圍,還可以給管理員更新金鑰和重建信任創造更多的機會,爭取更多的時間
6. 憑據輪換
6.1. Credential Rotation
6.2. 管理員更改或更新金鑰/口令的行為被稱為憑據輪換
6.3. 憑據輪換機制能夠有效防止秘密失竊,並在發生秘密失竊事件時及時將其登出,避免更大的損失
6.4. 人們應當儘可能避免使用難以輪換或者輪換成本很高的身份認證憑據,如硬體令牌/口令等
6.5. 身份認證憑據的輪換頻率通常與輪換所需的成本成反比
6.6. 輪換代價高昂的憑據示例
6.6.1. 需要外部機構簽發的數字證書
6.6.2. 人工配置的服務賬戶
6.6.3. 需要系統重啟才能重置的資料庫口令
6.6.4. 一旦更改就會導致所有已儲存的雜湊值失效的金鑰種子