19. Testování bezpečnosti
Co se po vás bude chtít?
Úvod do testování bezpečnosti
-
Proč testovat bezpečnost:
- Identifikace zranitelností před útočníky
- Ověření účinnosti bezpečnostních opatření
- Compliance a regulatorní požadavky
- Snížení rizika bezpečnostních incidentů
-
Kdy testovat:
- Během vývoje (shift-left)
- Před nasazením do produkce
- Pravidelně v produkčním prostředí
- Po významných změnách
Typy bezpečnostního testování
Podle přístupu k informacím
-
Black Box Testing:
- Tester nemá žádné informace o systému
- Simuluje reálného útočníka
- Časově náročnější
-
White Box Testing:
- Tester má plný přístup ke kódu a dokumentaci
- Důkladnější pokrytí
- Efektivnější pro nalezení všech zranitelností
-
Grey Box Testing:
- Částečné informace o systému
- Kombinace obou přístupů
- Nejčastější v praxi
Podle metody
-
SAST (Static Application Security Testing):
- Analýza zdrojového kódu bez spuštění
- Nalezení zranitelností v kódu
- Integrace do CI/CD pipeline
- Nástroje: SonarQube, Checkmarx, Semgrep
-
DAST (Dynamic Application Security Testing):
- Testování běžící aplikace
- Simulace útoků zvenčí
- Nalezení runtime zranitelností
- Nástroje: OWASP ZAP, Burp Suite, Nikto
-
IAST (Interactive Application Security Testing):
- Kombinace SAST a DAST
- Agent běžící uvnitř aplikace
- Real-time analýza během testování
-
Penetration Testing:
- Simulované útoky odborníky
- Manuální testování + automatizované nástroje
- Komplexní report s doporučeními
-
Code Review:
- Manuální kontrola kódu
- Identifikace logických chyb
- Sdílení znalostí v týmu
Metodiky testování
-
OWASP Testing Guide:
- Standardizovaný framework pro testování
- Pokrývá všechny aspekty webové bezpečnosti
- Checklist pro testery
-
PTES (Penetration Testing Execution Standard):
- Pre-engagement (dohoda o rozsahu)
- Intelligence Gathering (sběr informací)
- Threat Modeling
- Vulnerability Analysis
- Exploitation
- Post-Exploitation
- Reporting
-
OSSTMM (Open Source Security Testing Methodology Manual):
- Metodologie pro testování bezpečnosti
- Měřitelné výsledky
Nástroje pro testování
Proxy nástroje
-
Burp Suite:
- Profesionální nástroj pro testování webových aplikací
- Intercepting proxy - zachytávání a modifikace požadavků
- Scanner - automatické vyhledávání zranitelností
- Intruder - automatizované útoky
- Repeater - opakování a úprava požadavků
- Decoder - kódování/dekódování dat
-
OWASP ZAP (Zed Attack Proxy):
- Open-source alternativa k Burp Suite
- Automatický scanner
- Aktivní a pasivní skenování
- API pro automatizaci
Skenery zranitelností
-
Nikto:
- Skener webových serverů
- Detekce zastaralého software
- Známé zranitelnosti
-
Nessus / OpenVAS:
- Komplexní vulnerability skenery
- Síťové i aplikační zranitelnosti
-
SQLMap:
- Automatizované testování SQL injection
- Detekce typu databáze
- Extrakce dat
- Různé techniky (boolean-based, time-based, UNION-based)
Fuzzing nástroje
-
ffuf (Fuzz Faster U Fool):
- Rychlý web fuzzer
- Vyhledávání skrytých souborů a adresářů
- Fuzzing parametrů
-
wfuzz:
- Flexibilní web fuzzer
- Fuzzing cookies, headers, parametrů
-
gobuster / dirb:
- Directory/file bruteforcing
- Wordlist-based discovery
-
Burp Intruder:
- Integrovaný fuzzer v Burp Suite
- Různé typy útoků (Sniper, Battering ram, Pitchfork, Cluster bomb)
Fuzzing
-
Co je fuzzing:
- Automatizované testování neočekávanými vstupy
- Hledání chyb a zranitelností
- Generování velkého množství testovacích dat
-
Typy fuzzingu:
- Mutation-based - modifikace validních vstupů
- Generation-based - generování vstupů podle specifikace
- Coverage-guided - optimalizace podle pokrytí kódu
-
Co fuzzovat:
- URL parametry
- POST data
- HTTP hlavičky
- Cookies
- Soubory a adresáře
- API endpointy
-
Wordlisty:
- SecLists - rozsáhlá kolekce wordlistů
- Vlastní wordlisty pro specifické účely
- Kombinace více wordlistů
Praktické postupy testování
Reconnaissance (průzkum)
- Sběr informací o cíli
- Enumerace subdomén
- Identifikace technologií (Wappalyzer)
- Vyhledání skrytých souborů a endpointů
Testování autentizace
- Brute-force útoky
- Default credentials
- Password policy bypass
- Session management
Testování autorizace
- IDOR (Insecure Direct Object Reference)
- Privilege escalation
- Horizontal/vertical access control
Testování vstupů
- SQL Injection
- XSS
- Command Injection
- Path Traversal
- File Upload vulnerabilities
Reporting
-
Obsah reportu:
- Executive summary
- Metodologie
- Nalezené zranitelnosti
- Severity rating (CVSS)
- Proof of Concept
- Doporučení pro nápravu
-
Klasifikace závažnosti:
- Critical - okamžité riziko, plný kompromis
- High - významné riziko, citlivá data
- Medium - omezené riziko
- Low - minimální dopad
- Informational - best practices
DevSecOps
-
Integrace bezpečnosti do CI/CD:
- Automatizované SAST při každém commitu
- DAST v staging prostředí
- Dependency scanning
- Container scanning
-
Shift-left přístup:
- Bezpečnost od začátku vývoje
- Security training pro vývojáře
- Threat modeling v návrhu
Odkazy na zdroje informací
Metodiky
- OWASP Testing Guide - Průvodce testováním
- PTES - Penetration Testing Execution Standard
Nástroje
- Burp Suite - Profesionální nástroj pro testování
- OWASP ZAP - Open-source alternativa
- SQLMap - SQL injection nástroj
- ffuf - Web fuzzer
- SecLists - Wordlisty pro testování
Praktické procvičení
- PortSwigger Web Security Academy - Bezplatné laby
- HackTheBox - CTF platforma
- TryHackMe - Výukové prostředí
- OWASP WebGoat - Cvičná zranitelná aplikace
Připrav se na HAXAGONu
Webové technologie:
- Web - HTTP
- Web - Fuzzing
HTTP:
- HTTP - Cookies
- HTTP - SSL/TLS
- HTTP - Zabezpečení skladu
Battlefield:
- HaXasino 1
- HaXasino 2
- HaXasino 3
- HaXasino 4
- HaXasino 5
- Awesome eshop
- Simple Api
- Adventure time
- Hammer time
Ostatní:
- bWAPP
- OWASP Juice Shop
- Evil Pharma