Bezpieczeństwo zależności i łańcucha dostaw (SCA)
Chroń potok przed podatnymi na ataki pakietami zewnętrznymi, korzystając z Software Composition Analysis, Dependabot, przeglądu zależności i przypiętych akcji.
Bezpieczeństwo zależności i łańcucha dostaw (SCA) to bezpłatna lekcja CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Ryzyko łańcucha dostaw
Współczesne aplikacje są w dużej mierze budowane z zależności pochodzących od zewnętrznych dostawców. Pojedynczy podatny pakiet znajdujący się głęboko w drzewie zależności może zagrozić całej aplikacji.
To właśnie ryzyko związane z łańcuchem dostaw oprogramowania, a jego zabezpieczenie jest podstawowym elementem DevSecOps.
Czym jest SCA?
Analiza składu oprogramowania (SCA) skanuje zależności projektu i porównuje je z bazami danych znanych luk (CVE).
W przeciwieństwie do SAST, który analizuje Państwa kod, SCA koncentruje się na bibliotekach importowanych przez aplikację.
- Wykrywa wersje ze znanymi lukami
- Oznacza ryzykowne lub niezgodne licencje
- Sugeruje bezpieczne wersje aktualizacji
Alerty Dependabot
GitHub udostępnia narzędzie Dependabot, które stale skanuje pliki manifestów i generuje alerty, gdy zależność zawiera znaną lukę.
Można je włączyć w sekcji Ustawienia > Bezpieczeństwo kodu i analiza. Alerty pojawiają się na karcie Security wraz z ocenami ważności.
Automatyczne aktualizacje zależności
Dependabot może również automatycznie otwierać pull requesty aktualizujące podatne zależności. Konfiguruje się go za pomocą pliku dependabot.yml.
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: weeklyPrzegląd zależności w PR-ach
Akcja dependency-review-action uruchamia się dla pull requestów i blokuje scalanie, jeśli PR wprowadza zależność ze znaną luką.
Dzięki temu bezpieczeństwo jest uwzględniane wcześniej, a ryzykowne pakiety są wykrywane, zanim trafią do głównej gałęzi.
- name: Dependency Review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: highPrzypinanie wersji akcji
Akcje wywoływane w potoku same są zależnościami. Odwołanie do @v4 oznacza zaufanie do każdego, kto kontroluje ten tag.
Dla maksymalnego bezpieczeństwa należy przypinać akcje do pełnego SHA commita, który jest niezmienny.
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11Znaczenie plików lock
Plik lock (taki jak package-lock.json lub poetry.lock) przypisuje dokładne wersje zależności i hasze.
Podczas CI należy używać deterministycznego polecenia instalacji, aby kompilacje były powtarzalne i nie pobierały po cichu zmodyfikowanej wersji.
- name: Install (locked)
run: npm ciGenerowanie SBOM
Zestawienie komponentów oprogramowania (SBOM) to kompletny wykaz każdego komponentu użytego w kompilacji. Coraz częściej jest ono wymagane w ramach zgodności z przepisami.
GitHub może wyeksportować SBOM w formacie SPDX, a narzędzia takie jak Syft mogą wygenerować go w CI.
- name: Generate SBOM
uses: anchore/sbom-action@v0
with:
format: spdx-jsonZgodność licencyjna
SCA obejmuje również ryzyko licencyjne. Włączenie biblioteki na licencji GPL do produktu własnościowego może wiązać się z obowiązkami prawnymi.
Należy skonfigurować skaner tak, aby oznaczał lub odrzucał niedozwolone licencje, dzięki czemu problem pojawi się w CI, a nie dopiero podczas audytu.
Niepowodzenie kompilacji
Samo wykrywanie pomaga tylko wtedy, gdy zatrzymuje wadliwy kod. Należy skonfigurować bramki SCA tak, aby kończyły potok niepowodzeniem, gdy zostanie wykryta luka o znaczeniu krytycznym.
Należy ustawić próg ważności, aby znaleziska niskiego ryzyka generowały ostrzeżenia, a krytyczne blokowały scalanie lub wdrożenie.
with:
fail-on-severity: criticalCiągłe monitorowanie
Nowe luki są ujawniane codziennie, dlatego jednorazowe skanowanie nie wystarcza. SCA należy uruchamiać zgodnie z harmonogramem, a także przy każdym PR.
Dzięki temu można wykryć pakiety, które były bezpieczne w chwili scalania, ale później stały się podatne.
on:
schedule:
- cron: '0 6 * * 1'Szybki test
Proszę sprawdzić, czy rozumieją Państwo zasady bezpieczeństwa łańcucha dostaw.
Podsumowanie
Poznali Państwo sposoby zabezpieczania łańcucha dostaw oprogramowania.
- SCA skanuje zależności pod kątem znanych luk
- Dependabot generuje alerty i automatycznie aktualizuje ryzykowne pakiety
- Przegląd zależności blokuje ryzykowne PR-y
- Należy przypinać akcje do SHA, używać plików lock i generować SBOM
W połączeniu z SAST i zarządzaniem sekretami zapewnia to kompletny obraz bezpiecznego potoku.
Często zadawane pytania
Czy lekcja „Bezpieczeństwo zależności i łańcucha dostaw (SCA)” jest bezpłatna?
Tak — pełny tekst „Bezpieczeństwo zależności i łańcucha dostaw (SCA)” 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 CI/CD with GitHub Actions & DevOps Pipelines, przejdź na CoddyKit PRO. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Co nauczysz się w „Bezpieczeństwo zależności i łańcucha dostaw (SCA)”?
Chroń potok przed podatnymi na ataki pakietami zewnętrznymi, korzystając z Software Composition Analysis, Dependabot, przeglądu zależności i przypiętych akcji. Ćwiczysz CI/CD with GitHub Actions & DevOps Pipelines 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ąć CI/CD with GitHub Actions & DevOps Pipelines?
Nie wymagamy żadnego doświadczenia. CI/CD with GitHub Actions & DevOps Pipelines 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 „Bezpieczeństwo zależności i łańcucha dostaw (SCA)”?
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 CI/CD with GitHub Actions & DevOps Pipelines?
Tak. Każda lekcja CI/CD with GitHub Actions & DevOps Pipelines 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
- Najlepsze praktyki bezpieczeństwa w CI/CD
- Zarządzanie sekretami za pomocą GitHub
- Statyczne testowanie bezpieczeństwa aplikacji (SAST)
- Bezpieczeństwo zależności i łańcucha dostaw (SCA)