Zabezpieczanie łańcucha dostaw i sekretów
Wzmacnianie zabezpieczeń obrazów i sekretów
Zabezpieczanie łańcucha dostaw i sekretów to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Łańcuch dostaw oprogramowania
Obraz kontenera jest tworzony z obrazów bazowych, pakietów systemu operacyjnego i zależności aplikacji, a następnie przesyłany przez rejestr do klastra. Każdy etap stwarza możliwość przejęcia. Ataki na łańcuch dostaw wprowadzają złośliwy kod, zanim ten kiedykolwiek trafi na produkcję.
- Przejęte obrazy bazowe lub zależności.
- Zmodyfikowane obrazy w rejestrze.
- Złośliwe kroki w potoku CI/CD.
Podatności obrazów
Obrazy często zawierają pakiety z rozpoznanymi podatnościami. Skanowanie pozwala wykryć je przed wdrożeniem.
- Stare obrazy bazowe gromadzą CVE.
- Rozbudowane obrazy zwiększają powierzchnię ataku.
- Sekrety osadzone w warstwach obrazu ujawniają poświadczenia.
# Scan an image for vulnerabilities
trivy image myorg/app:1.4.2
# Scan filesystem and secrets too
trivy image --scanners vuln,secret myorg/app:1.4.2Minimalne i zaufane obrazy bazowe
Powierzchnię ataku należy zmniejszać, zaczynając od małych i sprawdzonych obrazów.
- Należy używać obrazów bazowych typu distroless lub minimalnych (bez powłoki i menedżera pakietów).
- Należy przypinać obrazy bazowe za pomocą digestu, a nie zmiennych tagów.
- Należy preferować oficjalne lub wewnętrznie zweryfikowane obrazy bazowe.
Mniejszy obraz oznacza mniej CVE i mniej narzędzi, które napastnik może wykorzystać po przejęciu.
# Pin by digest for immutability
# FROM gcr.io/distroless/static@sha256:<digest>Podpisywanie obrazów i proweniencja
Podpis potwierdza, że obraz pochodzi z Państwa potoku i nie został zmodyfikowany. Proweniencja (SLSA) rejestruje sposób jego zbudowania.
- Cosign podpisuje i weryfikuje obrazy.
- Należy wygenerować SBOM, aby śledzić każdy składnik.
- Należy dołączyć poświadczenia proweniencji procesu budowania.
# Sign and verify with cosign
cosign sign myorg/app:1.4.2
cosign verify --key cosign.pub myorg/app:1.4.2Weryfikacja podczas admission
Należy wymusić uruchamianie wyłącznie podpisanych i przeskanowanych obrazów. Kontroler admission odrzuca niepodpisane lub podatne obrazy podczas wdrażania.
# Kyverno policy: verify image signatures before admission
kubectl apply -f verify-image-signature.yaml
# Restrict pulls to a trusted registry only
kubectl apply -f allowed-registries.yamlZabezpieczanie potoku
Sam system CI/CD ma dużą wartość dla napastników: przechowuje poświadczenia i może wdrażać zmiany na produkcji.
- Należy ograniczyć uprawnienia poświadczeń potoku do niezbędnego minimum i ustawić ich krótki czas życia.
- Należy przypinać i weryfikować zewnętrzne akcje oraz wtyczki CI.
- Należy izolować wykonawców kompilacji i nie używać ich ponownie na różnych poziomach zaufania.
- Należy chronić rejestr za pomocą uwierzytelniania i niezmienności.
Rzeczywistość Kubernetes Secrets
Kubernetes Secrets są domyślnie zakodowane w base64, a nie szyfrowane. Każdy, kto może je odczytać lub odczytać etcd, widzi tekst jawny.
# A 'Secret' is trivially decoded
kubectl get secret db -o jsonpath='{.data.password}' | base64 -dSzyfrowanie sekretów w spoczynku
Należy chronić zawartość etcd, aby skradziona kopia zapasowa lub dostęp do etcd nie ujawniły wszystkich danych.
- Należy włączyć szyfrowanie w spoczynku za pomocą
EncryptionConfiguration. - Należy użyć dostawcy KMS w chmurze do szyfrowania kopertowego.
- Należy ograniczyć i rejestrować bezpośredni dostęp do etcd.
Zewnętrzne menedżery sekretów
Najbezpieczniejszy wzorzec polega na całkowitym przechowywaniu sekretów poza magazynem klastra.
- HashiCorp Vault lub chmurowe menedżery sekretów przechowują źródło prawdy.
- External Secrets Operator lub sterownik CSI wstrzykuje je w czasie działania.
- Należy używać workload identity, aby pody pobierały sekrety za pomocą krótkotrwałych tokenów chmurowych, a nie kluczy statycznych.
Higiena sekretów
Praktyki operacyjne ograniczają ujawnianie sekretów.
- Nigdy nie należy umieszczać sekretów w obrazach ani zatwierdzać ich w Git.
- Należy skanować repozytoria i obrazy pod kątem ujawnionych poświadczeń.
- Należy regularnie rotować sekrety oraz robić to po podejrzeniu ich ujawnienia.
- Należy ograniczyć uprawnienia RBAC
get/list secretsdo niezbędnego minimum.
# Detect committed secrets in source
gitleaks detect --source .Testowanie łańcucha dostaw
Podczas oceny należy sprawdzić, czy niepodpisane lub podatne obrazy są rzeczywiście blokowane, czy sekrety są szyfrowane w spoczynku oraz czy w obrazach lub Git nie znajdują się poświadczenia w postaci jawnego tekstu. Wyniki należy demonstrować bez eksfiltrowania prawdziwych sekretów poza zakres niezbędnego dowodu.
Każdą lukę należy zgłosić wraz z konkretnym mechanizmem kontroli, który ją zamyka (zasada podpisywania, szyfrowanie KMS, zewnętrzny menedżer).
Szybki test
Sprawdź swoją wiedzę na temat łańcucha dostaw i sekretów.
Podsumowanie
Wzmocniłeś łańcuch dostaw obrazów i obsługę sekretów.
- Skanuj obrazy, używaj minimalnych przypiętych obrazów bazowych i podpisuj je za pomocą cosign.
- Wymuszaj stosowanie podpisanych i przeskanowanych obrazów oraz zaufanych rejestrów na etapie admission.
- Kubernetes Secrets zawierają wyłącznie dane zakodowane w base64; włącz szyfrowanie KMS w spoczynku.
- Preferuj zewnętrzne menedżery sekretów i workload identity oraz stosuj zasady higieny sekretów.
To kończy kurs Kubernetes Security i ten zestaw lekcji.
Ucz się Cyber Security Academy dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 76
- Lekcje
- 303
Często zadawane pytania
Czy lekcja „Zabezpieczanie łańcucha dostaw i sekretów” jest bezpłatna?
Tak — pełny tekst „Zabezpieczanie łańcucha dostaw i sekretów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Zabezpieczanie łańcucha dostaw i sekretów”?
Wzmacnianie zabezpieczeń obrazów i sekretów Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?
Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Zabezpieczanie łańcucha dostaw i sekretów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?
Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Model zagrożeń Kubernetes
- RBAC i konta usług
- Bezpieczeństwo podów i zasady sieciowe
- Zabezpieczanie łańcucha dostaw i sekretów