安全 Webhook 管理

一種更安全的方式來管理 Istio Webhook。

2019 年 11 月 14 日 | 作者:Lei Tang - Google

Istio 有兩個 webhook:Galley 和 sidecar 注入器。Galley 驗證 Kubernetes 資源,而 sidecar 注入器將 sidecar 容器注入到 Istio 中。

預設情況下,Galley 和 sidecar 注入器會管理自己的 webhook 設定。如果它們遭到入侵(例如,透過緩衝區溢位攻擊),可能會構成安全風險。設定 webhook 是一項高度特權的操作,因為 webhook 可能會監控和變更所有 Kubernetes 資源。

在以下範例中,攻擊者入侵了 Galley,並修改了 Galley 的 webhook 設定,以竊聽所有 Kubernetes 機密 (攻擊者修改了 clientConfig,以將 secrets 資源導向攻擊者擁有的服務)。

An example attack
一個攻擊範例

為了防範此類攻擊,Istio 1.4 引入了一項新功能,可以使用 istioctl 安全地管理 webhook。

  1. istioctl 而不是 Galley 和 sidecar 注入器來管理 webhook 設定。Galley 和 sidecar 注入器被降級,因此即使它們遭到入侵,也無法更改 webhook 設定。

  2. 在設定 webhook 之前,istioctl 會驗證 webhook 伺服器是否已啟動,以及 webhook 伺服器使用的憑證鏈是否有效。這可以減少伺服器準備就緒之前或伺服器具有無效憑證時可能發生的錯誤。

若要試用這項新功能,請參閱Istio webhook 管理任務

分享這篇文章