什麼是容器安全性?
容器安全性涉及在 容器化應用程式 及其基礎架構的整個生命週期 (從開發到部署和執行階段) 中保護它們。它包含弱點掃描、組態管理、存取控制、網路分割和監控。容器安全性旨在將應用程式隔離的固有優點發揮到最大,同時將資源共用和潛在攻擊面的相關風險降到最低。透過遵守最佳實務和使用專門的安全性工具,組織可以保護其容器環境,防止未經授權的存取和 資料外洩 ,同時維持合規性。
容器安全性說明
容器 讓我們有能力 利用微服務架構 ,以更快的速度和更高的可移植性運作。容器也引入了固有的安全性優勢。工作負載 隔離、應用程式抽象以及容器的不可變性,都是採用容器的重要因素。
Kubernetes也提供內建的安全功能。管理員可定義以角色為基礎的存取控制 (RBAC) 政策,以協助防止未經授權存取群集資源。他們可以設定 Pod 安全政策和網路政策,以防止 Pod 和連接 Pod 的網路遭到某些類型的濫用。管理員可強制執行資源配額,以減輕攻擊者攻擊群集某個部分所造成的干擾。舉例來說,有了資源配額,攻擊者就無法透過剝奪叢集運作所需的其他資源來執行 拒絕服務攻擊 。
但正如您可能已經猜到的,沒有任何技術可以避免惡意活動。容器安全性,是指為了不僅保護您的應用程式,還保護您的容器化環境(從主機、執行階段防護和登錄到協調平台和底層系統)而實作的技術和實踐,這一點至關重要。
背景資料
容器安全性反映了 IT 架構不斷變化的本質。 雲端運算的 興起,從根本上改變了我們建立應用程式的方式。與科技同步發展要求我們調整保護它們的方法。
過去,網路安全意指保護單一周邊。容器使這個概念變得過時,它增加了多層抽象層,需要專門的工具來解釋、監控和保護我們的容器化環境。
與傳統平台相比,容器生態系統的工具眾多,而且解決的問題獨特,因此可能難以理解。與此同時,容器技術的廣泛採用讓我們有機會向左轉移 - 從 CI/CD 管道 的最早期階段到部署和執行時,都能確保容器的安全性。
但在深入瞭解容器安全性的細節之前,有必要先瞭解用於管理容器的平台。我們將專注於最大、最知名的平台之一 Kubernetes。
什麼是 Kubernetes?
Kubernetes 是領先的協調平台之一,有助於最佳化和實作以容器為基礎的基礎架構。具體來說,它是一個開放原始碼平台,透過自動化應用程式開發、部署和管理等流程,用於管理 container 化工作負載 。
作為一個被廣泛採用的開放原始碼平台,確保 Kubernetes 的安全對於部署容器化應用程式的組織而言至關重要。組織必須建立一個安全的環境,尤其是將開放原始碼納入第三方應用程式時。Kubernetes 擁有廣泛的生態系統和許多管理容器的整合功能,能夠建立自動化、系統化的流程,將安全性整合至其建立和部署管道的核心。透過利用 Kubernetes 的本機功能,例如 RBAC、pod 安全政策和網路政策,組織可以利用彈性的容器協調基礎架構,建立並維護穩固的安全性。
容器的優點
簡單來說,容器讓雲端原生應用程式的建置、部署和大規模擴充變得前所未有的簡單。對於雲端原生應用程式開發人員來說,容器的首要優點包括:
- 消除摩擦:開發人員可以避免將應用程式碼從測試階段移至生產階段時所產生的許多摩擦,因為套件化的應用程式碼可以在任何地方執行。
- 應用程式開發的單一真實來源:與應用程式相關的所有相依性都包含在容器中。這可讓應用程式在虛擬機器、裸機伺服器和公共雲端之間輕鬆且相同地執行。
- 更快的建立時間:容器的彈性和可攜性讓開發人員在生產力方面取得以前無法達到的成果。
- 開發人員的信心:開發人員可以放心地部署他們的應用程式,因為他們知道他們的應用程式或平台可以在所有作業系統上以相同的方式執行。
- 加強合作:使用容器的多個團隊可以處理應用程式或服務的個別部分,而不會中斷其他容器套件中的程式碼。
就像任何 IT 架構一樣,雲端原生應用程式也需要安全性。容器環境帶來了一系列針對其映像、容器、主機、執行時間、登錄和協調平台的 網路安全性挑戰 - 所有這些問題都需要解決。
瞭解攻擊面
考慮 Kubernetes 龐大的多層架構。每層 - 從程式碼和容器到雲端集群和第三方雲端服務 - 都會帶來一系列不同的安全性挑戰。
要確保 Kubernetes 部署的安全,就必須保護底層基礎架構 (節點、負載平衡器等)、可配置的元件,以及在群集中執行的應用程式 - 包括維護底層節點的勢態,以及控制對 API 和 Kubelet 的存取。此外,防止惡意工作負載在群集中執行,並透過嚴格的 網路控制隔離工作負載通訊也很重要。
容器執行時可能會受到編碼缺陷的影響,導致容器內的權限升級。Kubernetes API 伺服器可能配置不當,讓攻擊者有機會存取假設已鎖定的資源。容器化應用程式或 Kubernetes 節點上執行的作業系統中,可能存在導致 權限升級攻擊的 漏洞。

圖 1:容器攻擊面剖析
在這個系統中,當另一層有安全問題時,一層的問題就會被放大。
當然,容器也可能隱藏漏洞。同時,集裝箱可能會遮蔽視線。想像一下,一個不安全的映像被實體化為無數次獨立執行的容器。原本只有一條裂縫的堡壘,現在已成為龐大的裂縫網路。
隨著您部署的容器越來越多,維持系統作業和安全性的可視性變得越來越具有挑戰性。而這只是維持能見度,是無數目標之一。
圖 1 以及表 1 中概述的擴充詳細資料,提供了瞭解容器化應用程式攻擊面的起點。
值得注意的是,描繪是經過簡化的。實際上,攻擊者在嘗試利用容器化應用程式的漏洞時,有許多進路可以探索。防禦此技術堆疊不一定比保護其他環境和技術更令人生畏。容器化 只是提出了獨特的安全考量,組織需要處理這些考量,以建立安全且具彈性的基礎架構。
攻擊面面積 | 攻擊向量 | 說明 | 範例 |
透過網路 | 惡意網路流量 | 利用網路漏洞或設定錯誤存取容器環境。 | 掃描開啟的連接埠,利用設定錯誤存取工作者節點。 |
主機設定 | 設定錯誤的主機系統 | 利用主機作業系統中的錯誤設定來存取容器環境。 | 發現不安全的檔案權限,以存取敏感檔案,例如容器組態檔案。 |
主機漏洞 | 未修補的主機漏洞 | 利用主機作業系統的漏洞存取容器環境。 | 識別並利用未修補的核心漏洞,以取得工作者節點的 root 權限。 |
主機應用程式漏洞 | 未修補的主機應用程式漏洞 | 利用主機應用程式的漏洞來存取容器環境。 | 針對較舊版本的 Docker,利用漏洞在工作節點上取得 root 權限。 |
容器協調漏洞與錯誤配置 | 設定錯誤的 Container Orchestration | 利用集裝箱協調系統的設定錯誤,取得集裝箱環境的存取權。 | 利用 Kubernetes 群組中不安全的存取控制政策來存取 Pod 和服務。 |
受損的容器映像 | 攻擊者取得容器映像建立程序的存取權限 | 破壞容器映像建立程序,將惡意程式碼注入容器映像。 | 利用 CI/CD 管道 中的漏洞,在容器映像建立過程中注入惡意程式碼。 |
容器漏洞與錯誤配置 | 未修補的容器漏洞 | 利用容器本身的漏洞來存取容器環境。 | 針對在容器中執行的流行應用程式中未修補的漏洞,以取得存取權限。 |
貨櫃逃生 | 攻擊者取得容器的特權存取權 | 突破容器的隔離並存取主機系統。 | 利用容器執行時的漏洞或濫用主機系統的設定錯誤,以取得主機系統的 root 權限。 |
表 1:分解容器攻擊面
幸運的是,攻擊面的每一層都可以透過設計和製程考量,以及本機和協力廠商安全選項來強化,以降低工作負載受到攻擊的風險。您需要多方面的策略,但我們本節指南的目標就是為您提供這樣的策略。

圖 2:容器安全性跨越整個軟體開發生命週期
如何確保容器安全性
容器使用者需要確保他們擁有專門打造的 全堆疊安全性 ,以解決其容器化應用程式的弱點管理、合規性、執行 階段 防護和網路安全性需求。
容器網路安全性
容器化應用程式面臨的風險與裸機和基於虛擬機器的應用程式相同,例如加密劫持、勒索軟體和 BotNet C2。容器網路安全性 可主動限制不必要的通訊,並透過多種策略防止威脅攻擊您的應用程式。網路安全性的關鍵元件涉及 微區隔、存取控制、加密和政策,以維持安全且具彈性的環境。不斷地監控、日誌記錄和定期稽核有助於識別和糾正潛在的安全漏洞,及時的修補程式也能讓您的平台和基礎架構保持最新狀態。
左移安全工具可針對已知漏洞提供部署時保護,而 容器化的下一代防火牆則 可針對未知和未修補的漏洞提供保護。執行 第 7 層 深度封包檢查和掃描所有允許的流量,可辨識並防止惡意軟體進入集群並在集群內擴散,並阻止用於資料外洩和指揮與控制 (C2) 攻擊的惡意向外連線。身分式微分段有助於限制第 3 和第 4 層應用程式之間的通訊。
容器執行時安全性
雲端原生 運行時安全性 是在運行中的容器中找出新的弱點,並針對這些弱點保護應用程式的過程。使用容器的組織應該利用 增強的執行階段防護來 建立異常偵測所依賴的行為基線。運行時安全性可辨識並阻止偏離基線的惡意程序、檔案和網路行為。
使用縱深防禦策略來預防第 7 層攻擊,例如 OWASP Top 10,組織除了透過容器化的下一代防火牆來實作容器網路 安全性 之外,還應該使用 Web 應用程式和 API 安全性 來執行階段防護。
容器註冊安全性
將安全性導入容器建置階段意味著向左移動,而不是在執行時被動地移動。建置階段的安全性應該著重於移除弱點、惡意軟體和不安全的程式碼。由於容器是由程式庫、二進位檔和應用程式碼所組成,因此確保容器登錄的安全性至關重要。
容器註冊安全性的 第一步是為您的組織建立官方容器註冊。毫無疑問,已經存在一個或多個註冊處。安全性團隊的工作就是找到它們,並確保它們得到適當的安全保護,這包括設定安全性標準和協定。容器註冊安全性標準的首要目標應該以建立可信賴的映像為中心。為此, DevOps 和安全性團隊需要在政策上保持一致,首先要防止容器從不受信任的註冊表進行部署。
註冊表內的入侵或漏洞可輕易入侵執行中的應用程式。不斷地監控登記冊的弱點狀態變化仍然是核心的安全需求。其他需求包括鎖定託管註冊表的伺服器,並使用安全存取政策。
容器協調安全性
容器編排安全性 是制定適當存取控制措施的過程,以預防超權限帳號、透過網路進行攻擊和不必要的橫向移動所造成的風險。透過利用 身分存取管理 (IAM) 和 最低權限存苃,其中 Docker 和 Kubernetes 活動會被明確地列入白名單,安全性和基礎架構團隊可以確保使用者只根據適當的角色執行指令。
此外,組織需要保護 pod-to-pod 通訊,透過防止攻擊者在環境中橫向移動來限制損害,並確保任何前端服務不受攻擊。
主機作業系統 (OS) 安全性
主機作業系統安全 是保護作業系統 (OS) 免遭網路攻擊的做法。隨著雲端原生應用程式開發技術的發展, 對主機安全性的需求也與日俱增。
說到安全性,託管容器環境的作業系統可能是最重要的一層。危害主機環境的攻擊可能會讓入侵者存取堆疊中的所有其他區域。這就是為什麼主機需要掃描漏洞、加強以符合 CIS Benchmarks,並防止弱存取控制(Docker 指令、SSH 指令、sudo 指令等)。
容器安全性解決方案
保護您的容器化環境需要多層次的方法來處理潛在的弱點和威脅。近年來,組織可賴以在整個開發、部署和執行階段保護其容器化應用程式和基礎架構的容器安全性解決方案,已具備更高的精密度和能力。現代安全工具可有效降低外洩與資料洩漏的風險,促進合規性並維護安全環境,同時加速 DevSecOps 的採用。
貨櫃監控
監控註冊表 漏洞的能力對維護容器安全性至關重要。由於開發人員不斷地拆卸和更換容器,因此當嘗試判斷容器化環境中發生了什麼事時,能讓安全性團隊將時間序列戳記套用在容器上的監控工具至關重要。
用於容器監控的流行工具包括 Prometheus、Grafana、Sumo Logic 和 Prisma Cloud。Prisma Cloud 為雲端原生與傳統應用程式提供運行時威脅偵測與異常分析。它利用機器學習和行為分析來識別整個容器生命週期 (從建立到執行) 中的可疑活動。
貨櫃掃描工具
無論是在生產環境中部署容器之前,還是更換容器之後,都需要不斷地掃描容器的漏洞。開發人員很容易誤將有已知漏洞的函式庫納入容器中。同樣重要的是要記住,幾乎每天都有新的漏洞被發現。這意味著,今天看起來非常安全的容器映像,明天就可能成為散佈各種惡意軟體的工具。這就是為什麼維護 容器映像信任 是容器掃描工具的核心元件。
容器掃描工具包括 Aqua Security、Anchore、Clair 和 Prisma Cloud。Prisma Cloud 在註冊處和 CI/CD 管道期間,針對容器映像提供深層漏洞掃描。它能偵測已知的弱點、設定錯誤和惡意軟體,幫助您從一開始就建立安全的容器。
容器網路安全性工具
一旦部署,容器需要受到保護,以免有人不斷試圖竊取專屬資料或運算資源。容器下一代防火牆、 Web 應用程式與 API安全性 (WAAS)以及微區隔工具可檢查並保護所有進出容器的流量(南北向與東西向),賦予 Kubernetes 環境完整的 第 7 層 可視性與控制。此外, 容器化防火牆 可隨容器基礎架構快速變化的規模和需求而動態大規模擴充,保證業務運作的安全性和頻寬。
網路安全性工具包括 Calico、Flannel、CNI 外掛程式 (例如 Istio、Cilium)、Kubernetes NetworkPolicy 和 Prisma Cloud。Prisma Cloud 與 Kubernetes 等容器編排平台整合,提供網路威脅偵測。它可以確保容器之間東西向通訊的安全性,並防止環境內未經授權的橫向移動。
政策引擎
現代工具可讓 雲端安全性 團隊定義政策,這些政策基本上可決定允許何人及何物存取任何指定的微服務。組織需要一個框架來定義這些政策,並確保這些政策在高度分散的容器 Application 環境中得到一致的維護。
受歡迎的政策引擎包括 Cilium、OPA Gatekeeper、Neutrino、Kubernetes Network Policy API 和 Prisma Cloud。Prisma Cloud 可在您的容器部署中執行安全性政策,包括網路存取控制、資源限制和映像簽章。這可確保一致的安全勢態,並符合您組織的標準。
選擇正確的解決方案
在選擇解決方案來保護您的容器化環境時,請考慮組織的需求和風險領域。您需要先進的威脅偵測、弱點管理或嚴格的政策執行嗎?評估與現有工具和基礎架構的整合。與開發管道、協調平台和 SIEM 系統的無縫整合可改變遊戲規則。
請記住,有效的容器安全性並不僅限於個別工具。實作具有持續監控、主動掃描、強大政策和可靠網路安全性的分層方法,將可大幅提升您的容器化環境對抗威脅的彈性。
容器安全性常見問題
MITRE ATT&CK 矩陣是一個全面、全球皆可存取的網路敵人策略與技術知識庫。它由 MITRE 開發和維護,MITRE 是一個非營利組織,經營由美國政府贊助的研發中心。ATT&CK 代表敵對策略、技術和常識。
該矩陣可作為瞭解、分類和記錄網路敵人用來入侵系統、網路和 Application 的各種方法的框架。它旨在協助安全性團隊、研究人員和組織在網路安全生命週期的各個階段,包括威脅偵測、防護、回應和減緩。
MITRE ATT&CK 矩陣被組織成一系列類別,稱為戰術,代表敵人攻擊生命週期的不同階段。每種戰術都包含多種技巧,對手會在該階段使用這些技巧來達成目標。這些技術再細分為子技術,提供更詳細的資訊,說明網路攻擊中使用的特定方法和工具。
安全上下文是一組與計算系統中的程序、使用者或物件的安全設定有關的屬性或特性。在容器化環境的上下文中,安全性上下文定義了容器和 Pod 的安全性和存取控制設定,例如使用者和群組權限、檔案系統存取、權限等級,以及其他安全性相關的設定。
Kubernetes 允許您在 Pod 層級或容器層級設定安全性上下文。透過設定安全上下文,您可以控制容器化應用程式的安全設定和限制,確保它們以適當的權限和安全的方式執行。
可在安全上下文中定義的一些關鍵屬性包括
- User ID (UID) 和 group ID (GID):這些設定決定容器或 pod 將以何種使用者和群組執行,從而控制對資源和系統功能的存取。
- 權限升級控制:此設定決定容器中的進程是否可以取得額外權限,例如以根使用者身份執行。透過停用權限升級,您可以限制受入侵容器的潛在影響。
- 檔案系統存取:安全性上下文可讓您定義容器存取檔案系統的方式,包括唯讀存取或以特定權限掛載磁碟區。
- Linux 功能:這些設定控制容器可以使用的特定功能,例如網路綁定、系統時間設定或管理任務。
- SELinux 上下文:安全性上下文可用於定義容器或 pod 的 SELinux 上下文,強制執行強制存取控制政策,並進一步隔離容器與主機系統。
透過在 Kubernetes 中正確配置安全上下文,您可以增強容器化應用程式的安全性、強制執行最少權限原則,並保護整體系統免受潛在的安全風險。
程式碼安全是指為了確保軟體程式碼的撰寫與維護安全而實作的實務與流程。這包括識別和減緩潛在的弱點,並遵循安全編碼的最佳實務來預防安全風險。程式碼安全包含各個層面,例如:
- 靜態應用程式安全測試 (SAST):在不執行程式碼的情況下,分析原始程式碼、bytecode 或二進位程式碼,以找出潛在的安全漏洞。
- 動態應用程式安全測試 (DAST):測試執行中的應用程式,透過模擬攻擊和分析應用程式的行為來找出安全漏洞。
- 軟體組成分析:掃描和監控程式碼中使用的相依性 (函式庫、架構等),以找出已知的弱點,並確保它們是最新的。
- 安全編碼實務:遵循指導方針和最佳實務 (例如 OWASP Top Ten Project) 來撰寫安全程式碼,並避免導入弱點。
政策是特定的安全規則和準則,用於在 Kubernetes 環境中強制執行安全需求,而 IaC 則是使用程式碼管理和佈建基礎設施資源的更廣泛實務。兩者可一起使用,以改善 Kubernetes 環境內的安全性、一致性和自動化。
使用 IaC,您可以定義和管理網路政策、防火牆規則和存取控制等安全性設定,作為基礎架構定義的一部分。例如,您可以在 Kubernetes 清单中包含 Kubernetes 网络策略、入口和出口配置以及基于角色的访问控制 (RBAC) 策略,然后将其作为基础架构即代码进行管理。
Terraform、CloudFormation 和 Kubernetes 清单等工具可让您以一致和自动化的方式管理基础架构资源和安全配置。透過在 IaC 定義中加入安全性措施,您可以改善容器和 Kubernetes 環境的整體安全性,並確保符合最佳實務與合規性需求。
政策即程式碼 (PaC) 是指在版本控制系統中,將基礎結構政策、合規性和安全性規則編碼為程式碼,並加以管理。PaC 可讓組織自動執行與稽核其政策,確保其基礎架構依據所需標準建立與維護。藉由將這些政策整合至政策即程式碼流程中,或作為基礎架構建置的一部分,組織可以確保其工具符合必要的標準和最佳實務。
警報處理是一種指定您希望警報何時通知您或異常的偏好方法。設定包括保守、溫和及進取。偏好依據問題的嚴重性而定 - 低、中、高。
- 保守會產生嚴重性高的警報。
- 中度」會產生高度和中度嚴重性警報。
- Aggressive(進階)會產生高、中、低嚴重性警示。
安全身分儲存是指以高度保護和加密的方式,安全儲存敏感資訊(例如密碼、加密金鑰、API 令牌和其他機密)的解決方案和機制。秘密保險庫和硬體安全模組 (HSM) 是安全身分儲存的兩個常見範例。
Secret Vaults 是以軟體為基礎的安全儲存系統,專為管理、儲存及保護敏感資料而設計。它們採用加密和存取控制機制,以確保只有授權使用者或應用程式才能存取儲存的機密。秘密保險庫的範例包括 HashiCorp Vault、Azure Key Vault 和 AWS Secrets Manager。
Secret Vault 功能
- 靜止與傳輸中的加密
- 細緻的存取控制
- 稽核記錄與監控
- 鑰匙輪換與版本管理
- 與現有的身分與存取管理 (IAM) 系統整合
硬體安全模組 (HSM) 是專用、防竄改和高度安全的實體裝置,可保護和管理密碼金鑰,執行加密和解密作業,並提供執行敏感密碼功能的安全環境。HSM 的設計可防止實體和邏輯攻擊,確保儲存金鑰的完整性和機密性。HSM 的範例包括 SafeNet Luna HSM、nCipher nShield 和 AWS CloudHSM。
HSM 的主要功能
- FIPS 140-2 Level 3 或更高的認證(美國政府的加密模組標準)
- 安全的金鑰產生、儲存與管理
- 基於硬體的隨機數生成
- 竄改偵測與保護
- 支援多種加密演算法
秘密保管庫和 HSM 都旨在提供安全的身分儲存解決方案,降低未經授權存取、資料外洩和其他安全事故的風險。在兩者之間作出選擇取決於安全需求、預算和整合需求等因素。