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

Nástroje

Praktické procvičení

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