受控 Kubernetes 威脅因素

已完成

在受控 Kubernetes 環境中,解決安全性問題牽涉到了解和減輕各種執行個體的威脅風險。 以下是特定執行個體中威脅因素的明細:

遭盜用的帳戶

  • 威脅因素:攻擊者可透過遭竊的認證、API 權杖或金鑰取得對 Kubernetes 叢集的存取權。 這可能會導致未經授權的存取、資料竊取和惡意部署。
  • 風險降低:實施強大的驗證機制、多重要素驗證 (MFA)、定期輪換登入資訊和最低權限存取原則。

易受攻擊或設定錯誤的映像

  • 威脅因素:有弱點或設定錯誤的容器映像一旦部署後,就可能會被攻擊者利用。 這些弱點可能包括過時的軟體、不安全的預設設定或內嵌的秘密。
  • 風險降低:使用映像掃描工具在部署前偵測弱點、實施映像來源原則,以及採用容器映像簽署流程。

環境設定錯誤

  • 威脅因素:Kubernetes 設定或部署描述元中的設定錯誤可能會使叢集遭受攻擊。 常見問題包括公開的儀表板介面、過於寬鬆的 RBAC 設定和不安全的端點。
  • 風險降低:請遵循安全設定的最佳做法、定期使用自動化工具來稽核設定,並採用許可控制器來強制執行原則合規性。

應用程式攻擊層級

  • 威脅因素:在容器中執行的應用程式可能容易受到傳統 Web 攻擊媒介的攻擊 (例如 SQL 插入式或跨網站指令碼 (XSS)),這可能會危害容器或導致進一步的叢集惡意探索。
  • 風險降低:採用應用程式安全最佳做法 (例如輸入驗證和輸出編碼),並使用 Web 應用程式防火牆 (WAF)。 在持續整合 (CI)/持續傳遞和/或部署 (CD) 管線 (包括靜態和動態分析工具) 中實作安全性。

節點層級攻擊

  • 威脅因素:如果攻擊者取得對 Kubernetes 節點的存取權,他們就有可能提升權限來控制整個叢集。 弱點可能來自過時的作業系統或 Kubernetes 元件。
  • 風險降低:使用最新的安全性修補程式來更新節點、使用網路原則和防火牆來限制對節點的存取,以及採用主機型的入侵偵測系統 (HIDS)。

未經授權的流量

  • 威脅因素:如果網路原則未正確設定,則可能會發生對叢集的未經授權的存取或從叢集中進行未經授權的存取,從而使攻擊者能夠竊取資料、傳播惡意程式碼,或惡意探索公開的服務。
  • 風險降低:實施嚴格的網路原則來控制輸入和輸出流量、使用命名空間隔離敏感性工作負載,並監視異常模式的流量。

要在受控 Kubernetes 環境中解決這些威脅問題,需要採用分層式安全性方法,其中包含 Kubernetes 特定做法和傳統安全性措施。 持續監視、定期稽核,以及在叢集的各個方面遵守最低權限原則是強大的 Kubernetes 安全性策略的基本組成部分。

顯示受控 Kubernetes 威脅因素範例的圖。

常見的攻擊技術

  • 惡意探索易受攻擊的映像 - 叢集中公開易受攻擊的應用程式,允許對叢集進行初始存取。 臭名昭著的案例:SolarWinds、Log4j
  • 存取公開暴露的應用程式 - 暴露在網際網路上的敏感性介面會帶來安全性風險。 某些熱門的架構並不打算暴露在網際網路上,因此預設不需要驗證。 因此,將它們暴露在網際網路上會導致對敏感性介面未經驗證的存取,從而可能導致惡意行為者在叢集中執行程式碼或部署容器。 已遭惡意探索的這類介面範例包括 Apache NiFi、Kubeflow、Argo 工作流程、Weave Scope 和 Kubernetes 儀表板。
  • 部署後門程式容器 - 攻擊者會在叢集中的容器中執行其惡意程式碼。 藉由使用 DaemonSets 或 Deployments 等 Kubernetes 控制器,攻擊者可確保叢集中的一個或所有節點中執行恆定數量的容器。
  • 濫用寬鬆授權的角色 SA – 服務帳戶 (SA) 代表 Kubernetes 中的應用程式身分識別。 根據預設,SA 會掛接至叢集中每個已建立的 Pod。 使用 SA 時,Pod 中的容器可以將要求傳送至 Kubernetes API 伺服器。 取得 Pod 存取權的攻擊者可以根據 SA 權限來存取 SA 權杖並在叢集中執行動作。 如果未啟用 RBAC,則 SA 在叢集中會擁有無限的權限。 如果啟用 RBAC,則其權限由與其相關聯的 RoleBindings 和 ClusterRoleBindings 來決定。
  • 逸出至主機 - hostPath 磁碟區會將目錄或檔案從主機掛接到容器。 有權在叢集中建立新容器的攻擊者可能會建立一個具有可寫入 hostPath 磁碟區的容器,並在底層主機上獲得持久性的存取權。 例如,後者可以藉由在主機上建立 cron 作業來達成。

顯示 Kubernetes 常見攻擊技術範例的圖。