Firewall
Firewall (čti [fajrvól]) je síťové zařízení, které slouží k řízení a
zabezpečování síťového provozu mezi sítěmi s různou úrovní důvěryhodnosti a
zabezpečení. Zjednodušeně se dá říct, že slouží jako kontrolní bod, který
definuje pravidla pro komunikaci mezi sítěmi, které od sebe odděluje. Tato
pravidla historicky vždy zahrnovala identifikaci zdroje a cíle dat (zdrojovou a
cílovou IP adresu) a zdrojový a cílový port, což je však pro dnešní firewally už
poměrně nedostatečné – modernější firewally se opírají přinejmenším o informace
o stavu spojení, znalost kontrolovaných protokolů a případně prvky IDS.
Firewally se během svého vývoje řadily zhruba do následujících kategorií:
Paketové filtry
Aplikační brány
Stavové paketové filtry
Stavové
paketové filtry s kontrolou známých protokolů a popř. kombinované s IDS
Kategorie 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 odpovědní pakety 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 odpovědní pakety 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.
Bezpečnostní politika
Nastavení pravidel pro komunikaci
přes firewall se běžně označuje termínem „bezpečnostní politika firewallu“,
zkráceně „bezpečnostní politika“. Bezpečnostní politika zahrnuje nejen samotná
pravidla komunikace mezi sítěmi, ale u většiny dnešních produktů také různá
globální nastavení, překlady adres (NAT), instrukce pro vytváření šifrovaných
spojení mezi šifrovacími branami (VPN – Virtual Private Networks), vyhledávání
možných útoků a protokolových anomálií (IDS – Intrusion Detection Systems),
autentizaci a někdy i autorizaci uživatelů a správu šířky přenosového pásma
(bandwidth management).