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
OWASP ZAP (Zed Attack Proxy)
Nejpopulárnější open-source DAST nástroj. Ideální pro začátečníky i profesionály, s GUI i CLI režimem.
- 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)
- 1000+ security checks
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)
- $449/rok pro Professional license
Nuclei
Moderní fast vulnerability scanner založený na YAML templates. Ideální pro CI/CD automatizaci.
- 4000+ community templates
- Rychlé paralelní skanování
- Custom templates v YAML
- Integration s Slack, Jira, GitHub
- Headless browser support
Acunetix
Enterprise-grade web vulnerability scanner se zaměřením na komplexní JavaScript aplikace.
- Advanced JavaScript/SPA crawling
- Network security scanning
- Integration s WAF (Web Application Firewall)
- Issue tracking (Jira, GitHub)
Nikto
Klasický web server scanner pro detekci známých zranitelností a misconfigurations.
- 7000+ potentially dangerous files/programs
- 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 OWASP ZAP do GitLab CI/CD pipeline:
GitHub Actions příklad
Docker Compose pro lokální DAST testing
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: 80% aplikace je za loginem, 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
2. GraphQL API
3. Single Page Applications (SPA)
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 |