
什麼是容器映像安全?
隨著容器化日益普及,安全疑慮也隨之增加。我們的 2024 容器映像安全指南提供最佳實務與建議,協助確保您的容器映像維持安全,並具備抵禦攻擊的韌性。

根據 Forrester,71% 的DevOps團隊使用容器與微服務來交付應用程式。容器輕量且模組化,因此您可以更新某項服務,而不必擔心會影響系統的其他部分。
然而,容器化也伴隨其自身的一系列挑戰。例如,我們需要處理與容器映像安全相關的問題。
每個容器映像都包含描述容器環境內容與硬體的中繼資料,例如組態詳細資訊、系統路徑與硬體存取權限。若這些中繼資料管理不當,可能會暴露敏感資料。
此外,薄弱的安全實務,例如不良的密碼管理或容器內的錯誤組態,可能為攻擊者開啟入侵途徑。這些弱點可能遭到利用以入侵容器,進而危及整體雲端基礎架構,並導致未經授權的存取、資料遺失或系統停機。
為了降低這些弱點帶來的風險,DevOps 團隊必須在容器映像管理生命週期的早期就整合安全性。實作「shift-left」安全方法——及早嵌入安全檢查與最佳實務——並持續監控容器映像,可確保在部署前發現潛在弱點,讓應用程式與基礎架構免受攻擊。
什麼是容器映像安全?
容器映像安全是一種全面性的方法,可確保您環境中使用的容器映像是從可信任來源建置而成,且不含弱點、惡意軟體或其他安全風險。
這包括驗證您 Dockerfile 中的基礎映像、程式庫以及任何自訂元件皆來自可靠來源,且未遭竄改。
通常,像 Alpine、Ubuntu 或 BusyBox 這類基礎映像會作為基礎層,其他元件則加入其上。每次新增都會建立新的映像層,而透過定期安全掃描來確保這些層的完整性至關重要。
容器映像安全掃描是此處眾多基礎功能之一,會針對映像掃描已知弱點。它使用專門工具掃描潛在風險,特別是尋找過時的程式庫、不安全的組態,或任何其他可能在正式環境中遭利用的弱點。
事實上,Docker 映像安全掃描適用於 Docker 映像。鑑於 Docker 被廣泛使用,掃描極為重要。它會尋找因執行過時軟體或不安全設定所造成的弱點,而這些問題最終會危及 Docker 執行階段環境。
為什麼映像安全在容器中至關重要?
在容器化環境中,映像安全是維持應用程式完整性與可靠性的基礎安全層級或層面。
由於容器映像封裝了應用程式執行所需的一切,任何遭入侵情況都可能引發高層級的安全事件,並影響您的整體基礎架構。
1. CVSS 評分
通用弱點評分系統(CVSS)是一套廣泛使用的框架,用於評估容器映像及其他軟體系統中弱點的嚴重程度。
CVSS 分數透過提供標準化的風險衡量方式,協助組織決定弱點回應的優先順序。這些分數是根據多項指標計算而得,包括弱點可被利用的程度、對系統的影響,以及可能造成的損害。CVSS 分數範圍為 0 到 10,分數越高表示弱點越嚴重。
CVSS 分數為 9.8 的弱點會被歸類為重大,表示它可能讓攻擊者在幾乎不需使用者互動的情況下遠端執行任意程式碼。這種嚴重程度通常需要立即修補以防止遭到利用。相對地,分數較低的弱點可能代表較不關鍵的問題,但仍需處理以降低整體風險。
透過使用 CVSS 評分,組織可以根據弱點的潛在影響,對應優先處理哪些弱點做出明智決策。這有助於簡化修補程式管理,並將資源集中於最迫切的安全問題。
2. 映像的內部儲存
將容器映像儲存在私有的內部登錄中,是提升container security的基本實務。
不同於任何網際網路使用者都可存取的公開登錄,私有登錄提供可嚴格管理存取權限的受控環境。這對於保護敏感或專有的容器映像免於未經授權的存取與潛在竄改至關重要。
私有登錄,例如 Docker Trusted Registry (DTR) 或其他企業級解決方案,相較於公開儲存庫具備多項優勢。它們讓組織能夠強制執行嚴格的存取控制,確保只有授權使用者可以上傳、下載或修改容器映像。這可降低惡意程式碼被引入映像中的風險。
此外,私有登錄通常內建安全功能,例如映像簽章,可用來驗證映像的真實性與完整性。透過使用數位簽章,組織可以確保映像來自可信任來源,且自建立以來未遭變更。
私有登錄也支援弱點掃描,有助於在映像部署前識別並修補安全問題。
3. 正式環境與非正式環境問題
在容器化環境中,為了有效管理安全性,區分正式環境與非正式環境非常重要。
正式環境是即時應用程式與敏感資料所在之處,因此需要嚴格的安全措施來防範威脅。這包括實作強大的存取控制、定期安全稽核,以及持續監控,以偵測並回應潛在弱點。
相較之下,非正式環境,例如開發、測試與預備環境,通常因需要快速實驗與反覆迭代,而採用較寬鬆的安全控制。然而,這並不表示可以忽視安全性。
若未妥善管理,在非正式環境中發現的弱點可能會影響正式系統。因此,在非正式環境中套用與正式環境標準一致的安全實務至關重要。
例如,非正式環境仍應採用安全編碼實務、確保測試資料獲得妥善處理,並套用弱點掃描。任何發現的弱點都應立即處理,以防止其流入正式環境。
在正式與非正式環境之間進行有效隔離,有助於將弱點影響即時系統的風險降至最低,並確保在應用程式生命週期的所有階段一致套用安全實務。
4. 映像完整性與驗證
維護容器映像的完整性,對於確保應用程式安全且依預期執行至關重要。映像簽章與密碼雜湊是用來驗證容器映像真實性與完整性的兩項關鍵技術。
映像簽章
映像簽章是指對容器映像套用數位簽章,以確認映像來自可信任來源,且自建立以來未遭竄改。此流程使用公開金鑰基礎架構(PKI)來建立與驗證簽章,提供一種確保映像真實無誤的方法。
透過驗證這些簽章,組織可以防止部署已遭入侵或惡意的映像。
密碼雜湊
密碼雜湊,例如 SHA-256,會為每個映像產生唯一的雜湊值,藉此提供另一層安全防護。此雜湊值可用於偵測任何未經授權的變更或損毀。
透過比較已部署映像與原始映像的雜湊值,組織可以識別映像是否已遭變更。定期進行完整性檢查有助於確保正式環境中僅使用安全且未經修改的映像。
5. 隔離機制與多租戶疑慮
容器在設計上可在主機系統上提供一定程度的隔離,而虛擬機器(VM)則提供完整的隔離層。
不同於使用 Hypervisor 建立具備各自作業系統之完全隔離環境的 VM,容器會共用主機系統的核心。這種共用核心會帶來明顯的安全挑戰,尤其是在多位使用者或多個應用程式於同一主機上運作的環境中。
某個容器化應用程式中的弱點可能讓攻擊者逃逸出容器並取得存取權,進而危及整個應用程式(無論是否為容器化)以及主機系統。
為了因應這些挑戰,容器內採用了數種隔離機制:
- 命名空間: Linux 命名空間在程序層級提供隔離,確保容器在程序、網路介面和檔案系統方面於各自獨立的命名空間中運作。雖然命名空間會限制程序只能看見並存取其自身容器,但並不能保證與主機或其他容器絕對分離。
- 控制群組(cgroups): Cgroups 會管理並限制分配給每個容器的資源,例如 CPU、記憶體和磁碟 I/O。這有助於防止某個容器獨占系統資源,並影響其他容器或主機系統的效能或穩定性。
- 安全模組: 像 SentinelOne 這樣的工具會強制執行額外的安全政策。該工具會套用強制存取控制政策,以限制檔案系統存取及其他能力。
除了隔離與資源管理之外,確保容器映像的完整性對於維持整體安全性至關重要。
以下說明如何保護您的容器:
- 映像簽署與驗證: 使用數位簽章確認容器映像的真實性,確保其來自可信任來源且未遭竄改。
- 密碼雜湊: 產生並比對密碼雜湊,以驗證容器映像未被修改或損毀。
- 執行階段監控: 實作持續監控,以偵測執行中容器的偏差或未經授權的變更,從而能快速回應潛在的安全性入侵。
透過採用這些做法,組織可有效管理與共用核心及多租戶環境相關的風險,提升整體安全性並防範弱點。
5. 執行階段安全性與漂移防範
即使容器已部署完成,維持其安全性仍然至關重要。
隨著時間推移,容器會出現某種「漂移」,也就是其執行狀態偏離原始映像,因為使用者或應用程式可能已更新執行中的執行個體,甚至發生未經授權的變更。任何程度的漂移都會引入原始部署時不存在的弱點。
這些可能包括:
- 組態漂移: 部署後環境變數、網路設定或其他組態的變更,可能導致錯誤組態與安全性問題。
- 軟體漂移: 容器內軟體的更新或修改可能引入新的弱點,或造成相容性問題。
- 檔案系統漂移: 執行期間累積的暫存檔或日誌可能影響容器的效能與安全態勢。
- 網路漂移: 網路設定或暴露連接埠的變更可能開啟新的攻擊向量,或中斷連線能力。
為了有效管理並降低漂移,請運用可對容器提供持續執行階段監控的工具。這些工具可偵測偏離原始組態與未經授權的變更,讓您能迅速採取行動處理任何問題。
實作自動化合規檢查有助於強制執行安全政策,並維持容器的預期狀態。
此外,採用不可變基礎架構實務—以替換而非修改容器—可進一步降低漂移風險,並確保強健的安全性。
如何執行容器映像安全掃描?
保護您的容器映像需要許多步驟。在整個 CI/CD 管線中,您應同時使用自動化工具與良好實務。
第一步是在建置過程中掃描容器映像中的安全性問題。這表示使用專門的掃描器檢查容器映像的每個部分,以找出任何已知弱點,包括常見弱點與曝險(CVE)。
這些掃描器會比對可能具有風險的程式碼或元件(相依性)。它們也會檢查設定,並指出任何過時的相依性或可能隱藏在其中的機密資訊。
下一步是實施嚴格的映像簽署規則,以確保只能使用先前已檢查過的映像。這稱為映像簽署,會使用程式碼簽章來驗證映像的來源,以及確認沒有人變更它或加入任何惡意程式碼。
同樣重要的是,應將映像儲存在私有容器登錄,而非公開登錄中。SentinelOne 的 Cloud Workload Protection Platform (CWPP) 可與 Snyk Container 良好整合,讓使用者能登入私有容器登錄。
此整合可讓事件分類處理更容易,防止安全事件在容器工作負載中擴散,並透過回溯至應用程式原始碼來修正正式環境中的問題。這可降低使用遭入侵映像的風險,並確保使用已驗證的映像。
最後,您應將定期合規檢查與弱點評估納入容器管理方式中。這些評估應依照設定時間執行。這可確保所有映像皆遵循您的安全規則,並符合您所需的任何法規要求。

CNAPP Market Guide
Get key insights on the state of the CNAPP market in this Gartner Market Guide for Cloud-Native Application Protection Platforms.
Docker 映像中的常見弱點
Docker 映像封裝了多層軟體,而每一層都隱藏著其弱點。
以下是一些最常見且棘手、可能出現的弱點:
1. 老舊且有弱點的基礎映像
Docker 映像通常依賴 Ubuntu、Alpine 或 CentOS 等基礎映像。若未保持最新狀態,這些映像可能含有已知弱點。
例如,基礎映像中的過時版本 glibc 或 openssl 可能使容器暴露於遠端程式碼執行(RCE)或權限提升攻擊。
因此,監控並更新基礎映像以納入安全修補程式並降低遭利用風險至關重要。
2. 不安全的第三方相依性
Docker 映像應用程式通常包含可能影響安全性的第三方程式庫與相依性。
以 Node.js 應用程式為例。它可能使用具有已知安全缺陷的 npm 套件,例如 lodash 中的 Prototype Pollution,或較舊 minimatch 版本中的正規表示式阻斷服務(ReDoS)攻擊。
為了因應這些風險,使用強大的弱點掃描工具至關重要。像 Snyk 和 OWASP Dependency-Check 這類軟體可協助識別並評估第三方程式庫中的弱點。
維持安全性的另一個關鍵步驟是定期更新相依性。透過套用安全修補程式並升級至更新且更安全的程式庫版本,您可以降低遭利用的風險。
此外,評估並盡量減少專案中納入的第三方程式庫數量,可大幅降低潛在弱點。請選擇維護良好且值得信賴的套件,以將攻擊面降至最低。定期檢視並稽核這些相依性,確保它們不會引入新的安全風險。
3. Dockerfile 設定錯誤
Dockerfile 設定中的錯誤可能使容器暴露於安全威脅。
常見的設定錯誤是預設使用 root 使用者,這可能導致駭客取得超出應有範圍的權限。此外,若將 API 金鑰或密碼等敏感資訊放在 Dockerfile 中或作為環境變數,一旦映像遭破解,未經授權的人員就可能取得存取權。
為降低這些風險,請遵循下列最佳實務,例如:
- 盡可能使用非特權使用者,以減少潛在攻擊向量
- 以多階段方式建置映像,確保敏感資訊不會出現在最終映像中
- 避免在環境變數中暴露敏感資訊,並使用安全的方法處理認證資料
4. 應用程式碼中未修補的 CVE
封裝於 Docker 映像中的應用程式碼可能含有尚未修復的常見弱點與曝險(CVE)。例如,Log4j 程式庫中的嚴重弱點 CVE-2022-23307,可能讓攻擊者藉由傳送精心構造的記錄訊息來執行任意程式碼。
定期使用 container image security tools like SentinelOne 掃描 CVE,是在駭客利用這些弱點之前發現並修補它們的關鍵。
5. 過多分層與臃腫
具有過多層或不必要軟體的 Docker 映像可能讓攻擊更容易發生。每一個額外的層都可能成為弱點,而不需要的軟體套件可能帶來安全問題。
例如,在正式環境映像中放入完整 JDK 而非 JRE,可能在未增加必要功能的情況下,開啟更多攻擊途徑。使用精簡的基礎映像與必要相依性可降低此風險。
為了解決這個問題,請選擇最小化的基礎映像,並僅納入應用程式運作所需的必要相依性。讓 Docker 映像保持精簡,不僅可降低其複雜度,也能減少潛在安全問題的數量。僅包含必要元件的精簡映像,可藉由限制攻擊者鎖定弱點的機會來降低遭利用的風險。
6. 網路選項設定錯誤
Docker 映像可能會開啟不必要的連接埠或使用不安全的網路通訊協定。惡意行為者可利用這些方式存取容器或在網路內部橫向移動。
例如,若容器上的 SSH 連接埠在缺乏適當防護的情況下保持開啟,可能使其成為 暴力破解攻擊 的目標。為防止此類弱點,落實網路安全最佳實務至關重要。其中包括 防火牆、網路命名空間,以及鎖定暴露的連接埠。
例如,
- 設定防火牆以封鎖未經授權的存取
- 使用網路命名空間隔離並保護您的容器
- 謹慎限制暴露的連接埠數量
以安全為前提管理網路設定,可大幅降低未經授權存取的可能性,並提升 Docker 環境的整體安全態勢。
保護容器化應用程式的基礎
容器映像安全性在現代應用程式開發與部署中扮演關鍵角色。隨著越來越多企業使用容器,保護這些核心建構模組變得至關重要。若要保護容器映像,您需要遵循以下最佳實務:
- 全面掃描與持續整合/持續部署(CI/CD)檢查:安全專家一再強調,在整個 CI/CD 流程中整合強大的掃描工具極為重要。這種方法有助於在開發週期早期識別並處理弱點,從而降低潛在風險。
- 採用最佳實務:透過使用最小化的基礎映像並實施嚴格的存取控制,企業可以限制攻擊面並提升整體安全性。
- 私有登錄庫與映像簽章:使用私有登錄庫與映像簽章來保護供應鏈,可確保容器映像經過審核,並受到保護以防未經授權的變更。
- 持續監控:持續監控建置與執行階段環境是必要的。透過持續追蹤潛在弱點與合規問題,組織可以確保穩健且安全的容器生態系。
透過優先重視容器映像安全性,企業可以減少其弱點、遵循規範,並為其容器化應用程式建立穩固的基礎。
使用 SentinelOne 的容器 Cloud Workload Security 保護您的 Docker 容器
隨著網路攻擊日益複雜,傳統安全措施往往已不足以應對。 SentinelOne’s Cloud Workload Security(CWS)for containers 是 Singularity™ 平台的一部分,提供專為有效應對這些現代威脅而設計的尖端解決方案。以下說明 SentinelOne 如何強化容器映像安全性:
- 即時威脅防護:Singularity CWS 會持續監控並保護您的容器化工作負載,防範勒索軟體和未知弱點等威脅。其 AI 驅動技術可確保快速偵測與回應,保護您在 AWS、Azure、Google Cloud 和私有資料中心中的環境。
- 事件調查與威脅狩獵:利用 Singularity Data Lake,SentinelOne 可提供對您工作負載活動的全面洞察。此工具有助於調查事件並執行威脅狩獵。Workload Flight Data Recorder™ 可透過移除有問題的工作負載並將財務損失與損害降至最低,協助從事件中復原。
- 廣泛相容性:SentinelOne 支援多種容器化工作負載,包括 14 種主要 Linux 發行版本、三種常見容器執行階段,以及受管與自營 Kubernetes 服務。
- 強大的威脅偵測:憑藉專為即時偵測與回應威脅而設計的能力,SentinelOne 的平台對分層式 cloud security 策略有重大助益。它也提供廣泛的資料儲存選項和內建 Kubernetes 資訊,為安全團隊提供串聯的可視性與回應工具鏈,以強化事件處理與威脅搜尋;隨著 Linux 成為攻擊者更大的目標,這些能力至關重要。
若要進行全面的容器映像安全稽核並親眼見證 SentinelOne 的實際運作,立即預約免費示範,體驗 SentinelOne 如何強化您的容器安全策略。
結論
如同大多數安全挑戰一樣,容器安全並不存在一體適用的解決方案。保護貴公司容器映像的技術、營運與組織層面,通常涉及多個團隊與職責,進一步增加了複雜性。與其讓這種複雜性阻礙您的工作,不如尋找能促進協作並協助您了解目標、風險與優先事項交會點的工具。
選擇能清楚說明其能力,並在其核心產品範圍之外的領域提供協助的容器安全解決方案至關重要。 SentinelOne’s Singularity Cloud Workload Security for Containers 可無縫整合至您的 DevOps 環境,提供符合您需求的強大可視性與自動化防禦,進而實現全面保護。
無論您是剛接觸容器安全,還是已擁有多年經驗,SentinelOne 都能引導您邁向更安全且更穩定的環境。
立即預約量身打造的示範,了解 SentinelOne 如何提升您的容器映像安全性!
常見問題
Docker 映像提供隔離性,但並非天生安全。報告經常顯示,超過 50% 的 Docker 映像 包含重大弱點,凸顯出採取強大安全措施的必要性。這些安全實務與工具會在開發與部署期間使用。
若要有效保護容器映像,必須實施數項關鍵實務,以處理潛在弱點並確保容器的完整性,包括:
- 掃描弱點:定期檢查映像中已知的安全問題。
- 使用精簡基礎映像:選擇僅包含必要元件的映像。
- 實作映像簽章:為映像簽章以驗證其真實性與完整性。
- 強制執行存取控制:使用角色型控制與安全驗證來限制存取。
常見弱點包括過時的基礎映像、不安全的第三方相依項目、Dockerfile 中的錯誤設定、應用程式程式碼中未修補的 CVEs,以及過多分層。
可以,Docker 映像可透過使用私有容器登錄或具有限制存取的儲存庫來設為私有。
雲端上的三大主要安全威脅是資料外洩、雲端設定錯誤,以及不安全的 API。



