什麼是零信任?

語言: CN / TW / HK

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

零信任的基礎

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

越來越細化的授權

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

有時間限制的授權

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

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

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

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

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

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

總結

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

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

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

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

參考

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