Cyber Security Academy · Lekcja

Zabezpieczanie łańcucha dostaw i sekretów

Wzmacnianie zabezpieczeń obrazów i sekretów

Lekcja 4 z 413 kroki

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.2

Minimalne 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.2

Weryfikacja 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.yaml

Zabezpieczanie 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 -d

Szyfrowanie 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 secrets do 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.

Bezpłatny start

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

  1. Model zagrożeń Kubernetes
  2. RBAC i konta usług
  3. Bezpieczeństwo podów i zasady sieciowe
  4. Zabezpieczanie łańcucha dostaw i sekretów
← Powrót do Cyber Security Academy