Technologie firewallů
Paketové filtry
Nejjednodušší a nejstarší forma firewallování, která spočívá
v tom, že pravidla přesně uvádějí, z jaké adresy a portu na jakou adresu a port
může být doručen procházející paket, tj. kontrola se provádí na třetí a čtvrté
vrstvě modelu síťové komunikace OSI.
Výhodou tohoto řešení je vysoká rychlost zpracování, proto se ještě i dnes používají na místech, kde není potřebná přesnost nebo důkladnější analýza procházejících dat, ale spíš jde o vysokorychlostní přenosy velkých množství dat.
Nevýhodou je nízká úroveň kontroly procházejících spojení, která zejména u složitějších protokolů (např. FTP, video/audio streaming, RPC apod.) nejen nedostačuje ke kontrole vlastního spojení, ale pro umožnění takového spojení vyžaduje otevřít i porty a směry spojení, které mohou být využity jinými protokoly, než bezpečnostní správce zamýšlel povolit.
Mezi typické představitele paketových filtrů patří např. tzv. ACL (Access Control Lists) ve starších verzích operačního systému IOS na routerech spol. Cisco Systems, popř. JunOS spol. Juniper Networks, starší varianty firewallu v linuxovém jádře (ipchains).
Aplikační brány
Jen o málo později, než jednoduché paketové filtry, byly
postaveny firewally, které na rozdíl od paketových filtrů zcela oddělily sítě,
mezi které byly postaveny. Říká se jim většinou Aplikační brány, někdy také
Proxy firewally. Veškerá komunikace přes aplikační bránu probíhá formou dvou
spojení – klient (iniciátor spojení) se připojí na aplikační bránu (proxy), ta
příchozí spojení zpracuje a na základě požadavku klienta otevře nové spojení k
serveru, kde klientem je aplikační brána. Data, která aplikační brána dostane od
serveru, pak zase v původním spojení předá klientovi. Kontrola se provádí na
sedmé (aplikační) vrstvě síťového modelu OSI (proto se těmto firewallům říká
aplikační brány).
Jedním vedlejším efektem použití aplikační brány je, že server nevidí zdrojovou adresu klienta, který je původcem požadavku, ale jako zdroj požadavku je uvedena vnější adresa aplikační brány. Aplikační brány díky tomu automaticky působí jako nástroje pro překlad adres (NAT), nicméně tuto funkcionalitu má i většina paketových filtrů.
Výhodou tohoto řešení je poměrně vysoké zabezpečení známých protokolů.
Nevýhodou je zejména vysoká náročnost na použitý HW – aplikační brány jsou schopny zpracovat mnohonásobně nižší množství spojení a rychlosti, než paketové filtry a mají mnohem vyšší latenci. Každý protokol vyžaduje napsání specializované proxy, nebo využití tzv. generické proxy, která ale není o nic bezpečnější, než využití paketového filtru. Většina aplikačních bran proto uměla kontrolovat jen několik málo protokolů (obyčejně kolem deseti). Původní aplikační brány navíc vyžadovaly, aby klient uměl s aplikační branou komunikovat a neuměly dost dobře chránit svůj vlastní operační systém; tyto nedostatky se postupně odstraňovaly, ale po nástupu stavových paketových filtrů se vývoj většiny aplikačních bran postupně zastavil a ty přeživší se dnes používají už jen ve velmi specializovaných nasazeních.
Typickými představiteli aplikačních bran byly např. The Firewall Toolkit (fwtk) a z něj vycházející Gauntlet spol. TIS později zakoupený společností NAI.
Stavové paketové filtry
Stavové paketové filtry provádějí kontrolu stejně
jako jednoduché paketové filtry, navíc si však ukládají informace o povolených
spojeních, které pak mohou využít při rozhodování, zda procházející pakety patří
do již povoleného spojení a mohou být propuštěny, nebo zda musí znovu projít
rozhodovacím procesem. To má dvě výhody – jednak se tak urychluje zpracování
paketů již povolených spojení, jednak lze v pravidlech pro firewall uvádět jen
směr navázání spojení a firewall bude samostatně schopen povolit i pakety
odpovědí a u známých protokolů i další spojení, která daný protokol používá.
Například pro FTP tedy stačí nastavit pravidlo, ve kterém povolíte klientu
připojení na server pomocí FTP a protože se jedná o známý protokol, firewall sám
povolí navázání řídícího spojení z klienta na port 21 serveru, odpovědi z portu
21 serveru na klientem použitý zdrojový port a po příkazu, který vyžaduje přenos
dat, povolí navázání datového spojení z portu 20 serveru na klienta na port,
který si klient se serverem dohodli v rámci řídícího spojení a pochopitelně i
pakety odpovědí z klienta zpět na port 20 serveru. Zásadním vylepšením je i
možnost vytváření tzv. virtuálního stavu spojení pro bezstavové protokoly, jako
např. UDP a ICMP.
K největším výhodám stavových paketových filtrů patří jejich vysoká rychlost, poměrně slušná úroveň zabezpečení a ve srovnání s výše zmíněnými aplikačními branami a jednoduchými paketovými filtry řádově mnohonásobně snazší konfigurace – a díky zjednodušení konfigurace i nižší pravděpodobnost chybného nastavení pravidel obsluhou.
Nevýhodou je obecně nižší bezpečnost, než poskytují aplikační brány.
Typickými představiteli této kategorie firewallů jsou např. FireWall-1 spol. Check Point do verze 4.0, starší verze Cisco PIX, Cisco IOS Firewall, starší verze firewallů Netscreen spol. Juniper a z volně dostupných produktů iptables v linuxovém jádře a ipfw v *BSD.
Stavové paketové filtry s kontrolou protokolů a IDS
Moderní stavové paketové
filtry kromě informací o stavu spojení a schopnosti dynamicky otevírat porty pro
různá řídící a datová spojení složitějších známých protokolů implementují něco,
co se v marketingové terminologii různých společností nazývá nejčastěji Deep
Inspection nebo Application Intelligence. Znamená to, že firewally jsou schopny
kontrolovat procházející spojení až na úroveň korektnosti procházejících dat
známých protokolů i aplikací. Mohou tak například zakázat průchod http spojení,
v němž objeví indikátory, že se nejedná o požadavek na WWW server, ale
tunelování jiného protokolu, což často využívají klienti P2P sítí (ICQ,
gnutella, napster, apod.), nebo když data v hlavičce e-mailu nesplňují požadavky
RFC apod.
Nejnověji se do firewallů integrují tzv. in-line IDS (Intrusion Detection Systems – systémy pro detekci útoků). Tyto systémy pracují podobně jako antiviry a pomocí databáze signatur a heuristické analýzy jsou schopny odhalit vzorce útoků i ve zdánlivě nesouvisejících pokusech o spojení, např. skenování adresního rozsahu, rozsahu portů, známé signatury útoků uvnitř povolených spojení apod.
Výhodou těchto systémů je vysoká úroveň bezpečnosti kontroly procházejících protokolů při zachování relativně snadné konfigurace, poměrně vysoká rychlost kontroly ve srovnání s aplikačními branami, nicméně je znát významné zpomalení (zhruba o třetinu až polovinu) proti stavovým paketovým filtrům.
Nevýhodou je zejména to, že z hlediska bezpečnosti designu je základním pravidlem bezpečnosti udržovat bezpečnostní systémy co nejjednodušší a nejmenší. Tyto typy firewallů integrují obrovské množství funkcionality a zvyšují tak pravděpodobnost, že v některé části jejich kódu bude zneužitelná chyba, která povede ke kompromitování celého systému.
Typickými představiteli této kategorie jsou Check Point FireWall-1 (od verze 4.1, nyní NGX), produkty řady Netscreen, ISG a SSG společnosti Juniper. Podobná funkcionalita je k dispozici ve formě experimentálních modulů také pro iptables v linuxovém jádře.