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