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Ä varat automÄtiski analizÄt PCAP failus, ko tvÄris cits sniferis. TurklÄt Suricata modulÄrÄ arhitektÅ«ra ļauj viegli savienot jaunus elementus, lai uztvertu, atÅ”ifrÄtu, analizÄtu un apstrÄdÄtu tÄ«kla paketes. Ir arÄ« svarÄ«gi atzÄ«mÄt, ka Suricata satiksme tiek bloÄ·Äta, izmantojot standarta operÄtÄjsistÄmas filtru. OperÄtÄjsistÄmÄ GNU/Linux ir pieejamas divas IPS darbÄ«bas iespÄjas: izmantojot rindu NFQUEUE (NFQ režīms) un nulles kopiju (AF_PACKET režīms). PirmajÄ gadÄ«jumÄ pakete, kas ievada iptables, tiek nosÅ«tÄ«ta uz rindu NFQUEUE, kur to var apstrÄdÄt lietotÄja lÄ«menÄ«. Suricata to palaiž saskaÅÄ ar saviem noteikumiem un izdod 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 sÄkumu. AF_PACKET režīms ir ÄtrÄks, taÄu uzliek sistÄmai vairÄkus ierobežojumus: tam ir jÄbÅ«t divÄm tÄ«kla saskarnÄm un jÄdarbojas kÄ vÄrtejai. BloÄ·ÄtÄ 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ÄlajÄ serverÄ«, kurÄ darbojas Ubuntu 18.04 LTS. Visas komandas jÄizpilda kÄ superlietotÄjs (root). VisdroÅ”ÄkÄ iespÄja ir izveidot savienojumu ar serveri, izmantojot SSH kÄ standarta lietotÄjam, un pÄc tam izmantot utilÄ«tu sudo, lai palielinÄtu privilÄÄ£ijas. Vispirms mums 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 update
InstalÄjiet jaunÄko stabilo Suricata versiju:
sudo apt-get install suricata
Ja 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-update
TÄ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-sources
Ja 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-blacklist
PÄc tam jums ir vÄlreiz jÄatjaunina noteikumi:
sudo suricata-update
Å obrÄ«d Suricata instalÄÅ”anu un sÄkotnÄjo konfigurÄciju Ubuntu 18.04 LTS var uzskatÄ«t par pabeigtu. Tad sÄkas jautrÄ«ba: 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 trafiku. ÄŖpaÅ”u uzmanÄ«bu pievÄrsÄ«sim DDoS uzbrukumu, ļaunprÄtÄ«gas programmatÅ«ras darbÄ«bu un mÄÄ£inÄjumu izmantot ievainojamÄ«bas bloÄ·ÄÅ”anai servisos, kas pieejami no publiskajiem tÄ«kliem. SkaidrÄ«bas labad tiks simulÄti visizplatÄ«tÄko veidu uzbrukumi.
Avots: www.habr.com