Skip to main content
雲端安全

容器安全檢查清單:重要性與錯誤

透過我們的檢查清單、最佳實務與應避免的常見錯誤,探索必要的容器安全。了解 SentinelOne 如何有效強化您的容器防護策略。

作者 SentinelOne
容器安全檢查清單:重要性與錯誤

以密碼學中 Kerckhoff 原則的一種間接詮釋來說——即使攻擊者知道系統中除金鑰之外的所有資訊,密碼系統仍應保持安全。

這項原則是現代安全中一項重要事實的基礎,也就是 隱蔽性不一定等於防護。 同樣地,容器化作為現代軟體部署中的強大工具,若實作正確,可能可防止網路內的橫向移動,但無法阻止容器內的應用程式遭到入侵。

容器封裝了便利性,但若缺乏強大的安全性,也同時封裝了風險。毫不令人意外的是,在正式環境中執行的容器映像有 60% 充斥著已知弱點,為網路威脅敞開大門。

那麼,您該如何保護容器免於潛在入侵?答案始於一份全面的容器安全檢查清單,針對每一層的弱點加以處理,確保沒有任何缺口暴露在外。

在這篇文章中,我們將與您分享一份容器安全檢查清單,以及一些可協助您打造堅不可摧堡壘來保護容器的最佳實務。

什麼是容器安全?

容器安全 是指在整個生命週期中,保護容器化應用程式及其支援基礎架構免受弱點與威脅的過程。

這包括保護整個堆疊,從容器引擎、主機作業系統與協調平台(如 Kubernetes)到容器本身。

容器安全的一個關鍵部分是持續掃描,從基礎映像開始,一直到容器內的應用程式碼。

您應主動監控可能顯示攻擊跡象的執行階段風險,同時確保所使用的容器映像來自可信任來源,且不含已知弱點。

您也必須完美執行容器隔離。再次檢查任何薄弱點——權限提升、錯誤設定的網路等等。

您還可以採取其他多項措施,主動清除環境中的威脅。透過一套強健的容器安全協定或檢查清單,其中涵蓋各種實務、工具與政策,您可以保護整個容器生命週期——從開發與部署到執行階段與除役。

容器安全檢查清單的重要性

容器環境如同由許多動態元件組成的迷宮。若您想管理其安全性,就需要一套系統。隨手備妥指引或檢查清單,可縮短成功部署完全受保護的 Docker 或 Kubernetes 容器所需的時間。

除了節省時間之外,安全檢查清單 還有其他幾項優點:

  1. 標準化:將容器生命週期的每個步驟標準化,是確保一致性並防止重大錯誤的關鍵。當人員協作時,總是有發生人為錯誤的可能。針對工作任務提供明確指引,可讓所有人保持一致,並協助流程順暢運作。
  2. 全面涵蓋:容器化環境包含多個構成要素,例如映像、登錄庫、網路與執行階段。在將這些元素納入系統之前先進行檢查,應是強制要求。這可能包括映像掃描、存取控制、網路分段與執行階段監控。
  3. 效率與一致性:檢查清單只是確保容器安全的另一個步驟,讓您的營運在效率與一致性方面更具優勢。此外,您的團隊也將擁有安全最佳實務的參考依據,從而降低遺漏步驟的機率。
  4. 合規性:鑑於網路威脅與資料外洩事件日益增加,各國政府與監管機構已制定嚴格的法規要求。一份定義完善的容器安全檢查清單可透過落實最佳實務來協助確保合規,例如 role-based access control (RBAC)、映像掃描,以及遵循 Docker 與 Kubernetes 的 CIS 基準。它也可確保具備供稽核使用的日誌與監控,並符合 GDPR、HIPAA 或 PCI-DSS 等框架的要求。
  5. 主動式威脅緩解:在部署前,對整個容器生命週期進行兩次檢視始終是個好主意,而檢查清單可協助您做到這一點。第一次檢視可確保所有安全措施都已實施,第二次則作為驗證步驟,在任何遺漏的設定或新出現的威脅成為重大問題之前將其發現。

10 項關鍵容器安全檢查清單

既然我們已經確立容器安全檢查清單的重要性,現在是時候更深入了解您必須實施哪些安全檢查。

以下是一份 Docker 和 Kubernetes 安全檢查清單,簡明列出您的安全協定必須具備的所有步驟:

  1. 映像安全

  •  使用來自官方儲存庫、可信任且經驗證的基礎映像。
  •  限制可向登錄庫推送/提取映像的人員
  •  定期掃描容器映像中的弱點。
  •  封鎖弱點映像的部署,或限制其網路存取
  •  在推送映像前偵測金鑰或權杖等敏感資料
  •  確保映像精簡,僅包含必要的相依性。
  •  實施自動化映像修補與更新。
  1. 存取與權限

  •  避免以 root 權限執行容器。
  • 防止容器取得過高權限或進行不必要的系統呼叫。
  •  對容器和使用者實施最小權限原則。
  •  控制哪些容器可以修改特定檔案或目錄。
  • 使用 PodSecurity Admission 限制對敏感能力與資源的存取。
  •  使用角色型存取控制 (RBAC) 來限制對關鍵 API 端點及容器資源動作(例如 `get`, `list`、`watch`, 或 `secrets。`
  •  使用 多重要素驗證 (MFA) 來存取容器環境。
  1. 網路安全

  •  使用網路分段隔離容器(例如 Docker 網路原則)。
  •  透過在各種連接埠和通訊協定過濾流量來保護對外公開的服務。
  •  對傳輸中的資料使用加密通訊(例如 TLS)。
  •  搭配服務網格與深度封包檢測使用第 7 層控制,以強制執行 HTTP/HTTPS 原則。
  • 使用控制以 IP 為基礎和以連接埠為基礎的存取來限制第 3 層和第 4 層流量,以限制存取。
  • 確認所選的 Container Network Interface (CNI) 外掛程式支援 Kubernetes Network Policies。
  • 將輸入與輸出網路原則套用至所有工作負載,並設定預設拒絕所有流量的原則。
  • 確保關鍵元件(Kubernetes API、Kubelet API 等)未公開暴露。
  • 加密流量並使用 Mutual TLS (mTLS) 驗證叢集內工作負載之間的通訊。
  1. 執行階段安全

  •  監控容器執行階段行為是否有可疑活動。
  •  使用 Linux 安全模組限制容器對主機資源的存取。
  •  實施資源限制(CPU、記憶體)以防止阻斷服務攻擊。
  • 限制執行階段 API 和常駐程式存取,以防止竄改運作中的容器。
  •  即時記錄並稽核所有容器活動。
  1. 弱點與修補程式管理

  • 定期掃描容器和主機系統中的弱點。
  • 在持續整合流程中掃描組態檔案是否符合規範,並納入對安全性錯誤組態的自動化檢查。
  • 使用映像簽章(Docker Content Trust)驗證容器映像的完整性。
  • 執行靜態程式碼分析,以識別應用程式碼及其相依項中的弱點。
  1. 機密管理

  •  將敏感資料(API 金鑰、密碼)儲存在機密管理工具中。
  •  避免在容器映像或環境變數中硬式編碼機密。
  • 定期執行稽核並檢視誰可存取 Secrets API,且輪替加密金鑰。
  • 透過設定 Kubernetes API server 對 etcd 中的機密資料進行加密,來加密靜態資料,以提供額外的保護層。
  • 將權杖設定為較短的到期期間,以降低權杖遭入侵時的影響。
  1. 協調流程安全

  •  使用強式存取控制保護容器協調器(例如 Docker)。
  •  啟用角色型存取控制 (RBAC),並確保使用者與服務帳戶遵循最小權限原則。
  • 對協調器服務定義與組態實施版本控制(例如 Git)。
  •  為所有傳送至協調器控制平面的 API 請求啟用記錄(例如 Kubernetes 中的稽核日誌)
  1. 安全組態

  •  停用容器中不必要的服務或連接埠。
  •  對不需要寫入存取的容器使用唯讀檔案系統。
  •  盡可能確保容器為無狀態且不可變。
  1. 備份與災難復原

  •  定期備份容器組態與應用程式資料。
  • 利用 etcd snapshot save 命令執行時間點備份,以確保備份一致性。
  • 執行災難模擬,刻意讓叢集元件故障,並驗證還原程序是否如預期運作。
  1. 合規與稽核

  •  確保符合產業安全標準(例如 GDPR、PCI-DSS)。
  •  定期稽核容器安全政策、日誌與存取控制組態。
  •  定期對容器環境進行安全滲透測試。
Callout Background Image Gradient

CNAPP Market Guide

Get key insights on the state of the CNAPP market in this Gartner Market Guide for Cloud-Native Application Protection Platforms.

容器安全最佳實務

雖然我們已提供您容器安全檢查清單,但以下是一些可強化容器化環境的容器安全最佳實務:

  1. 使用可信任的基礎映像: 容器的基礎建立於映像之上。因此,請務必從信譽良好的來源取得映像。此外,請選擇自動化映像掃描與定期修補工具。使用可直接整合至 CI/CD pipeline 的工具,在基礎映像通過各個階段時進行檢查。
  2. 實作最小權限:嚴格控管容器權限。避免以 root 身分執行容器,並限制對系統資源的存取,以領先防範潛在威脅向量。使用 CIS benchmarks 強化主機 OS,確保僅執行最少必要服務,並考慮使用如 SentinelOne 之類的工具,在系統呼叫層級降低攻擊面。這點很重要,因為容器會共用主機核心。
  3. 保護 Infrastructure as Code (IaC) 安全: 為防止高風險組態進入正式環境,您可以使用 IaC 範本(例如 Kubernetes manifests),在部署前掃描政策違規與錯誤組態(例如權限過大的 IAM 角色或暴露的連接埠)。
  4. 雲端組態強化: 透過 VPC 與私有網路確保雲端資源隔離,並使用最小權限存取控制來強化雲端服務。針對雲端錯誤組態(例如開放的 S3 buckets 或暴露的管理介面)實作持續監控。
  5. 降低外部弱點: 第三方相依性中的弱點(多半在建置期間發現)可能會為應用程式帶來風險。您可以針對 OS 與應用程式相依性中的已知 CVEs 自動執行相依性掃描。定期更新程式庫與套件。
  6. 協調器與執行階段基準控制: 使用協調器安全控制(例如 Kubernetes admission controllers),在部署前強制執行安全政策。實作執行階段基準檢查(例如 Kubernetes CIS benchmarks),定期稽核協調器與執行中的容器。
  7. 網路分段:建立並套用政策以控制容器流量,並縮小攻擊面。容器化工作負載的微分段可限制入侵影響並提升網路安全。
  8. 資源限制: 透過對每個容器的 CPU、記憶體與儲存空間套用資源限制,您可以防止任何容器耗盡系統資源。若系統資源耗盡,您可能會面臨服務狀況與其他營運問題。
  9. 監控並記錄活動:您需要即時回應安全威脅。採用可提供容器行為可視性的工具,讓您能迅速識別並緩解威脅。
  10. 保護 CI/CD pipeline 安全: 確保您的 CI/CD pipeline 安全,方法是在容器生命週期的每個階段(從程式碼提交到部署)納入安全檢查。這有助於防止在開發過程中引入弱點。
  11. 自動化安全更新:使用自動化工具將安全修補程式與更新套用至容器與協調器,而不造成停機。
  12. 合規與政策強制執行: 定期稽核容器,以符合組織與法規政策。使用政策強制執行工具,在各環境中套用安全政策,並維持一致的安全標準與合規性。

應避免的常見容器安全錯誤

2019 年 2 月,Docker 團隊公開宣布了 CVE-2019-5736 弱點。由於這項弱點,攻擊者可覆寫主機的二進位檔案、取得主機系統存取權,並在容器內以 root 身分執行命令。

包括 AWS、RedHat 與 Microsoft Azure 在內的多個組織也發現了此弱點,並對其產品套用了修補程式。

在 2021 年,CVE-2021-3490 弱點利用了 Linux 核心中與 extended Berkeley Packet Filter (eBPF) 相關的缺陷。

這項弱點使攻擊者能從已遭入侵且可透過 Kubernetes 預設 seccomp 設定檔存取 eBPF 的容器內,在主機上執行任意程式碼。這些設定檔未限制所需的 syscalls,導致某些設定暴露於風險中。

這些事件顯示,容器安全中的一個小疏忽,就可能破壞應用程式的完整性,並使您的環境暴露於風險之中。

其他一些需要留意的常見容器安全錯誤包括:

  • 假設公開映像是安全的,可能導致部署遭到入侵。對外部映像若未經有經驗的開發人員徹底審查,切勿信任。
  • 讓容器暴露於過多開放通道會增加攻擊面。避免讓容器在具有 root 權限的情況下保持暴露,並檢視網路互動中的潛在弱點。
  • 在將程式碼程式庫整合至容器之前,未先審查並掃描其漏洞
  • 未妥善保存準確的記錄日誌,可能會使快速發現安全問題變得困難。
  • 忽略 CI/CD pipeline 安全性,例如在建置與部署期間跳過安全檢查,可能會在開發早期引入漏洞。

SentinelOne 容器雲端工作負載安全

您需要在所有節點上採用統一策略,才能有效保護所有容器化環境。Q2 是領先的金融服務供應商,為超過 1200 家銀行、信用合作社及金融機構提供服務。其在公有雲中擁有超過 2200 萬名終端使用者與 65,000 個容器,Q2 已部署 SentinalOne’s Cloud Workload Security for Containers 於其所有環境中。與 Q2 一樣,您也可以運用此解決方案的多項功能與優勢,掌握任何異常情況,並維持強健的安全態勢。

主要功能與優勢

  • 跨多雲環境的全面混合雲工作負載防護,包括 AWS、Azure、GCP 與地端資料中心
  • 阻擋勒索軟體、零時差漏洞利用、加密貨幣挖礦程式及無檔案攻擊
  • 以 eBPF 為基礎的 Agent 架構可在作業系統程序層級提供即時可視性,在不依賴核心模組的情況下提供深入遙測
  • 靜態 AI 引擎透過運用超過 5 億筆惡意軟體特徵資料集來分析檔案架構
  • 行為式 AI 引擎使用時間序列分析,評估一段時間內的模式,以偵測可能規避靜態偵測的惡意行為
  • 即時偵測橫跨伺服器 VMS、容器與 Kubernetes 的機器速度攻擊
  • 自動化復原,實現最大的工作負載可用性
  • 加速調查與 IR,強化威脅狩獵
  • 工作負載 Flight Data RecorderTM。
  • 以不妨礙作業的執行階段安全性加速創新。
  • 無核心相依性。低 CPU 與記憶體負擔。
  • eBPF 架構,兼具穩定性與效能
  • 支援 Docker、容器與 cri-o 執行階段
  • 自動擴展防護
  • 即時 CWPP
  • 支援自管與代管 K8s 服務
  • 支援 14 種主流 Linux 發行版本,包括 Amazon Linux 2023
  • 與 Snyk 整合(需另行購買)

此外,SentinelOne 的 Cloud-Native Application Protection Platform (CNAPP) 可透過以下功能協助您強化容器安全性,例如 Kubernetes Security Posture Management (KSPM) 與 Cloud Security Posture Management (CSPM),確保您的雲端原生應用程式維持合規與安全。

Product_Tours_Cloud-Workload.png

AI-powered cloud workload protection (CWPP) for servers, VMs, and containers, that detects and stops runtime threats in real time.

常見問題

若要確保容器安全,您需要採取涵蓋多個層面的廣泛方法。首先應:

  • 使用可信任的基礎映像,並經常掃描其漏洞,同時保持映像精簡以降低攻擊面。
  • 套用最小權限原則,將容器限制為僅具備其所需的權限,且絕不以 root 身分執行。
  • 持續即時監控容器活動以偵測可疑行為,並在從建置到執行階段的每個階段執行漏洞掃描。
  • 最後,請確保您的主機與協調器已透過安全修補程式與網路原則妥善強化,以限制容器通訊並降低潛在威脅。

Container Security Initiative (CSI) 有七個主要部分。包括:

  1. 掃描映像
  2. 保護執行階段
  3. 控制存取
  4. 保護網路
  5. 管理合規性
  6. 監控
  7. 回應事件。

SentinelOne Singularity Cloud Workload Security (CWS) 平台在容器安全中扮演重要角色。它在容器化應用程式的整個生命週期中提供防護。該平台可自動化執行執行階段防護、處理弱點,並強制落實合規要求。它可與 Kubernetes 和其他系統整合,即時查看並保護公有雲與私有雲中的容器。

容器安全生命週期有五個主要步驟:

  1. 映像安全: 從經過安全檢查的映像開始,並經常檢查它們以找出弱點。
  2. 建置安全: 確保容器建置流程遵循安全規則與方法。
  3. 部署安全: 在部署容器時,使用安全規則、授予最低必要權限,並設定安全網路。
  4. 執行階段安全: 監控容器是否有異常行為、使用執行階段安全規則,並維持網路隔離。
  5. 汰除: 停止使用容器時,務必清除所有私人資料。

深入了解 雲端安全

Decorative background gradient

您的雲端安全——30 分鐘內完成全面評估。

與 SentinelOne 專家會面,評估您在多雲環境中的雲端安全態勢,找出雲端資產、錯誤設定、秘密掃描,並透過 Verified Exploit Paths™ 排定風險優先順序。
Dark dashboard UI with purple-highlighted nav, summary cards showing 149, 7, 78, 56, 1.2 h, and a status table with linked purple text