Machine Learning per il rilevamento delle anomalie
Un'applicazione che potrebbe anche interessare la digital forensics e la cybersecurity potrebbe essere quella di creare un programma di machine learning in grado di rilevare delle anomalie, per esempio, tra delle connessioni di rete di qualcuno.
Ipotizziamo di leggere un tabulato composto da data, orario ed indirizzo IP di qualcuno (azienda o privato) e cerchiamo di capire se vi sono delle connessioni anomale, diverse dal solito, questa è la "anomaly detection".
Possiamo raggiungere l'obbiettivo manualmente o creando filtri o altro, ma perché non affidare il compito ad un sistema di Intelligenza Artificiale?
Quali vantaggi potrebbero scaturirne?
I vantaggi sono dati dal fatto che il machine learning impara dai dati e se nota degli scostamenti su dei dati che sono abbastanza regolari e quindi matematicamente parlando sono come dei punti geometrici che cadono più o meno nella stessa zona, se immaginiamo degli assi cartesiani, allora nel momento in cui vi è un oggetto che si discosta di un certo valore da tutti gli altri, ecco che viene rilevato come "anomalo".
Per creare questo programma di machine learning dobbiamo pensare ad un algoritmo non supervisionato (unsupervised), quindi il dataset non deve avere delle "label" ma solo delle "features", perché deve essere la macchina a predire il valore e classificarlo, basandosi su quello che capisce dall'addestramento su gli altri dati.
In sostanza, nel machine learning supervisionato, il dataset ha la colonna delle "label" (etichette), che servono ad far capire all'algoritmo che un oggetto X appartiene alla categoria A, mentre l'oggetto Y appartiene alla categoria B e così via, quando invece la variabile è continua, quindi non categorizzata dall'etichette, sarà la macchina a capire da sola come "aggregare" certi dati tali da farli appartenere a qualcosa, insomma come se qualcuno ci facesse vedere tanti gatti e tanti cani, senza che noi sappiamo che sono gatti e cani, nessuno ci ha detto che come si chiamano questi strani animali, poi un bel giorno qualcuno ci porta un gatto, automaticamente lo inseriremo noi nel gruppo degli animali con i baffi lunghi, le pupille ellittiche e la faccia da furbetto!
E' utile introdurre anche il concetto del cosìdetto "clustering",
L'Isolation Forest è un algoritmo non supervisionato e quindi non necessita di etichette per identificare il valore anomalo / anomalia
Il fondamento dell'algoritmo è quello di "isolare" le anomalie creando alberi decisionali su attributi casuali, questo partizionamento casuale produce percorsi più brevi per le anomalie quindi, se ci sono poche anomalie ci saranno partizioni più piccole di dati, perché i valori delle anomalie hanno maggiori probabilità di essere separati nel partizionamento iniziale
Quindi, quando una foresta di alberi casuali produce lunghezze di percorso più brevi per alcuni punti particolari, è molto probabile che siano anomalie.
In sintesi:
Notiamo che ha beccato l'indirizzo IP: 010.175.021.210 che appare solo una volta nel dataset e fin qui è banale, ma la cosa interessante è aver preso anche il 192.168.001.010 che invece è uno degli indirizzi IP più "consueti" e normali del dataset, ma l'anomalia sta nell'orario di connessione ossia le 04:32:11, che è un orario non solito nell'attività listata nel dataset.
Se ti interessa l'argomento puoi anche leggere:
- https://nannibassetti.blogspot.com/2021/01/machine-learning-costruiamo-un.html
- https://nannibassetti.blogspot.com/2020/05/come-funziona-un-neurone-di-una-rete.html
- https://www.cybersecurity360.it/soluzioni-aziendali/algoritmi-genetici-e-machine-learning-nella-digital-forensics-applicazioni-pratiche/
- https://nannibassetti.blogspot.com/2021/02/machine-learning-attribuire-la.html
Commenti