V Hovořili jsme o tom, jak spustit stabilní verzi Suricata na Ubuntu 18.04 LTS. Nastavit IDS na jednom uzlu a připojit zdarma pravidla je poměrně snadné. Dnes se podíváme na to, jak pomocí nainstalované Suricaty na virtuálním serveru chránit firemní síť před nejběžnějšími typy útoků. K tomu budeme potřebovat VDS na Linuxu se dvěma výpočetními jádry. Velikost operační paměti závisí na zatížení: někomu stačí 2 GB, ale pro serióznější úkoly může být potřeba 4 nebo dokonce 6. Výhodou virtuálního stroje je možnost experimentování: můžete začít s minimální konfigurací a zvyšovat výkon podle potřeby.
foto: Reuters
Spojujeme sítě
Přenesení IDS na virtuální stroj může být v první řadě potřebné pro testování. Pokud jste se nikdy nesetkali s podobnými řešeními, není dobré hned objednávat fyzický hardware a měnit architekturu sítě. Lépe je bezpečně otestovat systém bez zbytečných nákladů, abyste určili potřeby na výpočetní výkon. Je důležité pochopit, že veškerý firemní provoz bude muset projít jediným externím uzlem: pro připojení místní sítě (nebo několika sítí) k VDS s nainstalovanou IDS Suricata lze použít — snadno nastavitelný multiplatformní server VPN, který zajišťuje spolehlivé šifrování. Firemní připojení k internetu nemusí mít skutečnou IP, proto je lepší jej spustit na VPS. V repozitáři Ubuntu nejsou žádné hotové balíčky, software budete muset stáhnout buď z , nebo z externího repozitáře na službě (pokud mu důvěřujete):
sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get updateSeznam dostupných balíčků si můžete prohlédnout pomocí následujícího příkazu:
apt-cache search softether 
Budeme potřebovat softether-vpnserver (server v testovací konfiguraci běží na VDS), stejně jako softether-vpncmd — příkazový nástroj pro jeho nastavení.
sudo apt-get install softether-vpnserver softether-vpncmdK nastavení serveru se používá speciální příkazový nástroj:
sudo vpncmd 
Podrobně vysvětlovat nastavení nebudeme: postup je poměrně jednoduchý, je dobře popsán v mnoha publikacích a přímo se k tématu článku nevztahuje. Pokud to shrneme, po spuštění vpncmd musíte vybrat položku 1, abyste přešli do konzole pro správu serveru. K tomu je potřeba zadat název localhost a stisknout enter místo zadání názvu hubu. V konzole je nastaven administrátorský heslo příkazem serverpasswordset, odstraní se virtuální hub DEFAULT (příkaz hubdelete) a vytvoří se nový s názvem Suricata_VPN, a také se nastaví jeho heslo (příkaz hubcreate). Dále je třeba přejít do řídící konzole nového hubu pomocí příkazu hub Suricata_VPN, abychom vytvořili skupinu a uživatele pomocí příkazů groupcreate a usercreate. Uživatelovo heslo je nastaveno pomocí userpasswordset.
SoftEther podporuje dva režimy přenosu provozu: SecureNAT a Local Bridge. První představuje proprietární technologii pro vytváření virtuální privátní sítě s vlastním NAT a DHCP. SecureNAT nevyžaduje TUN/TAP, ani konfiguraci Netfilter nebo jiného firewallu. Routerování nezasahuje do jádra systému a všechny procesy jsou virtualizovány a fungují na jakémkoliv VPS/VDS bez ohledu na použité hypervizory. To vede k vyšší zátěži procesoru a snížení rychlosti ve srovnání s režimem Local Bridge, který spojuje virtuální hub SoftEther s fyzickým síťovým adaptérem nebo zařízením TAP.
Nastavení v tomto případě je složitější, protože routování probíhá na úrovni jádra pomocí Netfilteru. Naše VDS jsou postaveny na Hyper-V, proto na posledním kroku vytváříme místní most a aktivujeme zařízení TAP pomocí příkazu bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Po opuštění řídicí konzole hubu uvidíme v systému nové síťové rozhraní, kterému ještě nebyla přiřazena IP:
ifconfig 
Dále bude nutné povolit směrování paketů mezi rozhraními (ip forward), pokud není aktivní:
sudo nano /etc/sysctl.confOdkomentujte následující řádek:
net.ipv4.ip_forward = 1Uložíme změny v souboru, opustíme editor a použijeme je pomocí následujícího příkazu:
sudo sysctl -pDále musíme určit pro virtuální síť podsíť s fiktivními IP (například 10.0.10.0/24) a přiřadit adresu rozhraní:
sudo ifconfig tap_suricata_vp 10.0.10.1/24Poté bude nutné napsat pravidla Netfilter.
1. V případě potřeby povolte příchozí pakety na sledovaných portech (protokol SoftEther používá HTTPS a port 443)
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT2. Nastavujeme NAT z podsítě 10.0.10.0/24 na hlavní IP serveru
sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.1403. Povolujeme procházející pakety z podsítě 10.0.10.0/24
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT4. Povolujeme procházející pakety pro již ustanovená spojení
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPTAutomatizaci procesu při restartu systému pomocí iniciačních skriptů necháme čtenářům jako domácí úkol.
Pokud chcete automaticky přidělovat klientům IP adresy, budete potřebovat také nainstalovat nějakou službu DHCP pro místní most. Tímto je konfigurace serveru dokončena a můžeme přejít k klientům. SoftEther podporuje mnoho protokolů, jejichž použití závisí na možnostech hardware místní sítě.
netstat -ap |grep vpnserver 
Jelikož náš testovací router také běží na Ubuntu, nainstalujeme na něm z externího repozitáře balíčky softether-vpnclient a softether-vpncmd, abychom mohli využít proprietární protokol. Je potřeba spustit klienta:
sudo vpnclient startK nastavení použijeme utilitu vpncmd, vybereme localhost jako stroj, na kterém běží vpnclient. Všechny příkazy se provádějí v konzoli: bude potřeba vytvořit virtuální rozhraní (NicCreate) a účet (AccountCreate).
V některých případech je nutné nastavit způsob autentizace pomocí příkazů AccountAnonymousSet, AccountPasswordSet, AccountCertSet a AccountSecureCertSet. Protože nepoužíváme DHCP, adresa pro virtuální adaptér se zadává ručně.
Kromě toho bude potřeba povolit ip forward (parametr net.ipv4.ip_forward=1 v souboru /etc/sysctl.conf) a nastavit statické trasy. V případě potřeby lze na VDS se Suricatou nastavit přesměrování portů pro využití služeb nainstalovaných v místní síti. Tím je spojení sítí považováno za dokončené.
Navrhovaná konfigurace bude vypadat přibližně takto:

Nastavujeme Suricatu
V Hovořili jsme o dvou režimech fungování IDS: prostřednictvím fronty NFQUEUE (režim NFQ) a prostřednictvím zero copy (režim AF_PACKET). Druhý vyžaduje dva rozhraní, ale nabízí vyšší výkon — použijeme právě tento. Parametr je nastaven ve výchozím nastavení v /etc/default/suricata. Rovněž budeme potřebovat upravit sekci vars v /etc/suricata/suricata.yaml, kde uvedeme virtuální podsíť jako domácí.

Pro restart IDS použijeme příkaz:
systemctl restart suricataŘešení je hotové, nyní budete možná potřebovat ověřit jeho odolnost vůči útokům útočníků.
Modelujeme útoky
Scénářů bojového nasazení externího IDS může být několik:
Ochrana proti útokům DDoS (primární účel)
Implementace takového varianty v rámci firemní sítě je složitá, protože pakety pro analýzu musí projít skrze rozhraní systému směřující na internet. I když je IDS zablokuje, parazitní provoz může ochromit datový kanál. Aby se tomu předešlo, je třeba objednat VPS s dostatečně výkonným internetovým připojením, schopným zpracovat veškerý provoz místní sítě a veškerý vnější provoz. Často je to jednodušší a levnější než rozšiřovat kancelářský kanál. Jako alternativu je možno zmínit specializované služby pro ochranu proti DDoS. Cena jejich služeb je srovnatelná s cenou virtuálního serveru, přičemž není potřeba náročná konfigurace, ale má to i nevýhody — za své peníze klient získá pouze ochranu proti DDoS, zatímco vlastní IDS lze konfigurovat jakkoli.
Ochrana proti externím útokům jiného druhu
Suricata je schopna se vypořádat s pokusy o využití různých zranitelností v dostupných internetových službách firemní sítě (poštovní server, webový server a webové aplikace atd.). Obvykle se IDS instalují uvnitř lokální sítě za hranicemi, ale jejich umístění venku má také své opodstatnění.
Ochrana proti interním zločincům
I přes veškeré snahy systémového administrátora mohou být počítače v podnikové síti infikovány škodlivým softwarem. V místní síti se také občas objevují vandali, kteří se snaží provádět nelegální operace. Suricata může pomoci zablokovat takové pokusy, i když pro ochranu vnitřní sítě je lepší ji nainstalovat uvnitř perimetru a používat ji společně s řízeným switchem, který umí zrcadlit provoz na jeden port. Vnější IDS v tomto případě také není zbytečná – alespoň bude schopna zachytit pokusy o spojení škodlivého software s externím serverem, které žijí v LAN.
Nejprve vytvoříme další testovací útočný VPS, a na routeru místní sítě nastavíme Apache s výchozí konfigurací, po čemž přesměrujeme port 80 na server IDS. Dále budeme simulovat DDoS útok z útočného uzlu. K tomu si stáhneme z GitHubu, zkompilujeme a spustíme na útočném uzlu malý program xerxes (může být potřeba nainstalovat balíček gcc):
git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes
./xerxes 45.132.17.140 80Výsledek její práce byl následující:

Suricata zablokovala útočníka a výchozí stránka Apache se otevřela, i přes náš improvizovaný útok a dost slabý kanál "kancelářské" (ve skutečnosti domácí) sítě. Pro vážnější úkoly stojí za to použít . Je určen pro provádění penetračních testů a umožňuje simulovat různé útoky. Návod k instalaci je na stránkách projektu. Po instalaci bude potřeba aktualizace:
sudo msfupdatePro testování spustíme msfconsole.

Bohužel, v posledních verzích frameworku chybí možnost automatického hackování, a tak bude potřeba exploidy procházet ručně a spouštět je pomocí příkazu use. Nejprve je dobré zjistit otevřené porty na napadeném stroji, například pomocí nmap (v našem případě ho dostatečně nahradí netstat na napadeném uzlu), a poté vybrat a použít vhodné .
Existují i další nástroje pro testování odolnosti IDS vůči útokům, včetně online služeb. Z ryze zvědavosti je možné provést stresové testování pomocí zkušební verze . Chcete-li otestovat reakci na akce vnitřních útočníků, měli byste nainstalovat speciální nástroje na jeden z počítačů v lokální síti. Možností je mnoho a občas byste je měli použít nejen na experimentálním zařízení, ale i na pracovních systémech, i když to už je úplně jiný příběh.
Zdroj: habr.com
