WAF (Web Application Firewall, česky aplikační firewall) je ochranná vrstva postavená před Váš web. Prohlíží obsah každého příchozího požadavku a ty, které vypadají jako útok, zahodí dřív, než se k webu vůbec dostanou. Aplikace se tak o nich ani nedozví.
Od běžného firewallu se liší tím, kam se dívá. Klasický síťový firewall řeší adresy a porty, tedy odkud a kam se někdo připojuje – je to vrátný, který kontroluje, jestli máte vůbec co pohledávat u dveří. WAF pustí dovnitř každého návštěvníka webu, ale čte, co v ruce nese. Je to spíš rentgen zavazadel než vrátnice.
Co typicky zachytí:
- SQL injection – pokus podstrčit do formuláře příkaz pro databázi, aby vydala obsah tabulky s uživateli.
- XSS – propašování cizího skriptu do stránky, aby se spustil v prohlížeči návštěvníků.
- Skenování známých děr – automat postupně zkouší adresy zranitelných pluginů a doufá, že jednu z nich máte a neaktualizovanou.
- Opakované přihlašování – hrubou silou zkoušená hesla, viz heslo brute force.
- Pokusy o čtení cizích souborů – žádosti o konfigurační soubory s přístupovými údaji.
Funguje to na základě sady pravidel, která popisují, jak podezřelý požadavek vypadá. Z toho plyne i hlavní nevýhoda: pravidlo se občas splete a zablokuje něco legitimního. Bývá to u redakčních systémů, kde autor vkládá do článku kód, nebo u formulářů, kam někdo napíše text připomínající databázový příkaz. Když Vám tedy web najednou hlásí zamítnutý přístup u úkonu, který jste dělali stokrát, může za to právě takové pravidlo.
Naše servery stojí za službou Cloudflare, která ochranu na této úrovni poskytuje, takže se velká část automatického skenování odfiltruje ještě před příchodem k serveru. Pořád ale platí, že WAF je jen jedna vrstva. Nenahradí aktualizace, silná hesla ani zálohu – útočník, který se přihlásí správnými údaji, projde filtrem úplně legálně. Souvislosti shrnuje heslo zabezpečení webu.