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