Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

Podle statistik se objem síťového provozu každým rokem zvyšuje zhruba o 50 %. To vede ke zvýšení zátěže zařízení a zejména ke zvýšení požadavků na výkon IDS / IPS. Můžete si koupit drahý specializovaný hardware, ale existuje levnější varianta – zavedení některého z open source systémů. Pro mnoho začínajících správců je obtížné nainstalovat a nakonfigurovat bezplatné IPS. V případě Suricaty to tak úplně neplatí – můžete si ji nainstalovat a během pár minut začít odrážet typické útoky pomocí sady bezplatných pravidel.

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty
Snort nebo Suricata. Část 1: Volba bezplatného IDS/IPS pro ochranu vaší podnikové sítě

Proč potřebujeme další otevřený IPS?

Snort byl dlouho považován za standard a byl vyvíjen od konce devadesátých let, takže byl původně jednovláknový. Během let se v něm objevily všechny moderní funkce, jako je podpora IPv6, možnost analýzy protokolů na aplikační úrovni nebo modul pro univerzální přístup k datům.

Jádrový engine Snort 2.X se naučil pracovat s více jádry, ale zůstal jednovláknový, a proto nemůže optimálně využívat výhod moderních hardwarových platforem.

Problém byl vyřešen ve třetí verzi systému, ale příprava trvala tak dlouho, že se Suricata napsaná od nuly dokázala objevit na trhu. V roce 2009 se začal vyvíjet právě jako vícevláknová alternativa k Snortu, který má funkce IPS hned po vybalení. Kód je distribuován pod licencí GPLv2, ale finanční partneři projektu mají přístup k uzavřené verzi enginu. Některé problémy se škálovatelností se objevily v prvních verzích systému, ale byly rychle vyřešeny.

Proč Surica?

Suricata má několik modulů (podobně jako Snort): zachycení, zachycení, dekódování, detekce a výstup. Ve výchozím nastavení prochází zachycený provoz před dekódováním v jednom proudu, i když to více zatěžuje systém. V případě potřeby lze vlákna v nastavení rozdělit a rozdělit mezi procesory – Suricata je velmi dobře optimalizována pro konkrétní hardware, i když to už není úroveň HOWTO pro začátečníky. Za zmínku také stojí, že Suricata má pokročilé nástroje pro kontrolu HTTP založené na knihovně HTP. Lze je také použít k protokolování provozu bez detekce. Systém také podporuje dekódování IPv6, včetně tunelů IPv4-in-IPv6, tunelů IPv6-in-IPv6 a dalších.

K zachycení provozu lze použít různá rozhraní (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING) a v režimu Unix Socket můžete automaticky analyzovat soubory PCAP zachycené jiným snifferem. Modulární architektura Suricata navíc usnadňuje zapojování nových prvků pro zachycení, dekódování, analýzu a zpracování síťových paketů. Je také důležité poznamenat, že v Suricatě je provoz blokován pomocí běžného filtru operačního systému. GNU/Linux má dvě možnosti, jak IPS funguje: přes frontu NFQUEUE (režim NFQ) a přes nulovou kopii (režim AF_PACKET). V prvním případě je paket, který vstupuje do iptables, odeslán do fronty NFQUEUE, kde může být zpracován na uživatelské úrovni. Suricata ji provozuje podle svých vlastních pravidel a vydává jeden ze tří verdiktů: NF_ACCEPT, NF_DROP a NF_REPEAT. První dva jsou samozřejmé, zatímco poslední umožňuje označit pakety a odeslat je na začátek aktuální tabulky iptables. Režim AF_PACKET je rychlejší, ale ukládá systému řadu omezení: musí mít dvě síťová rozhraní a fungovat jako brána. Zablokovaný paket prostě není předán do druhého rozhraní.

Důležitou vlastností Suricaty je možnost používat vývoj pro Snort. Správce má přístup zejména k sadám pravidel Sourcefire VRT a OpenSource Emerging Threats a také ke komerčnímu Emerging Threats Pro. Sjednocený výstup lze analyzovat pomocí oblíbených backendů, podporován je také výstup PCAP a Syslog. Systémová nastavení a pravidla jsou uložena v souborech YAML, které jsou snadno čitelné a lze je automaticky zpracovávat. Engine Suricata rozpoznává mnoho protokolů, takže pravidla nemusí být vázána na číslo portu. Kromě toho je koncept flowbits aktivně praktikován v pravidlech Suricaty. Ke sledování spouštěče se používají proměnné relace k vytvoření a použití různých čítačů a příznaků. Mnoho IDS zachází s různými TCP spojeními jako se samostatnými entitami a nemusí mezi nimi vidět spojení, které naznačuje začátek útoku. Suricata se snaží vidět celý obrázek a v mnoha případech rozpoznává škodlivý provoz distribuovaný přes různá připojení. O jeho výhodách se dá mluvit dlouho, raději přejdeme k instalaci a konfiguraci.

Jak nainstalovat?

Suricatu nainstalujeme na virtuální server se systémem Ubuntu 18.04 LTS. Všechny příkazy musí být provedeny jménem superuživatele (root). Nejbezpečnější možností je připojit SSH na server jako normální uživatel a poté použít nástroj sudo ke zvýšení oprávnění. Nejprve musíte nainstalovat balíčky, které potřebujeme:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Připojení externího úložiště:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Nainstalujte nejnovější stabilní verzi Suricata:

sudo apt-get install suricata

V případě potřeby upravte název konfiguračních souborů a nahraďte výchozí eth0 skutečným názvem externího rozhraní serveru. Výchozí nastavení jsou uložena v souboru /etc/default/suricata a vlastní nastavení jsou uložena v /etc/suricata/suricata.yaml. Konfigurace IDS je většinou omezena na úpravu tohoto konfiguračního souboru. Má spoustu parametrů, které se svým názvem a účelem shodují s analogy od Snortu. Syntaxe je však zcela odlišná, ale soubor je mnohem snáze čitelný než konfigurace Snortu a je dobře komentován.

sudo nano /etc/default/suricata

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

и

sudo nano /etc/suricata/suricata.yaml

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

Pozornost! Před spuštěním se vyplatí zkontrolovat hodnoty proměnných ze sekce vars.

Chcete-li dokončit nastavení, budete muset nainstalovat suricata-update pro aktualizaci a načtení pravidel. Je to docela snadné:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

Dále musíme spustit příkaz suricata-update k instalaci sady pravidel Emerging Threats Open:

sudo suricata-update

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

Chcete-li zobrazit seznam zdrojů pravidel, spusťte následující příkaz:

sudo suricata-update list-sources

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

Aktualizovat zdroje pravidel:

sudo suricata-update update-sources

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

Opětovná návštěva aktualizovaných zdrojů:

sudo suricata-update list-sources

V případě potřeby můžete zahrnout dostupné bezplatné zdroje:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Poté musíte pravidla znovu aktualizovat:

sudo suricata-update

Tím je instalace a počáteční konfigurace Suricaty v Ubuntu 18.04 LTS dokončena. Pak začíná zábava: v příštím článku připojíme virtuální server do kancelářské sítě přes VPN a začneme analyzovat veškerý příchozí a odchozí provoz. Zvláštní pozornost budeme věnovat blokování DDoS útoků, aktivity malwaru a pokusů o zneužití zranitelností ve službách přístupných z veřejných sítí. Pro názornost budou simulovány útoky nejběžnějších typů.

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

Snort nebo Suricata. Část 2: Instalace a počáteční nastavení Suricaty

Zdroj: www.habr.com

Přidat komentář