DAST - Dynamic Application Security Testing
Black-box testování běžících aplikací pro detekci runtime zranitelností a security misconfigurations.

Co je Dynamic Application Security Testing?
DAST je automatizovaný proces testování běžící aplikace z vnější perspektivy (black-box testing) pro identifikaci bezpečnostních zranitelností, které jsou viditelné pouze za runtime. Na rozdíl od SAST, které analyzuje zdrojový kód, DAST testuje aplikaci stejným způsobem, jakým by ji útočník zkoušel kompromitovat - posíláním škodlivých requestů, manipulací s parametry a hledáním bezpečnostních mezer v běžícím systému.
DAST vs. SAST - Klíčové rozdíly
| Vlastnost | DAST (Dynamic) | SAST (Static) |
|---|---|---|
| Kdy testuje | Runtime - aplikace musí běžet | Build time - statická analýza kódu |
| Přístup ke kódu | Black-box - nepotřebuje zdrojový kód | White-box - vyžaduje přístup ke kódu |
| Co detekuje | Runtime zranitelnosti, konfigurace, deployment issues | Coding errors, unsafe patterns, potenciální zranitelnosti |
| False positives | Nízké - testuje skutečné chování | Vyšší - může označit bezpečný kód |
| Rychlost | Pomalejší (hodiny pro velké aplikace) | Rychlejší (minuty) |
| Typ zranitelností | SQL injection, XSS, CSRF, auth issues, SSRF | Buffer overflows, race conditions, unsafe functions |
| Jazyk | Language-agnostic (testuje HTTP API) | Specifické pro jazyk (Java, C#, Python...) |
| Fáze SDLC | QA, Staging, Pre-production | Development, PR reviews |
Best Practice: Kombinujte SAST + DAST
Nejlepší výsledky dosáhnete kombinací obou přístupů. SAST odhalí potenciální problémy v kódu během vývoje, zatímco DAST ověří, zda jsou tyto zranitelnosti exploitovatelné v reálném prostředí. Tato strategie se nazývá "Defense in Depth" a pokrývá jak teoretické, tak praktické bezpečnostní mezery.
Jak DAST funguje
Typický DAST scan workflow
Co DAST detekuje
1. Injection útoky
- SQL Injection: Manipulace s databázovými dotazy přes user input
- Command Injection: Spuštění OS příkazů přes nezabezpečený input
- LDAP/XML/XPath Injection: Injection do specifických dotazovacích jazyků
- Template Injection: SSTI (Server-Side Template Injection)
2. Cross-Site Scripting (XSS)
- Reflected XSS: Škodlivý script v URL/parametru odražený zpět uživateli
- Stored XSS: Persistentní XSS uložený v databázi
- DOM-based XSS: Client-side XSS přes JavaScript manipulaci
3. Autentizace a Session Management
- Broken Authentication: Slabé hesla, session hijacking, credential stuffing
- Session Fixation: Útočník fixuje session ID oběti
- Insecure Session Cookies: Chybějící Secure/HttpOnly/SameSite flags
- JWT vulnerabilities: Weak signing, algorithm confusion
4. Broken Access Control
- IDOR (Insecure Direct Object References): Přístup k cizím objektům změnou ID
- Path Traversal: Přístup k souborům mimo webroot (../../../etc/passwd)
- Privilege Escalation: Běžný uživatel získá admin práva
- Missing Function Level Access Control: API endpointy bez autorizace
5. Security Misconfiguration
- Verbose Error Messages: Stack traces odhalující interní informace
- Default Credentials: Admin/admin, root/root
- Directory Listing: Viditelné adresářové struktury
- Missing Security Headers: CSP, HSTS, X-Frame-Options
- Exposed Admin Panels: /admin, /phpmyadmin, /wp-admin bez ochrany
6. Další runtime zranitelnosti
- CSRF (Cross-Site Request Forgery): Neoprávněné akce jménem uživatele
- SSRF (Server-Side Request Forgery): Server provede request na útočníkem zvolený target
- XXE (XML External Entity): Čtení souborů přes XML parser
- Insecure Deserialization: RCE přes deserializaci untrusted dat
- Business Logic Flaws: Race conditions, price manipulation
Oblíbené DAST nástroje
ZAP (Zed Attack Proxy)
Open-source DAST nástroj s GUI i CLI režimem, dříve známý jako OWASP ZAP. Od září 2024 vystupuje jako ZAP by Checkmarx a zůstává open source pod licencí Apache 2.0.
- Aktivní i pasivní skanování
- Intercepting proxy pro manuální testování
- Spidering a automatický crawling
- API scan (REST, GraphQL, SOAP)
- CI/CD integrace (Docker, Jenkins, GitLab)
- Oficiální Docker image
zaproxy/zap-stable(dřívějšíowasp/zap2docker-stablese již nepoužívá)
Burp Suite Professional
Industry-standard penetration testing platforma s pokročilými funkcemi pro manuální i automatické testování.
- Burp Scanner - automatický vulnerability scanner
- Intruder - advanced fuzzing engine
- Repeater - request manipulation
- Collaborator - out-of-band detection (SSRF, XXE)
- Extensions (BApp Store)
- Placená licence Professional na uživatele a rok, aktuální cena na webu PortSwigger
Nuclei
Moderní fast vulnerability scanner založený na YAML templates. Ideální pro CI/CD automatizaci.
- Komunitní knihovna šablon nuclei-templates
- Rychlé paralelní skanování
- Custom templates v YAML
- Integration s Slack, Jira, GitHub
- Headless browser support
Acunetix (Invicti Web + API)
Komerční web vulnerability scanner, který dnes Invicti nabízí jako Invicti Web + API. Zaměřuje se i na SPA a aplikace s velkým podílem JavaScriptu.
- Advanced JavaScript/SPA crawling
- Skenování webových API
- Issue tracking (Jira, GitHub, GitLab)
Nikto
Klasický web server scanner pro detekci známých zranitelností a misconfigurations.
- Přes 8 000 potenciálně nebezpečných souborů a programů
- Outdated server versions detection
- Server misconfigurations
- Fast, lightweight CLI tool
StackHawk
Moderní DAST platforma zaměřená na API security a developer-first workflow.
- OpenAPI/Swagger integration
- GraphQL endpoint testing
- CI/CD native (GitHub Actions, GitLab CI)
- Developer-friendly reporting
- Shift-left DAST approach
Praktický příklad: OWASP ZAP v CI/CD
Integrace ZAP do GitLab CI/CD pipeline. Místo zastaralých klíčových slov only/except používá rules:
GitHub Actions příklad
Příklad používá zaproxy/action-baseline v0.15.0. Pokud nahráváte artefakty sami, actions/upload-artifact@v3 je od listopadu 2024 nepodporovaný.
Docker Compose pro lokální DAST testing
Klíč version je v Compose souborech zastaralý a příkaz se spouští jako docker compose.
DAST Best Practices
Doporučené postupy
- Testujte na staging/QA, ne na production: DAST může způsobit DOS, data corruption nebo triggernout alarmy
- Používejte test credentials: Dedicated test účty pro authenticated scanning
- Rate limiting awareness: DAST generuje mnoho requestů, můžete být zablokováni WAF/CDN
- Baseline vs Full scan: Baseline pro každý PR, Full scan weekly/před releasem
- Custom scan policies: Vypněte testy, které nejsou relevantní (např. CMS scan pro API-only app)
- Authentication context: Konfigurujte ZAP/Burp pro login workflow, testujte authenticated areas
- API specification: Používejte OpenAPI/Swagger specs pro lepší coverage API endpointů
- False positive management: Reviewujte a markujte FP, vytvářejte whitelisty
- Trend tracking: Sledujte počet zranitelností v čase, ne jen current state
- Integration se SIEM: Posílejte DAST findings do centrálního security dashboardu
Časté chyby při DAST
- Spuštění DAST na production: Může způsobit outage, corrupt data nebo false alarms
- Nedostatečný crawling scope: Scanner nenajde všechny endpointy (zejména u SPA)
- Ignorování false positives: Teams ztratí důvěru v nástroj
- Pouze automatické scany: Manuální pentesting najde business logic flaws, které DAST neodhalí
- Žádný authentication: Většina funkcí bývá za přihlášením, skenování homepage je nedostatečné
- Jeden scan = hotovo: DAST by měl běžet continuously, ne jen před releasem
- Neaktualizované scanery: Nové CVE a attack vectors vyžadují fresh vulnerability checks
DAST pro různé typy aplikací
1. REST API
U zap-api-scan.py parametr -t ukazuje na API definici, -O přepisuje hostname a -d pouze zapíná debug výpisy.
2. GraphQL API
GraphQL podporuje ZAP přes GraphQL add-on. Pozor: GraphQL Armor od Escape je serverový middleware pro ochranu API, ne scanner.
3. Single Page Applications (SPA)
Pro moderní webové aplikace ZAP doporučuje Client Spider. Nuclei spustí šablony vyžadující prohlížeč jen s přepínačem -headless.
DAST vs IAST vs RASP
| Nástroj | Jak funguje | Výhody | Nevýhody |
|---|---|---|---|
| DAST (Dynamic) |
Black-box testování běžící aplikace z venku | Žádný přístup ke kódu, language-agnostic, nízké false positives | Pomalé, nedává přesnou lokaci v kódu, potřebuje běžící aplikaci |
| SAST (Static) |
Analýza zdrojového kódu bez spuštění | Rychlé, early detection, přesná lokace v kódu | Vyšší false positives, language-specific, nevidí runtime issues |
| IAST (Interactive) |
Agent uvnitř aplikace monitorující runtime behavior | Přesné, nízké FP, code-level insights + runtime context | Vyžaduje instrumentation, performance overhead |
| RASP (Runtime Protection) |
Active defense v production - blokuje útoky real-time | Production security, zero-day protection, virtual patching | Performance impact, false positive může blokovat legitimate users |
Zdroje
- ZAP: Docker images (říjen 2026)
- ZAP Blog: ZAP has joined forces with Checkmarx (září 2024)
- ZAP: API Scan (říjen 2026)
- ZAP: Client Spider (říjen 2026)
- ZAP: GraphQL Support add-on (říjen 2026)
- GitHub: zaproxy/action-baseline (říjen 2026)
- GitHub: actions/upload-artifact (říjen 2026)
- GitLab Docs: Deprecated keywords (only / except) (říjen 2026)
- Docker Docs: Compose file version and name (říjen 2026)
- CIRT.net: Nikto (říjen 2026)
- Invicti: Acunetix (Invicti Web + API) (říjen 2026)
- ProjectDiscovery: Running Nuclei (říjen 2026)