Ako vjerovati statistikama, volumen mrežnog prometa raste otprilike 50% svake godine. To dovodi do povećanja opterećenja na opremi i, posebno, povećava zahtjeve za performanse IDS/IPS-a. Možete kupiti skupi specijalizirani hardver, ali postoji jeftinija opcija — implementacija jednog od sustava s otvorenim kodom. Mnogi mladi administratori smatraju da je instalacija i konfiguracija besplatnog IPS-a prilično teška. U slučaju Suricate, to nije sasvim točno — moguće je instalirati ju i započeti otkrivanje tipičnih napada s paketom besplatnih pravila za nekoliko minuta.
Zašto je potrebna još jedna otvorena IPS?
Dugo vremena, sustav Snort, koji se smatra standardom, razvija se od kraja devedesetih, stoga je prvotno bio jednoprotokolan. Tijekom godina, opremljen je svim modernim značajkama, poput podrške za IPv6, mogućnosti analize aplikacijskih protokola i univerzalnog modula za pristup podacima.
Osnovni motor Snort 2.X naučio je raditi s nekoliko jezgri, ali je ostao jednoprotokolan i stoga ne može optimalno iskoristiti prednosti modernih hardverskih platformi.
Problem je riješen u trećoj verziji sustava, no pripremala se toliko dugo da je na tržištu već nastala Suricata, napisana od nule. Godine 2009. počela se razvijati kao multithread alternativa Snortu, koja je imala funkcionalnosti IPS-a iz kutije. Kod se distribuira pod GPLv2 licencom, ali financijski partneri projekta imaju pristup zatvorenoj verziji motora. Neki problemi s skalabilnošću u prvim verzijama sustava pojavili su se, ali su brzo riješeni.
Zašto Suricata?
U Suricati postoji nekoliko modula (kao i u Snortu): za hvatanje, prikupljanje, dekodiranje, otkrivanje i isporuku. Prema zadanim postavkama, uhvaćen promet ide do dekodiranja jednim tokom, iako to više opterećuje sustav. Po potrebi, tokove je moguće podijeliti u postavkama i rasporediti po procesorima — Suricata se vrlo dobro optimizira za specifičan hardver, iako to više nije razina HOWTO za početnike. Također, valja napomenuti prisutnost u Suricati naprednih sredstava za inspekciju HTTP-a temeljenih na biblioteci HTP. Ona se također može koristiti za logiranje prometa bez otkrivanja. Sustav također podržava dekodiranje IPv6, uključujući tuneliranje IPv4-u-u-IPv6, IPv6-u-u-IPv6 i drugo.
Različiti su sučelja mogu se koristiti za presretanje prometa (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), a u Unix Socket načinu može se automatski analizirati promet uhvaćen drugim snifferom iz PCAP datoteka. Osim toga, modularna arhitektura Suricate pojednostavljuje povezivanje novih elemenata za hvatanje, dekodiranje, analizu i obradu mrežnih paketa. Također je važno napomenuti da se u Suricati blokada prometa vrši sredstvima ugrađenog filtra operativnog sustava. U GNU/Linuxu su dostupne dvije opcije za rad IPS-a: preko NFQUEUE reda (NFQ način) i preko zero copy (AF_PACKET način). U prvom slučaju, paket koji završi u iptables preusmjerava se u NFQUEUE red, gdje se može obraditi na korisničkoj razini. Suricata ga prolazi kroz svoja pravila i donosi jedan od tri presude: NF_ACCEPT, NF_DROP i NF_REPEAT. Prva dva ne zahtijevaju pojašnjenje, dok posljednji omogućuje označavanje paketa i slanje natrag na početak trenutne tablice iptables. AF_PACKET način se odlikuje višim performansama, ali nameće sustavu niz ograničenja: mora imati dva mrežna sučelja i raditi kao prolaznik. Zbog toga se blokirani paket jednostavno ne proslijeđuje na drugo sučelje.
Važna karakteristika Suricate je mogućnost korištenja resursa za Snort. Administratoru su dostupni, između ostalog, setovi pravila Sourcefire VRT i OpenSource Emerging Threats, kao i komercijalni Emerging Threats Pro. Unified output se može analizirati pomoću popularnih backendova, a također se podržava izlaz u PCAP i Syslog. Postavke sistema i pravila se čuvaju u YAML datotekama, koje su lako čitljive i mogu se automatski obrađivati. Suricata prepoznaje mnoge protokole, pa nije potrebno vezivati pravila za broj porta. Također, u pravilima Suricate se aktivno koristi koncept flowbits. Za praćenje aktivacije koriste se sesijske varijable, koje omogućuju kreiranje i primjenu različitih brojača i zastavica. Mnogi IDS sustavi smatraju različite TCP veze kao odvojene entitete i mogu ne primijetiti veze među njima, što ukazuje na početak napada. Suricata nastoji vidjeti širu sliku i u mnogim slučajevima prepoznaje zloćudni promet raspoređen preko različitih veza. O njezinim prednostima se može dugo raspravljati, bolje je da se prebacimo na instalaciju i postavku.
Kako instalirati?
Instalirat ćemo Suricatu na virtualni server koji radi pod Ubuntu 18.04 LTS. Sve komande potrebno je izvršavati u ime superkorisnika (root). Najsigurnija opcija je da se povežete sa serverom putem SSH kao obični korisnik, a zatim upotrijebite sudo za povećanje privilegija. Na početku, potrebno je instalirati pakete koji će nam biti potrebni:
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-httpsPovezujemo vanjski repozitorij:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get updateInstaliramo najnoviju stabilnu verziju Suricate:
sudo apt-get install suricataAko je potrebno, ispravite konfiguracijske datoteke, zamjenjujući zadani eth0 stvarnim imenom vanjskog sučelja poslužitelja. Zadane postavke čuvaju se u datoteci /etc/default/suricata, a korisničke u /etc/suricata/suricata.yaml. Konfiguracija IDS-a većinom se svodi na izmjenu ove konfiguracijske datoteke. Sadrži brojne parametre koji nazivom i namjenom odgovaraju onima iz Snorta. Ipak, sintaksa je potpuno drugačija, no datoteku je puno lakše čitati nego Snortove konfiguracije, a osim toga, dobro je komentirana.
sudo nano /etc/default/suricata 
i
sudo nano /etc/suricata/suricata.yaml 
Pozor! Prije pokretanja potrebno je provjeriti vrijednosti varijabli iz odjeljka vars.
Za dovršetak postavke bit će potrebno instalirati suricata-update za ažuriranje i preuzimanje pravila. To je prilično jednostavno:
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-updateDalje, trebamo pokrenuti naredbu suricata-update za instalaciju paketa pravila Emerging Threats Open:
sudo suricata-update 
Za pregled popisa izvora pravila izvršite sljedeću naredbu:
sudo suricata-update list-sources 
Ažuriramo izvore pravila:
sudo suricata-update update-sources 
Ponovno pregledavamo ažurirane izvore:
sudo suricata-update list-sourcesAko je potrebno, možete omogućiti dostupne besplatne izvore:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklistNakon toga potrebno je ponovno ažurirati pravila:
sudo suricata-updateTime se instalacija i osnovna konfiguracija Suricate u Ubuntu 18.04 LTS mogu smatrati završenima. Slijedi najzanimljiviji dio: u sljedećem članku povezujemo virtualni poslužitelj s uredskom mrežom putem VPN-a i počinjemo analizirati cjelokupan ulazni i izlazni promet. Posebna pažnja posvetit će se blokiranju DDoS napada, aktivnostima zlonamjernog softvera i pokušajima iskorištavanja ranjivosti u uslugama dostupnim iz javno dostupnih mreža. Za ilustraciju, simulirat ćemo napade najčešćih tipova.
Izvor: habr.com
