V povedali sme, ako spustiť stabilnú verziu Suricata na Ubuntu 18.04 LTS. Nastaviť IDS na jednom uzle a pripojiť bezplatné súbory pravidiel nie je najťažšie. Dnes si ukážeme, ako ochrániť firemnú sieť pred najrozšírenejšími typmi útokov pomocou Suricaty nainštalovanej na virtuálnom serveri. Na to budeme potrebovať VDS na Linuxe s dvoma výpočtovými jadrami. Veľkosť pamäte závisí od zaťaženia: niekomu stačí aj 2 GB, zatiaľ čo pre vážnejšie úlohy môže byť potrebné 4 alebo dokonca 6. Plus virtuálneho stroja spočíva v možnosti experimentovania: môžete začať s minimálnou konfiguráciou a zvyšovať zdroje podľa potreby.
foto: Reuters
Zlučujeme siete
Zavedenie IDS na virtuálny stroj môže byť potrebné najmä na testy. Ak ste sa nikdy nestretli s podobnými riešeniami, netreba sa hneď vrhnúť na objednávanie fyzického hardvéru a menenie architektúry siete. Lepšie je otestovať systém bezpečne a bez zbytočných nákladov, aby ste určili potreby v oblasti výpočtových zdrojov. Dôležité je chápať, že celý firemný prevádzkový tok bude potrebné prehnať cez jediné vonkajšie uzly: na pripojenie lokálnej siete (alebo niekoľkých sietí) k VDS so nainštalovaným IDS Suricata môžete použiť — jednoduchý na nastavenie multiplatformový VPN server, ktorý zabezpečuje spoľahlivé šifrovanie. Kancelárske pripojenie na internet nemusí mať skutočnú IP adresu, takže je lepšie ho vytvoriť na VPS. V repozitári Ubuntu nie sú pripravené balíky, softvér bude potrebné stiahnuť buď z , alebo z externého repozitára na službe (ak mu dôverujete):
sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get updateZoznam dostupných balíkov môžete zobraziť pomocou nasledujúceho príkazu:
apt-cache search softether 
Potrebujeme softether-vpnserver (server v testovacej konfigurácii je spustený na VDS), ako aj softether-vpncmd — príkazové nástroje na jeho nastavenie.
sudo apt-get install softether-vpnserver softether-vpncmdNa nastavenie servera sa používa špeciálny príkazový nástroj:
sudo vpncmd 
Podrobne sa nebudeme rozprávať o konfigurácii: postup je dosť jednoduchý, je dobre popísaný v mnohých publikáciách a priamo sa netýka témy článku. Ak to zhrnieme, po spustení vpncmd je potrebné vybrať bod 1, aby sme prešli do konzoly pre správu servera. Na to je potrebné zadať názov localhost a stlačiť enter namiesto zadávania názvu hubu. V konzole sa nastaví administrátorský heslo príkazom serverpasswordset, odstráni sa virtuálny hub DEFAULT (príkaz hubdelete) a vytvorí sa nový s názvom Suricata_VPN a nastaví sa jeho heslo (príkaz hubcreate). Potom je potrebné prejsť do správcovskej konzoly nového hubu pomocou príkazu hub Suricata_VPN, aby sa vytvorila skupina a používateľ pomocou príkazov groupcreate a usercreate. Heslo používateľa je nastavené príkazom userpasswordset.
SoftEther podporuje dva režimy prenosu prevádzky: SecureNAT a Local Bridge. Prvý predstavuje vlastnú technológiu budovania virtuálnej súkromnej siete so svojím NAT a DHCP. SecureNAT nevyžaduje TUN/TAP a ani nastavenie Netfilter alebo iného firewallu. Smerovanie sa nedotýka jadra systému a všetky procesy sú virtualizované a fungujú na akomkoľvek VPS/VDS bez ohľadu na používaný hypervízor. To vedie k vyššej záťaži procesora a zníženiu rýchlosti v porovnaní s režimom Local Bridge, ktorý spája virtuálny hub SoftEther s fyzickým sieťovým adaptérom alebo zariadením TAP.
Konfigurácia je v tomto prípade zložitá, pretože smerovanie prebieha na úrovni jadra pomocou Netfilter. Naše VDS sú postavené na Hyper-V, preto na poslednom kroku vytvárame lokálny most a aktivujeme zariadenie TAP príkazom bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Po opustení konzoly správy hubu uvidíme v systéme nové sieťové rozhranie, ktorému ešte nebol pridelený IP:
ifconfig 
Ďalej bude potrebné povoliť smerovanie paketov medzi rozhraniami (ip forward), ak nie je aktívne:
sudo nano /etc/sysctl.confOdkomentujeme nasledujúci riadok:
net.ipv4.ip_forward = 1Uložíme zmeny v súbore, opustíme editor a aplikujeme ich pomocou nasledujúceho príkazu:
sudo sysctl -pPotom musíme určiť pre virtuálnu sieť podsieť s fiktívnymi IP (napríklad, 10.0.10.0/24) a priradiť adresu rozhraniu:
sudo ifconfig tap_suricata_vp 10.0.10.1/24Potom bude potrebné zadať pravidlá Netfilter.
1. V prípade potreby povoľte prichádzajúce pakety na počúvané porty (firemný protokol SoftEther používa 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 podsiete 10.0.10.0/24 na hlavný IP servera
sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.1403. Povoľujeme prechádzajúce pakety z podsiete 10.0.10.0/24
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT4. Povoľujeme prechádzajúce pakety pre už ustanovené spojenia
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPTAutomatizáciu procesu pri reštarte systému pomocou inicializačných skriptov necháme čitateľom ako úlohu na doma.
Ak chcete automaticky prideľovať klientom IP, budete musieť tiež nainštalovať nejakú službu DHCP pre lokálny most. Týmto je nastavenie servera dokončené a môžeme prejsť k klientom. SoftEther podporuje množstvo protokolov, ktorých použitie závisí od možností zariadenia lokálnej siete.
netstat -ap |grep vpnserver 
Keďže náš testovací router tiež beží na Ubuntu, nainštalujeme na ňom z externého repozitára balíky softether-vpnclient a softether-vpncmd, aby sme mohli využiť firemný protokol. Bude potrebné spustiť klienta:
sudo vpnclient startNa nastavenie použijeme utilitu vpncmd, vyberieme localhost ako stroj, na ktorom beží vpnclient. Všetky príkazy sa vykonávajú v konzole: bude potrebné vytvoriť virtuálny rozhranie (NicCreate) a účet (AccountCreate).
V niektorých prípadoch je potrebné určiť spôsob autentifikácie pomocou príkazov AccountAnonymousSet, AccountPasswordSet, AccountCertSet a AccountSecureCertSet. Keďže nepoužívame DHCP, adresa pre virtuálny adaptér sa nastavuje manuálne.
Okrem toho bude potrebné povoliť ip forward (parametr net.ipv4.ip_forward=1 v súbore /etc/sysctl.conf) a nastaviť statické trasy. V prípade potreby môžete na VDS s Suricata nastaviť preposielanie portov na používanie služieb nainštalovaných v lokálnej sieti. Týmto je spojenie sietí považované za dokončené.
Navrhovaná konfigurácia bude vyzerať približne takto:

Nastavujeme Suricata
V Hovorili sme o dvoch režimoch fungovania IDS: cez front NFQUEUE (režim NFQ) a cez zero copy (režim AF_PACKET). Druhý vyžaduje prítomnosť dvoch rozhraní, ale vyznačuje sa vyššou efektivitou — použijeme práve ten. Parameter je predvolene nastavený v /etc/default/suricata. Taktiež bude potrebné upraviť sekciu vars v /etc/suricata/suricata.yaml a zapísať tam virtuálnu podsiete ako domácu.

Na reštartovanie IDS použijeme príkaz:
systemctl restart suricataRiešenie je hotové, teraz si možno budete chcieť overiť jeho odolnosť voči útokom útočníkov.
Modelujeme útoky
Existuje niekoľko scenárov bojového nasadenia externého servisu IDS:
Ochrana proti DDoS útokom (hlavné určenie)
Realizovať takúto možnosť v rámci firemnej siete je zložitá, pretože pakety na analýzu musia prejsť na rozhraní systému, ktoré sleduje internet. Aj keď ich IDS zablokuje, parazitný traffic môže položiť prenosový kanál. Aby ste tomu predišli, je potrebné si objednať VPS s dostatočne výkonným internetovým pripojením, ktoré bez problémov prejde celú prevádzku lokálnej siete a celý externý traffic. Urobiť to je často jednoduchšie a lacnejšie, než rozširovať kancelársky kanál. Ako alternatívu stojí za to spomenúť špecializované služby na ochranu proti DDoS. Cena ich služieb je porovnateľná s cenou virtuálneho servera, pričom nebude potrebná náročná konfigurácia, no existujú aj nevýhody — za svoje peniaze zákazník dostáva iba ochranu proti DDoS, zatiaľ čo vlastný IDS si možno nakonfigurovať podľa vlastných predstáv.
Ochrana pred externými útokmi iného druhu
Suricata je schopná zvládnuť pokusy o zneužitie rôznych zraniteľností v službách firemnej siete prístupných z internetu (poštový server, webový server a webové aplikácie atď.). Zvyčajne je IDS nainštalovaný vo vnútri lokálky za hranicami zariadení, ale jeho umiestnenie aj vonku má opodstatnenie.
Ochrana pred vnútornými útočníkmi
Napriek všetkým snahám systémového administrátora môžu byť počítače v podnikovej sieti infikované škodlivým softvérom. Okrem toho sa v lokálnej sieti občas objavia „hooligáni“, ktorí sa snažia vykonávať určité nezákonné operácie. Suricata môže pomôcť zablokovať takéto pokusy, hoci pre ochranu vnútornej siete je lepšie ju nainštalovať vo vnútri perimetra a použiť ju v páre s prepínačom s možnosťou zrkadliť sieťový prenos na jeden port. Externá IDS v tomto prípade nie je tiež zbytočná – aspoň dokáže zachytiť pokusy malvéru v lokálnej sieti skontaktovať sa s externým serverom.
Na začiatok vytvoríme ďalší testovací útočný VPS, a na routeri lokálnej siete spustíme Apache s predvolenou konfiguráciou, po čom preposunieme naň 80. port zo servera IDS. Následne budeme imitovať DDoS útok z útočného uzla. Na tento účel stiahneme z GitHubu, skompilujeme a spustíme na útočnom uzle malý program xerxes (môže byť potrebné nainštalovať balík 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ýsledok jeho činnosti bol nasledujúci:

Suricata zadrží útočníka a stránka Apache s predvolenou konfiguráciou sa otvorí, napriek našej improvizovanej útoku a dosť slabému kanálu „kancelárskej“ (v skutočnosti domácej) siete. Pre serióznejšie úlohy sa oplatí použiť . Je určený na vykonávanie testov na prenikanie a umožňuje simulovať rôzne útoky. Inštrukcie na inštaláciu nájdete na stránke projektu. Po inštalácii bude potrebné aktualizovať:
sudo msfupdateNa testovanie spúšťame msfconsole.

Bohužiaľ, v posledných verziách rámca chýba možnosť automatického hackovania, takže exploity bude treba prechádzať manuálne a spúšťať pomocou príkazu use. Najprv by ste mali určiť otvorené porty na napadenej mašine, napríklad pomocou nmap (v našom prípade ho dosť dobre nahradí netstat na napadnúť uzle), a potom vybrať a použiť vhodné .
Existujú aj ďalšie prostriedky na kontrolu odolnosti IDS proti útokom, vrátane online služieb. Z čírej zvedavosti si môžete urobiť stresové testovanie pomocou skúšobnej verzie . Ak chcete overiť reakciu na činnosti vnútorných zlodejov, stojí za to nainštalovať špeciálne nástroje na jeden z počítačov v miestnej sieti. Možností je množstvo a občas by sa mali aplikovať nielen na experimentálnu platformu, ale aj na pracovné systémy, lenže to je už úplne iný príbeh.
Zdroj: habr.com
