Bezpieczny obraz kontenera powinien przejść kontrolę od wyboru obrazu bazowego aż do wdrożenia. Powtarzalny audyt pomaga sprawdzić podatności, sekrety i złośliwe oprogramowanie oraz przygotować SBOM, podpisać obraz i zastosować reguły rejestru.
Spis treści
1. Zdefiniuj zakres audytu obrazu
Dla każdego obrazu sprawdź te same obszary. Wynik zapisz jako PASS, FAIL albo EXCEPTION z uzasadnieniem.
- źródło i wersja obrazu bazowego,
- podatności w pakietach systemowych i zależnościach aplikacji,
- sekrety zapisane w warstwach, plikach lub konfiguracji,
- oznaki złośliwego oprogramowania,
- plik SBOM opisujący skład obrazu,
- podpis obrazu i możliwość sprawdzenia jego pochodzenia,
- reguły rejestru oraz decyzja, czy obraz może trafić do wdrożenia.
Zakres odpowiada głównym klasom ryzyka wskazywanym w materiałach o bezpieczeństwie obrazów: podatnościom, sekretom i błędnej konfiguracji. Badanie obrazów Docker Hub obejmuje te trzy obszary, a praktyki skanowania obrazów łączą skanowanie z procesem bezpieczeństwa.
2. Zatwierdź obraz bazowy przed budowaniem
- Wskaż dozwolone źródła obrazów bazowych. Rejestruj nazwę obrazu, tag oraz jego dokładny identyfikator, jeśli jest używany w procesie budowania.
- Sprawdź obraz bazowy przed użyciem go w pliku
Dockerfile. - Ustal, kto zatwierdza zmianę obrazu bazowego i jak jest ona rejestrowana.
- Po aktualizacji obrazu bazowego uruchom pełny audyt obrazu wynikowego.
Nie traktuj tagu jako jedynego dowodu, że obraz jest aktualny. Kontrola powinna obejmować konkretną wersję używaną w budowaniu, a nie tylko nazwę środowiska lub gałęzi. Skanowanie obrazu bazowego jest opisane także w dokumentacji Docker Hardened Images.
3. Uruchom skanowanie podatności
Włącz co najmniej jeden skaner do potoku budowania. W zależności od przyjętego procesu możesz użyć Trivy, Grype albo Docker Scout. Ten sam obraz powinien być skanowany po zbudowaniu, przed publikacją w rejestrze.
- Zbuduj obraz w kontrolowanym środowisku CI/CD.
- Uruchom skanowanie obrazu przez wybrane narzędzie.
- Zapisz raport razem z identyfikatorem obrazu i wynikiem budowania.
- Przypisz każdemu wykryciu poziom ważności zgodny z polityką organizacji.
- Zablokuj publikację, gdy wynik przekracza ustalony próg.
Nie porównuj bezpośrednio wyników różnych skanerów bez zdefiniowania wspólnej interpretacji. Wynik zależy również od założeń skanera i sposobu klasyfikacji wykrycia, co opisuje materiał o założeniach skanerów.
4. Ustal próg blokady i obsługę wyjątków
Polityka powinna wskazywać, które wyniki zatrzymują potok. Przykładowy zapis do dostosowania w organizacji:
- podatność o poziomie
Critical: blokada publikacji, - podatność o poziomie
High: blokada albo zatwierdzony wyjątek, - niższy poziom: rejestracja, właściciel i termin ponownej oceny.
Wyjątek nie powinien oznaczać usunięcia wyniku ze skanera. Zapisz identyfikator podatności, obraz, uzasadnienie, właściciela, datę wygaśnięcia i plan działania. Po wygaśnięciu wyjątku skanowanie musi ponownie ocenić obraz. Zmiana progu wymaga kontroli wersji polityki oraz testu na obrazach używanych w projekcie.
5. Wykryj sekrety i złośliwe pliki
Skanowanie podatności nie zastępuje kontroli sekretów ani analizy zawartości obrazu. Dodaj osobne sprawdzenie dla kluczy API, haseł, tokenów i innych danych uwierzytelniających. Sprawdź także pliki, skrypty i binaria pod kątem oznak złośliwego oprogramowania.
- uruchom kontrolę przed utworzeniem obrazu,
- uruchom ją ponownie na gotowym obrazie i jego warstwach,
- zablokuj publikację po znalezieniu aktywnego sekretu lub podejrzanej zawartości,
- po wykryciu sekretu unieważnij go i usuń z procesu budowania.
Uwzględnienie sekretów i złośliwego oprogramowania poszerza audyt poza samą listę podatności. Taki wieloobszarowy model kontroli jest zgodny z zakresem opisanym w praktykach bezpieczeństwa kontenerów.
6. Wygeneruj SBOM i podpisz obraz
SBOM, czyli Software Bill of Materials, jest spisem składników obrazu. Generuj go dla tego samego artefaktu, który ma zostać opublikowany, i przechowuj razem z raportem skanowania.
- Wygeneruj SBOM po zbudowaniu obrazu.
- Powiąż SBOM z identyfikatorem obrazu.
- Wykonaj skanowanie na podstawie obrazu i jego składników.
- Podpisz obraz po zakończeniu kontroli.
- Przechowuj podpis i SBOM w sposób pozwalający powiązać je z konkretną wersją.
Podpisuj artefakt dopiero po przejściu bramek. W przeciwnym razie podpis może dotyczyć obrazu, który nie spełnia aktualnej polityki.
7. Wymuś reguły w rejestrze
- Publikuj obrazy produkcyjne wyłącznie do kontrolowanych repozytoriów.
- Oddziel obrazy testowe od obrazów przeznaczonych do wdrożenia.
- Nie pozwalaj na wdrożenie obrazu bez pozytywnego wyniku skanowania.
- Sprawdzaj podpis przed pobraniem obrazu przez środowisko produkcyjne.
- Przechowuj raport, SBOM i decyzję o wyjątku dla każdej wersji.
Reguły rejestru powinny działać jako druga bramka. Potok CI/CD może zatrzymać niezgodny obraz, ale kontrola przy pobieraniu ogranicza ryzyko użycia obrazu poza pierwotnym procesem budowania.
8. Zaplanuj ponowne skanowanie
Obraz może wymagać ponownej oceny po zmianie bazy podatności, nawet jeśli jego kod się nie zmienił. Ustal harmonogram reskanów dla obrazów przechowywanych w rejestrze oraz dodatkowe skanowanie po zmianie obrazu bazowego, zależności lub polityki.
- Wybierz częstotliwość reskanów dla obrazów aktywnych.
- Oznacz obrazy, które nie przeszły aktualnego audytu.
- Powiadom właściciela obrazu o nowych wynikach.
- Zablokuj wdrożenie, jeśli obraz przekroczył obowiązujący próg.
Końcowy audyt powinien potwierdzać nie tylko wynik skanowania, ale też obecność SBOM, ważnego podpisu, decyzji rejestru i aktualnych wyjątków.
Co zrobić, jeśli obraz nie przechodzi kontroli
- Podatność w obrazie bazowym: zaktualizuj zatwierdzony obraz bazowy i zbuduj obraz ponownie.
- Różne wyniki Trivy, Grype i Docker Scout: porównaj wersję obrazu, źródło danych oraz reguły klasyfikacji przed podjęciem decyzji.
- Znaleziony sekret: unieważnij dane, usuń je z procesu budowania i wykonaj kontrolę wszystkich warstw.
- Brak SBOM lub podpisu: zatrzymaj publikację i uruchom etap generowania oraz podpisywania po skanowaniu.
- Wyjątek po terminie: ponownie oceń podatność i odśwież decyzję właściciela.
Końcowy test przed wdrożeniem
Obraz może przejść do wdrożenia dopiero wtedy, gdy ma wynik zgodny z progiem, zakończone kontrole sekretów i złośliwych plików, powiązany SBOM, ważny podpis oraz zgodę rejestru. Tę samą checklistę stosuj przy każdej nowej wersji i podczas cyklicznych reskanów.
