Press "Enter" to skip to content

Kategorizacee skenování webových aplikací dle míry automatizovatelnosti a míry pasivity či aktivity

Původní význam slova „scanning“ (od 1398) není spojen s technologií nebo automaty, ale s lidskou činností – „zkoumavě se dívat“ nebo „zkoumat očima“. [1] Tento význam vychází ze schopnosti pozorovat a zkoumat detaily, což je činnost čistě manuální a ryze lidská.

Až od 19. století, konkrétně od roku 1863, kdy se objevil adjektivní význam „který pečlivě skenuje nebo zkoumá; kritický, prohledávající“ [1], se začal význam rozšiřovat na popis pečlivého nebo systematického zkoumání, což už mohlo být přeneseno na procesy podobné těm, které dnes provádějí stroje.

Teprve s rozvojem technologií (zejména v medicíně a televizi, jak ukazuje zápis ve slovníku) začalo slovo „scanning“ označovat systematické snímání také pomocí zařízení, jak to rozumíme dnes. Tento technologický význam je mladší a má kořeny právě ve starších lidských činnostech zkoumání. [1]


Míra automatizovatelnosti

Proces skenování webových aplikací lze rozdělit na základě míry zapojení člověka a použití nástrojů. Toto dělení pomáhá zvolit správný přístup pro konkrétní projekt – od zcela manuálních metod po plně automatizované procesy. Každý přístup má své specifické výhody a nevýhody, které je třeba zvážit v kontextu projektu.

Zde jsou tři hlavní kategorie automatizace:

👤 Neautomatizované skenování

Charakteristika: Čistě manuální proces, kdy člověk ručně prozkoumává aplikaci, hledá zranitelnosti, testuje funkčnost nebo analyzuje její strukturu.

Příklady použití:

  • Manuální testování aplikací (např. pomocí prohlížeče).
  • Detailní analýza specifických částí kódu nebo chování aplikace, které nelze snadno pokrýt automatickými nástroji.

Výhody:

  • Vysoce přizpůsobitelné konkrétním potřebám.
  • Ideální pro komplexní nebo unikátní případy.

Nevýhody:

  • Velmi časově náročné.
  • Výsledky závisí na odbornosti a pečlivosti testera.

🤖🤝👤 Semiautomatizované skenování

Role nástroje: Nástroj slouží jako pomůcka k urychlení manuální práce.

Charakteristika: Kombinace manuálních a automatizovaných přístupů. Tester využívá nástroje nebo skripty ke zrychlení práce, ale klíčové rozhodování a interpretace výsledků zůstává na člověku.

Příklady použití:

  • Použití automatizovaných nástrojů (např. Burp Suite, OWASP ZAP) ke zjištění známých zranitelností, přičemž manuální kontrola ověřuje nebo doplňuje výstupy.
  • Automatizace rutinních úkolů, jako je mapování webu nebo kontrola SSL certifikátů.
  • Definice konkrétních testovacích scénářů s ruční tvorbou požadavků (např. přes Burp Suite nebo ZAP).

Výhody:

  • Úspora času díky automatizovaným částem.
  • Flexibilita díky manuálnímu zásahu.
  • Vhodné pro složité nebo unikátní aplikace.

Nevýhody:

  • Stále může být časově náročné.
  • Vyžaduje dovednosti jak v manuálním testování, tak v práci s nástroji.

🤖 Automatizované skenování

Charakteristika: Plně automatizovaný proces, kdy nástroje nebo systémy provádějí analýzu samostatně, s minimální nebo žádnou manuální intervencí (např. pouze nastavení a interpretace zprávy).

Příklady použití:

  • Automatizované skenovací nástroje spuštěné na CI/CD pipeline (např. Nessus, Acunetix).
  • Skenování známých zranitelností podle CVE databází.
  • Rutinní testy, jako je kontrola konfigurace SSL nebo hledání veřejně známých slabin.

Výhody:

  • Rychlost a opakovatelnost.
  • Vhodné pro rutinní nebo pravidelné kontroly (např. v rámci DevSecOps).

Nevýhody:

  • Omezená schopnost odhalit nové nebo složité zranitelnosti.
  • Falešně pozitivní nebo negativní výsledky vyžadují manuální ověření.
  • Může přehlédnout kontextově specifické problémy.

Toto rozdělení dobře reflektuje nejen míru automatizace, ale i různé přístupy k testování. Volba vhodné metodiky závisí na cílech projektu, dostupných zdrojích a povaze testované aplikace. Většina moderních nástrojů, jako jsou OWASP ZAP, Burp Suite nebo Nessus, umožňuje kombinovat semiautomatizované i automatizované přístupy, což výrazně zvyšuje jejich flexibilitu a praktické využití.


Míra pasivity/aktivity

Při plánování bezpečnostního testování je klíčové pochopit rizika spojená s jednotlivými metodami. Testovací přístupy lze klasifikovat podle dvou hlavních dimenzí – míry automatizace a aktivity. Tento pohled umožňuje zvolit metodu, která nejlépe odpovídá konkrétním cílům, typu aplikace a prostředí, ve kterém je testování prováděno. Níže je uvedeno seřazení testovacích metod od nejbezpečnějších po ty rizikovější s ohledem na jejich vliv na aplikaci.

🛌 Pasivní skenování

Charakteristika:

  • Testování bez aktivního zásahu do běhu aplikace.
  • Sběr a analýza dat probíhá „zvenčí“, aniž by došlo ke změně stavu aplikace.
  • Tester (nebo nástroj) pouze pozoruje provoz, monitoruje přenosy, analyzuje odpovědi a hledá možné bezpečnostní slabiny.

Příklady:

  • Analýza HTTP hlaviček a odpovědí (např. šifrování, cookies, CORS politiky).
  • Sledování síťového provozu pomocí nástrojů, jako je Wireshark.
  • Kontrola veřejně dostupných informací (např. metadata, viditelné chyby, konfigurace serveru).

Výhody:

  • Bezpečné – nehrozí poškození nebo destabilizace aplikace.
  • Nízká pravděpodobnost detekce testování bezpečnostními systémy (např. WAF).

Nevýhody:

  • Omezené výsledky – neodhalí aktivní zranitelnosti (např. neznámé vstupní body).

🏃‍♂️ Aktivní testování

Charakteristika:

  • Tester (nebo nástroj) aktivně zasahuje do aplikace, generuje požadavky, manipuluje s daty nebo se snaží vyvolat specifické reakce.
  • Zaměřuje se na nalezení zranitelností, které vyžadují aktivní interakci s aplikací.

Příklady:

  • Testování na SQL Injection, XSS nebo CSRF.
  • Fuzzing vstupů (testování neočekávanými nebo chybnými daty).
  • Manipulace s parametry požadavků (např. tampering s cookies nebo GET/POST daty).

Příklady používaných nástrojů:

  • Burp Suite (aktivní skenování).
  • OWASP ZAP (aktivní pravidla pro testování zranitelností).
  • Acunetix, Nessus, Nikto (prohledávání známých zranitelností).

Výhody:

  • Odhalí širší spektrum zranitelností, včetně těch, které se aktivují pouze při určité interakci.
  • Umožňuje simulaci skutečných útoků.

Nevýhody:

  • Může destabilizovat aplikaci nebo ovlivnit její běh.
  • Vysoké riziko detekce (např. firewall může zablokovat testování).
  • Konkrétní rizika: Například změny ve stavu aplikace, jako je vyprázdnění databáze, odeslání nechtěných e-mailů nebo přetížení serveru. Pro minimalizaci těchto rizik je důležité provádět aktivní testování mimo produkční prostředí.

🧩 Kombinované nebo jiné přístupy

Charakteristika:

  • Kombinace pasivního a aktivního testování nebo metody, které nespadnou přesně do jedné z kategorií.
  • Využívají se například pro simulaci reálných hrozeb nebo pokročilé testovací scénáře.

Příklady:

  • Grey-box testing: Tester má částečné informace o aplikaci a kombinuje pasivní analýzu s cílenými aktivními testy.
  • Penetrační testování: Simulace útoku, která zahrnuje pasivní fázi (shromažďování informací) i aktivní fázi (exploatace).

Příklady používaných nástrojů:

  • Komplexní nástroje typu Burp Suite, OWASP ZAP nebo Kali Linux.
  • Specializované frameworky jako Metasploit (pro aktivní exploatace).

Výhody:

  • Realističtější výsledky.
  • Flexibilita v přístupu – možnost přizpůsobit metody aplikaci.

Nevýhody:

  • Vyžaduje zkušené testery.
  • Může být časově a technicky náročné.

Shrnutí rozdílů

Typ testováníAktivitaCílRiziko zásahu
PasivníNízkáZískání informací a analýzaNízké
AktivníVysokáOdhalení aktivních zranitelnostíVysoké
KombinovanéStřední/VysokáRealistické testováníStřední/Vysoké

Testování z pohledu aktivity lze rozdělit na pasivní, aktivní a kombinované. Každá metoda má svůj účel a výhody, přičemž volba závisí na cílech testování, povaze aplikace a ochotě podstoupit riziko zásahu do jejího chodu. Aktivní přístupy mohou odhalit kritické zranitelnosti, zatímco pasivní testování je bezpečné, ale omezené. V praxi se často kombinuje více přístupů pro dosažení co nejlepších výsledků.


Klasifikace podle rizika a přístupu

Seřazení metod podle rizika

MetodaCharakteristikaRizika
Neautomatizované pasivní skenováníŽádný zásah do aplikace, minimální riziko destabilizace.Žádné či minimální.
Semiautomatizované pasivní skenováníBezpečné jako čistě manuální, automatizace může zvýšit zátěž serveru.Zvýšený objem datových požadavků, riziko detekce.
Automatizované pasivní skenováníAutomatizace zvyšuje zátěž aplikace (např. CI/CD pipeline).Možnost přetížení při velkém počtu požadavků.
Neautomatizované aktivní skenováníManuální přístup umožňuje větší kontrolu, ale stále zasahuje do aplikace.Riziko destabilizace aplikace.
Semiautomatizované aktivní skenováníAutomatizované kroky mohou způsobit nečekané chování, závisí na správné konfiguraci nástroje.Riziko vyšší zátěže aplikace nebo nežádoucích změn.
Automatizované aktivní skenováníPlně automatizované testy, rychlé provedení.Možnost destabilizace, falešně pozitivní nebo negativní výsledky.
Neautomatizované aktivní skenování s exploatacíManuální exploatace umožňuje detailní kontrolu, ale přináší vysoké riziko.Potenciální destabilizace nebo narušení provozu aplikace.
Semiautomatizované aktivní skenování s exploatacíKombinace manuálních a automatizovaných kroků, může zvýšit efektivitu.Riziko nečekaných důsledků, například úniku dat.
Automatizované aktivní skenování s exploatacíNejméně bezpečná metoda. Automatizované exploatace zranitelností mohou způsobit vážné problémy.Vysoké riziko narušení provozu aplikace, únik dat, přetížení nebo úplný pád systému.

Modelování hrozeb

Určete kontext a hranice systému

Tento přístup vám pomůže rychle identifikovat a prioritizovat rizika, což může zajistit efektivnější a cílenější bezpečnostní testování.


Bez modelování hrozeb

Modelování hrozeb není vždy možné nebo efektivní, zejména pokud:

  • Není dostupná kvalitní dokumentace aplikace nebo systému.
  • Komunikace se správcem systému je omezená nebo nejasná.
  • Je třeba provádět rychlé testy, kde není čas na detailní analýzu.
  • Prioritizace není nutná, protože cílem je prověřit široké spektrum zranitelností bez ohledu na kontext.

V takových případech je praktické použít strukturální přístup založený na osvědčených metodikách a známých vektorech útoku, například prostřednictvím OWASP Web Security Testing Guide (WSTG) nebo jiných rámců. Tento přístup umožňuje efektivní testování i bez předchozího modelování hrozeb.

Výhody tohoto přístupu

  • Rychlý start: Testy můžete zahájit bez podrobné analýzy systému.
  • Standardizace: Postupujete podle osvědčených rámců, což zajišťuje kvalitní pokrytí.
  • Snadná iterace: Lze rychle upravit zaměření podle výsledků.

Nevýhody tohoto přístupu

  • Méně cílené: Hrozí, že přehlédnete rizika specifická pro danou aplikaci.
  • Zvýšené zatížení systému: Široké skenování může být náročné na výkon.
  • Chybí prioritizace: Testujete vše bez zohlednění skutečné důležitosti hrozeb.

Kdy tento přístup použít?

  • Když není čas nebo podmínky pro modelování hrozeb.
  • Když je aplikace obecného charakteru a hrozby lze dobře pokrýt známými metodikami.
  • Jako základní vrstva testování, kterou lze později doplnit detailnější analýzou.

Tento přístup, kombinovaný například s OWASP WSTG nebo OWASP Top 10 (S OWASP Top 10 opatrně!), vám umožní efektivně testovat bezpečnost i v situacích s omezenými informacemi.


Příklady postupu bez modelování hrozeb

Využití osvědčených metodik (např. OWASP WSTG)

OWASP WSTG poskytuje strukturovaný přehled kategorií testů, které můžete provádět. Mezi nejdůležitější oblasti patří:

  • Autentizace:
    • Testování slabých hesel, bruteforce útoky, přihlašovací mechanizmy.
    • Kontrola bezpečnosti session cookies (např. nastavení HttpOnly, Secure).
  • Autorizace:
    • Horizontální eskalace práv (přístup k datům jiných uživatelů).
    • Vertikální eskalace práv (získání administrátorských oprávnění).
  • Vstupy a výstupy:
    • Testování na SQL Injection, XSS, Command Injection.
    • Fuzzing vstupních polí (neočekávané nebo škodlivé hodnoty).
  • Konfigurace serveru a infrastruktury:
    • Testy na chyby v HTTP hlavičkách (např. X-Content-Type-Options, CORS).
    • Kontrola SSL/TLS certifikátů.
  • API:
    • Testování bezpečnosti REST a SOAP API, neautorizované přístupy, nesprávné metody HTTP (např. DELETE).
  • Další zranitelnosti:
    • CSRF, Clickjacking, File Upload Vulnerabilities.
  • Atd.

Využití známých seznamů zranitelností (např. OWASP Top 10)

Pokud neprovádíte modelování hrozeb, je dobré zaměřit se na známé zranitelnosti, například:

  • OWASP Top Ten (2021):
    • A01:2021 – Broken Access Control
    • A02:2021 – Cryptographic Failures
    • A03:2021 – Injection
    • A04:2021 – Insecure Design
    • A05:2021 – Security Misconfiguration
    • A06:2021 – Vulnerable and Outdated Components
    • A07:2021 – Identification and Authentication Failures
    • A08:2021 – Software and Data Integrity Failures
    • A09:2021 – Security Logging and Monitoring Failures
    • A10:2021 – Server-Side Request Forgery (SSRF)
    • !!! Myslet na to, že OWASP Top 10 je jen statistická záležitost – nemusí být relevantní pro danou aplikaci. Existují i starší verze OWASP Top 10, existuje rozhodně mnohem mnohem více zranitelností, než jen 10.

Použití nástrojů pro široké pokrytí

Když nevíte, na co přesně se zaměřit, použijte skenovací nástroje, které pokryjí široké spektrum zranitelností:

  • Automatizované skenery: Burp Suite, OWASP ZAP, Acunetix.
  • Fuzzery: ffuf, dirb, wfuzz (pro hledání skrytých cest a vstupů).
  • Analyzátory kódu (pokud je přístupný): SonarQube, Checkmarx.

Zaměření na standardní vektory útoku

Když je dokumentace nedostatečná, zaměřte se na typické slabiny webových aplikací:

  • Vstupní body:
    • Formuláře, vyhledávání, uživatelské profily, upload soubory.
  • Session a autentizace:
    • Session hijacking, slabé session ID, nechráněné přihlašování.
  • API:
    • Endpointy na základě běžných vzorů URL, např. /api/v1/.

Využití výsledků k iteraci

I když jste nezačali modelováním hrozeb, průběh testování vám může pomoci odhalit, které oblasti jsou zranitelnější. Na základě těchto výsledků lze přidat více cílené testy.


Výběr nástrojů a metod například podle kanálů (OSSTMM)

TřídaKanálPopis
Fyzická bezpečnost (PHYSEC)LidskýZahrnuje lidský prvek komunikace, kde interakce je buď fyzická, nebo psychologická.
FyzickýTestování fyzické bezpečnosti, kde je kanál jak fyzický, tak neelektronický. Zahrnuje hmatatelný prvek bezpečnosti, kde interakce vyžaduje fyzické úsilí nebo použití energetického přenosu.
Spektrální bezpečnost (SPECSEC)BezdrátovýZahrnuje veškeré elektronické komunikace, signály a emise, které probíhají v rámci známého EM spektra. Patří sem ELSEC (elektronická komunikace), SIGSEC (signály) a EMSEC (emise nevyužívající kabely).
Komunikační bezpečnost (COMSEC)TelekomunikaceZahrnuje všechny telekomunikační sítě, digitální nebo analogové, kde interakce probíhá prostřednictvím zavedených telefonních nebo telefonních sítí.
Datové sítěZahrnuje všechny elektronické systémy a datové sítě, kde interakce probíhá prostřednictvím zavedených kabelových nebo drátových síťových linek.

Poznámka 1: Kanály a jejich rozdělení mohou být reprezentovány různými způsoby, nicméně v rámci tohoto manuálu jsou organizovány jako rozpoznatelné způsoby komunikace a interakce. Tato organizace je navržena tak, aby usnadnila testovací proces a minimalizovala neefektivitu, která často provází přísné metodologie. [2]

Poznámka 2: Všimněte si, že v tabulce nejsou uvedeny třeba: software, procesy, …

Výběr nástrojů a postupů podle komunikačních kanálů je efektivní přístup, zejména pokud využíváte rámce jako OSSTMM (Open Source Security Testing Methodology Manual). Jak ukazuje výše uvedená tabulka, OSSTMM rozděluje kanály na různé třídy (např. Physical Security, Spectrum Security, Communications Security), což umožňuje přizpůsobit testování konkrétním cílům a charakteristikám těchto kanálů. Nicméně je třeba myslet na to, že i tyto rámce mají své limity.

Postup výběru nástrojů a testovacích metod podle kanálů by mohl vypadat například takto:

1. Identifikace kanálu

Nejprve určete, jaký kanál chcete testovat, protože různé kanály vyžadují odlišné přístupy a nástroje:

  • Physical Security (PHYSEC):
    • Lidský faktor (Human) – např. sociální inženýrství.
    • Fyzická bezpečnost (Physical) – např. zabezpečení dveří, kamer, zámků.
  • Spectrum Security (SPECSEC):
    • Bezdrátová komunikace (Wireless) – např. Wi-Fi, Bluetooth, NFC.
  • Communications Security (COMSEC):
    • Telekomunikace (Telecommunications) – telefonní linky, hlasové systémy.
    • Datové sítě (Data Networks) – IP sítě, ethernet, LAN/WAN.

2. Definujte cíl testování

Na základě kanálu určete, co přesně chcete ověřit:

  • Odhalení zranitelností (např. přístupové body, slabá šifrování).
  • Simulace reálného útoku (např. průnik do bezdrátové sítě).
  • Ověření souladu s normami (např. PCI DSS, GDPR).

3. Zvolte příslušné nástroje

Podle cíle a kanálu vyberte nástroje, které jsou pro testování vhodné:

  • Physical Security (PHYSEC):
    • Lidský faktor: Testování sociálního inženýrství, simulace phishingu.
    • Fyzická bezpečnost: Kontrola fyzických zámků, testování RFID přístupových karet, drony pro vizuální inspekci.
  • Spectrum Security (SPECSEC):
    • Wireless: Nástroje jako Aircrack-ng, Kismet (pro Wi-Fi), RFCrack (pro NFC/RF).
    • Emanace (EMSEC): Softwarové rádio (SDR), detekce nechráněných signálů.
  • Communications Security (COMSEC):
    • Telekomunikace: Testování pomocí VoIP nástrojů (např. SIPVicious).
    • Datové sítě: Nástroje jako Nmap, Wireshark, Metasploit.