Blog 24/7

skanowanie obrazów kontenerów

TAB. 1Hasłopo polsku
Po angielskucontainer image scanning
Którą formą pisaćpo polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie.
Inne formyskanowanie obrazów Dockera · skanowanie obrazów dockerowych · container scanning
KategoriaChmura, kontenery i łańcuch dostaw

Skanowanie obrazów kontenerów to automatyczne sprawdzanie obrazów Dockera i innych kontenerów pod kątem znanych podatności, przestarzałych pakietów, osadzonych sekretów, błędów konfiguracji i złośliwego oprogramowania, zanim obraz zostanie uruchomiony. NIST w wytycznych SP 800-190 zaleca narzędzia i procesy zarządzania podatnościami dostosowane do kontenerów, bo tradycyjne skanery często nie widzą podatności wewnątrz kontenerów i dają fałszywe poczucie bezpieczeństwa [1]. OWASP zaleca włączenie skanerów kontenerów do potoku CI/CD [2].

Jak działa

Obraz kontenera to w praktyce archiwum plików z systemem bazowym, bibliotekami i aplikacją. Skaner rozpakowuje go, rozpoznaje zainstalowane pakiety i porównuje ich wersje z bazami znanych podatności, czyli wpisów CVE.

Trivy wykrywa pakiety systemowe zainstalowane przez menedżery takie jak dpkg, yum i apk oraz pakiety języków programowania, w tym PHP, Pythona i Node.js [3]. Dla pakietów systemowych korzysta z biuletynów producentów dystrybucji, a nie z ogólnej bazy NVD, aby ograniczyć fałszywe alarmy (false positive) [3]. Dla bibliotek języków sięga do baz takich jak GitHub Advisory Database [3]. Przy skanowaniu obrazu Trivy domyślnie szuka podatności i sekretów [4], a wyniki zapisuje w pamięci podręcznej według identyfikatora obrazu i warstw [4].

Grype, drugie popularne narzędzie otwarte, skanuje obrazy, systemy plików i wykazy SBOM (wykaz komponentów oprogramowania) [6]. Obsługuje pakiety Alpine, Debiana, Ubuntu, RHEL i innych dystrybucji oraz ekosystemy języków, w tym PHP [6]. Do ustalania priorytetów używa między innymi EPSS i katalogu KEV [6].

NIST zaleca, aby skanowanie obejmowało cały cykl życia obrazu: od budowania, przez rejestr, do uruchomienia [1]. Schemat poniżej pokazuje to w uproszczeniu.

RYS. 1Skanowanie w cyklu życia obrazu

Co wykrywa skaner

NIST opisuje pięć głównych ryzyk samego obrazu [1]. Skanery pokrywają je w różnym stopniu.

Ryzyko wg NISTPrzykładZalecenie NIST
podatności w obrazieprzestarzała biblioteka w warstwie bazowej [1]skan wszystkich warstw, bramki jakości [1]
błędy konfiguracjikontener działa jako root, serwer SSH w obrazie [1]walidacja ustawień, minimalne obrazy bazowe [1]
osadzone złośliwe oprogramowanieobce warstwy o nieznanym pochodzeniu [1]ciągłe monitorowanie sygnaturami i heurystyką [1]
sekrety jawnym tekstemhasło do bazy w pliku obrazu [1]sekrety poza obrazem, podawane przy starcie [1]
obrazy z niezaufanych źródełobraz aplikacji od nieznanego autora [1]lista zaufanych obrazów i rejestrów [1]

NIST podkreśla, że obraz zbudowany z aktualnych składników po kilku dniach lub tygodniach przestaje być wolny od znanych podatności, bo odkrywane są nowe [1]. W kontenerach nie łata się działającego systemu, tylko buduje nowy obraz i wdraża go od nowa [1]. Dlatego skan obrazu jednorazowo przy budowaniu nie wystarcza.

W WordPressie

WordPress w kontenerach pojawia się w dwóch miejscach. Oficjalny obraz Dockera dla WordPressa jest utrzymywany w repozytorium docker-library i ma warianty z Apache, z PHP-FPM oraz z WP-CLI [7]. Narzędzie wp-env, służące do lokalnego budowania i testowania wtyczek i motywów, domyślnie działa na Dockerze i uruchamia kontenery wordpress i mariadb [8].

Skaner obrazu dobrze widzi warstwę systemową: wersję PHP, serwera WWW i bibliotek systemowych. Zależności PHP rozpoznaje przez pliki Composera; Trivy analizuje composer.lock oraz vendor/composer/installed.json [5]. Wtyczki i motywy zainstalowane z katalogu WordPress.org zwykle nie mają takiego pliku, więc ogólny skaner kontenerów ich nie rozpozna. Do nich potrzebne jest osobne skanowanie podatności pod kątem podatności we wtyczkach i motywach.

W obrazach WordPressa szczególnie ważne jest, aby nie umieszczać w nich pliku wp-config.php z hasłem do bazy i kluczami bezpieczeństwa i solami. NIST zaleca trzymanie sekretów poza obrazem i przekazywanie ich w chwili uruchomienia [1], a OWASP poleca w tym celu mechanizm Docker Secrets [2]; zob. zarządzanie sekretami.

Znaczenie

Skanowanie przesuwa wykrywanie podatności przed wdrożenie. NIST zaleca konfigurowanie reguł, które zatrzymują w procesie budowania obrazy z podatnościami o ocenie CVSS powyżej wybranego progu [1]. Taka bramka zamienia politykę bezpieczeństwa w automatyczną decyzję potoku.

Skaner nie zastępuje jednak innych środków. Wykrywa tylko znane problemy opisane w bazach. Nie wykryje podatności w autorskim kodzie aplikacji ani nowego zero-day. Nie chroni też przed ucieczką z kontenera (container escape) przez błąd w samym Dockerze; OWASP zaleca w tym celu aktualizowanie hosta i Dockera [2].

Dobre praktyki

  • Skan w potoku CI/CD. OWASP wymienia darmowe skanery Clair, Grype i Trivy oraz narzędzia komercyjne, między innymi Snyk, Anchore i Docker Scout [2]. Do wykrywania sekretów poleca ggshield, Gitleaks i TruffleHog [2].
  • Wszystkie warstwy. NIST wymaga widoczności podatności we wszystkich warstwach obrazu, nie tylko w warstwie bazowej, ale też w frameworkach i własnym oprogramowaniu [1].
  • Minimalne i zaufane obrazy bazowe. NIST zaleca obrazy bazowe tylko z zaufanych źródeł, częste ich aktualizacje i wybór minimalistycznych dystrybucji, takich jak Alpine Linux, aby zmniejszyć powierzchnię ataku [1].
  • Użytkownik bez uprawnień. OWASP uważa uruchamianie kontenera jako nieuprzywilejowany użytkownik za najlepszy sposób zapobiegania eskalacji uprawnień [2]. To zastosowanie zasady najmniejszych uprawnień.
  • Ponowne skany. Obrazy w rejestrze trzeba skanować cyklicznie, bo nowe wpisy CVE pojawiają się po zbudowaniu obrazu [1]. Wyniki trafiają do procesu zarządzania podatnościami.
  • Priorytety. Nie każda znaleziona podatność wymaga natychmiastowej reakcji. Wskaźniki EPSS i KEV w Grype pomagają wybrać te, które są realnie wykorzystywane [6].
TAB. 2

Przypisy

8
  1. [1] NIST SP 800-190: Application Container Security Guide · NIST
  2. [2] Docker Security Cheat Sheet · OWASP
  3. [3] Vulnerability — Trivy documentation · Aqua Security (Trivy)
  4. [4] Container Image — Trivy documentation · Aqua Security (Trivy)
  5. [5] PHP — Trivy documentation · Aqua Security (Trivy)
  6. [6] Grype: A vulnerability scanner for container images and filesystems · Anchore
  7. [7] Docker Official Image packaging for WordPress · Docker Library
  8. [8] @wordpress/env — Block Editor Handbook · WordPress.org
TAB. 3

Hasła w tym artykule

18
TAB. 4

Linkują tutaj

4

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com