IDS – Intrusion Detection System

V rámci interního vzdělávání jsem měl prezentaci o tom, co je to IDS (Instrusion Detection System) a jak jsme jej nasazovali u zákazníka. V tomto článku vám popíši základní principy IDS a jak jej správně začlenit do síťové infrastruktury. Představím vám také některé aplikace, které jsem ve svém řešení IDS použil. Na závěr se budu zabývat tím, jakým způsobem IDS nastavit, jaká volit pravidla a co použít pro vizualizaci reportů.

Co to je IDS a v čem nám může pomoci?

Jak již název napovídá, úkolem IDS je detekovat probíhající útoky v síti. Lze si jej představit jako analogii antivitového programu, ne však pro konkrétní stanici, ale pro veškerý síťový provoz.IDS  porovnává zachycený provoz s databází signatur, hledá shody a notifikuje v případě podezřelého provozu. Dobře vyladěný IDS lze použít i jako IPS – Intrusion Prevention System – nástroj, který krom notifikace rovnou podezřelý traffic blokuje, např. přidáním pravidel firewallu.

Co však IDS není – ani se sebelepší sadou pravidel nikdy nebude 100% všelékem. Podobně jako antivirové programy, obvykle mají „ti zlí“ časový náskok, může se tedy stát, že útok projde nezpozorován. Naopak se také stává, že v síti dochází ke komunikaci, která je za určitých situací podezřelá, ale v našem případě jde o legitimní provoz – toto už musíme rozlišit sami. Neexistuje kouzelný algoritmus, který by to dokázal rozhodnout automaticky. Nesmíme však zapomínat na ostatní složky zabezpečení (firewall, antiviry, …), IDS je jedna ze součástí bezpečnostního řešení, ne všespásný zlatý grál, který za nás vše vyřeší.

Umístění v síti

Aby byl IDS co k čemu, je potřeba jej v sítí správně umístit. Přístup k tomuto lze rozdělit do dvou základních kategorií – hlídání routovaného provozu a hlídání switchovaného provozu. V případě, že usoudíme, že nám stačí sledovat routovaný provoz, jsou nejvhodnějším místem pro umístění sond síťové interface centrálního routeru/firewallu. Pokud se rozhodneme sledování rozšířit i o switchovaný traffic, abychom viděli i provoz v rámci jednoho síťového segmentu, nezbyde nám než duplikovat všechen traffic na access switchích – tam, kde jsou připojené koncové stanice.

Projděme si, jak takové nasazení IDS může vypadat – jedná se o poměrně komplexní řešení sestávající z několika důležitých částí.

Prvním krokem je rozhodnout se, kam IDS umístit – rozhonodut se, zda sledujeme pouze routovaný traffic, nebo nás zajímá vše. Podle objemu provozu musíme naškálovat zdroje – nejslabší článek bude pravděpodobně připojení do sítě. Data se k senzoru prostě dostat musí.

Nástroje pro analýzu a aktualizaci signatur

Dále zvolíme nástroj pro samotnou analýzu trafficu. Já jsem zvolil software Snort, další poměrně známou alternativou je např. Suricata. Snort doporučuji nastavit pro logování do unified2 formátu, nástroje pro jeho zpracování jsou praktičtější, než zpracovávat textové logy.

Jak Snort, tak Suricata potřebují aktuální pravidla (signatury), aby mohly fungovat efektivně. Pro Snort jsou k dispozici aktualizační skripty Oinkmaster nebo PulledPork. Následně nás čeká volba, jaká pravidla použít. Z nekomerčních pravidel mi přijde nejvhodnější sada od Emerging Threats, která staví nad původními GPL pravidly Snortu. Z komerčních máme na výběr třeba placená Snort pravidla nebo rozšířenou sadu od Emerging Threats.

Když máme funkční Snort, chtěli bychom také výstupy nějak zpracovat. Zde poslouží nejlépe utilita Branyard2, která nám z unified2 formátu dokáže dát data do spousty jiných. Já jsem použil syslog (pro emailové notifikace) a databázi MySQL (pro grafické rozhraní).
Emailové notifikace lze řešit mnoha způsoby, já jsem použil skript Swatch ke sledování výstupů v syslogu – hlášení s vysokou prioritou odesílám utilitou sendmail.

GUI pro reprezentaci hlášení a statistik

Zbývá nám pomyslná třešnička na dortu – GUI  pro zobrazení hlášení, statistik a dalších zajímavých dat. Na výběr máme např. staré prostředí ACID, o něco novějšího Squil a moderního Snorby. Squil a Snorby jsou co do funkcionality srovnatelné, vybral jsem tedy Snorby, které vypadá uživatelsky přívětivěji. Jedná se o Ruby on Rails aplikaci, která nám dává jak souhrnné statistiky včetně emailových reportů (denně, týdně, měsíčně), tak možnost projít si jednotlivá hlášení. V nich se můžeme podívat i na packet, který hlášení způsobil, na detail aktivizovaného pravidla, prípadně si rovnou v grafickém prostředí nechat udělat DNS a whois dotazy na zdroj a cíl trafficu – aneb Snorby je tu od toho, aby nám šetřil čas při analýze hlášení Snortu.

Zde máte ochutnávku, jak vypadá Snorby v praxi. Citlivá data byla anonymizována, náhled na provoz je focen v demu na webu Snorby. Na prvním obrázku je k vidění dashboard – souhrn dat, náhled v grafech. Další nám ukazují jednotlivá hlášení a co o nich vidíme. Pokud Vás Snorby zajímá více, doporučuju zkusit demo na webu snorby.org.

Snorby Dashboard

Snorby Dashboard

 

Provoz, náhled na hlášení

Provoz, náhled na hlášení

 

Provoz, detaily zdroje/cíle.

Provoz, detaily zdroje/cíle.

Doufám, že jsem vám tímto dal alespoň náhled do toho, k čemu je IDS dobré a jak ho nasadit. Pro představu, podle situace v síti může takovéto nasazení zabrat 1-2 týdny práce (včetně základní úpravy pravidel).

V případě, že byste měli nějaké dotazy nebo připomínky, neváhejte mě kontaktovat na emailu info@bcvsolutions.eu.