0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Lekcja

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: weekly

Przeglą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: high

Przypinanie 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@b4ffde65f46336ab88eb53be808477a3936bae11

Znaczenie 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 ci

Generowanie 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-json

Zgodność 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: critical

Cią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

  1. Najlepsze praktyki bezpieczeństwa w CI/CD
  2. Zarządzanie sekretami za pomocą GitHub
  3. Statyczne testowanie bezpieczeństwa aplikacji (SAST)
  4. Bezpieczeństwo zależności i łańcucha dostaw (SCA)
← Powrót do CI/CD with GitHub Actions & DevOps Pipelines