Cândva, pentru protecția unei rețele locale, era suficient un simplu firewall și programe antivirus, dar împotriva atacurilor hackerilor moderni și a malware-ului proliferat în ultima vreme, acest set devine din ce în ce mai puțin eficient. Firewall-ul clasic analizează doar anteturile pachetelor, permitându-le sau blocându-le conform unui set de reguli formale. Nu știe nimic despre conținutul pachetelor, astfel că nu poate recunoaște acțiunile aparent legitime ale atacatorilor. Programele antivirus nu reușesc întotdeauna să identifice software-ul malițios, așa că provocarea pentru administrator devine urmărirea activităților anormale și izolarea la timp a gazdelor infectate.
Există numeroase soluții avansate care permit protejarea infrastructurii IT a companiei. Astăzi vom discuta despre sistemele de detectare și prevenire a intruziunilor cu cod sursă deschis, care pot fi implementate fără achiziționarea de echipamente costisitoare sau licențe software.
Clasificarea IDS/IPS
IDS (Sistem de Detectare a Intruziunilor) este destinat înregistrării acțiunilor suspecte în rețea sau pe un computer individual. Acesta ține evidența evenimentelor și notifică angajatul responsabil de securitatea informațiilor. În cadrul IDS pot fi identificate următoarele elemente:
- senzori pentru monitorizarea traficului de rețea, a diferitelor jurnale etc.
- o subsistemă de analiză, care identifică în datele primite semne de atac malițios;
- o stocare pentru acumularea evenimentelor inițiale și a rezultatelor analizei;
- o consolă de gestionare.
Inițial, IDS-urile au fost clasificate după locul de amplasare: acestea puteau fi axate pe protejarea unor noduri individuale (host-based sau Host Intrusion Detection System — HIDS) sau să protejeze întreaga rețea corporativă (network-based sau Network Intrusion Detection System — NIDS). Merită menționate așa-numitele APIDS (IDS-uri bazate pe protocol de aplicație): acestea monitorizează un set limitat de protocoale la nivel de aplicație pentru a identifica atacuri specifice și nu efectuează o analiză profundă a pachetelor de rețea. Aceste produse seamănă de obicei cu un proxy și sunt utilizate pentru protejarea unor servicii specifice: servere web și aplicații web (de exemplu, scrise în PHP), servere de baze de date etc. Un reprezentant tipic al acestei clase este mod_security pentru serverul web Apache.
Ne interesează mai mult NIDS-urile universale, care suportă un set larg de protocoale de comunicație și tehnologia de analiză profundă a pachetelor DPI (Deep Packet Inspection). Acestea monitorizează tot traficul care trece, începând cu nivelul canalului, și identifică o gamă largă de atacuri de rețea, precum și tentativele de acces neautorizat la informații. Adesea, aceste sisteme se disting printr-o arhitectură distribuită și pot interacționa cu diverse echipamente de rețea active. Merită menționat că multe NIDS-uri moderne sunt hibride și combină mai multe abordări. În funcție de configurație și setări, ele pot rezolva diverse sarcini — de exemplu, protecția unui singur nod sau a întregii rețele. În plus, funcțiile IDS pentru stațiile de lucru au fost preluate de pachetele antivirus, care, din cauza răspândirii troianilor orientați spre furtul de informații, s-au transformat în firewall-uri multifuncționale, care îndeplinesc, de asemenea, sarcini de recunoaștere și blocare a traficului suspect.
Inițial, IDS-urile puteau doar să detecteze acțiuni ale malware-ului, funcționarea scanerelor de porturi sau, să zicem, încălcările de către utilizatori ale politicilor de securitate corporativă. La apariția unui anumit eveniment, ele notificau administratorul, dar destul de repede a devenit clar că doar recunoașterea unui atac nu este suficientă — acesta trebuie blocat. Astfel, IDS-urile s-au transformat în IPS (Sisteme de Prevenire a Intruzilor) — sisteme capabile să interacționeze cu firewalls-urile de rețea.
Metode de detectare
Soluțiile moderne pentru detectarea și prevenirea intruziunilor utilizează diverse metode de identificare a activității malițioase, care pot fi împărțite în trei categorii. Acest lucru ne oferă încă o variantă de clasificare a sistemelor:
- IDS/IPS-urile pe bază de semnături identifică în trafic anumite modele sau urmăresc modificările stării sistemelor pentru a determina o atac de rețea sau o tentativă de infectare. Ele aproape nu au false pozitive și erori, dar nu sunt capabile să identifice amenințările necunoscute;
- Sistemele IDS de detectare a anomaliilor nu folosesc semnături de atac. Ele recunosc comportamentele care deviază de la normal în sistemele informaționale (inclusiv anomalii în traficul de rețea) și pot detecta chiar și atacuri necunoscute. Aceste sisteme generează un număr semnificativ de alarme false și, dacă sunt folosite greșit, pot paraliza funcționarea rețelei locale;
- Sistemele IDS bazate pe reguli funcționează pe principiul: if FACT then ACTION. Practic, acestea sunt sisteme expert bazate pe cunoștințe — o acumulare de fapte și reguli de deducție logică. Aceste soluții sunt laborioase din punct de vedere al configurării și necesită un înțeles detaliat al funcționării rețelei din partea administratorului.
Istoricul dezvoltării IDS
Epoca de expansiune rapidă a internetului și a rețelelor corporative a început în anii '90, dar specialiștii s-au preocupat de tehnologiile avansate de securitate a rețelei puțin mai devreme. În 1986, Dorothy Denning și Peter Neumann au publicat modelul IDES (Intrusion Detection Expert System), care a devenit fundamentul celor mai multe sisteme moderne de detectare a intruziunilor. Acesta folosea un sistem expert pentru a identifica tipuri cunoscute de atacuri, precum și metode statistice și profiluri de utilizatori/sisteme. IDES era rulat pe stații de lucru Sun, verificând traficul de rețea și datele aplicațiilor. În 1993 a fost lansat NIDES (Next-generation Intrusion Detection Expert System) — un sistem expert de detectare a intruziunilor de nouă generație.
Pe baza lucrărilor lui Denning și Neumann, în 1988 a apărut sistemul expert MIDAS (Multics intrusion detection and alerting system), utilizând P-BEST și LISP. Tot atunci a fost creat un sistem bazat pe metode statistice numit Haystack. Un alt detector statistic de anomalii, W&S (Wisdom & Sense), a fost dezvoltat un an mai târziu la Laboratorul Național Los Alamos. Dezvoltarea domeniului a avansat rapid. De exemplu, în 1990, în sistemul TIM (Time-based inductive machine) a fost implementată deja detectarea anomaliilor folosind învățarea inductivă pe modele de utilizare secvențiale (limbajul Common LISP). NSM (Network Security Monitor) pentru detectarea anomaliilor compara matricele de acces, iar ISOA (Information Security Officer’s Assistant) susținea diverse strategii de detectare: metode statistice, verificarea profilului și un sistem expert. Sistemul ComputerWatch creat la AT&T Bell Labs utiliza atât metode statistice, cât și reguli pentru verificare, iar primul prototip de IDS distribuit, dezvoltat de cercetătorii Universității California, a fost creat încă din 1991 — DIDS (Distributed intrusion detection system), care era, de asemenea, un sistem expert.
Inițial, IDS-urile erau proprietare, dar în 1998, Laboratorul Național Lawrence din Berkeley a lansat Bro (renumit Zeek în 2018) — un sistem open-source, care folosea un limbaj propriu de reguli pentru analiza datelor libpcap. În noiembrie acelui an a apărut un sniffer de pachete bazat pe libpcap numit APE, care, după o lună, a fost redenumit Snort și mai târziu a devenit un IDS/IPS complet funcțional. De asemenea, atunci au început să apară numeroase soluții proprietare.
Snort și Suricata
Multe companii preferă IDS/IPS-uri gratuite și open-source. O perioadă lungă de timp, soluția standard a fost menționata anterior Snort, dar acum a fost înlocuită de sistemul Suricata. Să analizăm avantajele și dezavantajele acestora mai în detaliu. Snort combină avantajele metodei bazate pe semnături cu capacitatea de detectare a anomaliilor în timp real. Suricata permite, de asemenea, utilizarea altor metode în plus față de recunoașterea atacurilor prin semnături. Sistemul a fost creat de un grup de dezvoltatori care s-au desprins de proiectul Snort și susține funcții IPS începând cu versiunea 1.4, iar în Snort capacitatea de prevenire a intruziunilor a apărut mai târziu.
Principala diferență între cele două produse populare constă în faptul că Suricata are capacitatea de a utiliza GPU pentru calcul în modul IDS, precum și într-un IPS mai avansat. Sistemul este proiectat inițial pentru a suporta multithreading, în timp ce Snort este un produs single-thread. Datorită istoricului său îndelungat și codului moștenit, nu utilizează optim platformele hardware multiprocesor/multicore, pe când Suricata, pe computerele obișnuite, permite procesarea traficului de până la 10 Gbit/s. Despre asemănările și diferențele dintre cele două sisteme se poate discuta mult timp, dar deși motorul Suricata funcționează mai rapid, acest lucru nu are o importanță semnificativă pentru canalele care nu sunt foarte largi.
Opțiuni de desfășurare
IPS-ul trebuie să fie plasat astfel încât sistemul să poată monitoriza segmentele de rețea aflate sub controlul său. De cele mai multe ori, acesta este un computer dedicat, un singur interfață a căruia este conectată după dispozitivele de frontieră și «privește» prin ele către rețelele publice neprotejate (Internet). Cealaltă interfață a IPS-ului este conectată la intrarea segmentului protejat, astfel încât tot traficul să treacă prin sistem și să fie analizat. În cazuri mai complexe, pot exista mai multe segmente protejate: de exemplu, în rețelele corporative, se creează frecvent o zonă demilitarizată (DMZ) cu servicii accesibile din Internet.

Acest IPS poate preveni încercările de scanare a porturilor sau de atacuri prin forță brută, exploatarea vulnerabilităților din serverele de poștă, serverele web sau scripturi, precum și alte tipuri de atacuri externe. În cazul în care computerele din rețeaua locală sunt infectate cu malware, IDS-ul nu va permite acestora să se conecteze la serverele botnet-ului aflate în exterior. Pentru o protecție mai serioasă a rețelei interne, va fi necesară probabil o configurație complexă cu un sistem distribuit și switch-uri gestionate nu tocmai ieftine, capabile să oglindească traficul pentru interfața IDS conectată la unul din porturi.
Adesea, rețelele corporative sunt supuse atacurilor distribuite de tip deny-of-service (DDoS). Deși IDS-urile moderne pot face față acestor atacuri, implementarea de mai sus va fi cu siguranță ineficientă aici. Sistemul recunoaște activitatea dăunătoare și blochează traficul parazitar, dar pentru aceasta, pachetele trebuie să treacă printr-o conexiune externă la internet și să ajungă pe interfața sa de rețea. În funcție de intensitatea atacului, banda de transfer poate să nu facă față încărcăturii, iar scopul atacatorilor va fi atins. În astfel de cazuri, recomandăm implementarea IDS-ului pe un server virtual cu o conexiune la internet considerabil mai performantă. VPS-ul poate fi conectat la rețeaua locală prin VPN, iar apoi va trebui configurată rutarea întregului trafic extern prin acesta. Astfel, în cazul unui atac DDoS, nu va fi necesar să treceți pachetele prin conexiunea cu furnizorul, ele vor fi blocate pe nodul extern.

Problema alegerii
Identificarea unui lider printre sistemele gratuite este foarte complicată. Alegerea IDS/IPS-ului depinde de topologia rețelei, de funcțiile de protecție necesare, precum și de preferințele personale ale administratorului și de dorința acestuia de a se ocupa de configurări. Snort are o istorie mai lungă și este mai bine documentat, deși și despre Suricata se poate găsi informație cu ușurință online. În orice caz, pentru a învăța sistemul, va trebui să depuneți un anumit efort, care se va recupera în final - IDS/IPS-urile comerciale hardware și hardware-software sunt destul de scumpe și nu întotdeauna se încadrează în buget. Nu trebuie să regretați timpul petrecut, deoarece un administrator bun își îmbunătățește întotdeauna abilitățile cu ajutorul angajatorului. În această situație, toată lumea câștigă. În următorul articol, vom explora unele opțiuni de implementare a Suricata și vom compara practic un sistem mai modern cu IDS/IPS-ul clasic Snort.
Sursa: habr.com
