0Pricing
Cloud & IT Cert Prep · Lekcja

Bezpieczny cykl wytwarzania oprogramowania, SAST i DAST

Włączą Państwo bezpieczeństwo do cyklu wytwarzania oprogramowania, wykorzystując analizę statyczną (SAST), analizę dynamiczną (DAST) i modelowanie zagrożeń już na wcześniejszych etapach prac.

Bezpieczny cykl wytwarzania oprogramowania, SAST i DAST to bezpłatna lekcja Cloud & IT Cert Prep 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 Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Czym jest bezpieczny cykl SDLC?

Bezpieczny cykl życia oprogramowania (SSDLC) integruje działania związane z bezpieczeństwem z każdą fazą tworzenia oprogramowania — od wymagań, przez projektowanie, programowanie, testowanie i wdrażanie, po utrzymanie. Tradycyjny SDLC traktuje bezpieczeństwo jako kontrolę na końcowym etapie, co jest kosztowne i nieskuteczne. Filozofia bezpiecznego SDLC zakłada wykrywanie i usuwanie luk tak wcześnie, jak to możliwe, ponieważ usterki wykryte podczas projektowania kosztują znacznie mniej niż te znalezione w środowisku produkcyjnym.

Przesuwanie bezpieczeństwa na wcześniejsze etapy tworzenia oprogramowania

Shift left oznacza przeniesienie działań związanych z bezpieczeństwem na wcześniejszy etap procesu tworzenia oprogramowania (w lewo na osi czasu), zamiast dodawania ich na końcu. W praktyce oznacza to uwzględnianie wymagań bezpieczeństwa w historyjkach użytkownika, przeprowadzanie modelowania zagrożeń podczas projektowania, wykonywanie przeglądów kodu i analiz SAST w trakcie programowania oraz uruchamianie DAST przed wydaniem. Zespoły stosujące podejście shift left wykrywają luki wtedy, gdy ich usunięcie jest najtańsze — podczas programowania, a nie w środowisku produkcyjnym.

Modelowanie zagrożeń: STRIDE i PASTA

Modelowanie zagrożeń polega na systematycznym identyfikowaniu i dokumentowaniu zagrożeń bezpieczeństwa podczas fazy projektowania. Model STRIDE dzieli zagrożenia na: podszywanie się, manipulowanie, zaprzeczalność, ujawnienie informacji, odmowę usługi oraz podniesienie uprawnień. PASTA (Process for Attack Simulation and Threat Analysis) to metodologia skoncentrowana na ryzyku, która symuluje cele osoby atakującej. Modele zagrożeń pozwalają ustalić priorytety działań ograniczających ryzyko, zanim zostanie napisana choćby jedna linia kodu.

# STRIDE threat categories (mnemonic)
# S - Spoofing identity
# T - Tampering with data
# R - Repudiation of actions
# I - Information disclosure
# D - Denial of service
# E - Elevation of privilege

Statyczne testowanie bezpieczeństwa aplikacji (SAST)

SAST (testowanie typu white-box) analizuje kod źródłowy, kod bajtowy lub pliki binarne bez uruchamiania aplikacji, wyszukując wzorce programistyczne powiązane ze znanymi lukami. Narzędzia SAST mogą szybko przeskanować całą bazę kodu i zgłaszać problemy, takie jak zakodowane na stałe dane uwierzytelniające, miejsca podatne na SQL injection oraz niebezpieczna deserializacja. Działają w środowisku IDE lub w potoku CI i wskazują plik oraz numer wiersza, co ułatwia usunięcie problemu.

# Example: running Semgrep SAST in CI
semgrep --config=auto --error src/

# Common SAST tools:
# - Checkmarx, Veracode, Fortify (commercial)
# - Semgrep, SonarQube, Bandit (open source)
# - GitHub CodeQL (integrated with GitHub Actions)

Ograniczenia SAST: fałszywe alarmy

Jednym z kluczowych ograniczeń SAST jest skłonność do generowania fałszywych alarmów — oznaczania kodu jako podatnego, mimo że w rzeczywistości jest bezpieczny. Zmęczenie nadmiarem alertów powoduje, że programiści odrzucają wyniki bez ich sprawdzenia. Narzędzia SAST nie potrafią także wykrywać problemów z konfiguracją środowiska uruchomieniowego, błędów uwierzytelniania zależnych od działania w czasie wykonywania ani luk w wywołaniach zewnętrznych interfejsów API. SAST jest najbardziej skuteczny w połączeniu ze szkoleniem programistów, dzięki któremu wyniki są prawidłowo analizowane i ustalane są dla nich priorytety.

Dynamiczne testowanie bezpieczeństwa aplikacji (DAST)

DAST (testowanie typu black-box) testuje uruchomioną aplikację, wysyłając ładunki ataku do jej punktów końcowych HTTP i analizując odpowiedzi pod kątem oznak podatności. DAST nie wymaga dostępu do kodu źródłowego — testuje aplikację tak, jak zrobiłaby to osoba atakująca. Doskonale wykrywa problemy występujące w czasie wykonywania, takie jak obejście uwierzytelniania, XSS odzwierciedlane w odpowiedziach oraz błędna konfiguracja serwera. Do narzędzi DAST należą OWASP ZAP, Burp Suite i Netsparker.

# Running OWASP ZAP baseline scan against a URL
docker run -t owasp/zap2docker-stable zap-baseline.py \
  -t https://staging.example.com \
  -r zap-report.html

# ZAP sends probe requests and analyzes responses
# without requiring source code access

SAST a DAST: uzupełniające się podejścia

SAST i DAST wzajemnie się uzupełniają, a nie konkurują ze sobą. SAST wcześnie wykrywa problemy na poziomie kodu i integruje się z IDE, ale nie ma wglądu w działanie aplikacji w czasie wykonywania. DAST wykrywa luki występujące w czasie wykonywania i nie wymaga kodu źródłowego, ale nie może przeskanować ścieżek kodu, które nie zostaną uruchomione przez jego automatyczne sondy. Jednoczesne stosowanie obu podejść — SAST w potoku CI i DAST wobec środowiska testowego — maksymalizuje pokrycie luk w całym cyklu SDLC.

Interaktywne testowanie bezpieczeństwa aplikacji (IAST)

IAST łączy elementy SAST i DAST, instrumentując aplikację w czasie wykonywania. Agent IAST działa wewnątrz aplikacji (na serwerze) i obserwuje wykonywanie kodu, gdy przez aplikację przepływa ruch testowy. Może śledzić skażone dane wejściowe użytkownika przez ścieżki kodu aż do wrażliwych miejsc docelowych, wykrywając luki przy mniejszej liczbie fałszywych alarmów niż czysty SAST. IAST jest szczególnie skuteczny w aplikacjach Java i .NET oraz naturalnie integruje się z uruchamianiem testów funkcjonalnych.

Analiza składu oprogramowania (SCA)

Analiza składu oprogramowania (SCA) identyfikuje biblioteki open source i zależności zewnętrzne w aplikacji oraz porównuje je z bazami danych luk (NVD, OSV). Ponieważ współczesne aplikacje mogą korzystać z setek zależności — z których wiele jest dodawanych tranzytywnie — narzędzia SCA, takie jak OWASP Dependency-Check, Snyk i Renovate, są niezbędne do wykrywania znanych CVE, zanim osoby atakujące wykorzystają je w łańcuchu dostaw.

# OWASP Dependency-Check (scans project dependencies)
dependency-check --project myapp --scan ./target --format HTML

# Snyk CLI
snyk test  # finds vulnerabilities in package.json / requirements.txt
snyk monitor  # continuously monitors for new CVEs

Bezpieczeństwo w potokach CI/CD

Integracja narzędzi bezpieczeństwa z potokami CI/CD gwarantuje, że żaden kod nie trafi do środowiska produkcyjnego bez przejścia kontroli bezpieczeństwa. Typowy potok DevSecOps uruchamia: SAST przy każdym zatwierdzeniu zmian, SCA po zmianach zależności, skanowanie obrazów kontenerów przed przesłaniem ich do rejestru, skanowanie IaC dla Terraform/CloudFormation oraz DAST wobec wdrożenia w środowisku testowym. Niespełnienie kontroli bezpieczeństwa blokuje kompilację, wzmacniając kulturę bezpieczeństwa domyślnego.

# GitHub Actions example — security gate in CI
jobs:
  security:
    steps:
      - uses: actions/checkout@v4
      - name: Run SAST
        run: semgrep --config=auto --error .
      - name: SCA check
        run: snyk test --severity-threshold=high
      - name: Container scan
        run: trivy image myapp:latest --exit-code 1

Praktyki bezpiecznego przeglądu kodu

Narzędzia automatyczne nie mogą zastąpić prowadzonego przez człowieka przeglądu kodu skoncentrowanego na logice bezpieczeństwa. Przegląd wykonywany przez współpracowników powinien potwierdzać, że: kontrole uwierzytelniania i autoryzacji znajdują się we właściwych miejscach, obsługa błędów nie ujawnia poufnych informacji, funkcje kryptograficzne używają zatwierdzonych algorytmów i parametrów, a logiki biznesowej nie można obejść. Security champions w zespołach programistycznych — programiści przeszkoleni w zakresie bezpieczeństwa — wypełniają lukę między zespołem bezpieczeństwa a zespołem inżynieryjnym.

Szybkie sprawdzenie

Sprawdź swoją znajomość zagadnień CompTIA Security+ (SY0-701) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji dowiedział się Pan / dowiedziała się Pani, że: bezpieczny cykl SDLC integruje bezpieczeństwo ze wszystkimi fazami tworzenia oprogramowania, zamiast dodawać je na końcu, SAST analizuje kod bez jego wykonywania, a DAST testuje uruchomione aplikacje, a SCA identyfikuje podatne zależności open source, natomiast kontrole bezpieczeństwa CI/CD automatycznie egzekwują wymagania. Następnie omówimy usługi katalogowe LDAP i Active Directory.

Często zadawane pytania

Czy lekcja „Bezpieczny cykl wytwarzania oprogramowania, SAST i DAST” jest bezpłatna?

Tak — pełny tekst „Bezpieczny cykl wytwarzania oprogramowania, SAST i DAST” 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 Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Bezpieczny cykl wytwarzania oprogramowania, SAST i DAST”?

Włączą Państwo bezpieczeństwo do cyklu wytwarzania oprogramowania, wykorzystując analizę statyczną (SAST), analizę dynamiczną (DAST) i modelowanie zagrożeń już na wcześniejszych etapach prac. Ćwiczysz Cloud & IT Cert Prep 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ąć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep 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 „Bezpieczny cykl wytwarzania oprogramowania, SAST i DAST”?

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 Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep 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. Wstrzykiwanie SQL i poleceń
  2. Cross-Site Scripting (XSS) i CSRF
  3. Niesprawne uwierzytelnianie i niebezpieczna deserializacja
  4. Bezpieczny cykl wytwarzania oprogramowania, SAST i DAST
← Powrót do Cloud & IT Cert Prep