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 monitorDependabot 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 RequiresWykaz 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.jsonZgodność 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:
reqeustszamiastrequests - 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 postureSzybki 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
- SAST i DAST w potokach CI/CD
- Analiza składu oprogramowania (SCA)
- Skanowanie sekretów i dane uwierzytelniające zapisane na stałe
- Security Champions i modelowanie zagrożeń