• bezpečnost

Potřebuji Web Application Firewall?

Autor vshosting~

Před čím chrání web application firewall, jak funguje a pro jaké projekty se nejvíce hodí.

Webové aplikace se stávají častým cílem útoků. Ať už je cílem útočníků shodit e-shop konkurence, nebo ukrást firemní data, negativní dopad na fungování firmy je zásadní. Jak se bránit proti různým síťovým útokům je dobře známo a zdokumentováno, ale ochrana proti specifickým útokům na konkrétní aplikace zůstává spíše v pozadí a v kompetenci vývojářů aplikace. 

Často je řešena pouze pomocí blacklistů IP adres nebo dokonce ignorována ve prospěch výkonu. V dnešní době, kdy je dostatečná kapacita infrastruktury dostupná za velmi nízkou cenu, lze ale škodlivý provoz analyzovat a filtrovat prakticky bez znatelných dopadů na výkon. Řešení, které k tomuto účelu používáme ve vshostingu, je aplikační firewall ShadowD.

Typy aplikačních útoků

Na webové aplikace se dá útočit mnoha způsoby. Nejznámější typy útoků jsou cross-site scripting, session hijacking a různé typy SQL injection. Společným jmenovatelem těchto typů útoků je fakt, že bez detailní analýzy požadavků na aplikační úrovni je jejich odhalení prakticky nemožné. Nedají se totiž odlišit od běžného provozu. K útoku často dochází z jednoho zdroje a jde pouze o jednotky požadavků, ovšem s drtivým dopadem na běh nebo dostupnost aplikace.

Co je ShadowD 

ShadowD je aplikační firewall, který detailně analyzuje příchozí provoz na aplikaci a odstraňuje nebezpečné požadavky. Požadavek zároveň není zcela zablokován, ale jsou z něj pouze odstraněny škodlivé části. Tím ShadowD efektivně znemožňuje provedení útoku, zároveň ale neblokuje regulérní požadavky, které by mohly být omylem považované za útok.

Ve vshostingu v současnosti podporujeme filtraci pro aplikace napsané v PHP, Perlu a Pythonu včetně populárních frameworků jako je Nette, Symphony, Flask nebo Django. Jsme schopni odfiltrovat více než 100 různých aplikačních útoků včetně SQL injection, code injection nebo cross-site scriptingu.

Jak ShadowD funguje

Samotný ShadowD běží na samostatném serveru. Na aplikačních serverech je nasazen connector, který předá ShadowD serveru požadavek včetně metadat o uživateli (zdrojovou IP adresu, data požadavku, cílovou URL, kontrolní součty a další). ShadowD server požadavek vyhodnotí a aplikačnímu serveru předá výsledek testu. 

Celý proces si lze představit podobně jako antivir nebo antispam u e-mailových služeb nebo jako různé nástroje pro monitoring aplikační výkonnosti (např. newrelic). Samotné vyhodnocení útoku probíhá na základě sady pravidel, které detekují nebezpečné vstupy od uživatele a na jejich základě je požadavek vyhodnocen jako bezpečný, nebo jako potenciální útok.

Pravidla mohou být tří různých typů – blacklist, whitelist a integrity checks. Blacklist pravidla říkají, že daný požadavek je vždy vyhodnocen jako útok. Mezi tyto pravidla patří např. různé analýzy vstupů od uživatele, kde se hledají potenciálně nebezpečná data jako např. SQL injection příkazy. Whitelist pravidla fungují přesně obráceně – pokud je daný řetězec nalezen, je požadavek vyhodnocen jako bezpečný. Příkladem jsou například vývojářské přístupy, které spolu s požadavkem posílají konkrétní HTTP hlavičky v kombinaci se seznamem bezpečných IP adres. Integrity checky jsou vhodnou ochranou proti nebezpečným úpravám samotné aplikace. Porovnávají kontrolní součet spouštěných souborů proti databázi známých součtů a varují před nebezpečnými nebo změněnými soubory.

Seznam pravidel lze jednoduše upravovat z webového GUI a přizpůsobit filtraci potřebám konkrétní aplikace. Zároveň lze ShadowD přepnout do pasivního režimu, kdy potenciálně nebezpečné požadavky monitoruje a zaznamenává, samotný požadavek ale nijak nemodifikuje. Toto nastavení je vhodné v prvních fázích nasazení WAF, kdy se filtry dolaďují pro potřeby konkrétní aplikace a zároveň nehrozí přílišná přísnost filtrů vedoucí k vysoké míře false positive detekce.

Architektura ShadowD

Je pro náš projekt web application firewall vhodný?

Ve zkratce: pro produkční prostředí téměř vždy ano. Nasazení WAF přidává další bezpečností vrstvu, která dokáže zajistit vyšší odolnost aplikace před specifickými útoky vedenými přímo na samotnou aplikaci a to bez viditelného dopadu na výkon. WAF není náhradou bezpečného kódu aplikace, nechrání proti útokům na síťovou vrstvu (různé typy DDoS útoků) a nedokáže odfiltrovat 100 % útoků, je ale vhodným doplňkem k dalším nasazeným bezpečnostním mechanismům. A jeho použití lze pouze doporučit.

WAF nechrání před nedostatečným výkonem aplikace a infrastruktury nebo před chybami vývoje. Stejně tak jeho použití může být problematické, pokud není chráněno samotné administrační rozhraní ShadowD a útočník dokáže modifikovat nastavení WAFu nebo sadu pravidel. Zde je velmi vhodné omezit přístup k administraci WAFu pomocí klasického síťového firewallu pouze na bezpečné IP adresy nebo jej zpřístupnit pouze skrze administrační VPN.

Zvažujete aplikační ochranu pro svůj projekt? Obraťte se na nás na konzultace@vshosting.cz a naši experti s vámi nezávazně proberou všechny výhody, nevýhody a specifika v závislosti na vámi používaných technologiích. Aplikační WAF lze kombinovat se všemi našimi managed službami.