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

Podle statistik se objem síťového provozu každý rok zvyšuje přibližně o 50 %. To vede k nárůstu zátěže na zařízení a konkrétně zvyšuje požadavky na výkon IDS/IPS. Můžete si zakoupit drahé specializované hardwarové vybavení, ale existuje i levnější varianta — implementace jednoho z otevřených systémů. Mnoho začínajících administrátorů si myslí, že instalace a konfigurace bezplatného IPS je poměrně složitá. V případě Suricaty to však není úplně pravda — její instalace a začátek ochrany proti typickým útokům s použitím sady bezplatných pravidel může trvat jen několik minut.

Snort nebo Suricata. Část 2: instalace a počáteční nastavení Suricaty
Snort nebo Suricata. Část 1: vyberte si bezplatné IDS/IPS pro ochranu firemní sítě

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

Systém Snort, který byl dlouho považován za standard, se vyvíjí od konce devadesátých let, a proto byl původně jednovláknový. Během mnoha let nabyl všech moderních funkcí, jako je podpora IPv6, možnost analýzy protokolů aplikační vrstvy či univerzální modul pro přístup k datům.

Základní engin Snort 2.X se naučil pracovat s více jádry, přesto zůstal jednovláknový a nemůže tak optimálně využít výhody moderních hardwarových platforem.

Tento problém byl vyřešen ve třetí verzi systému, avšak příprava trvala tak dlouho, že na trh vstoupila Suricata, napsaná od základů. Jejím vývojem byla zahájena v roce 2009 jako vícevláknová alternativa k Snortu, která od samotného začátku nabízela funkčnost IPS. 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í v prvních verzích systému se objevily, ale byly rychle vyřešeny.

Proč Suricata?

Suricata má několik modulů (jako Snort): pro zachytávání, sběr, dekódování, detekci a výstup. Ve výchozím nastavení procházejí zachycené pakety dekódováním jedním vláknem, i když to více zatěžuje systém. V případě potřeby lze vlákna rozdělit v nastavení a distribuovat mezi procesory — Suricata se velmi dobře optimalizuje na konkrétní hardware, i když to už není úroveň HOWTO pro začátečníky. Také stojí za zmínku, že Suricata obsahuje pokročilé prostředky pro inspekci HTTP založené na knihovně HTP. Ty mohou být také použity pro protokolování provozu bez detekce. Systém také podporuje dekódování IPv6, včetně tunelů IPv4-in-IPv6, IPv6-in-IPv6 a dalších.

Pro zachytávání datového toku mohou být použity různé rozhraní (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), a v režimu Unix Socket je možné automaticky analyzovat soubory PCAP, které byly zachyceny jiným snifferem. Modulární architektura Suricaty také usnadňuje připojení nových prvků pro zachytávání, dekódování, analýzu a zpracování síťových paketů. Je také důležité poznamenat, že v Suricatě se blokování datového toku provádí prostředky standardního filtru operačního systému. V GNU/Linux jsou k dispozici dvě varianty IPS: prostřednictvím fronty NFQUEUE (režim NFQ) a prostřednictvím zero copy (režim AF_PACKET). V prvním případě paket, který vstupuje do iptables, je směrován do fronty NFQUEUE, kde může být zpracován na uživatelské úrovni. Suricata ho zpracovává podle svých pravidel a vyjadřuje jeden ze tří verdiktů: NF_ACCEPT, NF_DROP a NF_REPEAT. První dvě vysvětlení nevyžadují, zatímco poslední umožňuje označovat pakety a poslat je na začátek aktuální tabulky iptables. Režim AF_PACKET se vyznačuje vyšší rychlostí, ale na systém klade určité omezení: musí mít dvě síťová rozhraní a fungovat jako brána. Zablokovaný paket se prostě neodesílá na druhé rozhraní.

Hlavní vlastnost Suricaty spočívá v možnosti využití pravidel vytvořených pro Snort. Administrátor má k dispozici například sady pravidel Sourcefire VRT a OpenSource Emerging Threats, stejně jako komerční Emerging Threats Pro. Unified output lze analyzovat pomocí populárních backendů a také je podporován výstup v PCAP a Syslog. Nastavení systému a pravidla jsou uložena v souborech ve formátu YAML, který je snadno čitelný a může být automaticky zpracován. Engine Suricata rozpoznává mnoho protokolů, takže není třeba v pravidlech odkazovat na čísla portů. Dále je v pravidlech Suricaty aktivně používána koncepce flowbits. Pro sledování aktivace se používají proměnné relací, které umožňují vytvářet a používat různé počítadla a flagy. Mnoho IDS považuje různé TCP připojení za samostatné entity a nemusí si všimnout vazeb mezi nimi, které naznačují začátek útoku. Suricata se snaží vidět celkový obraz a ve mnoha případech rozpoznává škodlivý provoz rozložený mezi různá připojení. O jejích výhodách se dá dlouho hovořit, raději přejdeme k instalaci a konfiguraci.

Jak nainstalovat?

Nainstalujeme Suricatu na virtuálním serveru běžícím na Ubuntu 18.04 LTS. Všechny příkazy je třeba provádět z pozice superuživatele (root). Nejbezpečnější variantou je připojit se k serveru přes SSH s právy běžného uživatele a poté použít utilitu sudo pro zvýšení oprávnění. Nejprve je třeba nainstalovat balíčky, které budeme potřebovat:

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řipojíme externí repozitář:

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

Nainstalujeme poslední stabilní verzi Suricaty:

sudo apt-get install suricata

V případě potřeby upravíme konfigurační soubory a nahradíme výchozí eth0 skutečným názvem externího rozhraní serveru. Výchozí nastavení jsou uložena v souboru /etc/default/suricata a uživatelská nastavení v /etc/suricata/suricata.yaml. Konfigurace IDS je většinou o úpravě tohoto konfiguračního souboru. Obsahuje mnoho parametrů, které názvem a účelem odpovídají obdobám ze Snort. Syntaxe je však zcela jiná, ale soubor se čte mnohem snáze než konfigurace Snort, navíc je dobře okomentovaný.

sudo nano /etc/default/suricata

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

a

sudo nano /etc/suricata/suricata.yaml

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

Pozor! Před spuštěním je dobré zkontrolovat hodnoty proměnných v sekci vars.

K dokončení nastavení je nutné nainstalovat suricata-update pro aktualizaci a stahování pravidel. Udělat to je docela jednoduché:

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

Poté je třeba spustit příkaz suricata-update k instalaci souboru pravidel Emerging Threats Open:

sudo suricata-update

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

Pro zobrazení seznamu 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

Aktualizujeme zdroje pravidel:

sudo suricata-update update-sources

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

Znovu prohlížíme aktualizované zdroje:

sudo suricata-update list-sources

V případě potřeby lze povolit 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é je nutné pravidla znovu aktualizovat:

sudo suricata-update

Instalaci a prvotní nastavení Suricata na Ubuntu 18.04 LTS můžeme považovat za dokončené. Dále začíná to nejzajímavější: v dalším článku připojíme virtuální server k firemní síti přes VPN a začneme analyzovat veškerý příchozí a odchozí provoz. Zvláštní pozornost věnujeme blokování DDoS útoků, aktivitám škodlivého softwaru a pokusům o využ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: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster