Kubernetes上的運行時容器安全相關的常見安全風險和7個最佳實踐

      在過去十年中,容器化工作負載和 Kubernetes (K8s) 席卷了軟件世界。不幸的是,隨著 Kubernetes 成為企業架構的主要組成部分,它成為威脅參與者的高價值目標。一般來說,容器安全,尤其是Kubernetes 安全,是當今企業安全態勢的一個基本方面。本文將探討 Kubernetes 運行時安全性,這是 K8s 安全性最關鍵的方面之一,包括七個基本的 K8s 運行時安全性最佳實踐。

      Kubernetes上的運行時容器安全相關的常見安全風險和7個最佳實踐-南華中天

      什么是 Kubernetes 運行時安全性?

      Kubernetes 運行時安全是一組工具、實踐和技術,用于保護Kubernetes上運行的容器工作負載。換句話說,Kubernetes 運行時安全是工作負載保護和容器安全的子類別。Kubernetes 運行時安全性處理從容器實例化到終止的安全性。這意味著運行時安全性包括諸如容器是否以 root 身份運行(它們不應該!)之類的事情,但不包括諸如容器鏡像掃描之類的主題。

      Kubernetes 運行時安全挑戰和風險

      由于如今在 K8s 上運行的應用程序類型如此之多,因此對于容器或 Kubernetes 而言,沒有一套放之四海而皆準的運行時安全風險。然而,大多數企業都面臨著一系列 Kubernetes 運行時安全挑戰。

      以下是與 Kubernetes 上的運行時容器安全相關的四種常見安全風險:

      錯誤配置和不安全配置:2022 年,超過 900,000 個 Kubernetes 集群被發現在線暴露。這是一個很好的例子,說明 K8s 的不安全配置問題有多普遍。

      權限升級:威脅行為者獲得 K8s 環境的訪問權限并升級到更高權限的用戶(例如,root)是教科書式的 Kubernetes 運行時安全威脅。

      惡意軟件:容器鏡像中的惡意軟件是一個嚴重的問題。2022 年,Docker Hub 上有超過 1,600 個可用容器,其中包含加密礦工和 DNS 劫持者等惡意軟件。在環境中實例化這些容器之一會立即在網絡邊界后方引入威脅。

      K8s 和容器中的漏洞:即使容器本身不是惡意的,它們也常常容易受到具有已知漏洞利用的 CVE 的攻擊。

      Kubernetes上的運行時容器安全相關的常見安全風險和7個最佳實踐-南華中天

      原生 Kubernetes 運行時安全工具

      Kubernetes 提供了一組有限的本機工具和控件,可以限制運行時風險。這些包括:

      秘密:K8s 秘密是存儲 API 密鑰或密碼等信息的數據對象。使用 Secrets 可幫助企業將敏感數據排除在圖像和 Pod 規范之外。

      準入控制器:使用 K8s 準入控制器,企業可以限制對 Kubernetes API 端點的修改(但不能讀取)。

      網絡策略: Kubernetes 網絡策略類似于在網絡和傳輸層強制執行策略的傳統 ALLOW 和 BLOCK 防火墻規則。

      審核日志:審核日志提供有關集群中發生的操作的詳細信息。例如,可以審計 API 活動。這些日志可以允許分析和檢測惡意行為。

      RBAC:基于角色的訪問控制 (RBAC) 允許管理員根據實體的角色限制 K8s API 訪問。

      由于原生 Kubernetes 運行時安全工具不直接解決實時威脅檢測等用例,因此許多企業依賴更強大的工作負載保護工具。

      7 個 Kubernetes 運行時安全最佳實踐

      這六個 Kubernetes 運行時最佳實踐可以幫助企業限制許多 K8s 安全威脅。

      不要以 root 身份運行容器:以 root 身份運行容器會為特權升級攻擊設置威脅參與者。簡單地不以 root 身份運行可以減輕許多威脅。

      審計和自動化容器配置:公開暴露本應保密的數據或使數據庫實例面向互聯網是可能導致漏洞的錯誤配置示例。使用基礎架構即代碼(IaC)審核配置和自動化配置部署是限制風險的好方法。

      鎖定網絡層:除了 K8s 網絡策略和 ??RBAC 之外,IPS/IDS和 NGFW 等網絡安全工具可以在威脅到達工作負載之前檢測并阻止它們。此外,企業應盡可能避免暴露 Docker 守護程序套接字。

      Kubernetes上的運行時容器安全相關的常見安全風險和7個最佳實踐-南華中天

      避免特權模式:就像不以 root 身份運行容器一樣,企業應避免使用 –privileged 標志運行容器。–privileged 標志允許容器繞過各種確保系統安全的檢查。

      盡可能使用只讀文件系統:只讀文件系統可防止威脅參與者將惡意軟件直接寫入容器的文件系統。這會限制威脅行為者執行攻擊的能力。

      只運行受信任的容器鏡像:一旦管理員實例化受損鏡像,公共存儲庫就會威脅到容器運行時環境中的安全。只有使用可信的容器鏡像才能幫助企業限制來自公共鏡像存儲庫的鏡像風險。

      保護內核級別:SELinux、cgroups 和 AppArmor 等解決方案可以為 Kubernetes 運行時安全性增加一層保護。例如,AppArmor 可以定義限制對各種內核資源訪問的策略,以降低應用程序利用它們不應訪問的系統功能的風險。

      左移補充了有效的 Kubernetes 運行時安全性

      當然,安全的任何方面都不存在于真空中。運行時安全性很重要,但安全性在容器實例化之前就開始了。前面提到的一些 Kubernetes 運行時安全最佳實踐清楚地表明了這一點,左移安全的概念使這一點更加明確。在開發生命周期的早期集成安全性并在整個過程中提供強大的運行時保護,提供了兩全其美的方法。