容器安全最佳實踐和常見威脅
瞭解容器安全挑戰並瞭解關鍵的容器安全最佳實踐,例如保護鏡像、harbor 等。
什麼是容器?
-
容器是一種操作系統級虛擬化方法,用於在單個受控制的主機上運行多個隔離的 Linux 系統(容器),它允許多個隔離的用戶空間實例和資源管理功能
-
容器從底層操作系統中抽象出應用程序,以實現更快的開發和更輕鬆的部署
有哪些不同類型的容器解決方案?
-
LXC (Linux Containers)
-
Docker
-
Podman
-
CoreOS AppC
-
Solaris Zones
-
FreeBSD Jails
-
AIX Workload Partitions
-
Kubernetes (從技術上講是一個編排調度平臺,這裏只是一個參考)
容器存在多久了?
容器技術已經存在了 10 多年,最近由於雲計算的普及而爆發
虛擬機和容器有何不同?
虛擬機
-
運行內核的單獨副本
-
通過虛擬機仿真與主機通信
容器
-
共享同一個內核
-
通過標準系統調用與主機通信
容器安全優勢
容器有哪些安全優勢?
應用程序隔離
-
容器允許容器內的進程以非 root 用戶身份運行,從而降低惡意代碼或用戶利用應用程序的風險
-
容器作爲獨立的運行時環境運行,具有獨立的文件系統和與其他容器和主機系統隔離的網絡棧
-
容器允許在同一主機上運行的應用程序相互隔離,並且只允許在容器之間交換預配置的端口和文件
減少攻擊面
-
正確配置的容器將僅包含運行應用程序所需的依賴項(庫和附加軟件),這可以減少漏洞攻擊面
-
容器與應用程序依賴項集成在一起,通過最大限度地減少驗證程序和補丁之間的兼容性的工作,可以實現更好、更快的漏洞修補過程
-
容器技術可以與底層主機加固工具相結合,增加深度防禦
容器安全風險
您應該注意哪些容器的安全風險?
增加了複雜性
- 容器的複雜性和可擴展性可能導致容器暴露比預期更多的信息。
未徹底隔離
-
該技術還沒有像虛擬機技術那樣孤立,它與主機系統共享底層內核和操作系統。如果系統內核級別存在漏洞,它可以提供進入主機上運行的容器的途徑。
-
容器中沒有用戶空間隔離,因此在容器中以 root 身份運行的進程也將在主機系統上以 root 身份運行
-
額外的軟件和庫仍然可以添加到物理或虛擬機主機等容器中,這可能導致漏洞風險增加
-
惡意代碼可能會突破容器並影響主機系統
容器安全縱深防禦
您應該如何考慮將縱深防禦實踐應用於容器?
映射到 STRIDE 的容器威脅
如果您不熟悉威脅建模,最好將其描述爲:
影響應用程序安全性的所有信息的結構化表示。本質上,它是從安全的角度看待應用程序及其環境的視圖
STRIDE 是一個流行的威脅建模框架,在這裏我將分享映射到該框架的容器威脅的非詳盡列表。
STRIDE 評估系統詳細設計。它對就地系統進行建模,主要用於識別系統實體、事件和系統邊界。
這裏有一些例子:
總結
我希望你喜歡這種關於容器安全挑戰的觀點,並學到了一些新東西。這篇文章並非旨在詳盡列出威脅和最佳實踐,而是提供一般的觀點和方向。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/-JYBl3hKG30UwChxSUM4cQ