Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

В predchádzajúci článok prebrali sme, ako spustiť stabilnú verziu Suricata na Ubuntu 18.04 LTS. Nastavenie IDS na jednom uzle a povolenie bezplatných sád pravidiel je celkom jednoduché. Dnes zistíme, ako chrániť podnikovú sieť pomocou najbežnejších typov útokov pomocou Suricata nainštalovaného na virtuálnom serveri. Na to potrebujeme VDS na Linuxe s dvomi výpočtovými jadrami. Množstvo pamäte RAM závisí od zaťaženia: niekomu stačia 2 GB a na vážnejšie úlohy môžu byť potrebné 4 alebo dokonca 6. Výhodou virtuálneho stroja je možnosť experimentovať: môžete začať s minimálnou konfiguráciou a zvýšiť zdrojov podľa potreby.

Snort alebo Suricata. Časť 3: Ochrana kancelárskej sietefoto: Reuters

Prepojovacie siete

Pre testy môže byť potrebné najskôr odstrániť IDS z virtuálneho počítača. Ak ste sa s takýmito riešeniami nikdy nezaoberali, nemali by ste sa ponáhľať s objednávkou fyzického hardvéru a zmenou sieťovej architektúry. Na určenie vašich výpočtových potrieb je najlepšie prevádzkovať systém bezpečne a nákladovo efektívne. Je dôležité pochopiť, že všetka firemná prevádzka bude musieť prejsť cez jeden externý uzol: na pripojenie lokálnej siete (alebo viacerých sietí) k VDS s nainštalovaným IDS Suricata môžete použiť SoftEther - Ľahko konfigurovateľný multiplatformový server VPN, ktorý poskytuje silné šifrovanie. Internetové pripojenie v kancelárii nemusí mať skutočnú IP, takže je lepšie nastaviť ho na VPS. V úložisku Ubuntu nie sú žiadne hotové balíčky, softvér si budete musieť stiahnuť buď z miesto projektualebo z externého úložiska v službe Launchpad (ak mu veríš):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

Zoznam dostupných balíkov môžete zobraziť pomocou nasledujúceho príkazu:

apt-cache search softether

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Budeme potrebovať softether-vpnserver (server v testovacej konfigurácii beží na VDS), ako aj softether-vpncmd - nástroje príkazového riadku na jeho konfiguráciu.

sudo apt-get install softether-vpnserver softether-vpncmd

Na konfiguráciu servera sa používa špeciálny nástroj príkazového riadka:

sudo vpncmd

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Nebudeme sa podrobne baviť o nastavení: postup je pomerne jednoduchý, je dobre opísaný v mnohých publikáciách a priamo nesúvisí s témou článku. Stručne povedané, po spustení vpncmd musíte vybrať položku 1, aby ste prešli do konzoly správy servera. Ak to chcete urobiť, musíte zadať názov localhost a namiesto zadania názvu hubu stlačiť kláves enter. Heslo správcu sa nastaví v konzole príkazom serverpasswordset, vymaže sa virtuálny hub DEFAULT (príkaz hubdelete) a vytvorí sa nový s názvom Suricata_VPN a nastaví sa aj jeho heslo (príkaz hubcreate). Ďalej musíte prejsť do riadiacej konzoly nového hubu pomocou príkazu hub Suricata_VPN a vytvoriť skupinu a používateľa pomocou príkazov groupcreate a usercreate. Používateľské heslo sa nastavuje pomocou sady používateľských hesiel.

SoftEther podporuje dva režimy prenosu dát: SecureNAT a Local Bridge. Prvou je proprietárna technológia na budovanie virtuálnej privátnej siete s vlastným NAT a DHCP. SecureNAT nevyžaduje TUN/TAP alebo Netfilter ani iné nastavenia brány firewall. Smerovanie neovplyvňuje jadro systému a všetky procesy sú virtualizované a fungujú na akomkoľvek VPS / VDS bez ohľadu na použitý hypervízor. Výsledkom je zvýšené zaťaženie procesora a nižšia rýchlosť v porovnaní s režimom Local Bridge, ktorý spája virtuálny rozbočovač SoftEther s fyzickým sieťovým adaptérom alebo zariadením TAP.

Konfigurácia je v tomto prípade komplikovanejšia, pretože smerovanie prebieha na úrovni jadra pomocou Netfilter. Naše VDS sú postavené na Hyper-V, takže v poslednom kroku vytvoríme lokálny most a aktivujeme TAP zariadenie príkazom bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Po opustení konzoly správy rozbočovača uvidíme v systéme nové sieťové rozhranie, ktoré ešte nemá pridelenú IP:

ifconfig

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Ďalej budete musieť povoliť smerovanie paketov medzi rozhraniami (IP forward), ak je neaktívne:

sudo nano /etc/sysctl.conf

Odkomentujte nasledujúci riadok:

net.ipv4.ip_forward = 1

Uložte zmeny do súboru, ukončite editor a použite ich pomocou nasledujúceho príkazu:

sudo sysctl -p

Ďalej musíme definovať podsieť pre virtuálnu sieť s fiktívnymi adresami IP (napríklad 10.0.10.0/24) a priradiť adresu k rozhraniu:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Potom musíte napísať pravidlá Netfilter.

1. V prípade potreby povoľte prichádzajúce pakety na počúvajúcich portoch (proprietárny 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 ACCEPT

2. Nastavte NAT z podsiete 10.0.10.0/24 na IP hlavného servera

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. Povoliť prechod paketov z podsiete 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. Povoliť prechod paketov pre už vytvorené spojenia

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Automatizáciu procesu pri reštarte systému pomocou inicializačných skriptov necháme na čitateľov ako domácu úlohu.

Ak chcete prideľovať IP klientom automaticky, budete tiež musieť nainštalovať nejakú službu DHCP pre lokálny most. Tým sa dokončí nastavenie servera a môžete prejsť ku klientom. SoftEther podporuje mnoho protokolov, ktorých použitie závisí od možností zariadenia LAN.

netstat -ap |grep vpnserver

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Keďže náš testovací smerovač beží aj pod Ubuntu, nainštalujme naň balíčky softether-vpnclient a softether-vpncmd z externého úložiska, aby sme použili proprietárny protokol. Budete musieť spustiť klienta:

sudo vpnclient start

Na konfiguráciu použite pomocný program vpncmd, pričom ako počítač, na ktorom beží vpnclient, vyberte localhost. Všetky príkazy sa vykonávajú v konzole: budete musieť vytvoriť virtuálne rozhranie (NicCreate) a účet (AccountCreate).

V niektorých prípadoch musíte zadať metódu overenia 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 musíme povoliť ip forward (parameter net.ipv4.ip_forward=1 v súbore /etc/sysctl.conf) a nakonfigurovať statické trasy. V prípade potreby môžete na VDS so Suricatou nakonfigurovať presmerovanie portov na používanie služieb nainštalovaných v lokálnej sieti. V tomto prípade možno považovať zlúčenie siete za dokončené.

Naša navrhovaná konfigurácia bude vyzerať asi takto:

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Nastavenie Suricaty

В predchádzajúci článok hovorili sme o dvoch režimoch fungovania IDS: cez front NFQUEUE (režim NFQ) a cez nulovú kópiu (režim AF_PACKET). Druhý vyžaduje dve rozhrania, ale je rýchlejší - použijeme ho. Parameter je štandardne nastavený v /etc/default/suricata. Musíme tiež upraviť sekciu vars v súbore /etc/suricata/suricata.yaml a nastaviť tam virtuálnu podsieť ako domovskú.

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Ak chcete reštartovať IDS, použite príkaz:

systemctl restart suricata

Riešenie je pripravené, teraz ho možno budete musieť otestovať na odolnosť voči škodlivým akciám.

Simulácia útokov

Pre bojové použitie externej služby IDS môže existovať niekoľko scenárov:

Ochrana pred DDoS útokmi (primárny účel)

Je ťažké implementovať takúto možnosť v rámci podnikovej siete, pretože pakety na analýzu sa musia dostať do systémového rozhrania, ktoré sa pozerá na internet. Aj keď ich IDS zablokuje, falošná prevádzka môže prerušiť dátové spojenie. Aby ste tomu zabránili, musíte si objednať VPS s dostatočne produktívnym internetovým pripojením, ktoré dokáže prejsť všetku lokálnu sieťovú prevádzku a všetku externú prevádzku. Často je to jednoduchšie a lacnejšie ako rozširovať kancelársky kanál. Ako alternatívu stojí za zmienku špecializované služby na ochranu pred DDoS. Cena ich služieb je porovnateľná s cenou virtuálneho servera a nevyžaduje časovo náročnú konfiguráciu, má však aj nevýhody – klient za svoje peniaze dostane len DDoS ochranu, pričom jeho vlastné IDS si môžete nakonfigurovať ako vy Páči sa mi to.

Ochrana pred vonkajšími útokmi iných typov

Suricata si dokáže poradiť s pokusmi o zneužitie rôznych zraniteľností v podnikových sieťových službách dostupných z internetu (mailový server, webový server a webové aplikácie atď.). Zvyčajne sa na tento účel IDS inštaluje do siete LAN po hraničných zariadeniach, ale ak ho vezmete von, má právo existovať.

Ochrana pred zasvätenými osobami

Napriek maximálnemu úsiliu správcu systému môžu byť počítače v podnikovej sieti infikované škodlivým softvérom. V okolí sa navyše občas objavia chuligáni, ktorí sa pokúšajú o nejaké nelegálne operácie. Suricata môže pomôcť blokovať takéto pokusy, aj keď na ochranu vnútornej siete je lepšie ju nainštalovať do perimetra a použiť ju v tandeme s riadeným prepínačom, ktorý dokáže zrkadliť prevádzku na jeden port. Externý IDS tiež nie je v tomto prípade zbytočný – aspoň bude schopný zachytiť pokusy malvéru žijúceho v sieti LAN kontaktovať externý server.

Na začiatok vytvoríme ďalší test útočiaceho na VPS a na lokálnom sieťovom routeri zdvihneme Apache s predvolenou konfiguráciou, po ktorej mu prepošleme 80. port zo servera IDS. Ďalej budeme simulovať DDoS útok z útočiaceho hostiteľa. Ak to chcete urobiť, stiahnite si z GitHub, skompilujte a spustite malý program xerxes na útočiaci uzol (možno budete musieť 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 80

Výsledok jej práce bol nasledovný:

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Suricata odreže darebáka a stránka Apache sa štandardne otvorí, napriek nášmu improvizovanému útoku a dosť mŕtvemu kanálu „kancelárskej“ (v skutočnosti domácej) siete. Pri vážnejších úlohách by ste mali použiť Metasploit Framework. Je určený na penetračné testovanie a umožňuje simulovať rôzne útoky. Návod na inštaláciu доступна na webovej stránke projektu. Po inštalácii je potrebná aktualizácia:

sudo msfupdate

Na testovanie spustite msfconsole.

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Bohužiaľ, v najnovších verziách frameworku chýba možnosť automatického crackovania, takže exploity bude potrebné triediť manuálne a spúšťať pomocou príkazu use. Na začiatok sa oplatí určiť porty otvorené na napadnutom počítači, napríklad pomocou nmap (v našom prípade ho na napadnutom hostiteľovi úplne nahradí netstat) a potom vybrať a použiť príslušné Moduly Metasploit

Existujú aj iné prostriedky na testovanie odolnosti IDS voči útokom, vrátane online služieb. Pre zaujímavosť si môžete dohodnúť záťažové testovanie pomocou skúšobnej verzie IP streser. Na kontrolu reakcie na akcie vnútorných narušiteľov sa oplatí nainštalovať špeciálne nástroje na jeden zo strojov v lokálnej sieti. Možností je veľa a z času na čas by sa mali aplikovať nielen na experimentálnu stránku, ale aj na fungujúce systémy, len toto je úplne iný príbeh.

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Snort alebo Suricata. Časť 3: Ochrana kancelárskej siete

Zdroj: hab.com

Pridať komentár