0Pricing
Cyber Security Academy · Lekcja

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

Integracja 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 present

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

  1. Haki pre-commit: skanowanie sekretów (gitleaks), SAST (semgrep)
  2. Kontrole PR: wyniki SAST, skanowanie zależności (Dependabot)
  3. Wdrożenie na środowisko stagingowe: skanowanie DAST (ZAP baseline)
  4. 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

  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