V roce 2026 o 131% více nahlášených CVE denně než loni.

Závislosti

Skenování kontejnerů

Skenování kontejnerů prověřuje image kontejneru na známé zranitelnosti, zastaralé balíčky a rizikovou konfiguraci. Image spojuje vaši aplikaci se základním operačním systémem a vším mezi nimi, takže sken pokrývá mnohem víc než jen vaše vlastní závislosti. Zároveň čte hotovou image, což omezuje, co může vědět o tom, jak vznikla.

Aktualizováno

Jak skenování kontejnerů funguje

  1. Rozbalení image. Skener čte vrstvy image, aniž by je spouštěl.
  2. Výpis obsahu. Čte databáze balíčků operačního systému a manifesty aplikací, například package-lock.json zkopírovaný do image.
  3. Párování dat. Porovnává balíčky s daty o zranitelnostech od distribucí a z databází bezpečnostních upozornění.
  4. Kontrola konfigurace. Některé nástroje také upozorní například na běh pod rootem nebo na tajné klíče ponechané ve vrstvě.

Kde sken spouštět

Fáze Co vám dává Omezení
CI, po buildu image Zastaví build dříve, než se image odešle Snímek bezpečnostních upozornění z daného dne
Registr Znovu skenuje uložené image, jak přibývají nová upozornění Problémy najde až po zveřejnění image
Admission v Kubernetes Při nasazení zablokuje nenaskenované nebo neúspěšné image Vyžaduje politiku a způsob, jak řešit výjimky
Runtime Ukazuje, které image právě běží a co je načteno Vyžaduje agenta ve vašich clusterech

Nástroje pro skenování kontejnerů

  • Open source: Trivy a Grype jsou běžnou bezplatnou volbou a oba se snadno začlení do CI.
  • Vestavěné v registrech a platformách: skenování nabízí Docker Scout i hlavní cloudové registry.
  • Komerční platformy: Snyk a Anchore přidávají politiky, reporting a workflow.

Jak snížit počet nálezů

  • Začněte s menší základní image. Odlehčené nebo distroless image obsahují méně balíčků, takže se na ně vztahuje méně upozornění.
  • Pravidelně znovu sestavujte. Základní image dostávají opravy a image, která byla v březnu čistá, už čistá není.
  • Používejte vícefázové buildy. Kompilátory a nástroje pro build by do výsledné image patřit neměly.
  • Připínejte základní image přes digest. Tag se vám může pod rukama změnit, digest ne.
  • Stanovte priority. Mnoho nálezů zatím nemá opravu nebo leží v balíčcích, které vaše aplikace nikdy nepoužívá. Viz jak stanovit priority zranitelností.

Stejné páky platí i mimo image: jak snížit šum zranitelností je seřazuje pro každý skener, který provozujete.

Co sken kontejneru nevidí

  • Kompilovaný kód. Binárka v Go nebo Rustu v image nese jen omezená metadata a skener musí odvodit, co do ní vstoupilo.
  • Soubory bez záznamu o balíčku. Software přidaný přes curl nebo zkopírovaný do vrstvy nemá v databázi balíčků žádný záznam.
  • Co build použil a zanechal za sebou. Vícefázové buildy zahazují nástroje, které image vytvořily. Pokud byl některý z nich kompromitován, ve výsledné image o tom nic nesvědčí.
  • Odkud pochází. Sken popisuje image, ne build, který ji vytvořil.

Podrobněji viz co SBOM Docker image nezachytí; možnosti najdete v přehledu nejlepších nástrojů SBOM.

Nedávný příklad je PHP2Shell: oficiální image php kompilují PHP ze zdrojového kódu, takže runtime nemá žádný záznam o balíčku a na verzi je třeba se zeptat každé image.

Skenování image a zaznamenávání buildů

Skenery jsou správným nástrojem pro image, které jste nesestavili, a také pro clustery a konfiguraci. U image, které sestavujete sami, jde CRACI jinou cestou. Jako váš runner GitHub Actions vidí, co do buildu vstupuje, včetně základní image a vrstev jejího operačního systému, takže zaznamenává, co vstoupilo, místo aby to dodatečně odvozoval. Tyto SBOM pak dál kontroluje, jak vycházejí nové zranitelnosti.

CRACI neskenuje image, které jste nesestavili, clustery, image virtuálních strojů ani chybné konfigurace. Trivy ano, takže si jej pro ně ponechte. Viz CRACI vs Trivy.

Skenování kontejnerů: časté dotazy

Co je skenování kontejnerů?

Je to proces prověření image kontejneru na známé zranitelnosti, zastaralé balíčky a rizikovou konfiguraci, obvykle bez jejího spuštění.

Kdy skenovat image kontejnerů?

V CI po sestavení image a znovu v registru, jak se objevují nová bezpečnostní upozornění. Jediný sken vám zanechá snímek, který rychle zastarává.

Jaký je nejlepší bezplatný skener kontejnerů?

Nejrozšířenějšími bezplatnými možnostmi jsou Trivy a Grype. Oba běží v CI a pokrývají balíčky operačního systému i aplikací.

Jaký je rozdíl mezi skenováním image a SBOM?

SBOM vypisuje, co image obsahuje, kdežto sken kontroluje tento obsah na známé problémy. Mnoho skenerů nejprve sestaví SBOM a teprve pak ji páruje s bezpečnostními upozorněními.

Proč má moje image kontejneru tolik zranitelností?

Většinou kvůli základní image, která přináší balíčky operačního systému. Menší základní image a pravidelné nové buildy jich odstraní většinu.

Dokáže skener kontejnerů číst kompilované binárky?

Částečně. Binárky v Go a Rustu mohou nést určitá metadata o závislostech, ale u velké části kompilovaného kódu nemá skener z čeho vycházet, a musí tedy odvodit, co do něj vstoupilo.

Podívejte se, co vstoupilo do vaší image

Sestavte image na CRACI a porovnejte zaznamenanou SBOM s tím, co hlásí váš skener kontejnerů.

Rezervujte si demo