一名滲透測試者在 15 分鐘內獲得了我們 Kubernetes 集群的 root 訪問權限。以下是他們利用的漏洞。 攻擊鏈: - 發現暴露的 Kubernetes 儀表板(我們的錯) - 儀表板有只讀服務帳戶(我們以為這是安全的) - 服務帳戶可以列出所有命名空間的秘密 - 在一個秘密中發現 AWS 憑證 - 使用 AWS 憑證訪問 EC2 實例配置文件 - 實例配置文件通過 IAM 擁有完整的 Kubernetes 管理權限 - 使用 kubectl 創建特權 pod - 逃逸到節點 - 獲得整個集群的 root 訪問權限 我們以為做對的事情: - 儀表板是只讀的 - 秘密在靜態時是加密的 - 網絡策略已到位 - 定期進行安全更新 我們錯過的事情: - 儀表板根本不應該暴露 - 服務帳戶需要最小特權原則 - 秘密不應包含 AWS 憑證(應使用 IRSA) - Pod 安全政策未強制執行 - 節點訪問未加固 修復花了 2 週: - 完全移除 Kubernetes 儀表板 - 為所有 pod 的 AWS 訪問實施 IRSA - 應用嚴格的 PSPs/Pod 安全標準...