什麼是零信任?

語言: CN / TW / HK

零信任(Zero Trust)是一種安全理念,而不是一種所有安全團隊都要遵循的最佳實踐。零信任概念的提出是為了給雲原生世界帶來更安全的網絡。零信任是一種理論狀態,即網絡內的所有消費者都不僅沒有任何權限,而且也不具備對周圍網絡的感知。

零信任的基礎

零信任網絡中的所有用户,包括機器和人類,都需要通過一個密碼學驗證的身份。要是實踐零信任,需要從引入用户身份開始,然後考慮限制用户的最小訪問權限。零信任實踐的基礎是認證和授權,這是比起傳統的安全策略來説,零信任中的認證變得更加嚴格,而授權將變得更加細化。舉個例子,傳統的授權是:“用户 A 可以訪問數據中心 D 嗎”,而在零信任的框架下將變成“在某個特定的時間點,在某個特定的地區,使用某個特定的設備的用户 A 可以訪問某個特定應用中的某個特定文件嗎?”

越來越細化的授權

在 Kubernetes 中,我們使用 RBAC 來管理權限。所有用户都是以組為基礎來授予或拒絕訪問權限,單個用户(服務賬户)會被授予過多的訪問權限。零信任的一個重要特徵就是更細的粒度,基於角色來授予訪問權限是不夠安全的。我們需要細化用户對單一資源在限定時間內的訪問權限。這正好與微服務背後的原則相契合——隨着服務和數據被分解成更小的部分,就有可能允許我們細化地位服務授予訪問權限。

有時間限制的授權

關於授權,我們往往會存在一種誤解,即一個用户一旦被認證和授權,他就成了一個“受信任”的用户,該用户就可以隨時的對系統進行訪問。然後,在零信任網絡中,沒有受信任的用户或設備。用户的每一次訪問都需要經過認證和授權。而且,授權還會有一個時間窗口,用户只能在這個規定的實踐窗口中執行規定的動作。

如何在企業內實行零信任網絡

因為網絡是企業系統的命脈之一,牽一髮而動全身,要在企業內實行零信任網絡,通常需要戰略高層管理人員接納零信任,通過自上而下的方式強加給安全團隊。然後漸進式的改進你的網絡,從一個關鍵業務開始,使其變成零信任的。

在零信任網絡裏,默認是拒絕一切訪問。需要在應用程序開發中,積極主動的允許來自應用程序的某些適當的請求。身份是零信任的基礎,而不是網絡。零信任的關注對象是訪問點、身份認證與授權和攻擊面。對於雲原生應用,因為它們的生命週期短暫且是動態的,為了實現零信任,你必須為每個訪問點配置一個規則,不斷更新應用程序的證書和訪問規則,這時候手動配置幾乎是不可能的,你必須實現自動化。

在 IstioCon 2022 的 主題演講 有提到, Istio 正在成為零信任的一個重要組成部分。其中最主要的是面向身份的控制,而不是面向網絡的控制。這方面的核心原則在谷歌白皮書 《BeyondProd:雲原生安全的新方法》 上有描寫 。

如果我們能將身份概念擴展到用户,併為我們提供靈活而豐富的策略機制來指定、監控和跟蹤訪問控制,我們就能達到一個可操作的零信任架構 —— 將用户、服務和數據統一到一個管理層。我所工作的公司 Tetrate 創建了 Tetrate Service Bridge —— 可供大型組織使用的管理平面,也是踐行了零信任的理念。

總結

零信任是一種安全理念,它的基礎是認證和授權。但比起傳統網絡安全方法來説,零信任具有如下特點:

  • 系統中的所有工作負載都有一個密碼學驗證的身份
  • 零信任網絡默認拒絕所有訪問
  • 具有更細粒度的訪問授權。

為了在雲原生應用中實行零信任,你需要:

  • 自上而下的推行
  • 從關鍵業務入口
  • 建立自動化工具

參考

下面有一些資料你可以參考: