三大層面保護容器執行時安全
容器安全不是單一的操作而是多方位的過程,涉及採用安全程式碼控制及其他策略保護編譯環境,並通過程式碼分析和單元測試來護衛容器的內容。
某些時候,公司企業還需制定出生產系統中保護容器安全的計劃。下面我們就從執行時安全、平臺安全和編配管理器安全等三個層面,列出強化容器執行時安全可採取的步驟。
一、執行時安全
確保控制面板安全
管理員賬戶限制在2個,一個負責操作和編配容器,另一個負責系統管理。網路、物理及邏輯分隔在現場系統及雲/虛擬系統中都應實現。
資源使用分析
任何外部資源使用都應被看做潛在的攻擊點。所以,使用可監視容器內外部執行時訪問的第三方工具來限制這些進出口點是不錯的安全防護方法。
選擇正確的映象
建立可信映象儲存庫,確保生產環境只能從可信源拉取容器。公司企業還應購買可檢查應用簽名並拒絕非正確簽署容器的解決方案。
不容篡改的容器
實時阻止攻擊者篡改執行時容器的最簡便方法之一,就是禁用SSH連線。同時,公司企業還應跟蹤記錄任何修改或版本控制。
存活時間
存活數週或數月的容器是有可能遭遇新漏洞的。公司企業應該限制容器的存活時間在數小時或數天之內,以便更新映象和替換掉使用舊映象的容器。
輸入驗證
這是毫無疑問的。公司企業需驗證所有輸入資料的適宜性和策略遵從性,無論是人工驗證還是使用安全工具驗證。還應確保每個容器都接收正確的使用者和組ID。
二、平臺安全
很多容器執行時安全建議關注虛擬機器管理程式及底層作業系統的防護。但容器執行時安全應囊括更多,至少應包括以下平臺安全操作:
宿主作業系統/核心鞏固
通過選擇強化版本的作業系統,公司企業可以保護宿主作業系統不受攻擊和誤操作的損害,而且還可以用基準配置去除掉不必要的功能。設定使用者身份驗證和訪問角色以及二進位制訪問許可權也是明智的做法。
資源隔離與分配
容器安全的一個重要部分,是限制容器對底層作業系統資源的訪問。公司企業可以通過確保容器許可權按角色分配,以及保證容器不以宿主作業系統的root使用者許可權執行,來達成這一點,然後就可以採用帶名字空間和控制組功能的資源隔離模型了。
隔離工作負載
公司企業最好在網路層將容器與其引擎/作業系統組隔離開來。而且每臺虛擬機器上的容器數量最好做個限制,並根據信任等級/工作負載進行分組或分配到專用的雲VPC上。
三、編配管理器安全
容器執行時安全還應負責特定編配管理器框架中的容器。容器管理器通常都需要調整優化以確保安全。
具體建議有:
- 限制能獲得管理功能的人
- 隔離開發資源和產生資源
- 網路安全策略中將入站連線設為“預設禁止”
- 限制能獲取元資料的服務和使用者
- 確保資源請求方是經過授權的
- 快速修復和替換脆弱叢集服務及容器
- 從所有容器及節點處收集日誌
- 採用類似 CIS 關鍵安全控制那樣的安全檢查器和標準