SAST i DAST w potokach CI/CD
Zintegruje Pan/Pani SonarQube, Semgrep lub Bandit do analizy statycznej oraz OWASP ZAP do skanowania dynamicznego w potokach.
SAST i DAST w potokach CI/CD to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 1 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 testowanie bezpieczeństwa aplikacji?
Testowanie bezpieczeństwa aplikacji pozwala wykrywać podatności, zanim kod trafi na produkcję. Stosuje się dwa uzupełniające się podejścia: SAST (statyczne, bez uruchamiania kodu) oraz DAST (dynamiczne, z testowaniem uruchomionej aplikacji). Oba można zintegrować z potokami CI/CD, aby przenieść testowanie bezpieczeństwa na wcześniejszy etap.
SAST: statyczne testowanie bezpieczeństwa aplikacji
SAST analizuje kod źródłowy, kod bajtowy lub plik binarny pod kątem podatności bez wykonywania kodu. Można uruchamiać je przy każdym commitcie, uzyskując szybką informację zwrotną.
Zalety: wykrywanie błędów na wczesnym etapie, pełne pokrycie kodu, brak potrzeby korzystania z uruchomionego środowiska.
Wady: duży odsetek fałszywych alarmów, zależność od języka, pomijanie problemów z konfiguracją w czasie działania.
Popularne narzędzia SAST
Narzędzia SAST typu open source:
# Semgrep (multi-language, rule-based):
semgrep --config auto ./src
# Bandit (Python):
bandit -r ./src
# ESLint security plugin (JavaScript):
npx eslint --plugin security ./src
# SpotBugs + FindSecBugs (Java):
mvn spotbugs:checkIntegracja SAST z CI/CD
Przykładowy krok SAST w GitHub Actions:
# .github/workflows/security.yml
- name: Run Semgrep
uses: returntocorp/semgrep-action@v1
with:
config: p/owasp-top-ten
auditOn: push
# Fail build if HIGH severity findings presentDAST: dynamiczne testowanie bezpieczeństwa aplikacji
DAST testuje uruchomioną aplikację z zewnątrz, symulując działanie atakującego. Wykrywa podatności widoczne wyłącznie w czasie działania: problemy z uwierzytelnianiem, błędy zarządzania sesją i błędy walidacji danych wejściowych.
Zalety: niewiele fałszywych alarmów, niezależność od języka, wykrywanie problemów z konfiguracją w czasie działania.
Wady: wymaga uruchomionego środowiska, może pomijać niektóre ścieżki kodu.
Popularne narzędzia DAST
Narzędzia DAST dla CI/CD:
# OWASP ZAP (free, scriptable):
docker run -t owasp/zap2docker-stable zap-baseline.py -t https://staging.app.com
# Nikto:
nikto -h https://staging.app.com
# Nuclei (template-based):
nuclei -u https://staging.app.com -t cves/IAST: interaktywne testowanie bezpieczeństwa aplikacji
IAST instrumentuje aplikację w czasie działania za pomocą agentów, które monitorują wykonywanie kodu podczas testów funkcjonalnych. Łączy dokładność SAST z pokryciem DAST. Przykłady: Contrast Security, Seeker. Wymaga agentów zależnych od języka oraz uruchamiania testów.
Przenoszenie testów bezpieczeństwa na wcześniejszy etap
Shift left oznacza przeniesienie testowania bezpieczeństwa na wcześniejszy etap cyklu wytwarzania — najlepiej do środowiska IDE dewelopera i etapu commitowania, zamiast traktowania go jako osobnej bramki przed wydaniem. Wcześniejsze wykrycie oznacza tańszą naprawę.
Współczynnik kosztu: błąd wykryty podczas programowania kosztuje 1×, na środowisku stagingowym 10×, a na produkcji 100×.
Obsługa fałszywych alarmów
Narzędzia SAST generują fałszywe alarmy. Sposoby zarządzania nimi:
- Używać
nosec(Bandit) lub komentarzy wyłączających sprawdzanie umieszczanych bezpośrednio w kodzie dla potwierdzonych nieistotnych przypadków - Dostosować zestawy reguł do kontekstu aplikacji
- Zapisywać uzasadnienie wyłączenia sprawdzania w komentarzach kodu
- Okresowo przeglądać wyłączenia sprawdzania
Architektura potoku bezpieczeństwa CI/CD
Kompletny potok bezpieczeństwa:
- Haki pre-commit: skanowanie sekretów (gitleaks), SAST (semgrep)
- Kontrole PR: wyniki SAST, skanowanie zależności (Dependabot)
- Wdrożenie na środowisko stagingowe: skanowanie DAST (ZAP baseline)
- Produkcja: monitorowanie w czasie działania (RASP, WAF)
Pomiar skuteczności AppSec
Najważniejsze metryki AppSec w CI/CD:
- Średni czas usuwania ustaleń dotyczących bezpieczeństwa
- Liczba ustaleń na 1000 wierszy kodu
- Odsetek fałszywych alarmów (wpływa na zaufanie deweloperów)
- Odsetek podatności, które przedostały się dalej (wykrytych na stagingu w porównaniu z produkcją)
Szybki test: SAST a DAST
Jaki rodzaj testów bezpieczeństwa analizuje kod źródłowy bez jego wykonywania i dostarcza informacji zwrotnej bezpośrednio w potoku CI przy każdym commicie?
Podsumowanie lekcji
SAST analizuje kod statycznie (wczesna informacja zwrotna, dużo fałszywych alarmów), a DAST testuje uruchomione aplikacje dynamicznie (dokładność w czasie działania, wymaga środowiska). Oba podejścia powinny być częścią potoków CI/CD. Przeniesienie testów na wcześniejszy etap pozwala wykrywać podatności, gdy ich usunięcie jest najtańsze. Popularne narzędzia: Semgrep i Bandit (SAST); OWASP ZAP i Nuclei (DAST). Aby zarządzać fałszywymi alarmami, należy dostosowywać zestawy reguł i śledzić wyłączenia sprawdzania.
Często zadawane pytania
Czy lekcja „SAST i DAST w potokach CI/CD” jest bezpłatna?
Tak — pełny tekst „SAST i DAST w potokach CI/CD” 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 „SAST i DAST w potokach CI/CD”?
Zintegruje Pan/Pani SonarQube, Semgrep lub Bandit do analizy statycznej oraz OWASP ZAP do skanowania dynamicznego w potokach. Ć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 1 z 4.
Ile czasu zajmuje lekcja „SAST i DAST w potokach CI/CD”?
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ń