Sipas statistikave, volumi i trafikut nĂ« rrjet rritet me rreth 50% çdo vit. Kjo çon nĂ« rritjen e ngarkesĂ«s nĂ« pajisje dhe, nĂ« veçanti, rrit kĂ«rkesat pĂ«r performancĂ«n e IDS/IPS. Mund tĂ« blini pajisje tĂ« shtrenjta tĂ« specializuara, por ka njĂ« opsion mĂ« tĂ« lirĂ« â implementimi i njĂ« prej sistemeve me burim tĂ« hapur. ShumĂ« administratorĂ« fillestarĂ« mendojnĂ« se instalimi dhe konfiguroja e njĂ« IPS falas Ă«shtĂ« mjaft e komplikuar. NĂ« rastin e Suricata, kjo nuk Ă«shtĂ« plotĂ«sisht e vĂ«rtetĂ« â mund ta instaloni dhe tĂ« filloni tĂ« bllokoni sulme standarde me njĂ« grup rregullash falas brenda disa minutash.
Pse është e nevojshme një IPS tjetër e hapur?
Sistemi Snort, i cili shumë kohë është konsideruar standard, është zhvilluar që nga fundi i viteve '90, prandaj fillimisht ishte një proces njëkanësh. Gjatë viteve të kaluara, ajo ka fituar të gjitha funksionalitetet moderne, si mbështetje për IPv6, mundësinë për analizimin e protokolleve të nivelit aplikativ dhe një moduli universal të aksesit në të dhëna.
Motori bazë Snort 2.X ka mësuar të punojë me disa bërthama, por ka mbetur ende njëkanësh dhe, për këtë arsye, nuk mund të shfrytëzojë optimalisht avantazhet e platformave moderne të harduerit.
Problemi u zgjidh në versionin e tretë të sistemit, por përgatitjet zgjatën kaq shumë saqë në treg doli Suricata, e shkruar nga e para. Në vitin 2009, ajo filloi të zhvillohej pikërisht si një alternativë shumëkanëshe ndaj Snort, duke pasur funksionalitetet e IPS menjëherë të gatshme. Kodi shpërndahet nën licencën GPLv2, por partnerët financiarë të projektit kanë akses në versionin e mbyllur të motorit. Disa probleme me shkallëzimin në versionet e para të sistemit u shfaqën, por ato u zgjidhën mjaft shpejt.
Pse Suricata?
NĂ« Suricata ka disa module (ashtu si nĂ« Snort): kapja, mbledhja, dekodimi, zbulimi dhe dalja. NĂ« mĂ«nyrĂ« standarde, trafiku i kapur kalon pĂ«rmes njĂ« dobi e njĂ«kanĂ«ve deri nĂ« dekodim, edhe pse kjo e ngarkon mĂ« shumĂ« sistemin. NĂ«se Ă«shtĂ« e nevojshme, rrjedhat mund tĂ« ndahen nĂ« cilĂ«simet dhe tĂ« shpĂ«rndahen nĂ« procesorĂ« â Suricata optimizohet shumĂ« mirĂ« pĂ«r harduerin specifik, edhe pse kjo nuk Ă«shtĂ« mĂ« nivel i HOWTO pĂ«r fillestarĂ«t. Vlen tĂ« theksohet gjithashtu prania nĂ« Suricata e mjeteve tĂ« avancuara tĂ« inspektimit HTTP tĂ« bazuara nĂ« bibliotekĂ«n HTP. Ato gjithashtu mund tĂ« pĂ«rdoren pĂ«r tĂ« regjistruar trafikun pa e zbuluar atĂ«. Sistemi gjithashtu mbĂ«shtet dekodimin IPv6, pĂ«rfshirĂ« tunelimin IPv4-in-IPv6, IPv6-in-IPv6 dhe tĂ« tjerĂ«.
PĂ«r kapjen e trafikut mund tĂ« pĂ«rdoren interface tĂ« ndryshme (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), dhe nĂ« modalitetin Unix Socket mund tĂ« analizoni automatikisht skedarĂ«t PCAP tĂ« kapur nga sniffer tĂ« tjerĂ«. PĂ«r mĂ« tepĂ«r, arkitektura modulare e Suricata e lehtĂ«son lidhjen e elementeve tĂ« reja pĂ«r kapjen, dekodimin, analizimin dhe pĂ«rpunimin e paketave rrjet. ĂshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet gjithashtu se bllokimi i trafikut nĂ« Suricata Ă«shtĂ« realizuar pĂ«rmes mjeteve tĂ« filtrit operacional tĂ« sistemit. NĂ« GNU/Linux ka dy variante tĂ« funksionimit IPS: pĂ«rmes radhĂ«s NFQUEUE (modaliteti NFQ) dhe pĂ«rmes zero copy (modaliteti AF_PACKET). NĂ« rastin e parĂ«, paketa qĂ« kalon nĂ« iptables dĂ«rgohet nĂ« radhĂ«n NFQUEUE, ku mund tĂ« pĂ«rpunohen nĂ« nivelin e pĂ«rdoruesit. Suricata e kalon atĂ« pĂ«rmes rregullave tĂ« saj dhe jep njĂ« nga tre verdiktet: NF_ACCEPT, NF_DROP dhe NF_REPEAT. Dy tĂ« parat nuk kĂ«rkojnĂ« shpjegime, ndĂ«rsa e fundit lejon qĂ« tĂ« etiketohen paketat dhe t'i dĂ«rgojnĂ« ato nĂ« fillim tĂ« tabelĂ«s aktuale tĂ« iptables. Modaliteti AF_PACKET ka njĂ« shpejtĂ«si mĂ« tĂ« lartĂ«, por i imponon sistemit njĂ« sĂ«rĂ« kufizimesh: duhet tĂ« ketĂ« dy interface rrjeti dhe tĂ« funksionojĂ« si njĂ« derĂ«dalĂ«se. Paketa e bllokuar thjesht nuk dĂ«rgohet nĂ« interface-in e dytĂ«.
Një karakteristikë e rëndësishme e Suricata është mundësia e përdorimit të burimeve të Snort. Administratorët kanë akses, ndër të tjera, në setet e rregullave të Sourcefire VRT dhe OpenSource Emerging Threats, si dhe në komerciale Emerging Threats Pro. Të dhënat e unifikuara mund të analizohen me anë të backend-eve të njohura, si dhe mbështetet dalja në PCAP dhe Syslog. Cilësimet e sistemit dhe rregullat ruhen në skedarë me formatin YAML, i cili është lehtë i lexueshëm dhe mund të përpunohet automatikisht. Motori Suricata njeh shumë protokolle, prandaj në rregulla nuk është nevoja të lidhemi me numrin e portit. Për më tepër, në rregullat e Suricata aktivizohet koncepti i flowbits. Për të ndjekur aktivizimin përdoren variabla sesioni, të cilat mundësojnë krijimin dhe aplikimin e ndryshimeve të ndryshme me numra dhe flamuj. Shumë IDS-i i konsiderojnë lidhjet e ndryshme TCP si entitete të veçanta dhe mund të mos shohin lidhjet midis tyre, që tregojnë fillimin e një sulmi. Suricata përpiqet të shohë gjithçka nga një perspektivë më të gjerë dhe në shumë raste njeh qarkullimin e dëmshëm të shpërndarë në lidhje të ndryshme. Mund të flasim gjatë për avantazhet e saj, por le të kalojmë në instalimin dhe konfigurimin e saj.
Si ta instaloni?
Ne do të instalojmë Suricata në një server virtual që funksionon nën Ubuntu 18.04 LTS. Të gjitha komandat duhet të ekzekutohen me emrin e superadministratori (root). Opsioni më i sigurt është të lidhemi në serverin përmes SSH si një përdorues i zakonshëm dhe pastaj të përdorim utilitarin sudo për të përmirësuar privilegjet. Së pari, duhet të instalojmë paketat që na nevojiten:
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-httpsShtojmë një depo të jashtme:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get updateInstalojmë versionin më të fundit stabil të Suricata:
sudo apt-get install suricataNëse është e nevojshme, rregullojmë skedarët e konfigurimit duke zëvendësuar emrin e përdorur standart, eth0, me emrin e vërtetë të ndërfaqes së jashtme të serverit. Cilësimet standart ruhen në skedarin /etc/default/suricata, ndërsa ato të përdoruesit ruhen në /etc/suricata/suricata.yaml. Konfigurimi i IDS zakonisht kufizohet në rregullimin e këtij skedari konfigurimi. Një sërë parametrash në të përputhen me ato nga Snort, përsa i përket emrave dhe qëllimeve. Megjithatë, sintaksa është krejtësisht ndryshe, por skedari është më i lehtë për t'u lexuar sesa ato të Snort, dhe për më tepër, ai është mirëkomentuar.
sudo nano /etc/default/suricata 
dhe
sudo nano /etc/suricata/suricata.yaml 
Kujdes! Para se ta nisim, duhet të kontrollojmë vlerat e variablave nga seksioni vars.
Për të përfunduar konfigurimin, do të duhet të instalojmë suricata-update për të përditësuar dhe shkarkuar rregulla. Kjo është mjaft e thjeshtë:
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-updateTani na nevojitet të ekzekutojmë komandën suricata-update për të instaluar setin e rregullave Emerging Threats Open:
sudo suricata-update 
Për të parë listën e burimeve të rregullave, ekzekutojmë komandën e mëposhtme:
sudo suricata-update list-sources 
Përditësojmë burimet e rregullave:
sudo suricata-update update-sources 
Rishikojmë burimet e përditësuara:
sudo suricata-update list-sourcesNëse është e nevojshme, mund të aktivizojmë burimet falas të disponueshme:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklistPas kësaj, duhet të përditësojmë rregullat përsëri:
sudo suricata-updateMe këtë, instalimi dhe konfigurimi i parë i Suricata në Ubuntu 18.04 LTS mund të konsiderohet i përfunduar. Tani fillon pjesa më interesante: në artikullin e ardhshëm ne do ta lidhim serverin virtual me rrjetin e zyrës përmes VPN dhe do të fillojmë të analizojmë gjith trafikun që vjen dhe del. Do t'i kushtojmë një vëmendje të veçantë bllokimit të sulmeve DDoS, aktiviteteve të softuerëve të dëmshëm dhe përpjekjeve për shfrytëzimin e dobësive në shërbimet e aksesueshme nga rrjetet publike. Për ta ilustruar këtë, do të simulojmë sulme të llojeve më të zakonshme.
Burimi: habr.com
