Dacă ne gândim la statisticile actuale, volumul de trafic de rețea crește cu aproximativ 50% în fiecare an. Acest lucru duce la o creștere a încărcării echipamentului și, în special, la creșterea cerințelor de performanță ale IDS/IPS. Se pot achiziționa echipamente specializate costisitoare, dar există o opțiune mai accesibilă — implementarea unui sistem open-source. Mulți administratori începători consideră că instalarea și configurarea unui IPS gratuit este destul de complicată. În cazul Suricata, acest lucru nu este chiar adevărat — pot fi instalate și configurate rapid, iar tipurile obișnuite de atacuri pot fi respinse utilizând un set de reguli gratuit în câteva minute.
De ce este nevoie de încă un IPS open-source?
Sistemul Snort, considerat mult timp standard, a fost dezvoltat la sfârșitul anilor '90, deci la început a fost un sistem uniplu. De-a lungul anilor, a fost îmbogățit cu toate caracteristicile moderne, precum suportul pentru IPv6, analiza protocoalelor de aplicație sau un modul universal de acces la date.
Motorul de bază Snort 2.X a învățat să funcționeze cu mai multe nuclee, dar a rămas totuși uniplu și, astfel, nu poate folosi optim avantajele platformelor hardware moderne.
Această problemă a fost rezolvată în a treia versiune a sistemului, însă dezvoltarea a durat atât de mult timp încât pe piață a apărut Suricata, scrisă de la zero. În 2009, a fost dezvoltată ca o alternativă multi-threaded la Snort, având din start funcționalitatea IPS. Codul este distribuit sub licența GPLv2, dar partenerii financiari ai proiectului au acces la o versiune închisă a motorului. Unele probleme de scalabilitate din versiunile inițiale ale sistemului au apărut, dar acestea au fost rezolvate rapid.
De ce Suricata?
Suricata dispune de mai multe module (la fel ca Snort): capturare, colectare, decodare, detecție și emitere. În mod implicit, traficul capturat este procesat într-un singur fir până la decodare, deși aceasta încarcă mai mult sistemul. Dacă este necesar, firele pot fi separate în setări și distribuite pe procesoare — Suricata este foarte bine optimizată pentru hardware-ul specific, deși aceasta nu este o descriere destinat începutorilor. Este de asemenea de menționat că Suricata dispune de mecanisme avansate de inspecție HTTP bazate pe biblioteca HTP. Acestea pot fi folosite și pentru a înregistra traficul fără a detecta. Sistemul suportă, de asemenea, decodarea IPv6, inclusiv tuneluri IPv4-in-IPv6, IPv6-in-IPv6 și altele.
Pentru interceptarea traficului pot fi folosite diferite interfețe (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), iar în modul Unix Socket este posibil să analizați automat fișierele PCAP capturate de alte sniffer-uri. În plus, arhitectura modulară a Suricata facilitează integrarea de noi componente pentru captură, decodare, analiză și procesare a pachetelor de rețea. Este important de menționat că în Suricata blocarea traficului se realizează prin intermediul filtrului standard al sistemului de operare. În GNU/Linux sunt disponibile două opțiuni pentru IPS: prin intermediul cozii NFQUEUE (modul NFQ) și prin zero copy (modul AF_PACKET). În primul caz, pachetul care ajunge în iptables este direcționat spre coada NFQUEUE, unde poate fi procesat la nivel de utilizator. Suricata îl analizează conform regulilor sale și emite unul dintre cele trei verdicturi: NF_ACCEPT, NF_DROP și NF_REPEAT. Primele două nu necesită explicații, iar ultimul permite marcare pachetelor și returnarea acestora la începutul tabelului actual iptables. Modul AF_PACKET se distinge printr-o viteză mai mare, dar impune o serie de restricții asupra sistemului: acesta trebuie să aibă două interfețe de rețea și să funcționeze ca un gateway. Pachetul blocat pur și simplu nu este retransmis pe a doua interfață.
O caracter important al Suricata este capacitatea de a utiliza resursele dezvoltate pentru Snort. Administratorului îi sunt disponibile, în special, seturile de reguli Sourcefire VRT și OpenSource Emerging Threats, precum și comerciale Emerging Threats Pro. Ieşirea unificată poate fi analizată cu ajutorul backend-urilor populare, de asemenea, suportul pentru ieşiri în format PCAP și Syslog este inclus. Setările sistemului și regulile sunt stocate în fișiere de format YAML, care sunt ușor de citit și pot fi procesate automat. Motoarele Suricata recunosc numeroase protocoale, astfel încât regulile nu trebuie să fie legate de numărul de port. În plus, în regulile Suricata este activ practicată conceptul de flowbits. Pentru a urmări activarea sunt utilizate variabile de sesiune, care permit crearea și aplicarea diferitelor contorizări și semnale. Multe IDS consideră diferitele conexiuni TCP ca fiind entități separate și pot să nu observe relațiile dintre ele, care sugerează începutul unui atac. Suricata încearcă să vadă întreaga imagine și, în multe cazuri, recunoaște traficul dăunător distribuit pe diferite conexiuni. Se poate discuta mult despre avantajele acesteia, mai bine să trecem la instalare și configurare.
Cum să instalăm?
Vom instala Suricata pe un server virtual care rulează pe Ubuntu 18.04 LTS. Toate comenzile trebuie executate cu drepturi de superutilizator (root). Cea mai sigură variantă este să vă conectați la server prin SSH cu drepturi de utilizator obișnuit, apoi să aplicați utilitarul sudo pentru a crește privilegiile. În primul rând, trebuie să instalăm pachetele de care avem nevoie:
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-httpsAdăugăm repository-ul extern:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get updateInstalăm cea mai recentă versiune stabilă a Suricata:
sudo apt-get install suricataDacă este necesar, modificăm fișierele de configurare a numelui, înlocuind eth0, utilizat implicit, cu numele real al interfeței externe a serverului. Setările implicite sunt stocate în fișierul /etc/default/suricata, iar setările personalizate în /etc/suricata/suricata.yaml. Configurarea IDS se limitează în mare parte la modificarea acestui fișier de configurare. Acesta conține numeroase parametrii care, prin numele și scopul lor, corespund analogilor din Snort. Totuși, sintaxa este complet diferită, dar fișierul este mult mai ușor de citit decât configurațiile Snort, în plus, este bine comentat.
sudo nano /etc/default/suricata 
și
sudo nano /etc/suricata/suricata.yaml 
Atenție! Înainte de a porni, ar trebui să verificați valorile variabilelor din secțiunea vars.
Pentru a finaliza configurarea, va trebui să instalați suricata-update pentru a actualiza și descărca reguli. Este destul de simplu de realizat:
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-updateMai departe, trebuie să rulăm comanda suricata-update pentru a instala setul de reguli Emerging Threats Open:
sudo suricata-update 
Pentru a vizualiza lista surselor de reguli, executăm următoarea comandă:
sudo suricata-update list-sources 
Actualizăm sursele de reguli:
sudo suricata-update update-sources 
Reverificăm sursele actualizate:
sudo suricata-update list-sourcesDacă este necesar, puteți activa sursele gratuite disponibile:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklistDupă aceasta, este necesar să actualizați din nou regulile:
sudo suricata-updateInstalarea și configurarea inițială a Suricata pe Ubuntu 18.04 LTS se poate considera finalizată. Aici începe partea interesantă: în următorul articol, vom conecta serverul virtual la rețeaua de birou prin VPN și vom începe să analizăm tot traficul de intrare și ieșire. Vom acorda o atenție specială blocării atacurilor DDoS, activității malware și încercărilor de exploatare a vulnerabilităților în serviciile accesibile din rețelele publice. Pentru claritate, vor fi simulate atacuri ale celor mai comune tipuri.
Sursa: habr.com
