Zabezpečení Sítě: Firewally, Proxy a Brány – Detailní Rozbor
Délka: 18 minut
Mýtus, který mate většinu
Co je to vlastně filtrace?
Kdo jsi a odkud jdeš? Filtrace podle IP
Útok pod falešnou vlajkou
Jdeme do hloubky s TCP a UDP
Všechno dohromady: Moderní firewall
Co je skenování portů
Typy skenů a rizika
Co je to proxy?
Tři typy proxy
Brány a shrnutí
Jakub: Víte, co je ta jedna věc, která u zkoušky z firewallů poplete skoro každého? Všichni si myslí, že firewall je jenom nějaký seznam pravidel — „povolit tohle, zakázat tamto“. Jako vyhazovač s papírkem v ruce. Ale to je jen polovina pravdy. Většina dnešních firewallů funguje úplně jinak. A až pochopíte ten klíčový rozdíl, už nikdy se v tom nespletete.
Adéla: Tak to zní jako slib. Tohle je Studyfi Podcast.
Adéla: Dobře Jakube, pojďme na to. Mluvíš o firewallu, ale základem je asi filtrace, že? Co to přesně znamená?
Jakub: Přesně tak. Filtrace je úplný základ. Představ si ji jako kontrolu na hranicích. Aktivní prvek, třeba router nebo přímo firewall, se podívá na procházející data a rozhodne se: „Tebe pustím, tebe ne.“
Adéla: Takže jen třídí provoz, nemění ho?
Jakub: Přesně. Nic nemění, jen propouští nebo zahazuje. Tím se liší třeba od proxy serveru, o kterém si povíme jindy. A u filtrace máme dva hlavní přístupy.
Adéla: Blacklist a whitelist, že?
Jakub: Jasně. Blacklisting je, jako když máš na party seznam problémových hostů. Všichni ostatní můžou dovnitř. Takže „co není zakázáno, je povoleno.“ Je to otevřenější, ale méně bezpečné.
Adéla: A whitelist je opak. Seznam pozvaných, a nikdo jiný se dovnitř nedostane.
Jakub: Přesně! „Co není výslovně povoleno, je zakázáno.“ To je mnohem bezpečnější, ale taky pracnější na správu. V praxi se to často kombinuje. Na hranici firmy máš přísný whitelist, ale na svém notebooku spíš benevolentnější blacklist.
Adéla: A kde všude se taková filtrace děje? Jen na jednom místě?
Jakub: Kdepak, je to vrstvená obrana. Filtruje se na switchích, na routerech, na specializovaném hardwaru, kterým teče veškerý provoz, a taky přímo na tvém počítači, třeba pomocí Windows Firewall. Když jedna vrstva selže, je šance, že to chytne ta další.
Adéla: Dobře, základy máme. Pojďme o úroveň výš. Co můžeme kontrolovat na úrovni sítě, tedy podle IP protokolu?
Jakub: Tady už to začíná být zajímavé. Firewall se dívá do záhlaví každého paketu a ptá se: „Kdo jsi a kam jdeš?“ Takže kontroluje zdrojovou a cílovou IP adresu. Může tak povolit nebo zakázat komunikaci mezi konkrétními počítači nebo celými sítěmi.
Adéla: Takže můžu říct: „Počítač A smí mluvit s počítačem B, ale ne s C“?
Jakub: Přesně. A nejen to. Může filtrovat i podle toho, jaký protokol se veze uvnitř — jestli je to TCP, UDP, nebo třeba ICMP, což jsou ty kontrolní zprávy, které si počítače posílají.
Adéla: Jenže tohle samo o sobě zní… no, trochu bezzubě. Neřekne to, *co* ty počítače dělají. Jestli si prohlížejí web nebo se mi někdo snaží nabourat na server.
Jakub: Trefa. Samotná IP filtrace je základ, ale nestačí. Proto přichází na řadu největší hvězda moderních firewallů… reflexivní filtr!
Adéla: Reflexivní filtr? To zní jako něco z psychologie.
Jakub: Skoro. Říká se mu taky stavový neboli stateful firewall. A teď se dostáváme k tomu, co mate ty studenty. Starý, „stateless“ firewall se na každý paket dívá odděleně. Má svá pravidla a víc ho nezajímá. Přijde paket, zkontroluje pravidla, pustí, nebo zahodí. Konec.
Adéla: A ten stavový… si pamatuje souvislosti?
Jakub: Přesně! On si pamatuje navázaná spojení. Funguje jako inteligentní recepční. Když někdo z tvé firmy zavolá ven, recepční si zapamatuje: „Aha, Jana volá panu Novákovi.“ A když pak pan Novák volá zpátky, recepční ví: „Jasně, to je ten hovor pro Janu, přepojím.“
Adéla: Takže když se můj počítač zeptá Googlu, firewall si to zapamatuje a pustí dovnitř odpověď od Googlu, i když pro to nemám speciální pravidlo?
Jakub: Přesně tak! Pustí ven odchozí paket, a pak dovnitř propustí jen data, která s ním souvisí. Je to dynamické a mnohem bezpečnější, protože nemusíš mít otevřené dveře pro příchozí komunikaci, kterou nikdo zevnitř nezačal.
Adéla: To dává smysl. Ale co když se někdo pokusí firewall oklamat? Třeba se bude vydávat za někoho zevnitř?
Jakub: Výborná otázka. To je klasický útok zvaný „address spoofing“. Útočník pošle paket z internetu, ale jako zdrojovou adresu si nastaví IP adresu z tvé vnitřní sítě.
Adéla: A hloupý, nestavový firewall by si mohl myslet, že ten paket pochází zevnitř, a pustit ho dál?
Jakub: Přesně. Je to jako poslat dopis s falešnou zpáteční adresou. Odpověď útočníkovi sice nepřijde, protože router ji pošle na tu falešnou, skutečnou adresu uvnitř sítě…
Adéla: Ale ten škodlivý paket se dovnitř dostal. A to může stačit, že?
Jakub: Přesně. Takhle se dá doručit třeba falešná DNS odpověď a přesměrovat oběť na podvodný web. Naštěstí existuje obrana. Říká se jí „ingress filtering“.
Adéla: Což znamená?
Jakub: Je to jednoduché pravidlo na hraničním routeru: „Pokud zvenku přichází paket, který tvrdí, že je zevnitř, je to nesmysl. Zahoď ho.“ Je to taková základní digitální hygiena.
Adéla: Dobře, IP adresy máme. Ale říkal jsi, že to nestačí k rozlišení služeb. K tomu potřebujeme porty, tedy filtrace na úrovni TCP nebo UDP, je to tak?
Jakub: Přesně tak. Tady už se dostáváme k tomu, že můžeme povolovat nebo zakazovat konkrétní aplikace. Každá služba běží na nějakém portu – web na portu 80 nebo 443, SSH na 22 a tak dále. Takže můžeme říct: „Tenhle server smí komunikovat se světem jen přes webový port 443 a nic jiného.“
Adéla: Tady zase nastupuje ten stateful firewall, že? Sleduje navázání spojení?
Jakub: Naprosto klíčově. U TCP se dívá hlavně na pakety s příznakem SYN, což je žádost o navázání spojení. Jakmile spojení vznikne, firewall si ho zapíše do své tabulky a dočasně povolí obousměrný provoz v rámci téhle jedné relace.
Adéla: Takže kontroluje, jestli sedí IP adresy, porty a dokonce i pořadová čísla paketů?
Jakub: Ano, přesně tak. Sleduje celou konverzaci. A to je důležité, protože některé protokoly jsou pěkně záludné. Třeba staré FTP.
Adéla: V čem je FTP záludné?
Jakub: Ve svém aktivním režimu. Ty se připojíš k serveru na portu 21, abys mu dal příkazy. Ale když chceš stáhnout soubor, server se pokusí navázat spojení zpátky k tobě na úplně jiný port, aby poslal data. A to by každý normální firewall okamžitě zablokoval!
Adéla: Protože je to nevyžádané spojení zvenku dovnitř?
Jakub: Přesně! Takže chytrý, stateful firewall musí rozumět protokolu FTP. Musí vědět: „Aha, teď si domluvili datové spojení, na chvíli musím povolit příchozí spojení na tenhle konkrétní port.“ Bez toho by to nefungovalo.
Adéla: A co fragmentace? Vím, že velké pakety se můžou po cestě rozdělit na menší kousky. To musí být pro firewall noční můra.
Jakub: Je to problém. Protože TCP hlavička s informací o portech je jen v tom prvním fragmentu. Ty ostatní už ji nemají. Takže jednoduchý filtr by zablokoval první kousek, ale zbytek by prošel.
Adéla: A cílový počítač by se to snažil složit, neuspěl by a poslal chybovou hlášku. Což je zbytečný provoz.
Jakub: Přesně. Robustnější, ale taky výkonově náročnější řešení je, že firewall počká, až se mu sejdou všechny fragmenty, složí si z nich celý segment, zkontroluje ho a pak buď všechny pustí, nebo všechny zahodí.
Adéla: Takže když to všechno sečteme a podtrhneme… co je to vlastně firewall v dnešní době?
Jakub: Firewall je aplikace nebo častěji specializovaný hardware, který provádí všechnu tuhle chytrou filtraci a k tomu ještě všechno loguje. Zaznamenává, co se pokusilo projít, co bylo povoleno, co bylo zamítnuto. To je klíčové pro pozdější analýzu, když se něco stane.
Adéla: Mluvíš o specializovaném hardwaru. To znamená, že to musí být docela výkonné stroje?
Jakub: Pro velký provoz rozhodně. Potřebuješ pořádný procesor, hodně paměti na tu stavovou tabulku a kvalitní síťové karty. Dnešní firewally umí i takzvanou „deep packet inspection“, tedy hloubkovou inspekci paketů. Nestačí jim jen hlavičky, ale dívají se i do samotných dat.
Adéla: Takže rozumí aplikačním protokolům, jako je HTTP? A můžou v něm něco hledat?
Jakub: Přesně. A ty nejpokročilejší jdou ještě dál. Umí i inspekci šifrovaného SSL/TLS provozu.
Adéla: Počkat, jak můžou kontrolovat šifrovaný provoz? To přece nejde, od toho to šifrování je.
Jakub: Jde to, ale je to trochu kontroverzní. Ten firewall se v podstatě chová jako útočník typu „Man-in-the-Middle“. Rozšifruje provoz od tebe, zkontroluje ho, a pak ho znovu zašifruje a pošle dál. Aby to fungovalo, tvůj počítač musí tomu firewallu plně důvěřovat. Ve firmách se to řeší tak, že se na firemní zařízení nainstaluje certifikát firemního firewallu.
Adéla: To trochu narušuje tu myšlenku soukromí a end-to-end šifrování, ne?
Jakub: Narušuje. Je to kompromis mezi bezpečností a soukromím. Umožňuje to odhalit malware schovaný v HTTPS, ale za cenu prolomení důvěry. Proto se to používá hlavně ve firemním prostředí. Takže abychom to shrnuli — dnešní firewall není jen tupý vyhazovač se seznamem. Je to chytrý detektiv, který si pamatuje souvislosti, rozumí různým jazykům a někdy si i vezme lupu, aby se podíval, co se veze uvnitř balíčku.
Adéla: Takže zmapování sítě je základ. Ale jak přesně zjistím, co na těch zařízeních vlastně běží?
Jakub: Přesně tak. A tady na scénu přichází technika, které se říká skenování portů. Je to jeden z nejběžnějších prvních kroků.
Adéla: Dobře, skenování portů. Co si pod tím mám představit? Nějaké prohledávání přístavů?
Jakub: Skoro. Představ si každé zařízení v síti jako dům. Porty jsou jako dveře a okna do toho domu. A skenování portů je v podstatě zkoušení, jestli jsou některé z nich otevřené.
Adéla: Takže vlastně... zkouším kliku u každých dveří?
Jakub: Přesně! Pošleme malý datový paket na konkrétní port a čekáme na odpověď. Když přijde rozumná odpověď, víme, že na daném portu něco naslouchá. Nějaká služba.
Adéla: A k čemu je to dobré? Tedy kromě toho, že to zní jako příprava na vniknutí.
Jakub: No, má to dvě strany. Administrátoři to používají legitimně. Třeba když potřebují ověřit, jestli jim běží webový server nebo jestli ho neblokuje firewall. Ale útočníci to samozřejmě používají k hledání zranitelných aplikací.
Adéla: Takže existují různé způsoby, jak na ty dveře zaklepat?
Jakub: Ano, spousta. Nejzákladnější je takzvaný TCP connect scan. Ten je slušný – zaklepe, počká na otevření a představí se. Dokončí celý třícestný handshake. Ale je pomalý a hlavně... zanechává stopy. Aplikace si zapíše, že jsi přišel.
Adéla: A ten méně slušný způsob?
Jakub: Tomu se říká SYN scan neboli „stealth scan“. To je jako zazvonit a utéct. Pošleš jen první SYN paket, a když cíl odpoví SYN-ACK, víš, že je otevřeno. Ale ty už třetí krok, tedy ACK, nepošleš. Spojení se nikdy plně nenaváže.
Adéla: Takže cíl neví, že jsem tam byl?
Jakub: Přesně tak, aplikace to obvykle nezaloguje. Ale pozor! Moderní firewally a systémy pro detekci průniků to vidí. A masivní skenování může poskytovatel internetu považovat za útok a klidně tě odpojit.
Adéla: Rozumím. Takže je to mocný nástroj, ale musíme vědět, co děláme. Co tedy dělat s informacemi, které takto zjistíme?
Adéla: Takže firewally máme za sebou a je jasné, že jsou základem bezpečnosti. Ale co když potřebujeme něco... chytřejšího, co vidí dovnitř provozu?
Jakub: Přesně tak, Adélo. A tím se dostáváme k našemu poslednímu velkému tématu. Proxy servery.
Adéla: Proxy... to zní jako nějaký prostředník nebo zástupce.
Jakub: To je naprosto přesná trefa! Představ si proxy jako osobního asistenta pro tvůj počítač. Ty mu řekneš, co chceš z internetu, a on to zařídí za tebe.
Adéla: Takže já nekomunikuju přímo s cílovým serverem?
Jakub: Přesně. Komunikuješ s proxy a proxy komunikuje se serverem. Jsou to dvě oddělená spojení. Zvenku to vypadá, že požadavek přišel od proxy, ne od tebe.
Adéla: A k čemu je to dobré? Proč ten krok navíc?
Jakub: Hlavně pro dvě věci. První je filtrace. Jelikož proxy rozumí aplikačním protokolům, jako je HTTP, vidí mnohem víc než firewall. Může blokovat konkrétní weby, nebo dokonce části stránek.
Adéla: Aha! Takže to je ten důležitý rozdíl oproti firewallu, který jen kouká na adresy a porty.
Jakub: Přesně. A druhá věc byla dříve cache. Proxy si ukládala často navštěvované stránky. Dnes už to moc nefunguje, protože je všechno dynamické. Ale ta filtrace je pořád klíčová.
Adéla: Dobře, to dává smysl. Existuje víc druhů těchhle „asistentů“?
Jakub: Jasně! Pojďme se podívat na tři základní typy. První je klasická proxy.
Adéla: Klasická? Jako že je nejstarší?
Jakub: Dalo by se říct. Tady klient, třeba tvůj prohlížeč, o proxy ví. Musíš mu přímo v nastavení říct: „Používej tuhle proxy na téhle adrese.“
Adéla: To je typické pro firmy nebo školy, že?
Jakub: Přesně tak. Prohlížeč pak neposílá požadavek přímo na Seznam.cz, ale pošle ho proxy s tím, že chce stránku Seznam.cz. A proxy to zařídí.
Adéla: Chápu. Ale co když mám aplikaci, kterou nemůžu nastavit? Třeba nějaký starý software.
Jakub: Skvělá otázka! Pro tyhle případy máme generickou proxy. Tady je trik v tom, že klient si myslí, že mluví přímo s cílovým serverem.
Adéla: Jak to?
Jakub: Protože do proxy „zadrátujeme“ adresu cílového serveru. Pro každý server, kam se chceme připojit, běží na proxy speciální port. Klient se připojí na proxy:port1 a ta ho automaticky přesměruje na server1. Nepozná rozdíl.
Adéla: Takže klient o proxy vůbec neví. A co ten třetí typ?
Jakub: Ten se jmenuje transparentní proxy a jde ještě dál. Tady nemusíš nastavovat vůbec nic, ani na klientovi, ani na proxy.
Adéla: Počkat, jak je to možné? To zní jako magie.
Jakub: Skoro. Paket od klienta prostě pošleš na cílový server, ale síťový prvek, třeba router, ho odchytí a tajně přesměruje na proxy. Ta udělá svou práci a odpověď pošle zpět, jako by přišla přímo od serveru.
Adéla: Takže klient je úplně v nevědomosti. Kde se to používá?
Jakub: Dříve to bylo běžné třeba ve veřejných Wi-Fi sítích v hotelech pro filtrování obsahu. Dnes je to s šifrovaným HTTPS provozem mnohem složitější.
Adéla: Dobře, proxy máme. Ale slyšela jsem ještě o termínu brána, neboli gateway. Je v tom rozdíl?
Jakub: Je, a je zásadní. Proxy mluví stejným jazykem jako klient i server. Třeba HTTP. Ale brána protokoly překládá!
Adéla: Překládá? Dej mi příklad.
Jakub: Představ si, že chceš z webového prohlížeče (HTTP) přistoupit na FTP server. Brána vezme tvůj HTTP požadavek, přeloží ho do FTP, stáhne soubory a tobě je zobrazí jako normální webovou stránku.
Adéla: Aha! Takže brána je takový univerzální tlumočník mezi dvěma různými světy. To je chytré.
Jakub: Přesně. A to nás přivádí na úplný konec naší bezpečnostní série. Prošli jsme toho opravdu hodně.
Adéla: To ano. Od základních firewallů, přes chytré systémy detekce průniku, až po dnešní proxy servery a brány. Každý má své místo.
Jakub: Přesně tak. Není to o jedné neprůstřelné technologii, ale o vrstvách obrany. A teď máte, doufám, mnohem lepší přehled, jak tyhle vrstvy fungují. Byla to jízda.
Adéla: To rozhodně byla. Jakube, moc ti děkuju za všechny informace. A vám, milí posluchači, děkujeme za pozornost u Studyfi Podcastu. Doufáme, že vám to pomohlo, a přejeme hodně štěstí u zkoušek! Mějte se hezky.
Jakub: Mějte se!