Detecția intruziunilor în rețele de calculatoare folosind învățarea automată

Cuprins

Introducere

Proliferarea Internetului Lucrurilor(Internet of Things – IoT), prin crearea unui ecosistem de dispozitive, simple sau complexe, dar interconectate, deschide o nouă dimensiune în privința atacurilor posibile. Se preconizează că până în 2020, datele provenite de la senzori vor crește cu 13%, ajungând să reprezinte 35% din totalul transmisiilor de date [1]. Acest aflux de date face ca metodele tradiționale de detecție a intruziunilor să fie tot mai împovărătoare.

Metodele de detecție a intruziunilor ce folosesc tehnici din învățarea automată au devenit un subiect activ la ora actuală, fiind o potențială soluție la mediul tot mai dinamic pe care îl reprezintă Internetul.

În acest raport se prezintă două abordări diferite folosite de sistemele de detecție a intruziunilor, analizându-se modul lor de funcționare, performanța și unde se pretează utilizarea uneia în detrimentul celeilalte.

Tipuri de intruziuni în cadrul rețelelor de comunicații

Prin intruziuni înțelegem orice acces neautorizat sau orice formă de atac asupra unei rețele. După tipul atacului, vorbim de intruziuni:

  • Active: în această clasă intră atacurile de rutare, precum:
    1. Black Hole: în această situație, un router compromis aruncă pachetele pe care ar trebui să le transmită mai departe.
    2. Gray Hole: o extensie a atacului Black Hole, doar că de această dată, pachetele sunt aruncate selectiv (ex. aleator), fiind astfel mult mai dificilă depistarea nodului problemă.
    3. Man in the Middle: Atacatorul interceptează în mod secret mesajele dintre două părți.
    4. Sleep Deprivation: Vizează senzorul nodurilor pentru a maximiza consomul de putere.
    5. Spoof: Când un atacator imită dispozitivul altui utilizator pentru a iniția atacuri împotriva host-urilor din rețea, pentru a evita controale de acces, fura date sau împrăștia malware.
    6. Sybil: Un atac prin care reputația unui sistem este compromisă prin identități străine în rețele P2P.
  • Pasive: atacuri transparente părților care comunică. Scopul acestora este să acceseze informații confidențiale, fie prin analiza traficului sau interceptarea mesajelor, fie să descopere informații despre topologia rețelei.
  • DDOS/DOS: acestea încearcă de obicei să supraîncarce cu mesaje o rețea, până în punctul când rețeaua cedează, iar serviciile nu mai pot fi deservite:
    1. Buffer Overflow: Când un program se supraîncarcă și suprascrie locații de memorie adiacente.
    2. Ping flooding: Victima este inundată cu atât de mult trafic ping, încât traficul normal nu mai ajunge la destinație.
    3. ICMP: Victima este inundată cu pachete ICMP
    4. Smurf: Se trimite un număr foarte mare de pachete ICMP în rețea cu adresa IP a victimei. Majoritatea sistemelor din rețea care vor primi un astfel de mesaj, vor reacționa prin trimiterea unui răspuns la adresa IP a victimei, inundând-o astfel cu trafic.
    5. Atacuri adversariale împotriva SDI-urilor. De obicei, aceste atacuri încearcă să schimbe tiparele intruzinilor de la nivelul sistemelor de detecție exploatând principiul de funționare al acestor sisteme care utilizează, într-o formă sau alta, modele probabilistice ce pleacă de la premisa că traficul dominant este cel uzual.

O taxonomie extinsă, atât a tipurilor de intruziuni, cât și a sistemelor de detecție a acestora se află la [2].

Sisteme de detecție a intruziunilor (SDI)

Un SDI este un sistem capabil să monitorizeze și să analizeze traficul dintr-o rețea de comunicații, putând astfel detecta anomaliile sau intruziunile. Prin anomalie se înțelege orice tip de comportament, măsurat la nivelul rețelei, care se abate semnificativ de la o serie de valori considerate normale, într-o asemenea măsură, încât să ridice suspiciunea că a fost generat de un mecanism diferit.

Tehnicile tradiționale de detecție și prevenție a intruziunilor, precum firewall-urile, mecanismele de control ale accesului sau encriptarea, au o serie de limitări în ceea ce privește atacurile mai sofisticate, precum DoS(Denial of Service). Mai mult, aceste metode sunt statice și nu se pot adapta la un comportament malițios variabil în timp.

Distribuția utilizării algortimilor folosiți în sistemele IDS.

Figura 1 prezintă o taxonomie cu cele mai populare sisteme de detecție a intruziunilor. Metodele statistice sunt mai puțin utilizate, clasamentul fiind dominat de metodele ce folosesc rețele neuronale, SVM sau k-means. Toate aceste metode sunt forme ale învățării supravegheate și de aceea sunt necesare seturi extinse de date pentru antrenarea modelelor. Cele mai populare seturi de antrenare sunt (în ordinea popularității): KDD-99 (63.8%), NSL-KDD (11.6%), generate sau simulate (11.6%), DARPA 1998 (4.3%) și DARPA 1999 (2.9%) [3].

Măsurarea performanței

O rată de detecție ridicată a intruziunilor este esențială într-un sistem SDI ce utilizează învățarea automată. Pentru a se măsura performanța sistemului se poate porni de la matricea de confuzie, unde:

  1. TP(True Positive): Numărul de intruziuni detectate corect
  2. TN(True Negative): Numărul de non-intruziuni detectate corect
  3. FP(False Positive): Numărul de non-intruziuni incorect detectate (i.e. marcate în mod eronat ca intruziuni).
  4. FN(False Negative): Numărul de intruziuni incorect detectate (i.e. nu au fost marcate ca intruziuni).

Pe baza valorilor de mai sus, se pot calcula o serie de mărimi relevante, printre cele mai importante fiind:

  1. \text{Acuratețea}=\frac{TP+TN}{TP+TN+FP+FN} ce arată procentul clasificării corecte (intruziuni și non-intruziuni).
  2. \text{Precizia} = \frac{TP}{TP+FP}, care arată cât de des este corect un rezultat pozitiv.
  3. \text{Recall} = \frac{TP}{TP+FN}, ce arată proporția de rezultate pozitive care au fost clasificate corect.

Metode de clasificare a pachetelor

Strategiile de clasificare a comportamentului din rețea se împart în două clase: detecția utilizării neconforme și detecția anomaliilor.

Tehnicile de detecție a utilizării neconforme analizează activitatea de rețea și de sistem folosind algoritmi de potrivire a semnăturilor. În contextul securității rețelelor, prin semnătură se înțelege un tipar specific unei amenințări cunoscute. Detecția bazată pe semnături este procesul prin care se compară semnăturile cunoscute cu evenimentele observate pentru a identifica posibilele incidente [4].
Algoritmii de potrivire a semnăturilor și detecției de anomalii pot fi prezenți la fiecare nivel al stivei TCP/IP:

Stiva TCP/IP
Aplicatie
Transport
Internet
Retea
Fizic

  • Detecția la nivelul fizic ar implica cunoștiințe avansate de electronică, dar nu este imposibil sâ se conceptualizeze un sistem care să analizeze tiparele electrice.
  • La nivelul rețea, cadrele ar fi analizate pentru a detecta anomalii. De exemplu, un proces care monitorizează un segment de rețea pentru introducerea de noi adrese MAC.
  • La nivelul Internet funcționează protocolul IP. La acest nivel, există elemente care ar putea fi utilizate de algoritmi din ambele clase. Pentru detecția de anomalii un eșantion de trafic considerat standard ar trebui colectat și analizat, pentru a se putea genera un model statistic. Orice pachet care ar devia de la acest model ar fi raportat pentru investigare ulterioară. Detecția bazată pe semnături ar include analiza setărilor fiecărui câmp din antetul pachetelor IP.Un exemplu de clasificare pe baza semnăturilor de la nivelul Internet este utilizarea câmpului DSCP pentru clasificarea traficului sau marcarea pachetelor pentru aruncare [5]. Routerele care implementează aceste mecanisme folosesc tabele de dispersie pentru acces foarte rapid, sau o combinație între arbori de decizie și tabele de dispersie, implementate la nivel hardware pe module FPGA la nivelul celor mai performante routere [6].

Tabele de dispersie compacte pentru arbori de decizie

Arborii sunt structuri de date folosiți adesea pentru a îmbunătăți performanța algoritmilor de căutare. Dintre aceștia, arborii de decizie binari au fost studiați îndelung în special datorită structurii lor simple, algoritmi eleganți bazați pe arbori echilibrați fiind propuși pentru căutarea eficientă.

Antet IPv4

Arbori de decizie generici

Un arbore de decizie se construiește pornind de la un set de date cu mai multe trăsături (ex. mărimea pachetului Internet, dată, timp etc.). Fiecare nod intern reprezintă un criteriu de comparație definit pe o anumită trăsătură. Rezultatul comparației determină următorul nod, până când se ajunge la un nod frunză, unde o decizie finală poate fi realizată.

Un exemplu de arbore decizional este in figura , unde 3 trăsături determină acțiunea care va fi executată.

Arbore decizional

Arbori de decizie cu tabele de dispersie

Ideea tabelelor de dispersie se bazează pe observația că într-un arbore decizional, procesul de clasificare este unul serial ce vine cu o latență ridicată. Pentru a reduce latența de procesare, toate trăsăturile folosite în comparații vor fi examinate în paralel. Rezultatul căutării pentru toate trăsăturile poate fi combinat pentru a produce rezultatul final de clasificare [6].

Pentru a combina într-o manieră eficientă rezultatele parțiale se folosește o structură de date numită vector de biți. Într-o astfel de structură, al n-lea bit se setează la 1 doar dacă condiția n este îndeplinită.

În acest caz, vorbim de o serie de condiții care se aplică pe toate căile, de la rădăcină spre frunze:

  • Dacă calea de la rădăcină spre frunză nu conține trăsătura de interes, atunci în vectorul de biți se va seta, pentru această cale, valoarea 1.
  • Dacă calea de la rădăcină spre frunză conține trăsătura de interes și valoarea acesteia este egală cu cea din interogare atunci se va seta în vectorul de biți valoarea 1, altfel 0. De asemenea această regulă se aplică și vice-versa(i.e. calea conține trăsătura de interes, dar valoarea trăsăturii nu este egală cu cea din interogare).

În figura 2 se prezintă un exemplu de translatare a unei arbore de decizie T în M tabele de dispersie, unde T este folosit pentru a clasifica traficul de pe Internet. 3 trăsături sunt folosite în acest exemplu: numărul portului sursă (SP), numărul portului destinație (DP) și mărimea minimă a pachetului (MinPS).

Căutare și îmbinare

După ce tabelele de dispersie compacte sunt construite, procesul de clasificare este simplu. Dispersia perfectă [7] este utilizată pentru a căuta fiecare trăsătură, fiecare returnând un vector de biți de lungime N. Rezultatul final al clasificării este produs prin îmbinarea vectorilor de biți, folosind funcția AND. Continuând exemplul din 2 cu SP = 45, DP = 125 și MinPS = 100, vedem că cei 3 vectori de biți extrași din tabelele de dispersie sunt: 001111, 101101 și 110110. Prin aplicarea funcției ȘI se obține vectorul de biți 000100 care indică că decizia finală asupra clasei din care face parte traficul este MSN.

Translatarea unui arbore de decizie T în M tabele de dispersie

Deși tehnnicile de conversie conduc la aceleași structuri de date, atât pe FPGA, cât și pe GPP se folosesc implementări diferite pentru a obține performanțe cât mai ridicate pe ambele platforme: pe FPGA, se utilizează o arhitectură pipeline ce suportă rate mai mari de ceas, iar pe GPP-uri se pretează algoritmii paraleli.

Implementarea funcțiilor de hashing pe FPGA
Analiza performanței tabelelor de hashing

Abordare asupra unui SDI folosind deep learning

Deep Learning reunește toate acele metode din domeniul inteligenței artificiale care prezintă, la nivel structural, o structură ierarhică prin care se realizează învățarea. Aceste metode au ajuns să fie prevalente în majoritatea problemelor de clasificare, datorită puterii de generalizare, dar și a modului în care aceste sisteme pot surprinde tiparele complexe din date.

Lucrarea [8] prezintă o metodă bazată pe Deep Learning, prin care se poate clasifica traficul dintr-o rețea, folosind o arhitectură care permite autoînvățarea.

Cele două etape ale procesului de autoînvățare: a) Învățarea nesupravegheată a trăsăturilor b) Clasificarea pe date etichetate
Cele două etape ale procesului de autoînvățare: a) Învățarea nesupravegheată a trăsăturilor b) Clasificarea pe date etichetate

Autoînvățarea constă în două stagii: prima oară, se învață o reprezentare cât mai bună a unui set de date neetichetat, xu, printr-un proces numit învățare nesupravegheată a trăsăturilor (Unsupervised Feature Learning). În a doua etapă, modelul generat este aplicat unui set de date etichetat, xl, utilizat pentru clasificare.

Pentru învățarea unei reprezentări cât mai fidele, se folosește un autocodificator variațional:

Autocodificatori variaționali

Sunt rețele neuronale care realizează o învățare nesupravegheată, care, prin aplicarea propagării-înapoi, mapează la ieșiri instanțele primite ca intrări. Matematic, aceste rețele realizează un automorfism, de unde și numele acestora. Funcția identitate pare o funcție foarte ușoară de învățat, dar acest lucru devine tot mai dificil odată ce straturile intermediare au un număr tot mai mic de neuroni. Acest lucru aduce cu el o serie de avantaje:

  • Un spațiu de intrare cu dimensionalitate potențial ridicată poate fi redus, printr-o etapă de codificare, la o reprezentare mult mai redusă.
  • Din acea reprezentare redusă, printr-o etapă de decodificare se poate reface vectorul de intrare original. Acest lucru implică că autocodificatorul realizează de fapt o compresie foarte bună, similară algoritmului PCA, dar cu avantajul că poate genera(aproximativ), instanța inițială.

Funcția de cost prezentată în lucrare este:

J = \dfrac{1}{2m}\sum_{i=1}^{m}\left\lVert x_i - \hat{x_i}\right\rVert^2 + \dfrac{\lambda}{2}(\sum_{k,n}W^2 + \sum_{n,k}V^2 + \sum_k b_1^2 + \sum_n b_2^2) + \beta \sum_{j=1}^K KL(\rho||\hat{\rho_j})
  1. Primul termen al funcției de cost este eroarea medie pătratică. Acesta va fi minim numai dacă x_i și \hat{x_i} sunt egali aceasta fiind caracteristica definitorie a unui autocodificator.
  2. Al doilea termen este unul de regularizare, ce va suprima supraajustarea(overfitting), \lambda fiind factorul de atenuare (termen dependent de epoca la care se face antrenarea). \mathcal{W}, \mathcal{V}, b_1, b_2 reprezintă matricile și vectorii bias din cele două straturi.
  3. Ultimul termen este divergența Kullback-Leibler, o mărime ce arată gradul de similitudine între două distribuții. În funcția de cost, acesta este folosit totuși ca o constrângere impusă stratului ascuns, pentru a menține valori de activare în medie scâzute. \rho este un parametru de sparsitate, iar \beta un parametru de control.
KL(\rho||\hat{\rho_j}) = \rho \log\dfrac{\rho}{\hat{\rho_j}} + (1-\rho) \log\dfrac{1-\rho}{1-\hat{\rho_j}}

Odată ce sunt învățate valorile optime pentru \mathcal{W} și b_1, prin aplicarea autocodifcatorului pe datele neetichetate, acesta va genera un spațiu latent, cu dimensionalitate mai redusă. Astfel, pentru fiecare vector de intrare va exista un corespondent în spațiul latent. Acest corespondent este utilizat de către a doua rețea, în etapa de clasificare supravegheată.

Concluzii

În acest raport au fost prezentate două tehnici fundamental diferite, folosite de sistemele de detecție a intruziunilor pentru analiza și clasificarea mesajelor. Cele două abordări sunt importante deoarece pun în evidență aspectele cheie care trebuie luate în calcul atunci când se dezvoltă un SDI. Dacă în cadrul acestuia, rata de procesare este vitală (sisteme de la nivelul routerelor), atunci metoda cu tabele de dispersie este net câștigătoare, în detrimentul acurateții și preciziei. Pe de altă parte, dacă ratele de transfer sunt mai scăzute și rezultatele clasificării sunt mai importante, metoda ce utilizează autocodificatori este recomandată.

Bibliografie

  1. Cisco Visual Networking Index: Forecast and Methodology. (Accesat: 2018-11-25).
    Shahid Anwar, Jasni Mohamad Zain, Mohamad Zolkipli, Zakira Inayat, Sule-man Khan, Bokolo Tonny, and Victor Chang. From intrusion detection to an intrusion response system: Fundamentals, requirements, and future directions. Algorithms, 2017, 03 2017.
  2. Hanan Hindy, David Brosset, Ethan Bayne, Amar Seeam, Christos Tachtatzis, Robert Atkinson, and Xavier Bellekens. A taxonomy and survey of intrusion detection system design techniques, network threats and datasets. 06 2018.
    Karen A. Scarfone and Peter M. Mell. Sp 800-94. guide to intrusion detection and prevention systems (idps). Technical report, Gaithersburg, MD, United States, 2007.
  3. Marking traffic. (Accesat: 2018-11-25).
    Yun R. Qu and Viktor K. Prasanna. Compact hash tables for decision-trees. Parallel Comput., 54(C):121–127, May 2016.
  4. Rasmus Pagh and Flemming Friche Rodler. Cuckoo hashing. J. Algorithms,51(2):122–144, May 2004.
  5. Ahmad Javaid, Quamar Niyaz, Weiqing Sun, and Mansoor Alam. A deep learning approach for network intrusion detection system. In Proceedings of the 9th EAI International Conference on Bio-inspired Information and Communications Technologies (Formerly BIONETICS), BICT’15, pages 21–26, ICST, Brussels, Belgium, Belgium, 2016. ICST (Institute for Computer Sciences, SocialInformatics and Telecommunications Engineering)

Lasă un comentariu