本文說明如何使用 Kubernetes 資安態勢掃描,找出並降低 GKE 中的安全性風險。本文假設您已瞭解下列事項:
Kubernetes 資安態勢篩檢是資安態勢資訊主頁的一項功能,可協助您主動找出並解決 Google Kubernetes Engine (GKE) 叢集中的安全漏洞。Kubernetes 資安態勢掃描提供下列功能:
本文適用於監控叢集安全問題的資安專家。如要進一步瞭解我們在 內容Google Cloud 中提及的常見角色和範例工作,請參閱「 常見的 GKE 使用者角色和工作」。
如要瞭解如何啟用及使用 Kubernetes 安全防護機制掃描功能,請參閱「自動稽核工作負載的設定問題」。
定價
在 GKE 中使用這項功能無須額外付費。
新增至 Cloud Logging 的項目須遵守 Cloud Logging 定價。
關於工作負載設定稽核
在 GKE 部署的工作負載應採用強化設定,限制攻擊面。手動檢查叢集中的工作負載,找出設定問題,可能難以大規模進行。您可以使用資安態勢資訊主頁,自動稽核多個叢集中所有執行中工作負載的設定,並傳回可做為行動依據的評分結果和具體建議,協助您提升資安態勢。
工作負載設定稽核會根據Pod 安全性標準中的部分政策,檢查每個已部署的工作負載。工作負載設定稽核會在 Google 基礎架構上進行,不會使用節點上的運算資源。
工作負載設定稽核的優點
- 自動偵測所有工作負載中已知的設定問題。
- 取得可行的建議,強化資安態勢。
- 使用 Google Cloud 控制台,概略瞭解設定問題。
- 使用記錄功能取得可稽核的疑慮追蹤記錄,以便改善報表和可觀測性。
工作負載設定稽核的運作方式
針對每個符合條件的已部署工作負載,GKE 會持續掃描工作負載的規格,並將欄位和值與基礎安全性政策中定義的控制項進行比較。例如,含有 spec.containers.securityContext.privileged=true 的 Pod 違反基準 Pod 安全性標準,而 spec.securityContext.runAsNonRoot 欄位設為 false 的 Pod 則違反受限制標準。如要查看 GKE 檢查的安全性政策清單,請參閱「工作負載設定稽核會檢查哪些項目?」一節。
掃描並發現問題後,GKE 會根據內建的安全強化措施,評估設定問題的嚴重程度。GKE 會指派嚴重程度評分,協助您判斷回應問題的速度。Google Cloud 控制台會顯示結果和建議採取的應變措施建議。GKE 也會將項目新增至 Cloud Logging,以供追蹤和稽核。
工作負載設定稽核會檢查哪些項目?
| 疑慮 | 欄位 | 接受的值 | 嚴重性 |
|---|---|---|---|
主機命名空間 共用主機命名空間的 Pod 可讓 Pod 處理程序與主機處理程序相互通訊,並收集主機資訊,因此可能會導致容器跳脫。 |
|
|
高 |
特殊權限容器 特殊權限容器具備近乎毫無限制的主機存取權。這類容器會與主機共用命名空間,而且沒有控管群組、seccomp、AppArmor 和功能限制。 |
|
|
高 |
主機通訊埠存取權 將主機通訊埠公開給容器,可能會讓容器攔截使用該通訊埠的主機服務網路流量,或是略過 NetworkPolicy 等項目的網路存取控管規則。 |
|
|
高 |
非預設功能 指派給容器的功能可能會導致容器跳脫。 |
|
|
中 |
掛接主機路徑磁碟區
|
spec.volumes[*].hostPath |
未定義或空值 | 中 |
非預設 預設的 |
|
|
中 |
不安全的 sysctl 遮罩 Pod 可設為允許透過 |
spec.securityContext.sysctls[*].name |
|
中 |
以非根使用者身分執行 如果映像檔中的 |
|
true |
中 |
提權 容器可以明確設為允許在執行時提權。這樣一來,在容器中建立的程序就能執行 set-user-id、set-group-id 或檔案功能執行檔,進而取得執行檔指定的權限。缺少預防性安全性控管機制會導致容器跳脫的風險提高。 |
|
false |
中 |
不受限的 AppArmor 設定檔 容器可以明確設為不受 AppArmor 限制。 這項設定可確保容器不會套用任何 AppArmor 設定檔,因此不會受到這些設定檔的限制。停用預防性安全性控管機制會提高容器跳脫的風險。 |
metadata.annotations["container.apparmor.security.beta.kubernetes.io/*"] |
false |
低 |
此外,GKE 會檢查是否有任何 RBAC RoleBinding 或 ClusterRoleBinding 參照下列任一使用者或群組:
system:anonymoussystem:authenticatedsystem:unauthenticated
如果存在參照這些使用者或群組的 RBAC 繫結,資安態勢資訊主頁會顯示名為「Effectively Anonymous Users Granted GKE Cluster Access」的發現項目,嚴重性為「中」。這些使用者和群組實際上是匿名的,不應在 RoleBindings 或 ClusterRoleBindings 中使用。詳情請參閱「避免預設角色和群組」。
關於安全性公告的顯示方式
在 GKE 中發現安全漏洞時,我們會修補該漏洞,並發布安全性公告。如要瞭解識別、修補程式和時間軸,請參閱「GKE 安全性修補程式」。
資安態勢資訊主頁會顯示影響叢集、工作負載和標準模式節點集區的安全性公告。這項功能是安全態勢資訊主頁的 Kubernetes 資安態勢功能之一,建立 Autopilot 或 Standard 叢集時會自動啟用。如要啟用 Kubernetes 資安態勢掃描功能,請按照「自動稽核工作負載的設定問題」一文中的操作說明操作。
Google Cloud 控制台會顯示詳細資料,例如受影響的叢集、版本,以及建議升級的修補程式版本,以減輕漏洞影響。您只會看到叢集 Google Cloud 區域或可用區中可採取緩解措施的公告。
如要查看已註冊 Kubernetes 資安態勢掃描的叢集公告,請前往資安態勢資訊主頁:
影響您環境的任何可用安全性公告,都會顯示在「安全性公告」部分。