A Megmutattuk, hogyan lehet egy stabil Suricata verziót elindítani az Ubuntu 18.04 LTS-en. Az IDS beállítása egyetlen csomóponton és ingyenes szabálykészletek csatlakoztatása nem túl bonyolult. Ma azt fogjuk megvizsgálni, hogyan védhetjük meg a vállalati hálózatot a leggyakoribb támadások ellen egy virtuális szerveren telepített Suricata segítségével. Ehhez szükségünk lesz egy Linux alapú VDS-re két számítási maggal. A RAM mennyisége a terheléstől függ: valakinek elegendő lehet 2 GB, de komolyabb feladatokhoz 4 vagy akár 6 GB-ra is szükség lehet. A virtuális gép előnye, hogy lehetőséget ad a kísérletezésre: el lehet kezdeni a minimális konfigurációval, és szükség szerint bővíteni az erőforrásokat.
fotó: Reuters
Hálózatok összekapcsolása
Az IDS virtuális gépre helyezése először teszteléshez lehet szükséges. Ha soha nem foglalkozott hasonló megoldásokkal, nem érdemes fizikai hardver megrendelésével és a hálózati architektúra megváltoztatásával rohanni. Jobb biztonságosan és felesleges költségek nélkül tesztelni a rendszert, hogy megértsük a számítási erőforrások igényeit. Fontos megérteni, hogy a vállalati forgalom teljes egészében át fog menni egyetlen külső csomóponton: a helyi hálózat (vagy több hálózat) VDS-hez való csatlakoztatásához, amelyen az IDS Suricata van telepítve, használhatjuk — egy egyszerűen beállítható, cross-platform VPN szerver, amely megbízható titkosítást biztosít. Az irodai internetkapcsolatnak lehet, hogy nincs valós IP-címe, ezért jobban járunk, ha VPS-en emeljük fel. Az Ubuntu tárolóiban nincsenek kész csomagok, ezért a szoftvert le kell töltenünk vagy , vagy egy külső tárolóból a szolgáltatásra (ha megbízható):
sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get updateA rendelkezésre álló csomagok listáját a következő parancs segítségével tekinthetjük meg:
apt-cache search softether 
Szükségünk lesz a softether-vpnserver-re (a szerver teszt konfigurációban fut a VDS-en), valamint a softether-vpncmd-ra — parancssori eszköz a beállításához.
sudo apt-get install softether-vpnserver softether-vpncmdA szerver beállításához egy speciális parancssori eszközt használunk:
sudo vpncmd 
Részletesen nem fogunk beszélni a beállításról: a folyamat meglehetősen egyszerű, jól le van írva számos publikációban, és közvetlenül nem kapcsolódik a cikk témájához. Röviden, a vpncmd elindítása után ki kell választani az 1. pontot, hogy átkerüljön a szerver kezelő konzoljába. Ehhez be kell írni a localhost nevet, és az enter megnyomásával kell folytatni a hub nevének megadása helyett. A konzolban az adminisztrátori jelszót a serverpasswordset paranccsal állítjuk be, töröljük a DEFAULT virtuális hubot (hubdelete parancs), és új, Suricata_VPN nevű hubot hozunk létre, valamint megadjuk a jelszavát (hubcreate parancs). Ezután át kell lépnünk az új hub kezelő konzoljába a hub Suricata_VPN paranccsal, hogy csoportot és felhasználót hozzunk létre a groupcreate és usercreate parancsokkal. A felhasználói jelszót a userpasswordset paranccsal állítjuk be.
A SoftEther két forgalomátviteli módot támogat: SecureNAT és Local Bridge. Az első egy saját NAT és DHCP birtoklásával rendelkező virtuális magánhálózat kiépítésére szolgáló technológia. A SecureNAT nem igényel TUN/TAP-ot, valamint a Netfilter vagy más tűzfal beállítását. Az irányítás nem érinti a rendszer kernelét, és az összes folyamat virtualizált, bármely VPS/VDS-en működik, függetlenül attól, hogy milyen hypervisor használatos. Ez megnövekedett CPU-terheléshez és a Local Bridge móddal való sebességcsökkenéshez vezet, amely a SoftEther virtuális hubját egy fizikai hálózati adapterhez vagy TAP eszközhöz kapcsolja.
A beállítás ebben az esetben bonyolultabbá válik, mivel az irányítás a kernel szintjén történik a Netfilter segítségével. VDS-eink Hyper-V-n alapulnak, ezért az utolsó lépésben létrehozunk egy helyi hidat, és aktiváljuk a TAP eszközt a bridgecreate Suricata_VPN -device:suricate_vpn -tap:yes paranccsal. A hub kezelő konzoljából való kilépés után új hálózati interfészt látunk a rendszerben, amelyhez még nem lett IP címet rendelni:
ifconfig 
Ezután engedélyezni kell a csomagok irányítását az interfészek között (ip forward), ha az inaktív:
sudo nano /etc/sysctl.confA következő sort kell kommentálni:
net.ipv4.ip_forward = 1Mentjük a fájl módosításait, kilépünk a szerkesztőből, és alkalmazzuk azokat a következő parancs segítségével:
sudo sysctl -pEzután meg kell határoznunk a virtuális hálózat számára a fiktív IP-vel rendelkező alhálózatot (például 10.0.10.0/24) és címet kell rendelni az interfészhez:
sudo ifconfig tap_suricata_vp 10.0.10.1/24Ezután Netfilter szabályokat kell létrehozni.
1. Szükség esetén engedélyezze a bejövő csomagokat a meghallgatott portokon (a SoftEther saját protokollja HTTPS-t és a 443-as portot használja)
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. NAT beállítása a 10.0.10.0/24 alhálózatról a szerver fő IP-címére
sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.1403. Engedélyezzük a 10.0.10.0/24 alhálózatból érkező csomagokat
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT4. Engedélyezzük a már létrejött kapcsolatokhoz tartozó csomagokat
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPTA rendszer újraindításakor a folyamat automatizálásával kapcsolatos feladatot olvasóinkra bízzuk.
Ha automatikusan szeretné kiosztani az IP-címeket az ügyfeleknek, szükség van egy DHCP szolgáltatás telepítésére a helyi hídhoz. Ezzel a szerver beállítása befejeződött, és áttérhetünk az ügyfelekre. A SoftEther számos protokollt támogat, amelyek használata a helyi hálózat berendezéseinek lehetőségeitől függ.
netstat -ap | grep vpnserver 
Mivel a teszt routerünk is Ubuntu alatt fut, telepítjük rajta a softether-vpnclient és softether-vpncmd csomagokat egy külső tárolóból, hogy kihasználhassuk a saját protokollját. El kell indítanunk a klienst:
sudo vpnclient startA vpncmd eszközt használva a localhost-ot válasszuk ki a géphez, amelyiken a vpnclient fut. Minden parancsot a konzolon kell végrehajtani: létre kell hozni egy virtuális interfészt (NicCreate) és egy fiókot (AccountCreate).
Bizonyos esetekben meg kell határozni az hitelesítési módot az AccountAnonymousSet, AccountPasswordSet, AccountCertSet és AccountSecureCertSet parancsok segítségével. Mivel nem használunk DHCP-t, a virtuális adapterhez a címet manuálisan kell megadni.
Ezen kívül engedélyezni kell az IP továbbítást (net.ipv4.ip_forward=1 paraméter a /etc/sysctl.conf fájlban) és be kell állítani a statikus útvonalakat. Szükség szerint a VDS-en Suricata-val porttovábbítást is beállíthatunk a helyi hálózatban telepített szolgáltatásokhoz. Ezzel a hálózatok összekapcsolása befejezett.
A javasolt konfigurációnk a következőképpen néz ki:

Suricata beállítása
A Beszéltünk az IDS két működési módjáról: a NFQUEUE soron keresztül (NFQ üzemmód) és a zero copy-n keresztül (AF_PACKET üzemmód). A második két interfész meglétét igényli, de nagyobb teljesítménnyel bír — ezt fogjuk használni. A paraméter alapértelmezetten a /etc/default/suricata mappában van megadva. Szükség lesz a vars rész szerkesztésére is a /etc/suricata/suricata.yaml fájlban, ahol a virtuális alhálózatot kell megadnunk mint helyi hálózatot.

Az IDS újraindításához a következő parancsot használjuk:
systemctl restart suricataA megoldás elkészült, most szükség lehet annak tesztelésére a támadásokkal szembeni ellenállóképesség vizsgálatával.
Támadások modellezése
Az IDS külső szolgáltatásának harci alkalmazási forgatókönyvei többféle lehet:
DDoS támadások elleni védelem (fő célja)
Nehezen megvalósítható egy ilyen megoldás a vállalati hálózaton belül, mivel az elemzéshez szükséges csomagoknak a rendszer internet felé néző interfészére kell érkezniük. Még ha az IDS blokkolja is azokat, a parazita forgalom megölheti az adatátviteli csatornát. Ennek elkerüléséhez VPS-t kell rendelni, amely elegendő teljesítményű internet-kapcsolattal rendelkezik, képes átengedni az összes helyi hálózati és külső forgalmat. Ezt gyakran könnyebb és olcsóbb megtenni, mint bővíteni az irodai sávszélességet. Alternatívaként érdemes megemlíteni a DDoS védelemre specializálódott szolgáltatásokat. Az ő szolgáltatásaik költsége összehasonlítható egy virtuális szerver árával, és nem lesz szükség fárasztó beállításokra, de vannak hátrányai is — az ügyfél a pénzéért csak DDoS védelmet kap, míg a saját IDS-t bármire be lehet állítani.
Védelem más típusú külső támadások ellen
A Suricata képes kezelni a különböző sebezhetőségek kihasználására tett kísérleteket a vállalati hálózatban elérhető internetes szolgáltatásoknál (levelezőszerver, webszerver és webalkalmazások stb.). Általában az IDS-t a határnál helyezik el a helyi hálózaton, de a külső telepítésnek is van létjogosultsága.
Védelem a belső támadók ellen
Bár a rendszergazda minden erőfeszítést megtesz, a vállalati hálózat számítógépei még mindig fertőzöttek lehetnek kártékony szoftverekkel. Emellett a helyi hálózatban néha tisztek jelenhetnek meg, akik illegális műveleteket próbálnak végrehajtani. A Suricata segíthet blokkolni az ilyen kísérleteket, bár a belső hálózat védelme érdekében jobb, ha a peremen belül telepítjük, és egy forgalmat egy portba tükrözni képes intelligens kapcsolóval együtt használjuk. A külső IDS ebben az esetben sem haszontalan — legalábbis képes lesz észlelni a helyi hálózaton élő kártevők külső szerverhez való kapcsolódási kísérleteit.
Először hozzunk létre egy új tesztelési támadó VPS-t, és a helyi hálózati routeren állítsuk be az Apache-t alapértelmezett konfigurációval, majd irányítsuk át a 80-as portot az IDS szerverről. Ezután DDoS támadást fogunk szimulálni a támadó csomópontból. Ehhez töltsük le a GitHub-ból, compileáljuk és futtassuk a xerxes nevű kis programot a támadó csomóponton (lehet, hogy a gcc csomag telepítése szükséges):
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 80A működése a következő eredményt hozta:

A Suricata megakadályozza a gonosztevőt, és az Apache alapértelmezett oldala megnyílik, annak ellenére, hogy improvizált támadást folytattunk, és a „hivatalos” (valójában otthoni) hálózatunk viszonylag lassú. Komolyabb feladatokhoz érdemes használni . Ez a penetrációs tesztek elvégzésére szolgál, és lehetővé teszi a különféle támadások szimulálását. A telepítési útmutató a projekt webhelyén található. A telepítés után frissítés szükséges:
sudo msfupdateTesztelés céljából indítsuk el az msfconsole-t.

Sajnos a keretrendszer legutolsó verzióiban hiányzik az automatikus feltörési lehetőség, ezért a kihasználásokat manuálisan kell végigjárni és a use parancs segítségével futtatni. Először érdemes meghatározni a támadott gépen nyitott portokat, például nmap segítségével (a mi esetünkben a netstat is elegendő a támadott csomóponton), majd választani és használni a megfelelő .
Vannak más eszközök is az IDS támadásokkal szembeni ellenállásának ellenőrzésére, beleértve az online szolgáltatásokat is. Érdeklődésből stressztesztet végezhetünk a próbaverzió segítségével . Ahhoz, hogy ellenőrizzük a belső támadók reakcióit, érdemes speciális eszközöket telepíteni a helyi hálózat egyik gépére. Számos lehetőség létezik, és ezt nemcsak kísérleti környezetben, hanem a működő rendszereken is érdemes alkalmazni, de ez már egy teljesen más történet.
Forrás: habr.com
