Saskaņā ar statistiku, tīkla trafika apjoms katru gadu palielinās par aptuveni 50%. Tas palielina aprīkojuma slodzi un jo īpaši palielina IDS/IPS veiktspējas prasības. Jūs varat iegādāties dārgu specializētu aparatūru, taču ir lētāka iespēja - ieviest kādu no atvērtā pirmkoda sistēmām. Daudzi iesācēju administratori domā, ka bezmaksas IPS instalēšana un konfigurēšana ir diezgan sarežģīta. Suricata gadījumā tā nav gluži taisnība – jūs varat to instalēt un dažu minūšu laikā sākt atvairīt standarta uzbrukumus ar bezmaksas noteikumu kopumu.
Kāpēc mums ir nepieciešams cits atvērts IPS?
Ilgi uzskatīts par standartu, Snort tika izstrādāts kopš deviņdesmito gadu beigām, tāpēc sākotnēji tas bija viens pavediens. Gadu gaitā tas ir ieguvis visas modernās funkcijas, piemēram, IPv6 atbalstu, iespēju analizēt lietojumprogrammas līmeņa protokolus vai universālu datu piekļuves moduli.
Pamata Snort 2.X dzinējs iemācījās strādāt ar vairākiem kodoliem, taču palika ar vienu pavedienu un tāpēc nevar optimāli izmantot mūsdienu aparatūras platformu priekšrocības.
Sistēmas trešajā versijā problēma tika atrisināta, taču tā sagatavošana prasīja tik ilgu laiku, ka tirgū izdevās parādīties no nulles uzrakstītajai Suricata. 2009. gadā to sāka izstrādāt tieši kā vairāku vītņu alternatīvu Snort, kam bija IPS funkcijas. Kods tiek izplatīts saskaņā ar GPLv2 licenci, bet projekta finanšu partneriem ir pieejama dzinēja slēgtā versija. Dažas problēmas ar mērogojamību radās pirmajās sistēmas versijās, taču tās tika atrisinātas diezgan ātri.
Kāpēc Suricata?
Suricata ir vairāki moduļi (piemēram, Snort): uztveršana, iegūšana, dekodēšana, noteikšana un izvade. Pēc noklusējuma tvertā trafika notiek pirms dekodēšanas vienā pavedienā, lai gan tas vairāk noslogo sistēmu. Ja nepieciešams, pavedienus var sadalīt iestatījumos un sadalīt starp procesoriem - Suricata ir ļoti labi optimizēta konkrētai aparatūrai, lai gan tas vairs nav HOWTO līmenis iesācējiem. Ir arī vērts atzīmēt, ka Suricata ir uzlaboti HTTP pārbaudes rīki, kuru pamatā ir HTP bibliotēka. Tos var arī izmantot, lai reģistrētu trafiku bez noteikšanas. Sistēma atbalsta arī IPv6 dekodēšanu, tostarp IPv4-in-IPv6, IPv6-in-IPv6 tuneļus un citus.
Datplūsmas pārtveršanai var izmantot dažādas saskarnes (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), un Unix Socket režīmā cita snifera uztvertos PCAP failus var automātiski analizēt. Turklāt Suricata modulārā arhitektūra vienkāršo jaunu elementu pievienošanu tīkla pakešu uztveršanai, dekodēšanai, analīzei un apstrādei. Ir svarīgi arī atzīmēt, ka Suricata bloķē datplūsmu, izmantojot operētājsistēmas iebūvēto filtru. GNU/Linux Ir divi IPS režīmi: caur NFQUEUE rindu (NFQ režīms) un caur nulles kopiju (AF_PACKET režīms). Pirmajā režīmā pakete, kas ienāk iptables, tiek nosūtīta uz NFQUEUE rindu, kur to var apstrādāt lietotāja līmenī. Suricata to apstrādā saskaņā ar saviem noteikumiem un atgriež vienu no trim spriedumiem: NF_ACCEPT, NF_DROP un NF_REPEAT. Pirmie divi ir pašsaprotami, bet pēdējais ļauj atzīmēt paketes un nosūtīt tās uz pašreizējās iptables tabulas augšdaļu. AF_PACKET režīms piedāvā augstāku veiktspēju, bet sistēmai uzliek vairākus ierobežojumus: tai jābūt divām tīkla saskarnēm un jādarbojas kā vārtejai. Bloķēta pakete vienkārši netiek pārsūtīta uz otro saskarni.
Svarīga Suricata iezīme ir iespēja izmantot Snort izstrādātos uzlabojumus. Administratoram ir piekļuve jo īpaši Sourcefire VRT un OpenSource Emerging Threats noteikumu kopām, kā arī komerciālajam Emerging Threats Pro. Vienoto izvadi var analizēt, izmantojot populāras aizmugursistēmas, un tiek atbalstīta arī izvade uz PCAP un Syslog. Sistēmas iestatījumi un noteikumi tiek glabāti YAML failos, kurus ir viegli lasīt un kurus var apstrādāt automātiski. Suricata dzinējs atpazīst daudzus protokolus, tāpēc noteikumi nav jāsaista ar porta numuru. Turklāt Suricata noteikumos aktīvi tiek izmantots plūsmas bitu jēdziens. Lai izsekotu aktivizēšanu, tiek izmantoti sesijas mainīgie, kas ļauj izveidot un lietot dažādus skaitītājus un karogus. Daudzi IDS apstrādā dažādus TCP savienojumus kā atsevišķas entītijas un var neredzēt savienojumu starp tiem, lai norādītu uz uzbrukuma sākumu. Suricata mēģina redzēt visu attēlu un daudzos gadījumos atpazīst ļaunprātīgu trafiku, kas izplatīta dažādos savienojumos. Mēs varam runāt par tā priekšrocībām ilgu laiku; mēs labāk pāriesim pie instalēšanas un konfigurēšanas.
Kā instalēt?
Mēs instalēsim Suricata virtuālā serverī, kas darbojas Ubuntu 18.04 LTS. Visas komandas jāizpilda kā root lietotājam. Visdrošākā iespēja ir izveidot savienojumu ar serveri, izmantojot SSH, kā parastam lietotājam, un pēc tam izmantot sudo, lai paaugstinātu privilēģijas. Vispirms jāinstalē nepieciešamās pakotnes:
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-httpsĀrēja repozitorija pievienošana:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get updateInstalējiet jaunāko stabilo Suricata versiju:
sudo apt-get install suricataJa nepieciešams, rediģējiet konfigurācijas failu nosaukumu, aizstājot noklusējuma eth0 ar servera ārējās saskarnes faktisko nosaukumu. Noklusējuma iestatījumi tiek saglabāti failā /etc/default/suricata, savukārt pielāgotie iestatījumi tiek glabāti failā /etc/suricata/suricata.yaml. IDS konfigurācija galvenokārt aprobežojas ar šī konfigurācijas faila rediģēšanu. Tam ir daudz parametru, kas pēc nosaukuma un mērķa sakrīt ar to analogiem no Snort. Sintakse tomēr ir pilnīgi atšķirīga, taču fails ir daudz vieglāk lasāms nekā Snort konfigurācijas, un tas ir arī labi komentēts.
sudo nano /etc/default/suricata 
и
sudo nano /etc/suricata/suricata.yaml 
Uzmanību! Pirms darba sākšanas pārbaudiet mainīgo vērtības sadaļā Vars.
Lai pabeigtu iestatīšanu, jums būs jāinstalē suricata-update, lai atjauninātu un lejupielādētu noteikumus. To izdarīt ir pavisam vienkārši:
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-updateTālāk mums ir jāpalaiž komanda suricata-update, lai instalētu Emerging Threats Open kārtulu kopu:
sudo suricata-update 
Lai skatītu noteikumu avotu sarakstu, palaidiet šādu komandu:
sudo suricata-update list-sources 
Atjaunināt kārtulu avotus:
sudo suricata-update update-sources 
Apskatīsim vēlreiz atjauninātos avotus:
sudo suricata-update list-sourcesJa nepieciešams, varat iekļaut pieejamos bezmaksas avotus:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklistPēc tam jums ir vēlreiz jāatjaunina noteikumi:
sudo suricata-updateTas pabeidz Suricata instalēšanu un sākotnējo konfigurēšanu. Ubuntu 18.04 LTS var uzskatīt par pabeigtu. Tagad sākas jautrākā daļa: nākamajā rakstā mēs savienosim virtuālo serveri ar biroja tīklu, izmantojot VPN, un sāksim analizēt visu ienākošo un izejošo datplūsmu. Mēs pievērsīsimies DDoS uzbrukumu, ļaunprogrammatūras darbību un mēģinājumu izmantot ievainojamības pakalpojumos, kuriem var piekļūt no publiskiem tīkliem, bloķēšanai. Skaidrības labad mēs simulēsim visizplatītākos uzbrukumu veidus.
Avots: www.habr.com
