Kui uskuda statistikat, siis võrgu liiklus suureneb igal aastal ligikaudu 50%. See toob kaasa seadmete koormuse kasvu ja suurendab eriti IDS/IСS jõudlust nõudmisi. Saate osta kallist spetsialiseeritud riistvara, kuid on ka odavam variant — rakendada ühte avatud lähtekoodiga süsteemi. Paljud algajad administraatorid usuvad, et tasuta IPS-i seadmine ja konfigureerimine on üsna keeruline. Suricata puhul ei ole see päris tõsi — selle paigaldamine ja tüüpiliste rünnakute peegeldamine tasuta reeglite kogumiga võtab vaid paar minutit.
Miks on vaja veel üht avatud IPS-i?
Pikka aega standardiks peetud süsteem Snort on väljatöötamisel alates 1990-ndate algusest, mistõttu oli alguses tegu ühe lõimega. Aasta jooksul on sellele lisandunud kõik tänapäeva funktsioonid, sealhulgas IPv6 tugi, rakendustasandi protokollide analüüsi võimalus või universaalne andmete ligipääsu moodul.
Snort 2.X põhimootor õppis tööle mitme tuumaga, kuid jäi ikkagi ühe lõimega ja seetõttu ei saa optimaalselt ära kasutada kaasaegsete seadmete eeliseid.
Probleem lahendati süsteemi kolmandas versioonis, kuid selle ettevalmistamine võttis nii kaua aega, et turule ilmus täiesti nullist kirjutatud Suricata. 2009. aastal hakati seda arendama just kui mitme lõimega alternatiivi Snortile, mis sisaldab IPS-i funktsioone otse välja kastist. Kood jaotatakse GPLv2 litsentsi alusel, kuid projekti rahalised partnerid pääsevad juurde suletud versioonile. Mõned probleemid süsteemi esialgse versiooni skaleeritavusega tekkisid, kuid need lahendati üsna kiiresti.
Miks Suricata?
Suricatasse on mitmeid mooduleid (nagu ka Snortis): püüdmiseks, kogumiseks, dekodeerimiseks, avastamiseks ja väljundiks. Vaikimisi liigub püütud liiklus dekodeerimise eel ühe vooguna, kuigi see koormab süsteemi rohkem. Vaja korral saab voogusid seadetes jagada ja jaotada protsessorite vahel — Suricata on väga hästi optimeeritud konkreetse riistvara jaoks, kuigi see ei ole enam algajatele mõeldud õpetus. Samuti tasub märkida, et Suricatas on olemas HTP raamatukogul põhinevad arenenud HTTP-inspektsiooni tööriistad. Need võivad olla kasutatud ka liikluse logimiseks ilma avastamiseta. Süsteem toetab samuti IPv6 dekodeerimist, sealhulgas IPv4-in-IPv6, IPv6-in-IPv6 tunnelite jne.
Liikluse püüdmiseks võivad kasutada erinevaid liideseid (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), ning Unix Socketi režiimis saab automaatselt analüüsida teiste sniffide püütud PCAP-faile. Lisaks lihtsustab Suricata moodulaarne arhitektuur uute elementide lisamist liikluse püüdmiseks, dekodeerimiseks, analüüsimiseks ja töötlemiseks. Oluline on ka märkida, et Suricatas toimub liikluse blokeerimine operatsioonisüsteemi standardselt filtrite kaudu. GNU/Linuxis on saadaval kaks IPS-režiimi: NFQUEUE kaudu (NFQ-režiim) ja zero copy kaudu (AF_PACKET režiim). Esimesel juhul suunatakse iptables'isse sattuv pakett NFQUEUE järjekorda, kus seda saab töödelda kasutaja tasandil. Suricata kontrollib seda vastavalt oma reeglitele ja annab välja ühe kolmest otsusest: NF_ACCEPT, NF_DROP ja NF_REPEAT. Esimese kahe puhul seletust ei vaja, samas viimane võimaldab pakette märgistada ja saata need tagasi praegusse iptables'i tabelisse. AF_PACKET režiim eristub kõrgema töökiirusest, kuid seab süsteemile mitmeid piiranguid: see peab omama kahte võrguliidest ja töötama väravana. Blokeeritud pakett ei edastata lihtsalt teisele liidesele.
Suricata peamine funktsioon on Snorti töötamiste kasutamise võimalus. Administraatoritele on kergesti kättesaadavad Sourcefire VRT ja OpenSource Emerging Threats reeglid ning ka kommertslikud Emerging Threats Pro. Ühtset väljundit saab analüüsida populaarsete tagapindade abil, samuti toetatakse väljundit PCAP ja Syslog formaates. Süsteemi seaded ja reeglid salvestatakse YAML-formaadis failidesse, mis on hõlpsasti loetavad ja automatiseeritavad. Suricata mootor tuvastab palju protokolle, seega ei ole reeglites vajalik sadama numbriga sidumine. Lisaks rakendatakse Suricata reeglites aktiivselt flowbits kontseptsiooni. Tuvastamise jälgimiseks kasutatakse sessioonimuutujaid, mis võimaldavad luua ja rakendada erinevaid loEndure ega lippu. Paljud IDS-id käsitlevad erinevaid TCP-ühendusi eraldi üksustena ja võivad mitte näha nende vahelist seost, mis viitab rünnaku algusele. Suricata üritab näha suuremat pilti ja tuvastab paljudes juhtudes jaotatud pahatahtliku liikluse erinevatesse ühendustesse. Selle eeliste üle võib palju arutada, kuid parem on liikuda installimise ja seadistamise juurde.
Kuidas installida?
Me paigaldame Suricata virtuaalsele serverile, mis töötab Ubuntu 18.04 LTS all. Kõiki käske tuleb täita superkasutaja (root) õigustes. Kõige turvalisem on serverisse ühenduda SSH kaudu tavakasutaja õigustes ja seejärel kasutada sudo utiliiti õiguste suurendamiseks. Alustuseks peame installima paketid, mida me vajame:
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-httpsLisame välist hoidlat:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get updateInstallime viimase stabiilse versiooni Suricata:
sudo apt-get install suricataVajadusel muutke konfigureerimisfailide nime, asendades vaikimisi kasutatava eth0 tegeliku serveri välise liidese nimega. Vaikeseaded on salvestatud failis /etc/default/suricata ja kohandatud seaded failis /etc/suricata/suricata.yaml. IDS seadistamine piirneb peamiselt selle konfigureerimisfaili muutmisega. Seal on palju parameetreid, mis nime ja otstarbe poolest sarnanevad Snorti omadega. Sünntaks on siiski täiesti erinev, kuid faili on palju lihtsam lugeda kui Snorti konfiguraatoreid, lisaks on see hästi kommenteeritud.
sudo nano /etc/default/suricata 
ja
sudo nano /etc/suricata/suricata.yaml 
Tähelepanu! Enne käivitamist tasub kontrollida muutujaid jaotises vars.
Seadistuse lõpetamiseks on vajalik installida suricata-update reeglite uuendamiseks ja allalaadimiseks. Selle tegemine on üsna lihtne:
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-updateJärgmisena peame käivitama käsu suricata-update, et installida Emerging Threats Open reeglite komplekt:
sudo suricata-update 
Reeglite allikate loendi vaatamiseks käivita järgmine käsk:
sudo suricata-update list-sources 
Uuendame reeglite allikaid:
sudo suricata-update update-sources 
Kordame üle värskendatud allikad:
sudo suricata-update list-sourcesVajadusel saab lubada tasuta allikaid:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklistPärast seda on vaja reeglid uuesti uuendada:
sudo suricata-updateSellega võib Suricata installimise ja esialgse seadistamise Ubuntu 18.04 LTS jaoks lugeda lõpetatuks. Edasi algab kõige huvitavam: järgmises artiklis ühendame virtuaalse serveri kontorivõrku VPNi kaudu ja hakkame analüüsima kogu sissetulevat ja väljaminevat liiklust. Eriti tähelepanu pöörame DDoS rünnakute blokeerimisele, pahavara tegevusele ja katsetele kasutada haavatavusi avalikult kergesti ligipääsetavates teenustes. Illustreerimiseks simuleerime kõige levinumaid rünnakutüüpe.
Allikas: habr.com
