0Pricing
Cyber Security Academy · Lekcja

Analiza składu oprogramowania (SCA)

Nauczy się Pan/Pani skanować zależności pod kątem znanych CVE za pomocą OWASP Dependency-Check, Snyk lub GitHub Dependabot.

Analiza składu oprogramowania (SCA) to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 2 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.

Czym jest SCA?

Analiza składu oprogramowania (SCA) identyfikuje zależności open source w projekcie i sprawdza je względem baz danych podatności (NVD, CVE, GitHub Advisory). Wykrywa również problemy związane ze zgodnością licencyjną.

Dlaczego zależności zewnętrzne są ryzykowne

Nowoczesne aplikacje korzystają z setek bibliotek open source. Jedna podatna biblioteka może narazić całą aplikację. Podatność Log4Shell z 2021 roku (CVE-2021-44228) dotknęła milionów aplikacji Java z powodu jednej powszechnie używanej biblioteki do logowania.

Narzędzia SCA

Popularne narzędzia SCA:

# npm audit (Node.js):
npm audit
npm audit fix

# pip-audit (Python):
pip-audit

# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./

# Snyk:
snyk test
snyk monitor

Dependabot i Renovate

Narzędzia do automatycznej aktualizacji zależności:

  • Dependabot (GitHub) — automatycznie tworzy PR-y aktualizujące podatne zależności
  • Renovate — oferuje więcej możliwości konfiguracji i obsługuje większą liczbę rejestrów

Należy włączyć je w każdym repozytorium — ograniczają ręczny nakład pracy związany ze śledzeniem aktualizacji zależności.

Zrozumienie poziomu ważności CVE

Nie każda podatność w zależności może zostać wykorzystana w danym kontekście. Należy ocenić:

  • Czy ścieżka kodu zawierająca podatność jest osiągalna w danym sposobie użycia?
  • Czy aplikacja udostępnia tę funkcjonalność?
  • Czy WAF lub inny mechanizm kontrolny ogranicza jej skutki?

Wynik CVSS to punkt wyjścia — rzeczywiste ryzyko zależy od kontekstu.

Zależności tranzytywne

Zależności bezpośrednie mają własne zależności (tranzytywne). Podatność w bibliotece, o której nigdy nie było mowy, również może Państwa dotyczyć. Narzędzia SCA mapują pełne drzewo zależności. Aby je przejrzeć, należy uruchomić npm ls lub pip show -r requirements.txt.

npm ls --all | grep "vulnerable-pkg"
pip show requests | grep Requires

Wykaz składników oprogramowania (SBOM)

SBOM to formalny wykaz wszystkich składników produktu programistycznego. Rozporządzenie wykonawcze 14028 (USA) wymaga SBOM-ów dla oprogramowania sprzedawanego rządowi USA. Formatami są SPDX i CycloneDX.

# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.json

Zgodność licencyjna

SCA sprawdza również licencje. Zależności objęte licencją GPL w oprogramowaniu komercyjnym mogą wymagać udostępnienia kodu jako open source. Licencje LGPL, MIT i Apache 2.0 są zazwyczaj liberalne. Zespoły prawne potrzebują wglądu w licencje zależności — SCA zapewnia go automatycznie.

Ataki na łańcuch dostaw

Atakujący wstrzykują złośliwy kod do popularnych pakietów open source:

  • Typosquatting: reqeusts zamiast requests
  • Przejęte konta opiekunów pakietów (w stylu SolarWinds)
  • Dependency confusion: ujawnienie nazw prywatnych pakietów w publicznym rejestrze

SCA z weryfikacją integralności (sumy kontrolne, pliki blokad) zmniejsza to ryzyko.

Pliki blokad

Pliki blokad (package-lock.json, Pipfile.lock) przypinają dokładne wersje i weryfikują sumy kontrolne. Pliki blokad należy zatwierdzać w systemie kontroli wersji. W kompilacjach produkcyjnych nigdy nie należy używać npm install --legacy-peer-deps do pomijania sprawdzania plików blokad.

SCA w potoku CI/CD

Należy zintegrować SCA jako obowiązkową bramkę CI:

# GitHub Actions example:
- name: Run npm audit
  run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter posture

Szybki test: SCA

Jaki jest główny cel analizy składu oprogramowania (SCA)?

Podsumowanie lekcji

SCA skanuje zależności projektu pod kątem znanych CVE, problemów licencyjnych i zagrożeń dla łańcucha dostaw. Jest to szczególnie ważne ze względu na zależności tranzytywne — podatność w bibliotece będącej zależnością innej biblioteki nadal Państwa dotyczy. Należy włączyć Dependabot lub Renovate, aby automatyzować aktualizacje. W celu zapewnienia widoczności łańcucha dostaw należy generować SBOM-y (SPDX/CycloneDX). Pliki blokad przypinają wersje i weryfikują sumy kontrolne. SCA należy zintegrować jako bramkę CI z progami poziomu ważności.

Często zadawane pytania

Czy lekcja „Analiza składu oprogramowania (SCA)” jest bezpłatna?

Tak — pełny tekst „Analiza składu oprogramowania (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 Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Analiza składu oprogramowania (SCA)”?

Nauczy się Pan/Pani skanować zależności pod kątem znanych CVE za pomocą OWASP Dependency-Check, Snyk lub GitHub Dependabot. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Analiza składu oprogramowania (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 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. SAST i DAST w potokach CI/CD
  2. Analiza składu oprogramowania (SCA)
  3. Skanowanie sekretów i dane uwierzytelniające zapisane na stałe
  4. Security Champions i modelowanie zagrożeń
← Powrót do Cyber Security Academy