89
Progetto e sviluppo di un sistema di analisi dei contenuti di social networks per la scoperta di malware S. Orlando Relatore: Prof. Giuseppe Lo Re Correlatore: Ing. Marco Morana Tesi di Laurea Magistrale in Ingegneria Informatica

Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

Progetto e sviluppo di un sistema di analisi dei contenuti di social networks per la scoperta di malware

S. Orlando

Relatore: Prof. Giuseppe Lo Re

Correlatore: Ing. Marco Morana

Tesi di Laurea Magistrale in Ingegneria Informatica

Page 2: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

Progetto e sviluppo di un sistema di analisi dei contenuti di social networks per la scoperta di malware

Tesi di Laurea di Relatore:

Dott. Sergio Orlando Ch.mo Prof. Giuseppe Lo Re

Controrelatore: Correlatore:

Ing. Alessandra De Paola Ing. Marco Morana

Sommario

Negli ultimi anni si è assistito ad un aumento vertiginoso delle minacce informatiche provenienti dalla rete, tra le quali la diffusione di software malevoli detti Malware. In correlazione all’incremento delle minacce informatiche è stato necessario introdurre nuove tecniche per prevenire, rilevare e limitare le conseguenze degli attacchi. Ai tradizionali sistemi di rilevazione del software malevolo come ad esempio gli antivirus è stato necessario affiancare nuovi strumenti per potenziare e velocizzare la rilevazione. Fra le varie tecniche di scoperta dei Malware si sono diffuse quelle che effettuano l’analisi dei contenuti dei Social Networks.

In questo lavoro di tesi è stato realizzato un sistema di nuova generazione che utilizza l’analisi dei contenuti del social network Twitter per individuare in tempo reale le nuove diffusioni di Malware. Il sistema realizzato è in grado di analizzare i contenuti dallo streaming di Twitter, individuare la diffusione di un evento e segnalare l’evento stesso. A differenza di altri sistemi è anch’esso un utente di Twitter e segnala i nuovi eventi attraverso la pubblicazione di nuovi messaggi che possono essere letti da tutti gli utenti di Twitter, sfrutta i feedback degli utenti per aggiornarsi e migliorare i parametri di rilevazione.

Nella realizzazione del sistema è stato utilizzato un classificatore naïve di Bayes per la classificazione dei contenuti di Twitter, la rilevazione avviene attraverso la collezione di messaggi contenenti alcune parole chiave e l’analisi avviene in intervalli di tempo variabile utilizzando funzioni che permettono una veloce rilevazione degli eventi.

L’analisi dei feedback degli utenti e il calcolo di metriche di influenza degli utenti permettono al sistema di auto aggiornarsi per una rilevazione più efficiente.

Page 3: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

Indice 1 Introduzione ................................................................................................ 1

1.1 Introduzione a Twitter ..................................................................................... 2

2 Lo stato dell’arte ......................................................................................... 4

2.1 I Malware e le minacce della rete .................................................................... 42.1.1 Backdoor .............................................................................................................................. 42.1.2 Bombe logiche ..................................................................................................................... 42.1.3 Cavalli di Troia .................................................................................................................... 52.1.4 Zombie ................................................................................................................................. 52.1.5 Port scanning ........................................................................................................................ 52.1.6 Sniffing ................................................................................................................................. 62.1.7 Spoofing ............................................................................................................................... 62.1.8 Virus ..................................................................................................................................... 72.1.9Worm ........................................................................................................................................ 82.1.10DoS e DDoS ............................................................................................................................. 92.1.11Hijacking .................................................................................................................................. 92.1.12Ransomware ........................................................................................................................... 10

2.2 L’analisi dei contenuti dei social networks .................................................... 10

3 I metodi di rappresentazione e classificazione dei tweet per la rilevazione dei malware ................................................................................................... 15

3.1 L’estrazione dei dati dallo streaming di Twitter ............................................ 16

3.2 Il filtraggio dei dati estratti ............................................................................ 163.2.1 Il classificatore Naive Bayes .............................................................................................. 163.2.2 Introduzione al teorema di Bayes ....................................................................................... 183.2.3 L’apprendimento Bayesiano .............................................................................................. 20

3.3 L’analisi dei dati ............................................................................................ 253.3.2 Tipi di medie mobili ........................................................................................................... 293.3.3 Varianza ............................................................................................................................. 30

3.4 La segnalazione degli alert ............................................................................ 313.4.1 Il raggruppamento dei tweet per temi omogenei ................................................................ 323.4.2 La summarizzation per singolo raggruppamento ............................................................... 403.4.3 La pubblicazione degli alert ............................................................................................... 40

3.5 L’analisi dei feedback .................................................................................... 403.5.1 Misure di influenza degli utenti di Twitter ........................................................................ 40

3.6 L’aggiornamento del sistema di filtraggio dei tweet ..................................... 40

4 Il sistema di malware detection ............................................................... 41

4.1 Architettura del sistema proposto .................................................................. 41

4.2 Sistema di estrazione e collezione dei tweet .................................................. 42

Page 4: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

4.3 Sistema di Alert ............................................................................................. 424.3.1 Filtraggio dei tweet collezionati con l’utilizzo di un classificatore naive di Bayes ........... 434.3.2 Calcolo dei dati statistici e della soglia di alert .................................................................. 444.3.3 Clustering dei tweet filtrati ................................................................................................. 444.3.4 Summarizzation dei tweet raggruppanti con l’algoritmo di clusterizzazione K-mean ...... 45

4.4 Sistema di analisi dei feedback e di autoapprendimento ............................... 45

4.5 Le Api di Twitter ........................................................................................... 454.5.1 Le Streaming API ............................................................................................................... 474.5.2 Il sistema di autorizzazione delle API di Twitter OAuth ................................................... 48

4.6 Implementazione del sistema ......................................................................... 504.6.1 Twitter4J ............................................................................................................................ 514.6.2 La memorizzazione dei dati raccolti .................................................................................. 514.6.3 La Base Dati ....................................................................................................................... 524.6.4 Diagramma Entità relazione delle tabelle della base dati .................................................. 564.6.5 Visione di insieme del sistema e delle rispettive tabelle .................................................... 584.6.6 Il sistema di raccolta dei tweet – TweetRetriever .............................................................. 594.6.7 Il sistema di Alert ............................................................................................................... 614.6.8 Il sistema di analisi dei feedback e di auto apprendimento ................................................ 63

5 Valutazione sperimentale ......................................................................... 65

5.1 Addestramento del classificatore di Bayes .................................................... 655.1.1 Training, Test e validation ................................................................................................. 655.1.2 Valutazione dei classificatori ............................................................................................. 665.1.3 Training, test, validation e valutazione del classificatore naive di Bayes nella

classificazione dei Tweet ......................................................................................................................... 69

5.2 Prove sperimentali dell’algoritmo di clustering e summarizzation ............... 715.2.1 Primo esempio .................................................................................................................... 735.2.2 Secondo esempio ....................................................... Errore. Il segnalibro non è definito.

5.3 Risultati sperimentali del sistema di Alert ..................................................... 75

5.4 Calcolo delle metriche e delle soglie di influenza ......................................... 80

6 Conclusioni ................................................................................................ 80

Riferimenti Bibliografici: ................................................................................ 82

Indice delle figure ............................................................................................. 85

Page 5: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

1

1 Introduzione Negli ultimi anni si è assistito ad un aumento vertiginoso delle minacce

informatiche provenienti dalla rete, tra le quali la diffusione di software malevoli detti Malware. Il termine Malware deriva dalla contrazione di due termini inglesi, rispettivamente Malicious e Software e viene utilizzato per indicare tutti quei programmi realizzati per danneggiare e compromettere il funzionamento delle macchine che li eseguono.

La causa della crescita esponenziale di questo fenomeno è strettamente connesso con lo sviluppo tecnologico dei sistemi di comunicazione, a partire dai sistemi di comunicazione tradizionali, come la navigazione web e l’email, fino alla diffusione dei social network sfruttando la loro dimensione e la velocità di diffusione.

La causa di questo sviluppo è da ricercarsi dal profitto che portano queste minacce informatiche ad organizzazioni criminali che cercano fonti di denaro alternative.

In correlazione all’incremento delle minacce informatiche è stato necessario introdurre nuove tecniche per prevenire, rilevare e limitare le conseguenze degli attacchi. Ai tradizionali sistemi di rilevazione del software malevolo come ad esempio gli antivirus è stato necessario affiancare nuovi strumenti per potenziare e velocizzare la rilevazione. È necessario infatti individuare dei sistemi in grado di poter competere con la velocità di proliferazione delle minacce.

Ci si è resi conto che l’unica soluzione per difendersi dall’incessante aumento delle minacce provenienti dalla rete è la “collaborazione”. Solo attraverso la condivisione delle risorse fra più individui della rete è possibile competere con i moderni attacchi informatici. Sono nate dagli studi di diverse Università e aziende interessate all’argomento Sicurezza Informatica, architetture collaborative, che hanno permesso l’incremento del numero delle macchine monitorate e della capacità e la prontezza di analisi delle nuove minacce.

Fra le varie tecniche di scoperta dei Malware si sono diffuse quelle che effettuano l’analisi dei contenuti dei Social Network.

In questa tesi viene presentata un’architettura di nuova generazione che utilizza l’analisi dei contenuti del noto social network Twitter per individuare in tempo reale le nuove diffusioni di Malware.

Page 6: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

2

Nel secondo capitolo, verranno innanzitutto presentate le diverse minacce provenienti dalla rete e verranno presentati alcuni sistemi di analisi dei contenuti dei social networks per la rilevazione dei Malware.

Nel terzo capitolo verranno presentati i metodi utilizzati dal punto di vista teorico scientifico per l’analisi delle informazioni estratte dai social network.

Nel quarto capitolo, verranno descritti dal punto di vista architetturale il sistema proposto e dei vari componenti di base e degli applicativi implementati.

Nel quinto capitolo verranno descritte le prove sperimentali con lo scopo di confermare al livello pratico quanto descritto a livello teorico nei precedenti capitoli. Dopo una prima fase di validazione dei singoli componenti verranno descritte alcune simulazioni complete del sistema con i risultati ottenuti.

Nel sesto capitolo, infine, verranno presentate le conclusioni con riferimento al lavoro svolto e ai risultati ottenuti e verranno proposti gli sviluppi futuri del sistema di rilevazione dei Malware.

1.1 Introduzione a Twitter

Twitter [1] è un social network gratuito che si occupa di microblogging, ideato dallo statunitense Jack Dorsey e sviluppato dalla Obvious Corporation di San Francisco. Il servizio offerto agli iscritti consiste nell’inserimento di messaggi, chiamati in gergo tweet, composti da un massimo di 140 caratteri.

Fin dalla sua creazione e messa in rete nel marzo 2006, Twitter ha assunto un ruolo di rilievo all’interno dell’insieme dei social network, raggiungendo in quattro anni oltre 100 milioni di utenti iscritti. Giornalmente vengono inviati in media 55 milioni di messaggi [2], con punte che sfiorano i 3 mila tweet al secondo in casi eccezionali, solitamente legati a eventi di cronaca di carattere internazionale (disastri ambientali, attentati, eventi e ricorrenze religiose o civili), ma anche eventi sportivi e politici. Twitter ha assunto in questo caso anche un ruolo di rilievo per la diffusione di notizie: ne sono esempi la cosiddetta Iran’s Twitter revolution, avvenuta durante le elezioni politiche in Iran nel giugno 2009, l’attacco terroristico a Mumbai nel 2008, il terremoto ad Haiti nel gennaio 2010 o, rimanendo sul suolo italiano, il terremoto in Abruzzo dell’aprile 2009, durante il quale gli utenti di Twitter segnalarono prima dei media tradizionali quanto stava accadendo.

Oltre che semplice testo, all’interno dei tweet `e possibile inserire delle parole chiave, dette hashtag e precedute dal carattere #, e link ad altri siti, solitamente

Page 7: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

3

abbreviati tramite servizi di URL shorting. I messaggi inseriti dagli iscritti vengono di default resi visibili a chiunque, sia esso iscritto o meno al servizio, mentre è possibile rendere i propri tweet privati per fare in modo che possano essere letti solamente da persone autorizzate. L’inserimento dei messaggi è reso possibile non solo tramite il sito del social network, ma anche da una serie di applicazioni esterne e, limitatamente ad alcuni paesi, tramite SMS. La possibilità di inviare messaggi tramite diversi dispositivi e applicazioni `e uno dei punti di forza del social network: il 60% dei messaggi vengono infatti inseriti su Twitter tramite applicazioni realizzate da terze parti, mentre il 37% degli utenti iscritti inserisce i propri tweet tramite cellulare [2], [3].

Gli iscritti al servizio hanno la possibilità di seguire altri utenti registrati: essi assumono in questo caso il nome di follower e hanno la possibilità di visualizzare nella propria home page i messaggi inseriti da tali utenti. È inoltre possibile seguire liste di utenti, ovvero liste create da altri iscritti in cui `e incluso un numero variabile di utenti. Altra caratteristica importante per il servizio, è la possibilità di rispondere ai messaggi di qualsiasi altro iscritto, realizzando così conversazioni online. Un iscritto può inoltre retwittare un messaggio di un altro utente, in modo che esso sia visibile anche a tutti i propri follower. Questa tecnica è definita retweet e viene segnalata nei messaggi anteponendo i caratteri RT al testo originale.

Come descritto da Ryan Kelly [4], i contenuti inseriti dagli utenti su Twitter sono riconducibili principalmente a sei categorie, qui di seguito ordinate in modo decrescente per frequenza: status personali, conversazioni, retweet, self-promotion, spam e news.

Lo studio di Twitter si è rivelato fin dal principio di enorme interesse, essendo esso un social network molto frequentato, dinamico e in cui gli utenti, tramite i loro tweet, contribuiscono a tenere informato il pubblico di quanto stia accadendo attorno ad essi. Nei 140 caratteri di un messaggio vengono raccontate esperienze di vita sia personali sia relative al mondo che circonda gli utilizzatori, mentre la possibilità di includere link ad altri siti, nonché immagini e video, è un’ulteriore metodo per poter divulgare informazioni tramite il web.

Page 8: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

4

2 Lo stato dell’arte

In questo capitolo vengono dapprima descritte le principali minacce provenienti dalla rete e poi vengono descritti alcuni approcci di rilevazione dei Malware attraverso l’analisi dei contenuti dei social networks.

2.1 I Malware e le minacce della rete

Il termine Malware deriva dalla contrazione di due termini inglesi, rispettivamente Malicious e Software e viene utilizzato per indicare tutti quei programmi realizzati per danneggiare e compromettere il funzionamento delle macchine che li eseguono.

La diffusione di internet ha provocato la proliferazione di innumerevoli differenti tipologie di Malware, tutti con caratteristiche differenti.

Al fine di permettere al lettore una comprensione migliore dei risultati ottenuti dal sistema di rilevazione dei Malware MAS vengono di seguito descritti alcuni dei principali tipi di attacchi informatici prendendo in considerazione le diverse caratteristiche di questi programmi

2.1.1 Backdoor

Una backdoor detta anche trapdoor o porte di servizio, è un punto di accesso segreto in un programma, sfruttabile da chi lo conosca per acquisire l’accesso al sistema evitando le normali procedure di sicurezza di accesso.

Le backdoor diventano un problema quando vengono utilizzate per acquisire un accesso non autorizzato. Possono essere installate autonomamente da alcuni malware in modo da consentire il controllo remoto della macchina senza l’autorizzazione del proprietario.

2.1.2 Bombe logiche

La bomba logica è costituita da codice incluso in un programma legittimo; la bomba è rappresentata da un evento programmato al verificarsi di determinate

Page 9: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

5

condizioni. Una volta attivata la bomba logica può modificare o cancellare i dati, provocare il blocco della macchina su cui è installata e svolgere operazioni dannose.

2.1.3 Cavalli di Troia

Un cavallo di Troia è un programma o una procedura contenente codice nascosto. I cavalli di Troia possono essere utilizzati per svolgere indirettamente delle funzioni che un utente non autorizzato non potrebbe svolgere direttamente. Per esempio per acquisire l’accesso a file di un altro utente su un sistema condiviso; oppure per la distruzione dei dati. In questo secondo caso il cavallo di Troia sembra svolgere una funzione utile invece cancella i file dell’utente.

Generalmente è costituito da due file:

• il server, che viene installato sulla macchina della vittima;

• il client, usato per pilotare a distanza il sistema target.

Tali programmi malevoli sono in grado di diffondersi autonomamente per cui è necessario ingannare la vittima per spingerla ad installare i programmi fraudolenti. Spesso vengono utilizzati come alternativa ai worm e ai virus per installare delle backdoor o dei keylogger.

2.1.4 Zombie

Uno zombie è un programma che assume segretamente il controllo di un altro computer connesso a internet utilizzandolo poi per sferrare attacchi che non consentono di risalire al vero responsabile.

Spesso gli zombie vengono utilizzati per svolgere attacchi Denial of Services descritti nei paragrafi successivi.

2.1.5 Port scanning

Il portscanning è una tecnica utilizzata per raccogliere informazioni sui computer connessi in rete. Letteralmente significa “scansione delle porte” e consiste nell’inviare richieste di connessione al computer bersaglio utilizzando pacchetti TCP, UDP e ICMP modellati modellati ad hoc per stabilire quali servizi siano attivi.

Page 10: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

6

Una porta si dice "in ascolto" ("listening") o "aperta" quando vi è un servizio o programma che la usa. Più in dettaglio si può stabilire se una porta è:

aperta: l'host ha inviato una risposta indicando che un servizio è in ascolto su quella porta;

chiusa: l'host ha inviato una risposta indicando che le connessioni alla porta saranno rifiutate;

filtrata: non c'è stata alcuna risposta dall'host, ad esempio in presenza di un firewall. Di per sé il port scanning non è pericoloso per i sistemi informatici, e viene comunemente usato dagli amministratori nelle procedure di controllo. Rivela però informazioni dettagliate che potrebbero essere usate per predisporre un piano di attacco sfruttando la conoscenza dei servizi attivi e documentandosi su eventuali vulnerabilità note. L’utilizzo di un firewall ben configurato può consentire tuttavia il corretto funzionamento dei sistemi impedendo in tutto o in parte la scansione delle porte e privando gli attacker di uno strumento estremamente utile.

2.1.6 Sniffing

Il termine sniffing indica l’attività di intercettazione dei dati che viaggiano attraverso una rete di comunicazione. Tale attività può essere svolta per scopi legittimi (ad esempio l'individuazione di problemi di connessione) ma anche per scopi illeciti (intercettazione di password o altri dati sensibili). I prodotti software utilizzati per eseguire queste attività sono detti sniffer e tra le loro funzionalità offrono una completa analisi del traffico stesso, oltre ad operare in modo del tutto trasparente.

2.1.7 Spoofing

Un attacco spoofing (letteralmente “falsificazione”) si verifica quando una persona o un programma altera la propria identità elettronica spacciandosi per qualcun altro, acquisendo così privilegi in maniera illegittima. Esistono varie forme di spoofing: in primo luogo l’IP spoofing permette di alterare l’indirizzo IP per mascherare la sorgente di un attacco o per superare alcuni sistemi di autenticazione basati su ACL (Access Control List). Un altro tipo di spoofing è il webpagespoofing, noto più comunemente come phishing. In questo caso un sito legittimo, es. di una banca, viene riprodotto fedelmente su un altro server, con lo

Page 11: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

7

scopo di far inserire agli utenti dati sensibili (userid e password) per carpirli in modo del tutto trasparente, sfruttando gli account ottenuti per azioni illecite.

2.1.8 Virus

Per virus informatico si intende una porzione di codice in grado, una volta eseguito, di infettare altri file in modo da riprodursi facendo copie di sé stesso, senza farsi rilevare dall'utente. I virus teoricamente potrebbero essere innocui, ma in realtà comportano comunque un certo spreco di risorse in termini di RAM, CPU e spazio sul disco fisso e la loro diffusione nasconde sempre uno scopo ostile. Generalmente un virus può danneggiare in modo diretto solo il software della macchina che lo ospita, anche se può indirettamente provocare danni all' hardware, ad esempio causando il surriscaldamento della CPU mediante overclocking, oppure bloccando la ventola di raffreddamento o ancora agendo sul movimento delle testine degli hard disk.

2.1.8.1 Tipologie di virus

Sebbene accomunati da caratteristiche simili, è possibile denominarli in maniera particolare in base a proprietà specifiche soprattutto in merito alle modalità di diffusione e alla tipologia dei file ospite. In dettaglio parliamo di:

• virus polimorfici dispongono di una routine di mutazione che permette di

modificare il proprio codice ad ogni nuova infezione in modo da renderne

più difficoltosa l'individuazione da parte dei software antivirus;

• virus eseguibili attaccano i file di programma con estensione .EXE e

.COM, ma anche altri file necessari per applicazioni specifiche con

estensione .SYS, .DLL. Sono ormai abbastanza rari a causa della

diffusione dei sistemi Windows che hanno soppiantato il vecchio DOS;

• boot virus sostituiscono i dati contenuti nel MBR (Master Boot Record)

con il proprio codice, in modo da essere eseguiti automaticamente ad ogni

avvio del computer, senza lasciare traccia nella procedura di boot;

Page 12: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

8

• macro virus possono essere contenuti generalmente in un documento

Office e sono costituiti da una macro in grado di diffondersi a tutti i

documenti che vengono aperti con quella particolare applicazione;

• retrovirus si annidano all’interno dei programmi antivirus, riuscendo a

disabilitarli. Il nome deriva dai retrovirus biologici, in grado di attaccare il

sistema immunitario (come, ad esempio, l'HIV);

• virus multipiattaforma sono stati fatti molti tentativi per creare virus

capaci di infettare differenti sistemi operativi su una stessa architettura

hardware, ma si sono rivelati degli insuccessi o hanno avuto un successo

molto limitato.

2. 1. 9 Worm

Il termine worm (in inglese “verme”) fu coniato per la prima volta negli anni settanta da John Brunner nel suo romanzo di fantascienza intitolato “The shockwave raider”, ma occorre arrivare al 3 novembre 1988 per vederlo balzare alla ribalta della cronaca. In quella occasione veniva diffuso un prototipo di worm realizzato dallo studente Robert Morris, che sfruttando tre diversi tipi di vulnerabilità dei sistemi Unix, aveva realizzato in linguaggio C un programma in grado di auto replicarsi e diffondersi attraverso la rete. In effetti un worm è simile ad un virus, ma a differenza di quest’ultimo non necessita di un file ospite a cui agganciarsi per agire e diffondersi sebbene provveda a modificare il computer che infetta, in modo da essere eseguito ad ogni avvio rimanendo costantemente attivo. Possiamo paragonarlo ad un agente infettivo capace di diffondersi attraverso le reti sfruttando il TCP/IP oppure altri protocolli. Il vettore di infezione più comune è la posta elettronica: il programma ricerca indirizzi e-mail memorizzati nel computer infetto ed invia una copia di sé stesso come file allegato (attachment) a tutti o parte degli indirizzi individuati. I messaggi contenenti il worm utilizzano spesso tecniche di social engineering per indurre il destinatario ad aprire l'allegato, che spesso sequenza di istruzioni eseguibili utilizzate per automatizzare delle procedure di uso comune usa una estensione in grado di camuffare il worm come file non eseguibile. Un altro canale è rappresentato dai circuiti di file sparring dove si nascondono tra i file condivisi dall'utente vittima, spacciandosi per programmi di utilità o per crack di programmi molto costosi o ricercati, in modo da indurre altri utenti a scaricarlo

Page 13: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

9

ed eseguirlo. Infine ci sono worm che sfruttano le vulnerabilità del software e si diffondono automaticamente ai pc connessi in rete.

2.1.10 Dosa e DDoS

Acronimo di denial of service, (letteralmente “negazione del servizio”), ovvero l’impossibilità da parte di un server di soddisfare le richieste provenienti dagli utenti legittimi a causa dell’eccessiva mole di richieste generata dall’attacker. In questo modo si provoca la saturazione della banda e l’esaurimento delle risorse di calcolo, causando addirittura il crash del server.

Una variante è il DDoS (Distributed Denial of Service) dal funzionamento identico ma realizzato sfruttando delle macchine di ignari utenti (denominate ”zombie”) controllate attraverso worm o trojanhorse per concentrare un attacco congiunto su un unico bersaglio. Le tecniche più comuni per realizzare questi attacchi sono:

• smurf: si invia un falso messaggio a molti sistemi contenente come indirizzo del mittente l’IP dell’obiettivo. In questo modo le macchine contattate rispondono in massa all’indirizzo sovraccaricando il server corrispondente;

• banana attack: si indirizzano i messaggi in uscita da un sistema al sistema stesso, bloccando di fatto l’accesso esterno e provocando un sovraccarico;

• flood: è il più classico e si basa sulla creazione di un flusso di richieste di servizio soprattutto sfruttando i protocolli TCP e ICMP.

2.1.11 Hijacking

Consiste nel prendere il controllo di una comunicazione fungendo da intermediario non autorizzato. Si parla in gergo di man in the middle quando l’aggressore riesce ad intercettare, modificare e trasmettere messaggi tra due nodi in modo del tutto trasparente.

Page 14: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

10

2.1.12 Ransomware

È un tipo di malware che limita l’accesso del dispositivo che infetta, richiedendo un riscatto da pagare per rimuovere la limitazione.

I ransomware tipicamente si diffondono come i trojan, dei malware, penetrano nel sistema attraverso, ad esempio, un file scaricato o una vulnerabilità del servizio di rete. Il software esegue poi una crittografia dei dati presenti sul sistema.

2.2 L’analisi dei contenuti dei social networks

I social networks rappresentano ormai i più importanti punti di aggregazione e condivisione di informazioni tra utenti.

L’analisi dei contenuti dei social networks permette di rilevare informazioni di grande valore strategico relative al pensiero degli utenti e a ciò che essi fanno. Il monitoraggio e l’analisi dei giudizi e delle opinioni degli utenti permette di rilevare tendenze, gradimento e fattori positivi o negativi collegati ad ogni argomento. La condivisione delle informazioni tra utenti rende i social network potenti mezzi di orientamento capaci di influenzare i comportamenti e di aggiornare in tempo reale gli altri utenti su accadimenti della vita di tutti i giorni.

Esistono diversi studi condotti sull’analisi dei dati dei social network che sono classificati in due grandi categorie:

• analisi delle reti sociali, in cui vengono studiate le relazioni di ogni

utente della rete sociale; obiettivo di questa tipologia di analisi è

quello di individuare e analizzare i legami fra gli individui. Vengono

utilizzati nello studio concetti e strumenti di una branca della

matematica nota come teoria dei grafi.

• analisi dei contenuti dei messaggi, in cui vengono estratte

informazioni su svariati argomenti. Lo scopo di tale analisi è quello di

individuare trend di orientamento sui prodotti o sui brand;

individuazione di eventi catastrofici quali i terremoti [5], predizione

dell’andamento dei mercati [6].

I social network come Twitter e Facebook permettono agli utenti di pubblicare messaggi di stato e di condividerli con altri utenti del social network. Gli utenti di

Page 15: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

11

solito inseriscono messaggi sulle loro attività o i loro sentimenti. I messaggi raggiungono centinaia di milioni di utenti e anche se sono radicalmente eterogenei nei contenuti rappresentano un ambiente fertile per l’estrazione di utili informazioni.

Sono stati realizzati diversi progetti basati sull’analisi dei contenuti dei social networks al fine di rilevare eventi ed in particolare scoprire nuovi malware.

La problematica principale da affrontare nei sistemi di Alert basati sull’analisi dei contenuti è quello di individuare l'istante di tempo e la dimensione della finestra di analisi per effettuare le elaborazioni e quindi segnalare un evento in modo tempestivo.

Fra i vari lavori, il gruppo di ricerca di scienze e tecnologie della Jordan University nell’articolo scientifico “Leveraging Online Social Networks for a Real Time Malware Alert System” [7] nel 2011 ha proposto un sistema di rilevazione dei Malware il cui metodo consiste nel monitorare il numero di tweet contenenti alcune parole chiave, in un determinato intervallo di tempo. Se tale numero supera una soglia variabile in funzione di alcune grandezze statistiche viene rilevato un evento. In questa tecnica di analisi sono utilizzati la media mobile esponenziale e la varianza mobile esponenziale per monitorare e rilevare l’incremento del numero di tweet:

dato X[k] il numero dei messaggi rilevati nell’intervallo di tempo k

viene calcolata la EWMA (ExponentialWeighted Mobile Average) media mobile pesata esponenziale:

𝒀 𝒌 = 𝝀 𝑿 𝒌 + 𝟏− 𝝀 𝒀 𝒌− 𝟏 2.1

dove 𝜆 è il coefficiente costante di appianamento e viene scelto euristicamente.

Viene successivamente calcolato il differenziale, D[k], tra l’attuale numero di tweet, X[k], nell’intervallo k e il valore della media mobile esponenziale. Se si verifica un evento il differenziale incrementerà sostanzialmente.

𝑫 𝒌 = 𝑿 𝒌 − 𝒀[𝒌− 𝟏] 2.2

Viene calcolato il valore della varianza esponenziale mobile:

Page 16: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

12

(𝑽 𝒌 )𝟐 = 𝜸 𝑫 𝒌 𝟐 + 𝟏− 𝜸 𝑽 𝒌− 𝟏 𝟐 2.3

Dove 𝛾 è un altro coefficiente costante di appianamento scelto euristicamente.

Infine viene calcolata la soglia:

𝑻 𝒌 = 𝒀 𝒌− 𝟏 + 𝜹 𝑽[𝒌− 𝟏] 2.4

Dove 𝛿 è una costante che determina quanto la deviazione dal comportamento normale, Y[k], è considerato anomalo.

Un alert viene segnalato quando T[k], il numero di tweet nell’intervallo di tempo k, supera la soglia T[k] nello stesso intervallo

L’approccio proposto per la rilevazione di virus ed eventi di diffusione di malware è quello di trattare il flusso di dati proveniente dal social network Twitter come i dati di un sensore digitale che segnala la presenza di un malware quando il numero di tweet in un intervallo di tempo predeterminato cresce rapidamente.

Nella figura 1 viene evidenziato un grafico estratto dall’articolo dove si può notare attraverso le linee verticali che gli eventi vengono segnalati nei soli casi in cui un brusco incremento del numero di tweet si verifica al completamento di un intervallo di tempo.

Figura 1: Risultati sperimentali gruppo di ricerca Jordan University

Page 17: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

13

Il sistema descritto nonostante abbia ottenuto dei buoni risultati presenta sicuramente delle aree di miglioramento, specificate dagli stessi ricercatori come aree di sviluppo. Ad esempio non effettua alcuna differenziazione se nell’intervallo di tempo si verificano più di un evento. Inoltre le finestre temporali di analisi dei messaggi sono statiche e di lunghezza predeterminata, in tal modo qualora durante un intervallo temporale il numero dei messaggi cresce rapidamente il sistema attenderà comunque la conclusione dell’intera finestra temporale. Inoltre il comportamento dello stesso dipende dalla scelta di alcune costanti della media mobile e della varianza mobile e i risultati sono suscettibili a tali variazioni.

Fra i vari articoli oggetto di studio di questo lavoro di tesi, al fine di individuare delle tecniche di rilevazione dei malware differenti vi è stato quello del gruppo di ricerca dell’Università degli studi di Palermo in un articolo pubblicato in Journal of Computer Communications [11] del 2015 che hanno presentato un framework [35] per analizzare lo stream di Twitter per la rilevazione di argomenti rilevanti a partire da un generico macro evento. Tale articolo è stato attenzionato in quanto a differenza delle tecniche utilizzate da altri sistemi con finestre di rilevazione fisse, il sistema implementato è stato progettato per adattare il suo comportamento alla natura specifica dei dati. In particolare utilizza delle finestre variabili la cui dimensione è legata ad una funzione matematica sigmoide. Questo permette di rilevare un evento quando il numero di tweet supera la soglia, pari al valore della sigmoide nell’istante di tempo t, chiudendo di conseguenza la finestra temporale di rilevazione all’istante t. Tale implementazione permette quindi di rilevare un evento più velocemente rispetto a sistemi a finestre di dimensione statica.

Di seguito la definizione della funzione sigmoide:

𝑺 𝒙 = 𝒄𝟏 𝟏− 𝟏𝟏!𝒆!𝒄𝟐 𝒙!𝒄𝟒 + 𝒄𝟑 2.5

dove c1 rappresenta l’estensione della sigmoide nell’asse delle ordinate; c2 l’asintoto della funzione, c3 il valore minimo della funzione e c4 il punto centrale delle ascisse. In questa tecnica le ascisse rappresentano il tempo e le ordinate rappresentano il numero di tweet.

Di seguito viene mostrato il grafico di una funzione sigmoide:

Page 18: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

14

Figura 2: Grafico della funzione sigmoide

La problematica di questo sistema dipende fondamentalmente dalla scelta delle soglie minime e massime di numero di tweet da superare affinchè venga rilevato un evento a differenza invece del precedente sistema della Jordan University che pur avendo delle finestre temporali di lunghezza fissa aveva però delle soglie variabili.

Page 19: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

15

3 I metodi di rappresentazione e classificazione dei tweet per la rilevazione dei malware

L'architettura realizzata in questo lavoro di tesi è un sistema di analisi dei contenuti di Twitter per la scoperta di malware. Il sistema proposto utilizza le informazioni estratte dai tweet che vengono pubblicati quando un virus o un malware viene rilevato dagli utenti.

Il sistema estrae i post degli utenti dallo streaming di Twitter, attraverso le Api messe a disposizione. Vengono estratti in tempo reale tutti i tweet contenenti un insieme di parole chiave scelto, al fine della rilevazione dei malware. Tale insieme è composto da parole che frequentemente si trovano nei messaggi relativi ad attacchi informatici. Si è scoperto fin da subito che nonostante i messaggi contenessero le parole chiave scelte, non sempre la presenza di esse era strettamente collegato alla diffusione di nuovi malware sulla rete. Il metodo utilizzato per il filtro di tali messaggi è stato quello di addestrare un classificatore naïve di Bayes a riconoscere i messaggi Cyber Attack.

Individuati i messaggi riferiti a nuovi software malevoli ci si è poi concentrati sulla tecnica per determinare le finestre temporali di estrazione ed analisi dei tweet e le soglie in termini di numerosità dei post all’interno delle finestre temporali per la segnalazione dei nuovi attacchi. Tale meccanismo è stato sviluppato utilizzando un approccio a finestre temporali di analisi dinamiche con una stima delle soglie dipendente da grandezze statistiche quali la media e la varianza mobile esponenziale.

Infine lo studio si è spostato sulla tecnica di segnalazione dei nuovi eventi. Bisognava trovare dei metodi che permettessero di raggruppare per aree tematiche i post di ogni finestra temporale e riassumere tali messaggi con un unico messaggio rappresentativo al fine di segnalare un evento. Per tali scopi sono state studiate tecniche di clusterizzazione ovvero algoritmi che permettono il raggruppamento di documenti simili attraverso l’utilizzo di rappresentazioni dei documenti e il confronto di essi con metriche di similarità, come ad esempio il coefficiente di similarità del coseno. Una volta ottenuti i raggruppamenti per singolo argomento all’interno delle finestre temporali, è stato necessario individuare l’approccio utile per riassumere il contenuto di ogni singolo cluster. In particolare è stata utilizzata una tecnica che permette di ottenere all’interno di un gruppo di messaggi con similarità al di sopra di una certa soglia, il documento che è più rappresentativo. Viene definito un baricentro del cluster, ossia dei valori rappresentativi del

Page 20: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

16

raggruppamento e si individua il messaggio che secondo la metrica di similarità scelta è quello che più è simile rispetto a tutti gli altri messaggi del raggruppamento.

Nei prossimi paragrafi sono dettagliati gli strumenti scientifici utilizzati per la realizzazione del sistema nel suo complesso.

3.1 L’estrazione dei dati dallo streaming di Twitter

In questa fase il sistema raccoglie i dati dal social network Twitter. Tutti i tweet contenenti almeno una delle parole chiave appartenenti ad un insieme S definito da parole che con buona probabilità possono trovarsi in messaggi che si riferiscono a virus o malware. I dati vengono salvati in tempo reale e continuamente senza effettuare alcuna elaborazione specifica.

3.2 Il filtraggio dei dati estratti

I dati del sistema sono i tweet pubblicati dagli utenti e ad ogni istante viene effettuato un filtraggio dei tweet estratti. Si è verificato infatti che non tutti i messaggi contenenti almeno una delle parole chiave dell’insieme S si riferisce alla diffusione di nuovi malware o virus, ma potrebbe per esempio riferirsi a pubblicità di antivirus. Per effettuare tale filtraggio è stato implementato un classificatore semplificato di Bayes che opportunamente addestrato permette di ottenere un insieme di tweet depurato da quelli non riferiti ad attacchi informatici con buoni risultati. Le Reti Bayesiane si sono rilevate uno strumento estremamente efficace nei contesti in cui è necessario fondere informazioni provenienti da diverse sorgenti e affette da un livello di rumore non trascurabile [30], [32].

3.2.1 Il classificatore Naïve Bayes

Per definire il concetto di probabilità nel corso degli anni vi sono state innumerevoli discussioni [30, 32]; sono infatti nate nel tempo, due scuole di pensiero completamente diverse: la prima ha dato una definizione nota come: la visione classica della probabilità mentre la seconda ne ha data una detta visione soggettiva della probabilità o meglio visione bayesiana della probabilità.

La concezione classica afferma che la probabilità è una proprietà fisica del mondo e per essere valutata è necessario ripetere varie volte un esperimento.

Più precisamente, siano w1 .......wn n eventi esaustivi e mutuamente esclusivi e si effettuino N esperimenti osservandone il risultato, sia Ni il numero di volte in cui si è verificato l'evento wi e η=Ni / N il rapporto tra il numero di volte in cui si è

Page 21: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

17

verificato l'evento wi e il numero totale degli esperimenti. Se N è sufficientemente grande, le frequenze η tendono a stabilizzarsi e si può quindi definire la probabilità dell'evento wi nel seguente modo:

𝑷 𝝎𝒊 = 𝐥𝐢𝐦𝑵→ ! ! 𝜼 = 𝐥𝐢𝐦𝑵→ ! !𝑵𝒊𝑵

3.1

D'altra parte, la visione bayesiana afferma che la probabilità di un evento wi è il grado di credenza (degree of belief) di una persona in quell'evento, piuttosto che una qualche proprietà fisica del mondo: quindi la probabilità è il grado soggettivo di aspettativa che una persona assegna al verificarsi di un evento incerto. In modo formale, la probabilità di un evento E, secondo l’opinione di un dato individuo, è il prezzo P(E) che egli giudica “equo” pagare per riscuotere un importo unitario nel caso in cui E si verifichi. Si può dimostrare che, se non esiste una strategia di scommessa per cui una persona perde sicuramente, allora la probabilità così definita soddisfa gli assiomi della probabilità. Secondo la definizione assiomatica, la probabilità P(wi) di un evento wi è un numero che soddisfa i seguenti assiomi:

1. 0≤ P(wi)≤ 1;

2. P(wi) = 1 se e solo se wi è certo P(wi) = 0 se e solo se wi è

impossibile;

3. se wi e wj sono due eventi, allora la probabilità della loro disgiunzione

vale (wiUwj) = P(wi) + P(wj) - P(wi∩wj).

I primi due assiomi servono per definire la scala di probabilità e il terzo si ricorda facilmente legandolo al diagramma di Venn per la teoria degli insiemi.

Da questi assiomi, si possono derivare tutte le regole della probabilità. Per cercare di rendere il concetto di probabilità bayesiana più formale, molti ricercatori hanno suggerito vari insiemi di proprietà che dovrebbero essere soddisfatti dai gradi di credenza ed è stato visto che ogni insieme di proprietà porta alle stesse regole che non sono altro che le regole della probabilità. Una importante differenza tra la concezione classica e quella bayesiana della probabilità è che per misurare quest'ultima non c'è bisogno di ripetere degli esperimenti, quindi tenendo conto di questa differenza, si può assegnare a certi eventi un valore di probabilità che la visione frequentista non sa attribuire. Ad esempio, volendo valutare la probabilità che una certa squadra possa vincere il campionato il prossimo anno, la concezione classica direbbe di ripetere N volte il campionato, con N molto grande, e di contare il numero di volte che la squadra in questione ha vinto il campionato. Questo è certamente un approccio

Page 22: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

18

non praticabile, per cui si giustifica l'introduzione di una diversa visione della probabilità.

3.2.2 Introduzione al teorema di Bayes

Il teorema di Bayes deriva da tre teoremi fondamentali delle probabilità:

o il teorema della probabilità condizionata,

o il teorema della probabilità composta ed

o il teorema della probabilità assoluta.

Questi tre teoremi dicono rispettivamente che:

Teorema della probabilità condizionata

𝑃 𝐴 𝐵 = !(!∩!)!(!)

3.2

la probabilità di A condizionata da B è definita come la probabilità che si verifichi l'evento A a condizione che si verifichi pure l'evento B, entrambi eventi dello spazio S di cui B tale che P(B)>0

Teorema della probabilità composta

𝑃 𝐴 ∩ 𝐵 = 𝑃 𝐵 𝑃 𝐴 𝐵 = 𝑃 𝐴 𝑃(𝐵|𝐴) 3.3

per cui la probabilità che due eventi si verifichino contemporaneamente è pari alla probabilità di uno dei due eventi moltiplicato con la probabilità dell'altro evento condizionato dal verificarsi del primo.

Teorema della probabilità assoluta

Page 23: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

19

afferma che se A1,..., An formano una partizione dello spazio di tutti gli eventi possibili Ω (ossia Ai∩Aj = i, j e Un

i=1 Ai=Ω ) e B è un qualsiasi evento, allora:

𝑃 𝐵 = 𝑃 𝐴𝑖 𝑃(𝐵|𝐴𝑖)!!!! 3.4

Il teorema di Bayes nella sua forma più semplice può essere scritto come segue:

𝑃 𝐵 𝐴 = ! ! ! !(!)!(!)

3.5

Gli eventi A e B possono essere eventi qualunque, contemporanei oppure aventi luogo in tempi diversi. Per fissare le idee è però e stremamente utile utilizzare come esempio il caso di due eventi legati da una r elazione di causa-effetto: ci chiederemo quindi qual è dato un certo effetto, la probabilità che sia prodotto da una data causa. Con l’uso delle lettere D e H per indicare i dati e l’ipotesi in esame il teorema diventa:

𝑃 𝐻 𝐷 = ! ! ! !(!)!(!)

3.6

Nel caso in cui non sia disponibile direttamente P(D) si ricorre alla regola delle alternative:

𝑃 𝐷 = 𝑃 𝐷 ∩ 𝐻 + 𝑃(𝐷 ∩ 𝐻) 3.7

in questo caso il teorema di Bayes assume la forma:

𝑃 𝐻 𝐷 = ! ! ! !(!)! !∩! ! !(!∩!)

3.8

Preso il teorema di Bayes nella sua forma più classica può risultare molto importante discutere l’interpretazione di ciascun termine del teorema di Bayes:

Page 24: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

20

o P(H) è il nostro grado di fiducia nell’affermazione H prima di

prendere in considerazione i dati ed è nota come probabilità a priori per H,

o grado di fiducia a priori in H. Per brevità è detta prior.

o P(H|D) riflette invece la fiducia a posteriori, aggiornata alla luce dei

dati e calcolata mediante l’espressione del teorema di Bayes. Per

brevità è detta posterior.

o La parte destra dell’espressione del teorema di Bayes include la prior, così

abbastanza naturalmente la posterior è proporzionale alla prior. La parte

destra dell’equazione include anche P(D|H), che è nota come la

verosimiglianza dei dati, o likelyhood, e rappresenta la probabilità che

si verifichino i dati sotto l’ipotesi che H sia vera. Per calcolare la

likelyhood dobbiamo disporre di un modello probabilistico che

connetta la proposizione H cui siamo interessati con i dati osservati D,

questo è il cuore dell’apprendimento probabilistico.

o Il denominatore della frazione è un termine di normalizzazione e ci

garantisce di tenere in conto adeguatamente l’ipotesi alternativa (non

H), infatti se prima di osservare i dati dobbiamo garantire che

P(H)+P(non H)=1, dopo aver visto i dati dobbiamo garantire che

P(H|D)+P(non H|D)=1

3.2.3 L’apprendimento Bayesiano

L'apprendimento bayesiano si pone come obiettivo il problema di fare delle previsioni e ritiene il problema della formulazione di ipotesi a partire dai dati, come un suo sotto problema. Un modo per specificare che cosa intendiamo per la migliore ipotesi è quello di affermare che la migliore ipotesi è quella più probabile, avendo a disposizione dei dati ed una certa conoscenza iniziale delle probabilità a priori delle varie ipotesi. Le ipotesi elaborate dai dati e combinate in modo opportuno, portano alla formulazione di una previsione. I coefficienti con cui vengono pesate le ipotesi non sono altro che la loro verosimiglianza con i dati. Il metodo bayesiano non sceglie tra un insieme di ipotesi, ma le combina in base alla loro capacità di rappresentare i dati. In modo più formale, sia D un insieme di dati, sia X una quantità ignota su cui vogliamo fare delle

Page 25: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

21

previsioni e siano H1,....,Hn delle ipotesi; l'apprendimento bayesiano assume la forma:

𝑃 𝑋 𝐷 = 𝑃 𝑋 𝐷,𝐻𝑖 𝑃(𝐻𝑖|𝐷)!!!! = 𝑃 𝑋 𝐻𝑖 𝑃(𝐻𝑖|𝐷)!

!!! 3.9

Si può dimostrare che nessun altro metodo di predizione che fa uso del lo stesso spazio di ipotesi e della stessa conoscenza a priori, ha in media delle prestazioni migliori. Un aspetto curioso dell'apprendimento bayesiano è che le predizioni fatte possono non corrispondere a nessuna ipotesi in particolare, in quanto la previsione è una combinazione lineare delle ipotesi formulate.

Purtroppo l'apprendimento bayesiano richiede il calcolo di P(Hi|D) per tutte le H

i e nella maggior parte dei casi questo è un problema intrattabile. Si fanno allora delle ipotesi semplificative tra cui la più comune è quella di considerare solo l'ipotesi più probabile, ovvero di considerare solo l'ipotesi Hi che massimizza P(Hi|D). Questa ipotesi viene chiamata massima a posteriori o MAP (maximum a posteriori ) e si indica con HMAP. Quindi:

𝑃 𝑋 𝐷 ≈ 𝑃(𝑋|𝐻𝑚𝑎𝑝) 3.10

Per calcolare HMAP si ricorre al teorema di Bayes che fornisce un metodo diretto per calcolare la probabilità di una ipotesi partendo dalla sua probabilità a priori, dalla probabilità di osservare certi dati data l'ipotesi stessa e dai dati osservati:

hMAP = argmax𝑃 ℎ 𝐷 = argmax ! ! ! ! !! !

= argmax𝑃 𝐷 ℎ 𝑃 ℎ 3.11

Ci sono state molte discussioni su come scegliere la probabilità a priori di un modello: un metodo è quello di privilegiare le ipotesi più semplici rispetto a quelle più complesse (rasoio di Ockham) e di fare in modo di rispettare il vincolo di normalizzazione sull'intero spazio delle ipotesi. La preferenza per le ipotesi più semplici garantisce una certa immunità al rumore e al sovraddestramento, ma tale preferenza non deve essere troppo spinta per evitare di andare incontro ad un sottoaddestramento, cioè ad una situazione in cui molti dati vengono ignorati. Molto spesso, per mancanza di informazioni o per semplicità di calcolo, si assume un prior uniforme sulle ipotesi e si sceglie

Page 26: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

22

quindi l'ipotesi Hi che massimizza la P(D | Hi): tale ipotesi viene chiamata a massima verosimiglianza o ML (maximum likelihood) e indicata con HML:

hML = argmax𝑃 𝐷 𝐻𝐼 3.12

I classificatori Bayesiani nonostante la loro estrema semplicità, riescono a raggiungere delle prestazioni addirittura superiori rispetto ai più noti algoritmi di apprendimento. Queste metodologie di tipo probabilistico fanno delle forti assunzioni sulla generazione dei dati ed utilizzano un modello probabilistico che ingloba queste assunzioni. Avvalendosi di un insieme di dati etichettati per l'addestramento, si stimano i parametri del modello generativo e si classificano le nuove istanze utilizzando il teorema di Bayes e selezionando la classe o categoria che ha la probabilità più alta di aver generato l'esempio.

Il classificatore Naïve Bayes è un metodo di apprendimento bayesiano che si è rivelato utile in molte applicazioni, tra cui la classificazione di documenti testuali. E’ uno tra i più semplici di questi modelli, come dice il nome stesso ed è basato sull'assunzione semplificativa che tutti gli attributi che descrivono una certa istanza sono tra loro condizionatamente indipendenti data la categoria a cui appartiene l'istanza. Questa affermazione viene detta assunzione del Naïve Bayes. Quando questa ipotesi è verificata, il Naïve Bayes esegue una classificazione di tipo MAP (Maximum a Posteriori). Nonostante questa assunzione sia violata nella maggior parte dei problemi reali come, ad esempio, nella categorizzazione del testo, il Naïve Bayes si comporta molto bene e risulta essere molto efficace. L'assunzione di indipendenza permette di apprendere separatamente i parametri di ogni attributo, semplificando molto l'apprendimento, specialmente in quelle situazioni in cui il numero di attributi è molto elevato ed in cui i dati a disposizione non sono molto numerosi. La classificazione di documenti è uno di quei domini con un grande numero di attributi. Una scelta comune associa gli attributi con le parole del documento e si capisce quindi che il loro numero può diventare molto elevato. Alcune tecniche di apprendimento riducono drasticamente la taglia del vocabolario, in modo da avere pochi attributi da gestire. Purtroppo nel campo della categorizzazione del testo solo un esiguo numero di termini è irrilevante ai fini della classificazione e quindi un'eccessiva diminuzione porta ad un deterioramento delle prestazioni. La soluzione consiste nell'impiegare delle tecniche in grado di elaborare un numero elevato di attributi.

Il dominio applicativo del classificatore Naïve Bayes riguarda la classificazione di istanze che possono essere descritte mediante un insieme di attributi di

Page 27: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

23

cardinalità anche molto elevata. Innanzitutto si devono stimare i parametri del modello utilizzando i dati a disposizione. La stima di questi parametri corrisponde ad aver identificato un modello tra tutti quelli presenti nello spazio delle ipotesi. A differenza di altri algoritmi di apprendimento, non c'è un'esplicita ricerca nello spazio delle possibili ipotesi, ma l'ipotesi viene definita semplicemente contando la frequenza degli attributi negli esempi di addestramento. Il modello così definito permette di classificare le nuove istanze che gli vengono presentate. Sia A = A1,...,An un insieme di variabili che modellano gli attributi delle istanze da classificare e sia C=C1,...,C|C| una variabile i cui stati rappresentano le categorie a cui appartengono le istanze. Si tratta di stimare una funzione che, applicata ad ogni istanza, fornisca la classe di appartenenza dell'istanza stessa, partendo da un insieme di dati di addestramento D in cui ogni elemento di = a1,...,anè descritto tramite i valori dei suoi attributi e tramite la sua classe ci. Vediamo innanzitutto come può essere classificata una nuova istanza partendo dalla sua descrizione in termini di attributi. Secondo l'approccio bayesiano, si calcolano le probabilità a posteriori P(cj | di) con j = 1,..., | C | e si determina la categoria cj che massimizza tale probabilità:

𝐶!"# = arg 𝑃(𝑐!|𝑑!)!!∈!!"# = arg 𝑃(𝑐!|𝑎!,… , 𝑎!)!!∈!

!"# 3.13

Il teorema di Bayes permette di esprimere la probabilità a posteriori in funzione della verosimiglianza e della probabilità a priori:

𝐶!"# = arg ! !! !! ! !!! !!!!∈!

!"#= 3.14

= arg𝑃 𝑎!,… , 𝑎! 𝑐! 𝑃 𝑐!

𝑃 𝑎!,… , 𝑎!!!∈!

!"#

=

= arg 𝑃 𝑎!,… , 𝑎! 𝑐! 𝑃 𝑐!!!∈!!"#

Abbiamo tralasciato il termine P(ai) = P(a1,..., an) che rappresenta una costante di normalizzazione ed è quindi ininfluente ai fini della massimizzazione.

Supponiamo per semplicità che tutti gli attributi Ai A che descrivono un'istanza siano realizzazioni diverse della stessa variabile aleatoria caratterizzata da m stati distinti e cerchiamo di stimare i due termini

Page 28: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

24

dell'equazione precedente. Il termine P(cj) può essere stimato facilmente contando il numero di volte che la classe cj compare tra i dati. La stima del termine P ( a1,..., an | cj) è più difficoltosa, perché il numero di configurazioni che può assumere è mn |C|, dove n è il numero degli attributi. Per avere una stima attendibile, servirebbe un numero di dati che è esponenziale nel numero di attributi. Per ridurre il numero dei parametri da stimare e corrispondentemente il numero di dati necessari, si fa l'ipotesi semplificativa che gli attributi siano mutuamente indipendenti data la classe dell'istanza:

𝑃 𝑎!,… , 𝑎! 𝑐! =𝑃 𝑎! 𝑐! …𝑃 𝑎! 𝑐! = 𝑃 𝑎! 𝑐!!!!! 3.15

Sostituendo quest’’ultima l'equazione alla precedente, si ottiene:

𝐶!" = arg 𝑃 𝑐! 𝑃 𝑎! 𝑐!!!!!!!∈!

!"# 3.16

Supponiamo per semplicità che tutti gli attributi Ai A che descrivono un'istanza siano realizzazioni diverse della stessa variabile aleatoria caratterizzata da m stati distinti e cerchiamo di stimare i due termini dell'equazione precedente. Il termine P(cj) può essere stimato facilmente contando il numero di volte che la classe cj compare tra i dati. La stima del termine P ( a1,..., an | cj) è più difficoltosa, perché il numero di configurazioni che può assumere è mn |C|, dove n è il numero degli attributi. Per avere una stima attendibile, servirebbe un numero di dati che è esponenziale nel numero di attributi. Per ridurre il numero dei parametri da stimare e corrispondentemente il numero di dati necessari, si fa l'ipotesi semplificativa che gli attributi siano mutuamente indipendenti data la classe dell'istanza:

Sostituendo quest’’ultima l'equazione alla precedente, si ottiene: Se è soddisfatta l'ipotesi di indipendenza degli attributi, il classificatore Naïve Bayes esegue una stima MAP, quindi c NB = cMAP. Il numero dei termini da stimare si riduce a n | C |, che è lineare nel numero di attributi. Il numero totale dei parametri da stimare è | C | + n | C | = (n + 1) | C |.

Poiché difficilmente nei casi reali vale l'ipotesi di indipendenza tra gli attributi, alcuni studi hanno rilassato l'ipotesi, aggiungendo la presenza di archi tra gli attributi. Per stimare le probabilità di interesse, si ricorre ancora una volta all'approccio bayesiano che permette di combinare la probabilità a priori con i dati, utilizzando l'm-stima di probabilità:

Page 29: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

25

!!! !!

!!! 3.17

dove i termini nc e n permettono di stimare la quantità di interesse come numero di occorrenze tra i dati, p è la nostra stima a priori della probabilità che vogliamo determinare ed m è una costante chiamata taglia del campione equivalente che determina il peso relativo di p e dei dati osservati. Il nome di m è dovuto al fatto che l'equazione può essere interpretata come l'aver aggiunto m dati virtuali distribuiti secondo p agli n dati reali, pesando in modo relativo la conoscenza a priori e l'informazione presente nei dati. Se non disponiamo di nessuna informazione a priori, p può essere scelto in modo uniforme: se un attributo assume k valori, allora p = 1/k. Se m = 0, allora l'm-stima coincide con n c/n ed utilizza solo l'informazione presente nei dati, mentre se m e n sono entrambi diversi da zero, l'informazione a priori p e la stima n c/n ricavata dai dati sono combinate in accordo ad m.

3.3 L’analisi dei dati

I dati estratti e filtrati sono la base del sistema di rilevazione dei malware. Nella fase di analisi il numero di tweet rappresenta uno dei parametri utilizzati per la determinazione della soglia per unità di tempo, superata la quale è necessario segnalare un alert.

Nell’immagine di seguito mostrata è sintetizzato il funzionamento del sistema di analisi dei dati per la rilevazione di un evento.

Figura 3: Funzionamento del sistema di analisi dei dati

Le informazioni sui social networks relative a nuovi attacchi informatici sono variabili, non è possibile stabilire con precisione il numero minimo di tweet per

Page 30: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

26

intervallo di tempo che devono essere superati per garantire la presenza di un nuovo evento.

Si è implementato un metodo che dinamicamente determina delle funzioni sigmoidi modificando i parametri delle stesse sfruttando le informazioni di media e varianza mobile del numero di tweet filtrati per intervallo di tempo.

Il tempo è scandito da finestre temporali di dimensione variabile dipendenti da una funzione matematica sigmoide monotona decrescente. Le finestre temporali di rilevazione vengono interrotte quando il numero di tweet supera la soglia rappresentata dalla sigmoide all’istante t altrimenti l’analisi dura fino alla dimensione massima della finestra.

Figura 4: Finestre variabili nella rilevazione degli alert

Nella figura 4 viene mostrato un esempio di finestre variabili dipendenti dal superamento della soglia della funzione sigmoide. E’ evidenziato in verde la finestra temporale che è stata interrotta anticipatamente poiché il numero di tweet ha superato il valore della sigmoide all’istante t.

La funzione sigmoide così definita:

𝑺 𝒙 = 𝒄𝟏 𝟏− 𝟏𝟏!𝒆!𝒄𝟐 𝒙!𝒄𝟒 + 𝒄𝟑 3.18

ha dei parametri variabili c1, c2, c3, c4. Sostanzialmente ogni finestra temporale ha rispettivamente un valore di varianza mobile e di media mobile e tali dati divengono i parametri della funzione sigmoide definendone così i valori di minimo e massimo.

Sono utilizzati due dati statistici:

• la media mobile esponenziale

ntweet tksigma

Page 31: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

27

• la varianza mobile esponenziale

per monitorare e rilevare l’incremento del numero di tweet.

Dato X[k] il numero dei messaggi rilevati nell’intervallo di tempo k

viene calcolata la EWMA (ExponentialWeighted Mobile Average) media mobile pesata esponenziale:

𝑌 𝑘 = 𝜆 𝑋 𝑘 + 1− 𝜆 𝑌 𝑘 − 1 3.19

Dove 𝜆 è il coefficiente costante di appianamento e viene scelto euristicamente.

Viene successivamente calcolato il differenziale, D[k], tra l’attuale numero di tweet, X[k], nell’intervallo k e il valore della media mobile esponenziale. Se si verifica un evento il differenziale incrementerà sostanzialmente.

𝐷 𝑘 = 𝑋 𝑘 − 𝑌[𝑘 − 1] 3.20

Viene calcolato il valore della varianza esponenziale mobile:

(𝑉 𝑘 )! = 𝛾 𝐷 𝑘 ! + 1− 𝛾 𝑉 𝑘 − 1 ! 3.21

Dove 𝛾 è un altro coefficiente costante di appianamento scelto euristicamente.

Infine viene calcolata la soglia:

𝑇 𝑘 = 𝑌 𝑘 − 1 + 𝛿 𝑉[𝑘 − 1] 3.22

Dove 𝛿 è una costante che determina quanto la deviazione dal comportamento normale, Y[k], è considerato anomalo.

Poiché il sistema implementato utilizza una tecnica a finestre variabili questo valore T[k] viene considerato il valore minimo che deve essere superato entro la dimensione massima della finestra affinchè si verifichi un evento, in altre parole T[k] rappresenta il parametro c3 (valore minimo della sigmoide) mentre il 30% di T[k] rappresenta l’estensione della sigmoide ovvero il parametro c1.

In altre parole, viene fissata la dimensione massima della finestra, sono fissati i parametri della sigmoide dinamicamente in funzione della varianza mobile esponenziale e se il numero di tweet supera il valore della sigmoide entro il tempo massimo della finestra l’analisi e la segnalazione dell’alert viene effettuata in anticipo rispetto alla durata totale della finestra di osservazione.

Page 32: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

28

Tale tecnica permette di segnalare in modo veloce la diffusione di nuovi attacchi informatici quando il numero di messaggi incrementa repentinamente e non è necessario attendere la durata completa di una finestra temporale di osservazione per poter effettuare l’alert agli utenti di un nuovo Malware.

Per una maggiore comprensione viene mostrata di seguito un esempio di finestra variabile in cui si vede il comportamento della sigmoide rispetto ad una soglia fissa.

Figura 5: Finestra a dimensione dinamica con parametri variabili

3.3.1.1 La media mobile

Data una serie storica 𝑦! , 𝑡 = 1,2,… . ,𝑇 , contenente i valori osservati di una variabile Y dal tempo 1 al tempo T, siano:

m1 il numero dei periodi precedenti a ;

m2 il numero dei periodi successivi a ;

𝜃! il peso da attribuire all' -esimo valore osservato;

si definisce media mobile al tempo t il valore:

𝒎𝒎𝒕 = 𝟏𝒌

𝜽𝒊𝒚𝒕!𝟏𝒎𝟐𝒊!!𝒎𝟏 3.23

dove:

𝒌 =𝒎𝟏 +𝒎𝟐 + 𝟏 3.24

10,5

11

11,5

12

12,5

13

13,5

1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930

Finestra dinamica

soglia soglia sigmoide

Page 33: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

29

è il periodo o l'ordine della media mobile, ed equivale al numero degli addendi.

Una media mobile viene detta:

semplice se i pesi 𝜃! sono tutti uguali a 1 𝑘 (in tal caso, si tratta di una normale media aritmetica);

centrata se 𝑚! = 𝑚!;

simmetrica se centrata e se𝜃!!! = 𝜃!!! per ogni m compreso tra 1 e 𝑚! =𝑚!.

3.3.2 Tipi di medie mobili

Esistono diversi tipi di medie mobili che differiscono tra loro semplicemente nella formula di calcolo generando così i segnali più o meno sensibili alle variazioni dei prezzi. I principali sono i seguenti:

3.3.2.1 Media mobile semplice

(Simple MovingAverage, SMA) Detta anche aritmetica, rimane quella più usata dagli analisti e di più facile calcolo. Vengono presi i dati di un determinato periodo e ne viene calcolata la media sommandoli fra loro e dividendo per il numero totale di valori. Questo tipo di media però viene spesso criticata da molti in quanto assegna la stessa importanza ad ogni singolo dato: in una media mobile a 100 periodi l'ultimo valore ha la stessa importanza, 1% di "peso", del primo valore.

3.3.2.2 Media mobile ponderata

(WeightedMovingAverage, WMA) Sono state ideate per ovviare al problema delle medie mobili semplici riguardo al peso da assegnare ai valori presi in considerazione. Il suo calcolo prevede che, prendendo in esame una media mobile a 10 periodi, la chiusura del decimo giorno venga moltiplicata per 10, quella del nono giorno per nove, dell'ottavo giorno per otto e così via. Così facendo si dà maggior peso agli ultimi valori; il totale verrà poi diviso per la somma dei multipli, ovvero nel nostro caso sarà diviso per 1+2+3+...+10=55.

Resta il fatto che nonostante le varianti di calcolo anche questa media mobile

Page 34: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

30

non riesce a dare istantaneamente un'idea di quello che sta accadendo sul mercato.

𝑾𝑴𝑨 = (𝑪𝟏 ∗ 𝟏+ 𝑪𝟐 ∗ 𝟐+⋯+ 𝑪𝒏 ∗ 𝒏)/(𝟏+ 𝟐+⋯𝒏) 3.25

3.3.2.3 Media mobile esponenziale

(ExponentialMovingAverage, EMA) Questa media mobile viene generata da un sistema di calcolo molto più complesso che cerca sempre di eliminare le carenze della media mobile semplice. Viene quindi dato un peso differente ai vari prezzi, maggiore ai più recenti e minore a quelli più vecchi, fatto che porta molti a definirla media mobile ponderata esponenziale. Nonostante dia un'importanza minore ai prezzi passati li include ugualmente nel suo calcolo prendendo in esame quindi molti più valori di quelli definiti dal periodo della media mobile. Resta di fatto un indicatore quasi impossibile da generare se non attraverso il computer in quanto la sua formula resta di difficile calcolo per qualsiasi analista.

3.3.2.4 Media mobile adattiva

Uno dei problemi riscontrati nell'uso della media mobile riguarda la scelta del periodo da utilizzare; mentre la media mobile veloce può risultare più efficace in un mercato che si muove poco, una più lenta sarà preferibile in un mercato con un trend ben definito. Per ovviare a questo problema Perry Kaufman ha ideato una media mobile che, utilizzando uno studio sulla volatilità presente nel mercato, adatta la sua velocità. I calcoli e la teoria su cui si basa questo tipo di media mobile non sono di facile apprendimento e si basano su concetti abbastanza avanzati sia di statistica che matematica. È stato anche concepito un efficiency ratio, o rapporto di efficienza, che mette a confronto movimento dei prezzi con il livello di volatilità. Quando rapporto di efficienza è elevato, il movimento è maggiore della volatilità, favorendo la media più veloce; quando è basso, la volatilità è maggiore del movimento, il che favorisce una media mobile più lenta. Incorporando l'efficiency ratio si verifica un aggiustamento automatico della media mobile adattiva alla velocità più opportuna per il mercato corrente.

3.3.3 Varianza

In statistica e in teoria della probabilità la varianza di una variabile statistica o di una variabile aleatoria è una funzione, indicata con o con (o

Page 35: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

31

semplicemente con se la variabile è sottointesa), che fornisce una misura della variabilità dei valori assunti dalla variabile, nello specifico, di quanto essi si discostino quadraticamente rispettivamente dalla media aritmetica o dal valore atteso .

3.4 La segnalazione degli alert

Quando il sistema rileva attraverso le tecniche descritte al paragrafo 3.3 un evento, la fase successiva è quella si segnalare un alert.

Un’altra problematica importante nell’analisi dei contenuti per la rilevazione di malware è la tecnica di rilevazione degli argomenti a partire dai tweet estratti.

Esistono fondamentalmente tre classi di metodi di rilevamento dei temi:

• Document-pivot;

• Feature-pivot;

• modelli probabilistici.

L'approccio basato su document pivot tipicamente calcola una misura di

somiglianza fra coppie di documenti o fra un documento e un prototipo

rappresentante un determinato argomento. Nel primo caso, se la somiglianza tra il

documento in ingresso e il miglior documento presente nella collezione supera una

certa soglia allora il documento viene inserito nel cluster e non vengono mai

generati nuovi cluster. Nel secondo caso invece se il documento supera una certa

soglia di somiglianza viene inserito nel cluster altrimenti viene generato un nuovo

cluster.

L'approccio basato sulle feature-pivot tentano di raggruppare insieme i

termini secondo i loro schemi di co-occorrenze. In generale in tali approcci, in un

primo passaggio vengono selezionati i termini che saranno raggruppati fra loro, per

esempio i termini più comuni. Nella seconda fase vengono inseriti nel cluster tutti i

documenti che contengono il maggior numero di co-occorrenze di caratteristiche

(termini) rispetto al gruppo dei termini selezionati inizialmente.

La terza classe di modelli di rilevazione degli argomenti utilizzano modelli

probabilistici. Questi approcci utilizzano le distribuzioni dei termini. Due approcci

molto noti sono PLSA ProbabilisticLatentSemantic Analysis e LDA

Page 36: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

32

LatentDirichletAllocation. Probabilmente il più popolare modello probabilistico è

l'LDA che utilizza variabili che rappresentano la distribuzione dei termini per topic

e per argomento. L'apprendimento e l'inferenza in tali algoritmi viene in genere

eseguita usando variazioni di classificatori di Bayes e altri approcci come il

campionamento di Gibbs. Fra le tecniche di pivot di caratteristiche esistono alcuni

algoritmi che permettono di analizzare i termini di co-occorrenze al di là delle

semplici coppie ma prendono in considerazioni co-occorrenze simultanee fra più di

due termini. Queste tecniche prendono il nome di FPM Frequent Pattern Mining.

FPM utilizza tecniche che cercano termini che si verificano spesso insieme.

Considerata la vastità dei possibili insiemi di termini sono stati sviluppati algoritmi

per la scoperta efficiente di tali modelli. Per maggiori dettagli sulle tecniche

utilizzate si può fare riferimento al documento [18].

Nello schema di seguito mostrato sono rappresentate le fasi del sistema di Alert.

Figura 6: Schema a blocchi del sistema di alert

3.4.1 Il raggruppamento dei tweet per temi omogenei

La prima fase per la segnalazione degli alert è quello di effettuare il

raggruppamento dei tweet per temi omogenei. Tale raggruppamento è conosciuto in

Page 37: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

33

letteratura come il “clustering dei documenti”. Lo scopo di questa fase è quella di

ottenere insiemi omogenei di post in modo da individuare gli argomenti principali

che hanno scaturito l’evento.

A tale scopo ogni tweet viene rappresentato da vettori di dimensione pari al totale delle parole presenti in tutti i messaggi e i cui elementi sono valorizzati in funzione della presenza o meno delle parole nei singoli tweet.

Per la rappresentazione vettoriale dei tweet è utilizzata una metrica denominata Term Frequency Inverse Document Frequency. La metrica TF-IDF associa un peso maggiore ai termini che hanno una maggiore frequenza nel tweet ma che sono rari in tutti gli altri post.

Dopo aver rappresentato ogni tweet con il suo vettore viene applicato un algoritmo di clustering, il quale dato un insieme di tweet ottiene K raggruppamenti di tweet ognuno dei quali ha la caratteristica di contenere tweet simili fra loro. Per stabilire la similarità fra tweet è stata utilizzato il coefficiente di similarità del coseno.

Si rimanda ai sotto paragrafi per un maggiore dettaglio degli argomenti.

3.4.1.1 Rappresentazione di un documento di testo

Esistono sono diversi modi per modellare un documento di testo. Per esempio, può essere rappresentato come una “borsa di parole”, dove le parole appaiono in modo indipendente e l'ordine è irrilevante. La tecnica borsa di parole è ampiamente utilizzata nel recupero delle informazioni e di testi. Le parole all’interno della borsa vengono contate. Ogni parola corrisponde ad una dimensione nello spazio risultante di dati ed ogni documento diventa quindi un vettore costituito da valori non negativi su ogni dimensione. Ogni termine ha la sua frequenza che rappresenta il suo peso, il che significa termini che compaiono più frequentemente sono più importanti e descrittivi per il documento.

Dato l’insieme dei documenti D = d1, … dn e l’insieme delle parole presenti all’interno dei documenti D, T = t1,…, tm. Un documento è rappresentato da un vettore m dimensionale. Dato tf(d,t) che denota la frequenza del termine t nel documento d. La rappresentazione vettoriale di un documento è:

𝒕𝒅 = (𝒕𝒇 𝒅, 𝒕𝟏 ,… , 𝒕𝒇 𝒅, 𝒕𝒎 ) 3.26

Page 38: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

34

Anche se le parole più frequenti si presume siano più importanti, questo non è vero nel caso pratico. Ad esempio, parole come “un“ ed “e” sono probabilmente le parole più frequenti che appaiono nel testo, ma non sono descrittive e importanti per caratterizzare il documento. Infatti, le strategie più complesse, come il sistema di ponderazione TF-IDF come descritto di seguito viene normalmente utilizzato.

Con i documenti presentati come vettori, si misura la somiglianza di due documenti come la correlazione che si trova tra i vettori corrispondenti, che possono essere ulteriormente quantificati come il coseno dell'angolo tra i due vettori.

La figura mostrata di seguito rappresenta la distanza tra due documenti come l'angolo in uno spazio bidimensionale ma in pratica spazio del documento di solito ha un numero di dimensioni pari al numero di parole diverse contenute.

Figura 7: Rappresentazione vettoriale dei documenti

Nella rappresentazione di un documento termini come “un”, “e” non sono rappresentativi per il documento stesso per cui è necessaria una fase di pre-elaborazione che elimina tutte le parole non necessarie per la determinazione del tema di un documento. Le parole poco significative per la determinazione dell’argomento di un documento vengono comunemente dette “stop words”.

In secondo luogo, le parole devono essere derivate utilizzando l'algoritmo di Porter in modo che le parole che hanno iniziali identici ma con finali diversi vengono mappate in una sola parola. Per esempio la produzione, produrre, produce e prodotto nella parola prod. L'assunto di base è che diverse varianti morfologiche delle parole con la stessa radice sono tematicamente simili e dovrebbero essere trattate come una sola parola.

3.4.1.2 Definizione della TF – IDF (Term Frequency – Inverse Document Frequency)

Page 39: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

35

Nel processo di clustering, un cluster è di solito rappresentato con un oggetto baricentro. Generalmente, il baricentro di un cluster è la media di tutti gli oggetti del cluster, cioè il valore del centroide in ogni dimensione è la media aritmetica di quella dimensione su tutti gli oggetti del cluster. Sia C una serie di documenti.

Il baricentro è definito come la media di tutti i vettori dei singoli documenti:

𝒕𝒄 = 𝟏𝑪

𝒕𝒅𝒕𝒅𝝐𝑪 3.27

Come accennato in precedenza, i termini più frequenti non sono necessariamente quelli più informativi. Al contrario, termini che compaiono frequentemente in un piccolo numero di documenti ma raramente in altri documenti tendono ad essere più pertinenti e specifici per quel particolare gruppo di documenti, e quindi più utile per l'individuazione documenti simili. Al fine di catturare questi termini e sono relativi al importanza, trasformiamo le frequenze terminetf(d, t) nel TFIDF (frequenza termine e la frequenza inversa di documento).

La TFIDF pesa la frequenza di un termine t in un documento d con un fattore che sconti sua importanza con le sue presenze in tutta raccolta di documenti, che è definito come:

𝒕𝒇𝒊𝒅𝒇(𝒅, 𝒕) = 𝒕𝒇 𝒅, 𝒕 × 𝐥𝐨𝐠 𝑫𝒅𝒇 𝒕

3.28

dove D è il numero di documenti totali;

df(t) è la frequenza del termine t in tutti i documenti

tf(d,t) è la frequenza del termine t all’interno del documento d

Per tale motivo nella costruzione del vettore rappresentante il documento viene utilizzata questa misura rispetto alla frequenza dei singoli termini.

3.4.1.3 Misure di similarità per il raggruppamento dei documenti di testo

Il clustering che tradotto letteralmente dall’inglese significa “raggruppamento” rappresenta una delle tecniche utili per organizzare una grande quantità di documenti non ordinati in un piccolo numero di significativi e coerenti gruppi.

Per effettuare il clustering è necessario comparare ed analizzare delle funzioni di distanza che misurano la similarità fra documenti.

Page 40: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

36

Il clustering è una tecnica automatica di collezione e organizzazione in gruppi coerenti mentre i documenti diversi vengono classificati in altri gruppi.

Tuttavia, la definizione di una coppia di documenti simili o differenti non è sempre chiara e normalmente varia con l'impostazione del problema. Ad esempio, quando viene effettuato il clustering documenti di ricerca, due documenti sono considerati simili se condividono argomenti tematici simili. Quando il clustering viene impiegato su siti web, di solito siamo più interessati raggruppando le pagine componenti a seconda del tipo di informazioni che viene presentata in questa pagina. Quando si tratta siti web universitari, potremmo voler separare le home page dei professori dalle home page degli studenti, e le pagine per i corsi da pagine di progetti di ricerca.

Il raggruppamento accurato richiede una definizione precisa di distanza fra una coppia di documenti [13]. Sono stati proposti una varietà di misure ampiamente applicate come il coefficiente di correlazione di Jaccard, il coseno di similarità.

Per altri versi la somiglianza è spesso concepita in termini di distanza o non similarità. Misure come la distanza euclidea e l’entropia relativa sono stati applicati nel calcolo delle distanze per il clustering.

Prima di poter parlare di clustering è necessario individuare una misura di similarità fra documenti.

Per potersi definire come metrica una misura deve possedere le seguenti caratteristiche.

Dati x e y due oggetti in un insieme e d(x,y) la distanza fra i due oggetti:

1. La distanza fra ogni punto è non negativa 𝑑(𝑥,𝑦) ≥ 0

2. La distanza fra 2 oggetti è zero se e solo se i due oggetti sono identici,

𝑑 𝑥,𝑦 = 0 se e solo se , 𝑥 = 𝑦.

3. La distanza fra 2 oggetti è simmetrica 𝑑 𝑥,𝑦 = 𝑑(𝑦, 𝑥)

4. La misura deve soddisfare la disuguaglianza del triangolo :

𝑑 𝑥, 𝑧 ≤ 𝑑 𝑥,𝑦 + 𝑑(𝑦, 𝑧)

Di seguito vengono adesso dettagliate alcune delle metriche di similarità utilizzate per i documenti di testo.

Page 41: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

37

Distanza Euclidea

La distanza euclidea è una misura standard per problemi geometrici . È la distanza tra due punti e può essere facilmente misurata con un righello nello spazio a due o tre dimensioni. Soddisfa tutte le suddette quattro condizioni , e quindi è un metrica.

Per misurare la distanza tra i documenti di testo, dati due documenti DA e DB rappresentati rispettivamente dai loro vettori di termini ta e tb la distanza Euclidea fra due documenti e definita come:

𝐷𝐸 𝑇𝐴,𝑇𝐵 = ( 𝑤𝑡,𝑎 − 𝑤𝑡, 𝑏 !) !!!!

!! 3.29

dove l’insieme dei termini è T=t1…tm e viene utilizzata la ponderazione dei termini TF-IDF wt,a = tfidf(da,t).

Similarità del coseno

Quando i documenti sono rappresentati come vettori, la similarità dei documenti è rappresentata dalla correlazione tra i vettori. Questa misura, chiamata similarità del coseno, è quantificata come l’angolo del coseno fra i due vettori.

La similarità del coseno è una delle misure più utilizzate nel calcolo della similarità fra documenti di testo.

Dati due documenti di testo la loro similarità del coseno è data da:

𝑆𝐼𝑀𝑐 𝑡𝑎, 𝑡𝑏 = !" .!" |!"| ! |!"|

3.30

Dove ta e tb sono vettori m-dimensionali dato il set di termini T=t1…tm. Ogni dimensione rappresenta un termine con il suo peso che è non negativo. Come risultato della similarità del coseno si ottiene un valore compreso [0,1].

Un’importante proprietà della similarità del coseno è l’indipendenza dalla lunghezza del documento. Per esempio combinando due copie identiche dello stesso documento ottenendo il nuovo pseudo documento d’ la similarità di coseno fra d e d’ è 1 che significa che questi documenti sono considerati identici. Questa proprietà indica che se due documenti hanno una frequenza di termini differente ma

Page 42: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

38

utilizzano gli stessi termini il risultato sarà identico e quindi i due documenti verranno considerati identici.

Questa proprietà non soddisfa la seconda condizione affinché una misura sia anche una metrica ma rappresenta una buona misura di similarità fra documenti.

Coefficiente di Jaccard

Il coefficiente di Jaccard misura la similarità come l’intersezione diviso l’unione dei due oggetti.

La definizione formale è la seguente:

𝑆𝐼𝑀𝑗 𝑇𝑎,𝑇𝑏 = !".!"!" !! !" !!!".!"

3.31

Il coefficiente di Jaccard è una misura di similarità con valori compresi fra 0 e 1. Vale 1 quando Ta= Tb vale zero quando i due insiemi sono totalmente disgiunti.

3.4.1.4 Algoritmo di Clustering K-means

Il clustering è il processo di raggruppamento di un insieme di oggetti in classi di oggetti simili. Esistono due tipologie di clustering:

1. clustering basato sulla distanza: l’appartenenza ad un gruppo è caratterizzata

dalla vicinanza di quell’oggetto al gruppo;

2. clustering concettuale: gli oggetti appartengono ad un cluster se questo

definisce un concetto comune ai diversi oggetti.

Questo algoritmo di clustering permette di suddividere gruppi di oggetti in K partizioni, sulla base dei loro attributi. Si assume che gli attributi degli oggetti possano essere rappresentati come vettori, e che quindi formino uno spazio vettoriale. L’obiettivo è quello di minimizzare la varianza totale intra-cluster. Ogni cluster viene identificato mediante un centro (punto medio). Vi è una procedura iterativa dove, inizialmente, vengono create K partizioni e, successivamente, ad ogni partizione si assegnano i punti d’ingresso in modo random, o utilizzando delle euristiche. Viene quindi calcolato il centroide di ogni gruppo; si costruisce così una nuova partizione, associando ogni punto dato in input al cluster che ha il centro più

Page 43: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

39

vicino ad esso. Fino alla convergenza dell’algoritmo, vengono ricalcolati i centroidi per i nuovi cluster.

La convergenza si raggiunge quando non c’è nessun cambiamento nella matrice U, cioè quando la differenza fra i valori della funzione obiettivo in due iterazioni successive non supera una soglia prefissata. L’algoritmo non garantisce il raggiungimento dell’ottimo globale. La qualità della soluzione finale dipende largamente dal set di cluster iniziale e può, in pratica, ottenere una soluzione ben peggiore dell’ottimo globale. Dato che l’algoritmo è di solito estremamente veloce, è possibile applicarlo più volte e, fra le soluzioni prodotte, scegliere quella più soddisfacente.

Uno svantaggio dell’algoritmo è che esso richiede di scegliere, a priori, il numero di cluster (K) da trovare.

L’algoritmo K-means funziona come segue:

• Dato un insieme di documenti D e un numero prefissato di cluster k,

ognuno con un proprio baricentro. Gli oggetti vengono assegnati al

cluster con il baricentro più vicino.

• Successivamente vengono ricalcolati i baricentri per ogni cluster e tutti i

documenti vengono riassegnati sulla base dei nuovi baricentri. Questa

operazione viene iterata fino a quando tutti gli oggetti rimangono nello

stesso cluster dopo un aggiornamento dei baricentri.

La problematica principale da affrontare è quella di stabilire i cluster iniziali con i loro relativi baricentri. L’algoritmo K-means standard prevede di scegliere i cluster in modo casuale.

L’algoritmo K-means funziona con misure di distanza che mira essenzialmente a ridurre al minimo le distanze all'interno del cluster. Pertanto, le misure di similarità che valgono 1 quando i due oggetti sono identici devono essere convertiti per rappresentare misure di distanza. Per cui due oggetti identici devono avere distanza 0.

Page 44: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

40

3.4.2 La summarizzation per singolo raggruppamento

Il processo di riassumere i tweet di un raggruppamento prende il nome di “summarizzation” [14].

Questa sezione tratta una tecnica di summarizzation che prevede la selezione di un documento all’interno di un gruppo individuando il tweet che ha la minore distanza della metrica scelta rispetto al baricentro del cluster.

I tweet appartenenti ad un cluster, rappresentati attraverso vettori in cui ad ogni termine viene associato il valore della TF-IDF, vengono confrontati con il baricentro del cluster e viene estratto il tweet con la maggiore metrica di similarità rispetto al baricentro del cluster.

3.4.3 La pubblicazione degli alert

I tweet ottenuti dall’estrazione dai singoli raggruppamenti di quelli con maggiore similarità rispetto al baricentro del cluster rappresentano l’uscita del sistema e quindi tali post vengono ripubblicati per segnalare un alert.

*** OMISSIS ***

Page 45: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

41

4 Il sistema di malware detection

In questo capitolo viene descritta l’architettura del sistema implementato per l’analisi dei contenuti di Twitter nel rilevamento di eventi inerenti la diffusione di nuovi malware.

Vengono poi descritti gli strumenti informatici utilizzati per l’implementazione del sistema dal punto di vista software.

4.1 Architettura del sistema proposto

Dallo stato dell’arte si nota come notevoli studi sono stati effettuati nel settore dell’analisi dei contenuti dei social networks.

Il sistema proposto in questo lavoro di tesi accomuna varie tecniche già funzionanti utilizzate nei vari sistemi studiati e descritti nel capitolo 2 e aggiunge alcuni meccanismi che permettono un’ottimizzazione e un miglioramento nell’analisi dei contenuti ai fini della rilevazione dei malware.

Il sistema implementato si compone di tre sottosistemi:

• Il sistema di estrazione e collezione dei tweet, il cui scopo è quello di

rimanere in ascolto su Twitter su determinate parole chiave selezionate

che sono ricorrenti nei tweet che fanno riferimento ad attacchi

informatici. Estrae tali tweet e li memorizza in un database per le

successive elaborazioni.

• Il sistema di Alert, che parallelamente al sistema di estrazione e

collezione dei tweet analizza tutti i tweet estratti, classificandoli in

messaggi relativi ad attacchi informatici e messaggi generici, calcolando

delle soglie di numero di tweet dinamiche superate le quali è necessario

segnalare un alert. Il sistema elabora in tempo reale i messaggi ricevuti in

finestre temporali di durata variabile la cui dimensione è dipendente da

una funzione matematica.

Page 46: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

42

• Il sistema di analisi e autoapprendimento, il cui compito è quello di

analizzare ad intervalli giornalieri i feedback ricevuti dai suoi utenti con

lo scopo di migliorare le sue capacità di selezione dei Tweet.

*** OMISSIS ***

4.2 Sistema di estrazione e collezione dei tweet

Il sistema di estrazione e collezione dei tweet esegue le seguenti operazioni:

• sfrutta le API di Twitter ed estrae tutti i tweet contenenti alcune parole

chiave (Malware, backdoor, cyber attack, ddos, virus, trojan);

• per ogni messaggio estratto contenente una delle parole chiave descritte

al punto precedente vengono estratte tutte le informazioni relative al

tweet e salvate sul database SQL presente sul sistema di estrazione dei

tweet.

I dati immagazzinati relativi al singolo tweet estratto sono i seguenti:

• l’id del tweet,

• la data di pubblicazione,

• il testo,

• la lingua,

• il numero di retweet,

• l’id dell’utente,

• i link presenti sul tweet.

I dati così memorizzati nel sistema divengono l’ingresso del successivo sottosistema di analisi dei dati e rilevazione di diffusione di nuovi malware.

4.3 Sistema di Alert

I moderni sistemi devono essere in grado di analizzare in tempo reale i contenuti e di segnalare tempestivamente gli eventi che si verificano. A tal proposito MAS è

Page 47: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

43

stato sviluppato utilizzando tecniche adattive di calcolo delle soglie di rilevazione e degli intervalli di tempo di analisi.

Di seguito vengono dettagliate tutte le fasi previste dal sistema di Alert che ha come compito quello di analizzare i dati estratti dal sistema di estrazione e collezione dei tweet per una successiva segnalazione di un evento.

Il sistema può essere descritto figura di seguito mostrata.

Figura 8: Diagramma del sistema di Alert

4.3.1 Filtraggio dei tweet collezionati con l’utilizzo di un classificatore naïve di Bayes

Il sistema di collezione dei tweet salva in una tabella del database, i tutti i tweet che contengono almeno una parola chiave rilevante ai fini del rilevamento dei Malware.

Ogni tweet subisce una fase di pre-elaborazione che elimina dai tweet tutte le parole che non sono significative ai fini della classificazione, come ad esempio gli articoli, le congiunzioni etc. Tali parole prendono il nome di “stopwords” [16]. Inoltre vengono eliminate quelle parole insite del social network come RT (retweet)

Page 48: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

44

e @nome (inserita per menzionare un utente). Vengono eliminati tutti i link dal testo dei tweet.

I tweet così ottenuti vengono filtrati dal sistema sfruttando un classificatore naïve di Bayes come specificato nel precedente capitolo, il quale è stato precedentemente addestrato e il cui scopo è selezionare i soli messaggi che rappresentano notizie relative a nuovi attacchi informatici e malware escludendo quei messaggi che pur contenendo le parole chiave utilizzate per l’estrazione trattano argomenti differenti come ad esempio gli antivirus.

4.3.2 Calcolo dei dati statistici e della soglia di alert

Come specificato nel paragrafo 4.2 viene utilizzata una tecnica ibrida per il calcolo di soglie variabili e finestre di osservazione dinamiche per la rilevazione di nuovi eventi.

4.3.3 Clustering dei tweet filtrati

Quando il numero di tweet supera la soglia calcolata viene effettuato il processo di Clustering.

Per prima cosa viene calcolata la misura per tutti i termini TF-IDF (Term Frequency, Inverse Document Frequency) che mette in relazione l’importanza di un termine in termini di frequenza nel documento e in termini di rarità nei documenti. Più è raro un termine maggiore sarà il suo peso.

Come misura di similarità fra i documenti viene utilizzata la “similarità del coseno” trattata nei paragrafi precedenti.

Ogni tweet viene quindi rappresentato come un vettore di termini usando un ordinamento globale di tutti i termini trovati durante l’elaborazione dove ogni valore del vettore indica il valore della misura TF-IDF.

A questo punto viene utilizzato l’algoritmo K-Mean per il raggruppamento per area tematica. L’algoritmo K-mean opera come segue:

• vengono estratti in modo casuale K tweet e questi vengono considerati

come baricentri di K cluster;

• per ogni tweet viene calcolata la similarità relativa ad un cluster

considerando la similarità del coseno e ogni tweet viene assegnato al

cluster con similarità maggiore;

Page 49: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

45

• vengono calcolati i nuovi baricentri dati dalla media dei vettori presenti in

ogni cluster;

• l’algoritmo viene reiterato 100 volte. Infine vengono considerati i cluster

che massimizzano la similarità.

4.3.4 Summarizzation dei tweet raggruppanti con l’algoritmo di clusterizzazione K-mean

Viene applicato il seguente algoritmo di summarization che permette dati i cluster relativi ai messaggi estratti nell’intervallo di tempo di selezionare il messaggio più rappresentativo.

Il messaggio più rappresentativo di un gruppo di messaggi è dato da quello che ha la maggiore similarità rispetto al baricentro del gruppo.

Il messaggio risultato dal sottosistema viene salvato nel database sql al fine di essere utilizzato dal successivo sottosistema.

*** OMISSIS ***

4.4 Le Api di Twitter

Twitter fornisce per sviluppatori privati o facenti parte di organizzazioni la possibilità di realizzare applicazioni che interagiscano con il social network stesso. E’ possibile suddividere le applicazioni realizzabili in due grandi gruppi: quelle che permettono l’inserimento di informazioni e quelle che ne permettono il recupero. Nel primo tipo rientrano tutte quelle applicazioni, web-based o meno, che danno la possibilità a un iscritto di poter inserire un nuovo messaggio, nonché, in modo generale, di interagire in qualsiasi modo con gli altri utenti. Nel secondo tipo rientrano invece le applicazioni che permettono l’estrazione dei contenuti già presenti su Twitter: è possibile, ad esempio, richiedere informazioni relative a utenti o tweet singoli, la lista degli ultimi messaggi di un utente (ovvero la sua timeline) e molto altro. E’ possibile naturalmente scrivere applicazioni che rientrino in entrambe le categorie, arrivando a fornire quindi un servizio praticamente identico allo stesso Twitter. Vi `e inoltre la possibilità di realizzare applicazioni di ricerca sui contenuti inseriti all’interno del social network, sempre utilizzando le API [15] messe a disposizione.

Page 50: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

46

La possibilità di recuperare dati dal social network `e resa possibile tramite una serie di API messe liberamente a disposizione degli sviluppatori che permettono di fatto l’estrazione di tutti i dati relativi a utenti e messaggi presenti su Twitter. Le API disponibili, la cui documentazione è visionabile in [15], permettono tramite richieste HTTP l’estrazione delle informazioni in diversi formati, principalmente xml, json, rss e atom.

Esistono diversi tipi di Api rese disponibili da Twitter:

• Twitter for Websites: una suite che permette di integrare un sito web con

contenuti Twitter molto semplicemente. Queste Api sono utilizzabili anche

dai meno esperti e un esempio comune è l’inserimento del bottone Twitter

per la condivisione dei contenuti di un sito web su Twitter.

• REST API: permettono l' accesso al core interno di Twitter, permettono la

lettura e la scrittura di tweet, il profilo degli utenti. I dati vengono restituiti in

formato JSON.

• Search API: queste Api fanno parte del REST API di Twitter, permettono e

si comportano in modo simile alla funzione di ricerca presente nei client

Twitter (sito web o applicazioni mobili). Le ricerche tramite Twitter Api

permettono di estrarre i tweet pubblicati negli ultimi 7 giorni.

E’ importante sapere che queste API sono focalizzate sulla rilevanza dei tweet e non sulla completezza. Questo significa che alcuni Tweet possono essere mancanti.

Per avere delle estrazioni di dati completi di tutti i tweet è necessario utilizzare le API Streaming.

• Streaming API: queste Api permettono lo streaming in real-time

di Twitter. Sono utili nel caso sia necessario un uso intensivo dei

dati. Permettono di condurre ricerche tematiche in base a parole

chiave o ricerche generiche selezionando l’insieme di utenti da

seguire.

Page 51: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

47

4.4.1 Le Streaming API

Twitter mette a disposizione 3 tipologie di Streaming API:

• Public stream: flussi di dati pubblici adatto per seguire utenti specifici o

argomenti attraverso l’utilizzo di parole chiave

• User stream: flussi di dati relativi ai singoli utenti, contenenti all’incirca tutti

i dati corrispondenti ad un singolo utente

• Site stream: la versione multiutente dei flussi di utenti, destinato ai server che

devono collegarsi a Twitter a nome di altri utenti.

La costruzione di una richiesta utilizzando le API è di facile e immediata comprensione. Si prenda come esempio la richiesta per l’estrazione delle informazioni di un utente. Come descritto in [15], essa deve rispettare il seguente standard:

http://api.twitter.com/[vers]/users/show.[format]?user_id=[ID]

Modificando opportunamente i parametri in essa presenti (vers, format e ID) `e possibile effettuare una richiesta delle informazioni, ad esempio, dell’utente contrassegnato con user id 12 e nel formato xml. Il parametro vers `e al momento limitato al valore 1 e presente per versioni future delle API in oggetto. La richiesta diventa dunque:

http://api.twitter.com/1/users/show.xml?user_id=12

La risposta restituita, in questo esempio nel formato xml, sarà simile alla seguente:

<user>

<id>12</id>

<name>Jack Dorsey</name><screen name>jack</screen_name><location>NYC & San Francisco</location><description>

Creator, Co-founder and Chairman of Twitter; CEO of Square.

</description> <profile_image_url>

http://a3.twimg.com/profile_images/113072/image_normal.jpg

</profile_image_url> <url/> <protected>false</protected><followers_count>1593743</followers_count>

... </user>

Page 52: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

48

All’interno dell’xml risultante è dunque possibile recuperare tutte le informazioni necessarie dell’utente, quali nome, posizione geografica, una breve descrizione, l’url della sua immagine del profilo e così via. Similmente avviene per le altre richieste, quali l’estrazione di informazioni riguardanti un singolo messaggio o la timeline di un utente.

Come conclusione di questo paragrafo `e bene segnalare l’esistenza di librerie per diversi linguaggi, quali ad esempio C, C++, Java, PHP, Ruby e Flash, che permettono allo sviluppatore di concentrarsi sugli scopi della sua applicazione piuttosto che sulla scrittura di codice relativo all’utilizzo delle API. Nello sviluppo della presente tesi `e stata in particolare utilizzata una libreria non ufficiale per Java denominata Twitter4J [5], la quale mette a disposizione del programmatore tutti i metodi necessari per effettuare le richieste tramite le API di Twitter.

4.4.2 Il sistema di autorizzazione delle API di TwitterOAuth

Twitter utilizza OAuth per fornire l'accesso autorizzato alle sue API.

OAuth è un protocollo aperto, sviluppato da Blaine Cook e Chris Messina a partire dal novembre 2006. Tale protocollo permette l'autorizzazione di API di sicurezza con un metodo standard e semplice sia per applicazioni portatili, sia per applicazioni per pc fisso e web.

Per gli sviluppatori di applicazioni è un metodo per pubblicare e interagire con dati protetti.

OAuth garantisce ai service provider l'accesso da parte di terzi ai dati degli utenti proteggendo contemporaneamente le loro credenziali.

Per esempio permette all'utente di dare ad un sito, chiamato consumer, l'accesso alle sue informazioni presenti su un altro sito, detto service provider, senza condividere la sua identità.

Il protocollo OAuth 1.0 è stato pubblicato come RFC 5849 nell'aprile 2010.

L'idea di base è quella di autorizzare terze parti a gestire documenti privati senza condividere la password. La condivisione della password infatti presenta molti limiti a livello di sicurezza, come per esempio non garantisce supporto per singoli privilegi su determinati file o operazioni, e soprattutto rende accessibile l'intero account e il pannello di amministrazione. In particolare questo accesso incondizionato è indesiderato. Inoltre l'unico modo per revocare l'accesso è cambiare la password dell'intero account.

Page 53: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

49

OAuth è nato quindi con il presupposto di garantire l'accesso delegato ad un client specifico per determinate risorse sul server per un tempo limitato, con possibilità di revoca.

In OAuth esistono 3 attori principali:

• Server

• Client

• Utente

L'utente è la persona fisica che vuole garantire l'accesso alle risorse presenti sul server.

Il client è la parte che richiede l'accesso alle risorse protette. Per far questo il client interagisce con il server ottenendo delle proprie credenziali temporanee. Per accedere alle risorse protette, il client richiede all'utente il permesso, detto token di accesso. Una volta ottenuto può accedere e interagire con le risorse stabilite per un breve periodo.

OAuth 1.0 presenta alcune limitazioni a livello di sicurezza. Il server non svolge questo servizio "gratuitamente", ma raccoglie informazioni riguardanti l'utente, il client e la loro interazione. OAuth 1.0 non garantisce confidenzialità né sulle richieste né sui contenuti. Sebbene questo protocollo garantisca che il client non acceda ad informazioni indesiderate, non garantisce che l'uso delle risorse autorizzate rimanga nell'ambito specificato. Per questo motivo OAuth suggerisce al server di proteggere le risorse tramite il protocollo TLS.

Per garantire l'integrità delle informazioni, OAuth offre 3 metodi diversi:

• Plaintext -> usato solo con protocollo HTTPS;

• HMAC

• RSA

Un'evoluzione di OAuth 1.0 è descritta nel documento RFC 6749 dell'ottobre 2012. Il principio di funzionamento è il medesimo, ma differisce dal predecessore per qualche miglioramento nel servizio. Infatti OAuth 2.0 presenta una chiara divisione dei ruoli, implementando un mediatore tra client e server. Un altro

Page 54: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

50

vantaggio rispetto alla precedente versione è dato dalla possibilità di prolungare il tempo di utilizzo del token di accesso qualora desiderato.

Gli attori sono i medesimi con l'aggiunta di un server mediatore. Quest'ultimo ha il principale compito di gestire i token di accesso tra client e server. Il server che funge da mediatore può essere lo stesso che ospita le risorse alle quali accedere. Il server mediatore può gestire token di accesso provenienti da più di un solo server.

I limiti di OAuth 2.0 sono i medesimi di OAuth 1.0. I protocolli Oauth non sono compatibili fra loro.

Autenticazione Applicazione - Utente

Questa è la forma più comune di autenticazione delle risorse per l'attuazione in OAuth 1.0A di Twitter.

La richiesta firmata identifica l’identità dell’applicazione in aggiunta a quella dell’utente permettendo all’utente finale di effettuare chiamate alla API, utilizzando un token di accesso.

Autenticazione solo per Applicazione

Si tratta di una forma di autenticazione in cui l'applicazione fa richieste API per proprio conto, senza un contesto utente. Non tutti i metodi API supportano l'autenticazione applicazione solo

4.5 Implementazione del sistema

In funzione delle tipologie di API messe a disposizione da Twitter la scelta adottata per la raccolta delle informazioni inerenti i Twitter contenenti le parole chiave di interesse è ricaduta sull’utilizzo delle API di tipo Streaming.

Le Streaming API infatti permettono di estrarre in modo continuativo le informazioni dal Social Network, quindi permettono all'applicazione di rimanere in ascolto su Twitter e di ricevere informazioni ogni qual volta si presenta un'occorrenza di un tweet contenente alcune parole chiave selezionate.

Page 55: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

51

A differenza delle altre tipologie di API, vengono estratte tutti i tweet senza che questi vengano filtrati. Si ricordano infatti alcune limitazioni delle REST API:

• permettono l'estrazione tramite una funzione di ricerca di tweet relativi agli

ultimi 7 giorni;

• vengono filtrati i tweet con maggiore rilevanza e non tutti quelli che

presentano le parole chiave ricercate.

Queste limitazioni non garantiscono un'estrazione completa di tutte le informazioni.

Per lo scopo della ricerca dei malware è necessario avere dei dati completi.

4.5.1 Twitter4J

Per l’interrogazione delle API di Twitter `e stata utilizzata Twitter4J [16], una libreria non ufficiale scritta in Java che permette l’utilizzo delle API fornite dal social network. Sviluppata da Yusuke Yamamoto a partire dal 2007 `e rilasciata sotto licenza BSD.

4.5.2 La memorizzazione dei dati raccolti

Le richieste API Streaming dopo una fase di autenticazione utilizzando lo standard OAuth e dopo aver settato le parole chiave per la ricerca ottengono come risposta dei flussi di dati in formato JSON chiamati Stati.

I flussi ricevuti contengono informazioni, sia relative al tweet sia sull’utente e quindi sul profilo dell’utente.

Le possibilità di memorizzazione delle informazioni sono diverse:

• Salvataggio di file temporanei

• Salvataggio su database

Il salvataggio su file temporanei sequenziali contenenti i dati in formato JSON hanno le seguenti limitazioni: trattandosi di una struttura sequenziale la ricerca, i filtri e l'estrazione di informazioni risulta uno strumento meno flessibile di un database relazionale.

Page 56: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

52

Il database invece risulta uno strumento per la memorizzazione delle informazioni dinamico e robusto. E' possibile infatti effettuare diverse tipologie di analisi, query sui dati anche in offline e individuare i parametri da utilizzare per il filtro delle informazioni.

4.5.3 La Base Dati

Di seguito si dettagliano le tabelle utilizzate utilizzate dal sistema MAS.

4.5.3.1 Tabella tweet_keyword:

La tabella tweet_keyword ha come scopo la memorizzazione di tutti i tweet collezionati dal sottosistema Tweet retrevier.

Figura 4.9: Tabella SQL dei tweet contenenti le parole chiave

Le informazioni salvate nella tabella sono:

• idtweet: id univoco del social network del tweet

• savedat: data di salvataggio del tweet

• text: testo del tweet

• nretweet: numero di ritweet ricevuti dal messaggio

• userid: id univoco dell’utente che ha pubblicato il messaggio

• link1,link2, link3: link contenuti nel messaggio

• createdat: data di creazione del link

Page 57: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

53

4.5.3.2 Tabella user

La tabella user contiene alcuni dati degli utenti di Twitter che hanno pubblicato messaggi.

Quando il sistema MAS colleziona un messaggio, verifica se nella tabella user è presente l’utente e in caso contrario memorizza le sue informazioni.

Figura 10: Tabella SQL degli utenti

Le informazioni salvate nella tabella sono:

• userid: id univoco dell’utente nel social network Twitter

• savedat: data di salvataggio dell’utente nel sistema MAS

• location: luogo dell’utente

• nfollower: numero follower dell’utente

• nfriend: numero amici dell’utente

• dprofilo: data di iscrizione dell’utente al social network Twitter

4.5.3.3 Tabella analisi

La tabella analisi, contiene le informazioni statistiche salvate dal sistema di Alert. Tali informazioni sono utili perché ad ogni fase del sistema di alert fa riferimento ai valori della fase precedente. Questa tabella è utile anche per effettuare un’analisi dei dati sperimentali.

Page 58: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

54

Figura 11: Tabella SQL dei dati statistici

Le informazioni salvate nella tabella sono:

• inizio: data e ora di inizio a cui si riferiscono i dati statistici

• fine: data e ora di fine a cui si riferiscono i dati statistici

• ntweet: numero di messaggi filtrati e considerati malware del periodo

• dk: distanza fra la media della fase precedente e il numero di messaggi

correnti tk

• vk2: varianza mobile esponenziale

• tk: soglia riferita all’intervallo di tempo inizio, fine

4.5.3.4 Tabella addestra

La tabella “addestra” viene utilizzata per addestrare il classificatore di Bayes. Tale tabella infatti è costituita da tante stringhe di testo e da un campo che identifica la classificazione.

Figura 12: Tabella SQL per l’addestramento del classificatore

Le informazioni salvate nella tabella sono:

• id: codice identificativo del record

• text: testo utilizzato dal classificatore di Bayes

• categoria: etichetta associata al record

Page 59: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

55

4.5.3.5 Tabella tweet_filtro

La tabella tweet_filtro viene alimentata dal sistema Alert, il quale attraverso il classificatore di Bayes seleziona i messaggi che rappresentano notizie di malware.

Tali messaggi filtrati vengono salvati all’interno della tabella tweet_filtro.

Figura 13: Tabella dei tweet filtrati dal classificatore

Le informazioni salvate nella tabella sono:

• idtweet: id univoco del social network del tweet

• savedat: data di salvataggio del tweet

• text: testo del tweet

• nretweet: numero di ritweet ricevuti dal messaggio

• userid: id univoco dell’utente che ha pubblicato il messaggio

• link1,link2, link3: link contenuti nel messaggio

• createdat: data di creazione del link

4.5.3.6 Tabella tweet_notfiltro

La tabella tweet_notfiltro viene alimentata dal sistema Alert, il quale attraverso il classificatore di Bayes seleziona i messaggi che rappresentano notizie di malware oppure no. In questa tabella vengono memorizzati i messaggi che il classificatore ha etichettato come messaggi generici non riferiti a nuovi attacchi informatici.

Page 60: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

56

Figura 14: Tabella SQL dei tweet scartati dal classificatore

Le informazioni salvate nella tabella sono:

• idtweet: id univoco del social network del tweet

• savedat: data di salvataggio del tweet

• text: testo del tweet

• nretweet: numero di ritweet ricevuti dal messaggio

• userid: id univoco dell’utente che ha pubblicato il messaggio

• link1,link2, link3: link contenuti nel messaggio

• createdat: data di creazione del link

4.5.4 Diagramma Entità relazione delle tabelle della base dati

Viene di seguito descritta attraverso la figura in basso le relazioni fra le tabelle della base dati.

Page 61: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

57

Figura 15: Relazioni delle tabelle della base dati

I messaggi presenti nella tabella tweet_keyword vengono poi suddivisi nelle tabelle tweet filtro relativi ai messaggi che il classificatore di Bayes ha selezionato come messaggi di Alert e tweet_not filtro per i messaggi che il classificatore ha selezionato come messaggi generici.

La tabella user tiene traccia di tutti gli utenti che hanno scritto un messaggio che è stato collezionato dal sistema MAS.

Page 62: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

58

4.5.5 Visione di insieme del sistema e delle rispettive tabelle

In questo paragrafo viene mostrato il collegamento dei sottosistemi e della base di dati mostrando le relative interconnessioni.

Figura 16: Collegamento dei sottosistemi con la base dati

Il sistema di estrazione e collezione dei tweet resta in ascolto sullo streaming di Twitter e salva i messaggi ottenuti nella tabella tweet_keyword.

La tabella tweet_keyword è l’ingresso del sottosistema di Alert che effettua la classificazione dei messaggi e il salvataggio dei messaggi sulle tabelle tweet_filtro e tweet_notfiltro rispettivamente per i messaggi classificati come malware e per quelli classificati come non malware. Il sistema di alert analizza i messaggi e pubblica i risultati delle analisi sulla tabella “analisi”, inoltre interagisce con il sistema Twitter pubblicando i messaggi.

Estrazione e collezione dei

tweet

Alert Analisi feedback e autoapprendimento

TWITTER

Raccolta like e retweet dai post di MAS

Pubblicazione nuovi status Raccolta tweet

(keyword)

Page 63: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

59

Inoltre il sistema di alert ad ogni iterazione utilizza la tabella addestra per addestrare il classificatore di Bayes utile per la classificazione dei messaggi.

La tabella addestra viene aggiornata dal sistema di analisi feedback e autoapprendimento, in funzione dei feedback ricevuti dagli utenti di Twitter.

4.5.6 Il sistema di raccolta dei tweet – TweetRetriever

Al fine di collezionare i tweet che con buona probabilità contengono informazioni sulla diffusione di nuovi attacchi informatici è stato realizzato un programma che sfrutta le API di Twitter per estrarre tutti quei tweet che contengono alcune parole chiave specifiche.

Considerata la natura del problema, estrarre in tempo reale i tweet, è stato necessario utilizzare una tipologia di API messe a disposizione dal social network Twitter denominate Streaming API.

La connessione allo streaming richiede una connessione http persistente. Nell’immagine di seguito mostrata estratta dal sito dedicato agli sviluppatori di Twitter viene mostrato il meccanismo di connessione, di richiesta da parte di un’applicazione di dati e la ricezione da parte di Twitter.

Il codice per mantenere la connessione dello streaming è tipicamente in esecuzione in processo separato dal processo che richiede la connessione http.

Figura 17: Schema a blocchi del sistema di streaming dei tweet

Page 64: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

60

In questo sistema l’utente effettua una richiesta, il server http estrae i risultati dal datastore e rindirizza la vista.

Il processo di connessione allo streaming effettua l’apertura della connessione, Twitter accetta la connessione. A questo punto al presentarsi di tweet con le caratteristiche della query definita dall’utente questi vengono inviati al processo di connessione che riceve i tweet e li memorizza per poi inviarli al server http.

Il sistema di raccolta dei Tweet quindi dopo aver effettuato l’autenticazione a Twitter e la connessione con il database MySQL effettua una connessione allo streaming.

L’estrazione dei tweet dallo streaming viene effettuato impostando una query con le parole chiave che deve contenere il tweet affinchè venga estratto dallo streaming.

Come specificato precedentemente le parole chiave sono selezionate sono le seguenti:

malware, backdoor, cyber attack, ddos, trojan, spoofing, sniffing, worm, zombie.

4.5.6.1 API utilizzate

Al fine di implementare il sistema sono state utilizzate le seguenti API di Twitter sfruttando la libreria non ufficiale Twitter4J:

• TwitterStreamFactory – oggetto utilizzato per creare un’istanza della

connessione allo streaming;

• Twitterstream – oggetto utilizzato per la connessione allo streaming;

• onStatus – metodo ereditato dall’oggetto Twitterstream e viene attivato

alla ricezione di un tweet. Il sistema effettua il salvataggio ogni qual volta

viene invocato il metodo;

Page 65: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

61

4.5.7 Il sistema di Alert

Il sistema di Alert, utilizza la base di dati costruita dal sistema di raccolta dei tweet ed effettua alcune elaborazioni successive.

Dopo aver effettuato la connessione al database MySQL e l’autenticazione a Twitter, effettua ad intervalli regolari impostati parametricamente l’addestramento del classificatore di Bayes attraverso il metodo “void addestra(bayes)” specificato nei paragrafi successivi.

Estrae dalla tabella tweet_keyword l’insieme dei tweet estratti nell’intervallo di tempo. Effettua la classificazione dei tweet estratti utilizzando il classificatore di Bayes.

Se il tweet viene classificato come generico viene salvato sulla tabella tweet_notfiltro se il tweet viene classificato come notizia su malware viene salvato sulla tabella tweet_filtro. Viene inoltre generato un dizionario di tutte le parole contenute in ogni messaggio classificato come malware. Di ogni parola viene memorizzata l’informazione della frequenza.

Una volta completata l’operazione di classificazione dei messaggi, generazione del dizionario delle parole viene costruita una lista di vettori rappresentanti i singolo tweet.

La costruzione dei vettori viene effettuata come descritto nel paragrafo “3.4.1.1” utilizzando come pesi dei valori dei vettori la misura TF-IDF. Vengono calcolati i dati statistici poi salvati nella tabella “analisi” e se viene superata la soglia calcolata vengono effettuate le seguenti operazioni:

vengono calcolati i raggruppamenti attraverso il metodo kmean descritto successivamente, viene pubblicato il tweet estratto attraverso l’algoritmo kmean e il tweet pubblicato viene salvato nella tabella tweet_pubblicati.

4.5.7.1 API utilizzate

Le API di Twitter utilizzate sono quelle relative alla pubblicazione di nuovi tweet. Infatti al verificarsi di un evento di rilevazione di contenuti contenenti informazioni e notizie di nuovi software malevoli il sistema MAS pubblica un nuovo tweet.

Page 66: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

62

Il metodo utilizzato è updateStatus che accetta come argomento una stringa e restituisce il nuovo tweet pubblicato.

4.5.7.2 Metodi implementati

Al fine di realizzare il sottosistema è stato necessario implementare i seguenti metodi:

• StringremoveStopWord(String) – funzione che data una stringa rimuove

tutti i termini di stop word come ad esempio “a”, “an”, “the” etc. Tali

informazioni infatti non sono influenti al fine di classificare un

documento; Tale funzione inoltre è stata implementata al fine di

rimuovere i caratteri speciali di Twitter come RT e @. Infine la funzione

rimuove anche i link presenti nel testo del tweet;

• VoidaddestraBayes(Classificatore) – metodo che utilizzando i dati

presenti nella tabella addestra effettua all’addestramento del classificatore

semplificato di Bayes; legge un record alla volta ed esegue il metodo learn

del classificatore;

• Double Tf(documento, termine) – funzione che restituisce il valore Term

Frequency accetta come ingresso la lista dei documenti e il termine per il

quale deve essere calcolata la frequenza restituisce il valore della

frequenza del termine all’interno del documento

• Double idf(documenti, termine) – funzione che restituisce il valore Inverse

Document Frequency. Accetta in ingresso la lista dei documenti;

• Double cossim(double a[], double b[]) – funzione che dati in ingresso due

vettori di double restituisce il coefficiente di similarità del coseno;

• Int [] kmeans() – implementazione dell’algoritmo di clustering k-means.

Dato in ingresso l’elenco dei documenti restituisce il vettore di k interi

contenenti gli indici dei tweet che hanno la minor distanza rispetto al

baricentro dei singoli cluster;

Page 67: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

63

• Double [] Creavettoredoc(testo, dizionario, listatweet) – funzione che data

la lista dei tweet restituisce il vettore dei documenti calcolando per ogni

vettore i valori di TF-IDF.

*** OMISSIS ***

4.5.7.3 API utilizzate

Al fine di calcolare la metrica di influenza degli utenti che hanno rilasciato un feedback su uno dei messaggi sono state utilizzate diverse API messe a disposizione da twitter.

Il sistema di analisi dei feedback e di autoapprendimento utilizza le seguenti API:

• IDsgetFriends(Id) – metodo che dato l’id di un utente di Twitter restituisce

l’elenco degli id degli amici dell’utente;

• IDsgetFollowerIds(Id) – metodo che dato l’id di un utente restituisce

l’elenco degli id dei suoi followers;

• status getUserTimeline(Id) – funzione che dato l’id dell’utente restituisce

gli ultimi status (tweet) pubblicati dall’utente

• getfavouritecount(id) – metodo che dato l’id di un post di twitter

restituisce il numero di “mi piace” ricevuti;

• getretweetcount(id) – metodo che dato l’id di un tweet restituisce il

numero di retweet che ha ricevuto;

• search(query) – metodo che effettua una ricerca all’interno dei post del

social network in funzione della query definita; per il progetto

implementato le query consistono nella ricerca di un utente inserendo nel

campo query il simbolo @ seguito dal nome dell’utente;

• getRetweet(id) – funzione che dato l’id di un tweet restituisce gli id di tutti

gli utenti che hanno effettuato un retweet del post.

Page 68: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

64

4.5.7.4 Metodi implementati

Al fine di implementare le funzionalità del sistema di analisi dei feedback e di autoapprendimento sono stati implementati il seguente metodo:

calcolametriche(idutente) – metodo che dato l’id dell’utente esegue il calcolo della metrica di influenza dell’utente. In particolare vengono estratte le liste degli amici e dei followers dell’utente per il calcolo del coefficiente di Jaccard, vengono estratti i mi piace e i retweet ricevuti dall’utente, le menzioni i messaggi diretti e le risposte agli status dell’utente. Infine viene calcolato la metrica di influenza come descritto nel paragrafo 0

Page 69: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

65

5 Valutazione sperimentale

In questo capitolo sono descritti i risultati ottenuti nelle varie fasi di progettazione del sistema fino alla prova completa dello stesso.

Il sistema essendo particolarmente complesso ha avuto una fase di sperimentazione per singoli sottosistemi prima di poterne valutare il funzionamento nel suo complesso. In particolare le fasi di test dei sottosistemi sono state suddivise come di seguito specificato:

• addestramento del classificatore di Bayes

• definizione dei parametri di soglia del filtro di rilevazione degli alert;

• sperimentazione dell’algoritmo k-mean per il raggruppamento dei

documenti e per la selezione del tweet con maggiore rilevanza

(summarization).

Una volta parametrizzato ogni singolo componente del sistema di rilevamento dei malware attraverso l’analisi dei contenuti di Twitter è stato necessario effettuare una fase di test completo del sistema.

5.1 Addestramento del classificatore di Bayes

5.1.1 Training, Test e validation

L’insieme dei dati usati per costruire un classificatore viene diviso in due sottoinsiemi: l’insieme di training e l’insieme di test. Il primo viene usato per addestrare il classificatore a riconoscere i successivi documenti di prova, il secondo serve per fare degli esperimenti sul classificatore appena identificato.

Sia dato un insieme φ=< d1..... dφ> D di documenti preclassificati sotto categorie C= < c1..... ck>, e sia conosciuta la funzione Φ*: D x C →T, F per ogni <dj,ci> appartenente a φ x C. Un documento dj è un esempio positivo di ci se Φ*(dj,ci) = true, mentre è un esempio negativo se Φ*(dj,ci) = false.

Per costruire un classificatore il set di dati φ viene diviso in due insiemi:

Page 70: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

66

- Training Set T1=< d1..... dn>, il classificatore Φ* per categorie C

viene costruito induttivamente osservando le caratteristiche dei documenti;

- Test Set T2=< dn+1.....dφ>, usato per testare il classificatore. Ogni

djappartenente a T2 è passato al classificatore, e il target Φ(dj,ci)

è comparato con Φ*(dj,ci), allo scopo di identificarne le differenze. [1]

Il training set T1=< d1..... dn> può essere ulteriormente diviso in due insiemi, il primo Tr=< d1.... da> con cui viene costruito il classificatore, e il secondo Va=< da+1... dn> su cui viene provato tale classificatore, al fine di valutarne la correttezza.

Dato l’insieme di documenti φ=< d1..... dφ> D è possibile anche definire una funzione gφ(ci), che identifica la percentuale di documenti appartenenti a ci, come:

𝑔𝜑 𝑐𝑖 = !!∈!|!∗ !!,!! !!

|!| 5.1

5.1.2 Valutazione dei classificatori

In questo paragrafo tratteremo di come valutare un classificatore, ossia come riuscire a capire se il classificatore in questione ha prodotto dei buoni risultati oppure no. I principali metodi utilizzati per dare un’effettiva valutazione di un classificatore sono l’accuratezza e l’efficacia; descriveremo quindi nel dettaglio questi due metodi.

5.1.2.1 Misura dell’Accuratezza

In generale l’accuratezza da un’idea della qualità di uno strumento in esame. Nel caso specifico dei classificatori è definita come il numero di campioni correttamente classificati rispetto al numero totale di campioni classificati. Due possibili metodi per determinare l’accuratezza di un classificatore, basati entrambi sulla Cross Validation sono:

- Datasettrain e validation (two folder validation): Consiste nell’utilizzare,

per i classificatori, un set di addestramento (“training-set”) costituito da

Page 71: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

67

campioni di cui si conosce a priori la classe di appartenenza, curandosi

del fatto che tale insieme sia significativo e completo, cioè con un

numero sufficiente di campioni rappresentativi di tutte le classi. Per

la verifica del metodo di riconoscimento ci si avvale di un set

(“validation-set”), anch’esso costituito da campioni la cui classe è

nota, usato per controllare la generalizzazione dei risultati; esso è

costituito da un insieme di campioni diversi rispetto a quelli del

training-set. In seguito a questa operazione possiamo calcolare l’errore

sia di training che di validazione:

𝐸!"#$%$%& = !"#$%&'% !"#$%&#'& !" !"#$%$%&

!.!"#$%&'% !"#$%$%& 5.2

𝐸!"#$%"&$' = !"#$%&'% !"#$%&#'& !" !"#$%"&$'(!.!"#$%&'% !"#$%"&$'(

5.3

L’errore di validazione ci dà informazioni su quanto bene ha imparato il classificatore. Per definire un buon classificatore però non basta basarsi su questi due errori, bisogna anche considerare iltipo di classificazione che si sta facendo.

Volendo esaminare l’accuratezza del metodo su esempi reali, si fornisceal classificatore un set di test (detto “testing-set”) le cui classi non sono note. In seguito le notizie sulle classi di questo insieme vengono utilizzate, dopo la classificazione, per determinare gli errori e quindi l’accuratezza reale del classificatore.

- N-foldvalidation (LeaveOne Out) Per conoscere le capacità predittive del

modello si può utilizzare il metodo della validazione incrociata (cross-

validation), consiste nelcalcolare il modello con l'esclusione di un

oggetto alla volta (metodo leave-one-out) o di un oggetto ogni N

oggetti (leave-more-out), predicendo i valori della risposta per tutti

gli oggetti esclusi dal modello. Per esempio, se si hanno 10 campioni

e si decide di utilizzare per metodo leave-one-out per validare il

modello di classificazione ottenuto, dovremo procedere come segue:

o eliminare il campione N.1;

o ricalcolare il modello utilizzando solo i 9 campioni rimasti;

Page 72: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

68

o riassegnare il campione N.1 ad una classe in base al modello

ricalcolato sui 9 campioni rimasti;

o eliminare il campione N.2;

o ricalcolare nuovamente il modello sui 9 campioni rimasti e

procedere alla riassegnazione del campione N.2;

o proseguire eliminando uno alla volta tutti i campioni fino al

N.10 e riassegnandoli di volta in volta in base al modello

ricalcolato senza il campione eliminato.

Tale metodo viene utilizzato soprattutto quando non si ha un numero di dati sufficienti per formare dei training e validation set adeguati.

5.1.2.2 Misura dell’Efficacia

La valutazione dei classificatori di testi è effettuata sperimentalmente piuttosto che analiticamente, la classificazione di testi non può essere infatti formalizzata (a causa della sua natura soggettiva) e quindi non può essere valutata analiticamente. La valutazione sperimentale di un classificatore solitamente misura la sua efficacia ossia: l’abilità di prendere la giusta decisione di classificazione. È quindi l’efficacia l’altro parametro utilizzato per la valutazione di un classificatore. Questa viene misurata in termini di precisione (π), e recall (ρ). La precisione rispetto alla classe ci(πi) è definita come la probabilità condizionata :

𝑃 𝜙∗ 𝑑! , 𝑐! = 𝑇 𝜙∗ 𝑑! , 𝑐! = 𝑇) 5.4

che è la probabilità che un documento preso a caso, chiamato dx, sia classificato sotto ci, e che questa decisione sia corretta, in altre parole che indica il grado di correttezza di un classificatore rispetto alla categoria ci. Analogamente il recall rispetto a ci(pi) è definito come la probabilità condizionata:

𝑃 𝜙 𝑑! , 𝑐! = 𝑇 𝜙∗ 𝑑! , 𝑐! = 𝑇) 5.5

che è la probabilità che un documento preso a caso, chiamato dx, necessiti di essere classificato sotto ci e che questo sia fatto, ossia indica il grado di completezza

Page 73: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

69

di un classificatore rispetto alla categoria ci. Sia FPi (falsi positivi) il numero di documenti classificati incorrettamente sotto la classe ci, TPi (veri positivi) il numero di documenti classificati correttamente sotto ci, , FNi (falsi negativi) il numero di documenti non classificati, erroneamente, sotto ci, e TNi (veri negativi) il numero di documenti non classificati, correttamente, sotto ci, le stime della precisione e del recall possono essere ottenute come:

𝜋! = !"!!"!! !"!

𝜌! = !"!!"!! !"!

5.6

Ci sono misure alternative all’efficacia per valutare un classificatore costruito automaticamente:

o Accuratezza definita come:

𝐴 = !"!!"!"!!"!!"!!"

5.7

o Errore definito come:

𝐸 = !"!!"!"!!"!!"!!"

= 1 − 𝐴 5.8

5.1.3 Training, test, validation e valutazione del classificatore naive di

Bayes nella classificazione dei Tweet

Al fine di effettuare l’addestramento del classificatore di Bayes sono stati definiti i seguenti insiemi:

• l’insieme di training, usato per addestrare il classificatore a riconoscere i

successivi tweet;

• l’insieme di test, usato per fare degli esperimenti sul classificatore

identificato.

Page 74: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

70

L’insieme di training costituito da circa 500 tweet è stato ulteriormente diviso in due insiemi, il primo con cui è stato costruito il classificatore circa 350 tweet, e il secondo di circa 150 su cui è stato provato tale classificatore, al fine di valutarne la correttezza. Nella fase di training la prova sui 150 tweet ha dato il seguente risultato:

N. tweet Classificati correttamente

Falsi positivi

Falsi negativi

Percentuale di successo

Accuratezza 150 128 17 5 84%

L’errore di training è pari a:

Etraining= (Falsi positivi + Falsi negativi) / N. tweet = 0,15.

Al fine di migliorare il sistema il classificatore è stato addestrato correggendo i falsi positivi e falsi negativi. Per compiere tale operazione è avvenuta una fase di addestramento di quei tweet che avevano dato un errore (17 Falsi positivi + 5 Falsi negativi) con l’intervento di un operatore che ha correttamente classificato i tweet salvando tali classificazioni sulla tabella “addestra”. Si ricorda che la tabella “addestra” viene letta dal sistema MAS per aggiornare le probabilità delle singole parole all’inizio di ogni decisione.

Dopo la fase di training si è passati alla fase di Test. L’insieme di test è stato costituito da 500 tweet.

Page 75: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

71

Nella fase di testing sono stati ottenuti i seguenti risultati:

N. tweet Classificati correttamente

Falsi positivi

Falsi negativi

Percentuale di successo

Accuratezza 500 428 38 34 85%

La percentuale di successo dopo la fase di training è stata dell’85%. Tale percentuale è così alta poichè i tweet analizzati e inviati al classificatore avevano già subito un pre-filtraggio basato sulle parole chiave utilizzate per l’estrazione dallo streaming di Twitter. La conseguenza è stata che la maggior parte dei messaggi contenenti le parole chiave trattavano effettivamente tematiche riguardanti la Cyber Security e i post scartati sono stati per lo più relativi a messaggi generici contenenti informazioni su antivirus o testi che non avevano alcuna connessione con la sicurezza informatica.

5.2 Prove sperimentali dell’algoritmo di clustering e

summarizzation

L’algoritmo K-means è stato utilizzato per il clustering dei tweet. Quando un evento si verifica cioè la soglia all’istante t viene superata dal numero di tweet filtrati, è necessario raggruppare i tweet per aree tematiche. Il ragguppamento in aree tematiche permette la rilevazione di un numero maggiore di uno, di eventi nell’intervallo di tempo di rilevazione. L’obiettivo di questa fase è rilevare tutti gli eventi di Malware che si stanno diffondendo in un determinato istante poiché l’incremento del numero di tweet filtrati può essere causato sia dalla diffusione di una notizia di di un nuovo malware sia dalla diffusione di più attacchi informatici che comportano il sovrapporsi di tweet da parte degli utenti incrementando notevolmente il numero di post contenenti le parole chiave di ricerca.

La qualità della soluzione finale dell’algoritmo di clustering K-means dipende fondamentalmente dal set di cluster iniziale e può, in pratica, ottenere una soluzione peggiore dell’ottimo globale. Dato che l’algoritmo è di solito estremamente veloce, è possibile applicarlo più volte e, fra le soluzioni prodotte,

Page 76: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

72

scegliere quella più soddisfacente. In questo progetto di tesi infatti l’algoritmo viene ripetuto 100 volte ed è scelta la soluzione con la migliore convergenza cioè che ha dei cluster con coefficienti di similarità maggiori rispetto a tutti gli altri.

Uno svantaggio dell’algoritmo K-means è che esso richiede di scegliere, a priori,il numero di cluster (K) da individuare. Poiché l’intervallo per la raccolta e l’analisi dei tweet è stato prefissato ad una lunghezza massima di 30 minuti con finestre variabili che si interrompono in qualsiasi momento al superamento della soglia, si è realizzata una tecnica che sovrastimando il numero dei cluster da calcolare K al valore di 4, successivamente raggruppa i cluster simili fra loro ottenendo così il numero corretto di raggruppamenti per intervallo di tempo. Questa tecnica ha permesso di superare lo svantaggio dell’algoritmo K-Mean.

Sostanzialmente si stima per eccesso che la probabilità che vi siano un numero di tematice relative a Malware superiori a 4 sia nell’intervallo di tempo di 30 minuti soabasssa di conseguenza una volta ottenuti i 4 raggruppamenti questi vengono confrontati e unificati qualora la loro similarità sia superiore ad una soglia di coefficiente del coseno di 0.5.

Prove sperimentali hanno dimostrato che tale tecnica risulta efficace per il problema assegnato, in quanto il numero di tematiche rilevate è sempre stato inferiore a 4 e quindi la tecnica implementata ha sempre ridotto i cluster calcolati dall’algoritmo K-means.

Nella tabella di seguito mostrata si evidenzia tale fenomeno e a fronte dei 4 cluster iniziali 1 caso su 10 ha ridotto i cluster da 4 a 1 mentre per tutti gli altri casi si è avuta una riduzione dei cluster a 2.

Data Intervallo N.tweet Cluster K-means

Cluster ridotti

Cluster finali 2

11/09/2016 23:13 23:37 16 4 2 2 11/09/2016 23:39 23:46 19 4 2 2 12/09/2016 13:00 13:11 11 4 3 1 12/09/2016 13:11 13:43 10 4 2 2 12/09/2016 14:15 14:45 13 4 2 2 12/09/2016 14:45 15:06 13 4 2 2 12/09/2016 15:30 15:59 17 4 2 2 12/09/2016 16:30 16:51 20 4 2 2 12/09/2016 18:00 18:18 22 4 2 2 12/09/2016 19:46 20:04 27 4 2 2

Tabella 1: Esempi di riduzione dei cluster

Page 77: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

73

L’algoritmo K-means è stato utilizzato facendo ricorso di una grandezza di similarità del coseno e rappresentazione vettoriale dei tweet con la ponderazione dei termini TF-IDF (Term Frequency Inverse Document Frequency).

Di seguito nelle tabelle sono mostrati i 4 raggruppamenti ottenuti dall’algoritmo K-Mean relativi ad una rilevazione di tweet filtrati ottenuta dall’11 settembre 2016 dalle 23.00 al 12 settembre 2016 alle ore 00.00.

Tweet Categoria 1) US GovermentEmployeesTargetted By New GovRAT Malware A

2) US GovermentEmployeesTargetted By New GovRAT Malware A

3) US GovermentEmployeesTargetted By New GovRAT Malware A

4) US GovermentEmployeesTargetted By New GovRAT Malware A

5) US GovermentEmployeesTargetted By New GovRAT Malware A

6) US GovermentEmployeesTargetted By New GovRAT Malware A

9) US GovermentEmployeesTargetted By New GovRAT Malware Technology News A

10) US GovermentEmployeesTargetted By New GovRAT Malware A

11) US GovermentEmployeesTargetted By New GovRAT Malware: A

12) US GovermentEmployeesTargetted By New GovRAT Malware A

14) US GovermentEmployeesTargetted By New GovRAT Malware Checkout fantastic st… A

15) US GovermentEmployeesTargetted By New GovRAT Malware Checkout fantastic st… A Tabella 2: Cluster A di un gruppo di messaggi filtrati

Tweet Categoria 51) 3 cybersecuritypostsfederalbureauofinvestigation malware B 42) 3 cybersecuritypostsfederalbureauofinvestigation malware B 37) 3 cybersecuritypostsfederalbureauofinvestigation malware B

Tabella 3: Cluster B di un gruppo di messaggi filtrati

Tweet Categoria 36) slashdot: US GovermentEmployeesTargetted By New GovRAT Malware roc C 24) slashdot: US GovermentEmployeesTargetted By New GovRAT Malware roc C 7) Slashdot - US GovermentEmployeesTargetted By New GovRAT Malware C

Tabella 4: Cluster C di un gruppo di messaggi filtrati

Page 78: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

74

Tweet Categoria 13) US GovermentEmployeesTargetted By New GovRAT Malware: Security researchersdetected… D 19) US GovermentEmployeesTargetted By New GovRAT Malware Security researchersdetected upgrade the... D 22) US GovermentEmployeesTargetted By New 8216;GovRAT&#8217; Malware - D 28) US GovermentEmployeesTargetted By New GovRAT Malware Security researchersdetected upgrade the... D 33) US GovermentEmployeesTargetted By New GovRAT Malware Security researchersdetected upgrade the... D 45) US GovermentEmployeesTargetted By New GovRAT Malware - Security researchersdetected upgrade the... D 46) US GovermentEmployeesTargetted By New GovRAT Malware - Security researchersdetected upgrade the... D 53) Top Story: New Malware Targets Bank Accounts To Steal Your Money - ScamsTopScams Top D 58) US GovermentEmployeesTargetted By New GovRAT Malware - Security researchersdetected upgrade the D

Tabella 5: Cluster D di un gruppo di messaggi filtrati

Successivamente per ogni cluster viene selezionato il tweet con minor distanza rispetto al baricentro dello stesso.

Di seguito i tweet estratti (summarizzation):

15) US GovermentEmployeesTargetted By New GovRAT Malware Checkout fantastic st… 51) 3 cybersecuritypostsfederalbureauofinvestigation malware 36) slashdot: US GovermentEmployeesTargetted By New GovRAT Malware roc 58) US GovermentEmployeesTargetted By New GovRAT Malware - Security researchersdetected upgrade the

L’algoritmo di riduzione dei cluster ha individuato una somiglianza fra i tweet 36 58 e 15. Di conseguenzai cluster definitivi sono stati ridotti ai seguenti messaggi.

51) 3 cybersecuritypostsfederalbureauofinvestigation malware 58) US GovermentEmployeesTargetted By New GovRAT Malware - Security researchersdetected upgrade the

Page 79: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

75

5.3 Risultati sperimentali del sistema di Alert

Il sistema MAS come specificato nel capitolo precedente utilizza una finestra di lunghezza variabile la cui dimensione varia in funzione del superamento del numero di tweet rispetto a una soglia dipendente da una funzione matematica sigmoide. Inoltre le soglie sono dinamiche in funzione della media dei messaggi ricevuti per ogni finestra e in funzione della varianza mobile.

Riportiamo nella seguente tabella le grandezze utilizzate ai fini del calcolo della soglia a finestre variabili.

Grandezza Parametri Scelte sperimentali La EWMA (ExponentialWeighted Mobile Average) media mobile pesata esponenziale 𝑌 𝑘 = 𝜆 𝑋 𝑘 + 1 − 𝜆 𝑌 𝑘 − 1

Dove 𝜆 è il coefficiente costante di appianamento e viene scelto euristicamente; X[k] numero di tweet nell’intervallo di tempo; Y[k-1] la media dei tweet dell’intervallo precedente;

𝜆 = 0,2

Differenziale 𝐷 𝑘 = 𝑋 𝑘 − 𝑌[𝑘 − 1]

Dove X[k] è il numero di tweet nell’intervallo di tempo; Y[k-1] la media dei tweet dell’intervallo precedente

Varianza esponenziale mobile (𝑉 𝑘 )! = 𝛾 𝐷 𝑘 !

+ 1− 𝛾 𝑉 𝑘 − 1 !

Dove 𝛾 è un altro coefficiente costante di appianamento scelto euristicamente;

𝛾 = 0,2

Soglia 𝑇 𝑘 = 𝑌 𝑘 − 1 + 𝛿 𝑉[𝑘 − 1]

Dove 𝛿 è una costante che determina quanto la deviazione dal comportamento medio, Y[k], è considerato anomalo.

𝛿 = 1,5

Funzione sigmoide:

𝑆 𝑥 = 𝑐1 1 −1

1 + 𝑒!!! !!!! + 𝑐3

Dove c1 rappresenta l’estensione della sigmoide; c2 l’asintoto della funzione, c3 il valore minimo della funzione e c4 il punto centrale.

c1 = T[k] /100 *30

c2 = 0,3 c3 = T[k] c4 = 15

Al fine di ottenere il miglior risultato di funzionamento del sistema è stato necessario effettuare diverse prove sperimentali per definire il valore dei precedenti parametri.

Di seguito vengono evidenziati i risultati ottenuti in una fase sperimentale relativamente alle rilevazioni ottenute in 48 ore a partire dall'11/09/2016 alle ore 09:07.

I grafici rappresentano l’andamento del numero di tweet filtrati ed etichettati come “malware” e l’andamento della soglia calcolata istante per istante che deve essere superata affinchè il sistema invii un alert. Sulle ordinate sono riportati i valori in termini di numero di tweet mentre sulle ascisse è riportato il valore t tempo.

Page 80: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

76

L’andamento della soglia è di tipo “seghettato” e tale risultato è dato dalla natura del sistema di rilevazione. Infatti ogni finestra temporale di analisi è rappresentata da una funzione sigmoide parametrica come specificato nel capitolo 3.

Figura 18: Numero di tweet estratti e soglie del periodo 11/09/2016 dalle 09:07 alle 21.07

I grafici mostrati in Figura 20 non hanno evidenziato alcun evento in quanto la soglia rappresentata dal valore “tksigma” di colore rosso risulta sempre superiore al valore del numero di tweet istante per istante identificato dalla curva “ntweet” di colore blue.

L’andamento della curva “tksigma” rappresentante la soglia ha una media mobile decrescente. Il sistema infatti utilizzando delle sigmoidi parametriche legate alla media e alla varianza mobile si comporta in modo da seguire l’andamento di tali dati statistici e nel caso in cui il numero dei tweet decresce riduce gradualmente la soglia di rilevazione.

0510152025303540

11/09/1609:07

11/09/1609:27

11/09/1609:47

11/09/1610:07

11/09/1610:27

11/09/1610:47

11/09/1611:07

11/09/1611:27

11/09/1611:47

11/09/1612:07

11/09/1612:27

11/09/1612:47

11/09/1614:35

11/09/1614:55

ntweet tksigma

05

101520253035

11/09/1615:07

11/09/1615:38

11/09/1616:09

11/09/1616:40

11/09/1617:11

11/09/1617:42

11/09/1618:13

11/09/1618:44

11/09/1619:15

11/09/1619:46

11/09/1620:17

11/09/1620:48

ntweet tksigma

Page 81: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

77

Figura 19:Numero di tweet estratti e soglie del periodo 11/09/2016 dalle 21:07 al 12/09/2016 09.07

Nel grafico a sinistra in figura 21 si notanotre diversi eventi verificati, nel periodo che intercorre dalle ore 23.27 dell’11/09/2015 e le 00:23 del 12/09/2016. Un incremento repentino del numero di messaggi ha causato il superamento della soglia di rilevazione, successivamente il sistema ha incrementato la soglia per poi ritornare gradualmente a decrescere poiché il numero di messaggi negli istanti successivi si è ridotto.

Figura 20: Numero di tweet estratti e soglie del periodo 12/09/2016 dalle 09:07 alle 21.07

05101520253035

11/09/1621:07

11/09/1621:35

11/09/1622:03

11/09/1622:31

11/09/1622:59

11/09/1623:27

11/09/1623:55

12/09/1600:23

12/09/1600:51

12/09/1601:19

12/09/1601:47

12/09/1602:15

12/09/1602:43

ntweet tksigma

0

5

10

15

20

25

12/09/1603:07

12/09/1603:35

12/09/1604:03

12/09/1604:31

12/09/1604:59

12/09/1605:27

12/09/1605:55

12/09/1606:23

12/09/1606:51

12/09/1607:19

12/09/1607:47

12/09/1608:15

12/09/1608:43

ntweet tksigma

02468101214161820

12/09/1609:07

12/09/1609:38

12/09/1610:09

12/09/1610:40

12/09/1611:11

12/09/1611:42

12/09/1612:13

12/09/1612:44

12/09/1613:15

12/09/1613:46

12/09/1614:17

12/09/1614:48

ntweet tksigma

05

10152025303540

12/09/1615:07

12/09/1615:38

12/09/1616:09

12/09/1616:40

12/09/1617:11

12/09/1617:42

12/09/1618:13

12/09/1618:44

12/09/1619:15

12/09/1619:46

12/09/1620:17

12/09/1620:48

ntweet tksigma

Page 82: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

78

In Figura 22 come nel caso precedente si sono susseguiti una serie di eventi che hanno comportato il superamento della soglia di rilevazione.

Figura 21: Numero di tweet estratti e soglie del periodo 12/09/2016 21:07 al 13/09/2016 alle 9.07

L’analisi sperimentale sul sistema e la parametrizzazione delle medie e varianze mobili è avvenuta a seguito di diversi esperimenti e in questa sezione è stato mostrato solo uno dei tanti risultati ottenuti durante tutto il periodo di test del sistema.

I risultati sono stati soddisfacenti in quanto il sistema ha rilevato con prontezza i nuovi attacchi informatici e i malware e di seguito viene mostrato in tabella il dettaglio degli eventi raccolti nel periodo a cui si riferiscono i grafici delle figure 21, 22, 23 e 24.

Per maggiori dettagli su ogni singolo evento è stato inserito in tabella, nell’ultima colonna il riferimento e nella sezione Riferimenti Bibliografici è presente il dettaglio del link di riferimento all’URL pubblicato insieme al tweet dal sistema di rilevamento sviluppato in questo lavoro di tesi.

0510152025303540

12/09/1621:07

12/09/1621:35

12/09/1622:03

12/09/1622:31

12/09/1622:59

12/09/1623:27

12/09/1623:55

13/09/1600:23

13/09/1600:51

13/09/1601:19

13/09/1601:47

13/09/1602:15

13/09/1602:43

ntweet tksigma

02468

1012141618

13/09/1603:07

13/09/1603:35

13/09/1604:03

13/09/1604:31

13/09/1604:59

13/09/1605:27

13/09/1605:55

13/09/1606:23

13/09/1606:51

13/09/1607:19

13/09/1607:47

13/09/1608:15

13/09/1608:43

ntweet tksigma

Page 83: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

79

N. Data e ora

Minuto nella

finestra N.

tweet Soglia Testo del tweet pubblicato Rif

1 11/09/2016 23:37 24 16 10,75 ü US Goverment Employees Targetted By New

GovRAT Malware [19]

2 11/09/2016 23:46 7 19 18,97 ü 3 cybersecurity posts

federalbureauofinvestigation malware [20]

3 12/09/2016 13:13 11 11 10,56 ü Seagate Central NAS boxes hit Miner-C

malware [21]

4 12/09/2016 13:43 30 10 9,02 ü New malware makes money “borrowing”

computer mine cryptocurrency [22]

5 12/09/2016 14:45 30 13 12,40 ü "Watch nasty Macbook malware"

applenewsfeedly [23]

6 12/09/2016 15:06 21 13 12,74 ü Android Banking Apps Targeted By New

Malware android Apps

[24]

7 12/09/2016 15:59 22 17 15,77

ü Macro-based malware Hancitor developed ways trick user enabling macros

ü Hackers hit Seagate NAS devices cryptomining malware

[25] [26]

8 12/09/2016 16:51 29 20 18,33

ü New post: Malware Alert! Increasing Threats Put Bitcoin Users Danger

[27]

9 12/09/2016 18:18 25 22 21,11 ü New DressCode malware slips Google Play

Store undetected [28]

10 12/09/2016 20:04 16 27 26,26

ü Researchers warn hackers DDoS 911 emergency phone service infosec

ü Hackers hit Seagate NAS devices cryptomining malware. Estimates 70% devices worldwide infected

[29]

Tabella 6: Eventi rilevati nel periodo dall'11/09/2016 9:07 al 13/09/2016 9:07

Il sistema un evento quando il numero di tweet classificati come notizie di nuovi malware incrementava rapidamentesuperando la “soglia sigmoide”. Il superamento della soglia comporta la chiusura della finestra e la successiva fase di analisi dei tweet selezionati nell’intervallo di tempo.

L’utilizzo delle finestre a lunghezza variabile ha permesso di rilevare più velocemente gli eventi rispetto ad un sistema a finestra con dimensione costante. Dalla Tabella 1, nella colonna “Minuto nella finestra variabile” si nota come gli eventi vengono rilevati prima della lunghezza massima della finestra fissata a 30 minuti.

In questa fase sperimentale sono stati rilevati dal sistema diversi attacchi alla sicurezza informatica.

*** OMISSIS ***

Page 84: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

80

6 Conclusioni

In questa tesi è stata realizzata un’architettura di analisi dei contenuti dei social networks progettato per fornire un sistema di alert delle minacce provenienti dalla rete, più efficace dei sistemi tradizionali quali gli antivirus.

La sua realizzazione ha richiesto mesi di tempo, durante i quali sono stati inizialmente analizzati i punti deboli dei diversi approcci proposti all’analisi dei contenuti dei social networks nella recente letteratura. Successivamente si è passati alla progettazione di un sistema originale che prendendo spunto dai diversi lavori già esistenti riuscisse a ridurre le problematiche dei suoi predecessori realizzando un’architettura completa ed efficiente.

Sono stati effettuati diversi esperimenti individuando attività intrusive ed esemplari di malware attualmente circolanti in rete.

I vantaggi portati da questa nuova architettura sviluppata, rispetto agli altri lavori presentati nel capitolo dello stato dell’arte, sono notevoli.

Si tratta di un sistema adattabile e veloce, lo sviluppo di una finestra a soglie variabili e a finestre di dimensione dinamica ha permesso di rilevare gli eventi molto velocemente adattandosi al numero dei tweet estratti. Inoltre il sistema permette di ridurre gli errori grazie all’introduzione di un classificatore naive di Bayes.

Infine ma di grande rilevanza rispetto agli altri sistemi è stato introdotto un sistema di auto-apprendimento che permette di migliorare la rilevazione dei tweet.

I potenziali sviluppi del sistema realizzato sono i seguenti:

• il sistema si presta all’analisi di differenti contenuti di Twitter non solo

relativamente ai Malware. Essendo Twitter un raccoglitore di pensieri,

azioni e sentimenti degli utenti, il sistema realizzato può permettere

l’estrazione di informazioni di diversa natura rispetto alla sola analisi per

la scoperta di malware;

Page 85: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

81

• il sistema può essere migliorato in termini di classificazione dei tweet.

incrementando il campione di addestramento del classificatore di Bayes;

La materia sull’analisi dei contenuti dei Social networks è molto vasta e questo lavoro di tesi ha permesso di realizzare un sistema completo e funzionante.

I futuri sviluppi del progetto consisteranno nell’attivare il sistema per lunghi periodi di tempo in modo da raggiungere un buon numero di followers e monitorare l’influenza degli utenti sul sistema. Inoltre si potrà espandere il numero di keyword utilizzate per l’estrazione dallo streaming di Twitter al fine di incrementare la possibilità di rilevare i malware.

Infine, giungendo ad un maggiore coinvolgimento degli utenti, sarà necessario discriminare l’affidabilità dei feedback forniti dagli utenti stessi, anche grazie all’adozione di un sistema di stima della loro reputazione [31]. In un tale scenario, sarà cruciale verificare la robustezza del sistema di gestione della reputazione rispetto ad eventuali attacchi mirati a ridurne l’affidabilità [33], [34], [36].

Page 86: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

82

Riferimenti Bibliografici:

[1] Twitter. [Online]. Available: http://twitter.com

Facebook. [Online]. Available: https://www.facebook.com/.

[2] http://www.huffingtonpost.com/2010/04/14/twitter-user-statistics-r_n_537992.html, 2010.

[3] Chirp. Twitter User Statistics 2. URL: http://www.businessinsider.com/twitter-stats-2010-4, 2010.

[4] Ryan Kelly. Twitter Study - August 2009. URL: http://www.pearanalytics.com/blog/wp- content/uploads/2010/05/Twitter-Study-August-2009.pdf, 2009.

[5] Japan Earthquake Shakes Twitter Users. [Online]. Available: http://mashable.com/2009/08/12/japan-earthquake/.

[6] Johan Bollen, Huina Mao, and Xiao-Jun Zeng. Twitter mood predicts the stock market. Journal of Computational Science, 2(1):1–8, March 2011.

[7] Isra’ Al-Qasem, Sumaya Al-Qasem, and Ahmad T. Al-Hammouri Leveraging Online Social Networks For a Real-time Malware Alerting System [8] Topsy—Real-time search for the social web. [Online]. Available: http://www.topsy.com/.

[9] JSON. [Online]. Available: http://www.json.org/. [10] A New Cyber Security Alert System for Twitter YigitErkal, Mustafa Sezgina, SedefGunduzTOBB Economy and Technology University Department of Computer Engineering, Ankara, Turkey Gazi University Faculty of Engineering Department of Computer Engineering, Ankara, Turkey

[11] S. Gaglio, G. Lo Re, M. Morana, A framework for real-time Twitter data analysis. In Journal of Computer Communications, Elsevier, ISSN 0140-3664 [12] G. Petkos, S. Papadopoulos, L. Aiello, R. Skraba, Y. Kompatsiaris, A soft frequent pattern mining approach for textual topic detection, in: Proceed- ings of the

Page 87: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

83

4th International Conference on Web Intelligence, Mining and Semantics (WIMS14), WIMS ’14, ACM, New York, NY, USA, 2014, pp. 25:1–25:10. [13] A. Huang. Similarity measures for text document clustering. In Proceedings of the Sixth New Zealand Computer Science Research Student Conference, pages 49–56, Christchurch, New Zealand, 2008. [14] Extracting Situational Information from Microblogs during Disaster Events: a Classification-Summarization Approach KoustavRudraSubham Ghosh NiloyGanguly IIT Kharagpur, India IIT Kharagpur, India IIT Kharagpur, India [15] Twitter API Documentation. URL: http://dev.twitter.com, 2010

[16] List stopwords. URL: http://www.lextek.com/manuals/onix/stopwords1.html

[17] Yusuke Yamamoto. Twitter4J: unofficial Java library for the Twitter API. URL: http://twitter4j.org, 2010.

[18] J. Han, H. Cheng, D. Xin, and X. Yan. Frequent pattern mining: current status and future directions.Data Min. Knowl. Discov., 15(1):55–86, 2007.

[19] US Goverment Employees TargettedBy New GovRAT Malware Checkout URL: https://tsecurity.de/de/71466/IT-Security/US-Goverment-Employees-Targetted-By-New-'GovRAT'-Malware/?utm_source=twitterfeed&utm_medium=facebook

[20] 3 cybersecurity posts federalbureauofinvestigation malware http://motherboard.vice.com/read/hacking-is-a-search-according-to-federal-judge

[21]Seagate Central NAS boxes hit Miner-C malware URL: http://www.bit-tech.net/news/hardware/2016/09/12/seagate-central-miner-c-malware/1?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+bit-tech%2Fall+%28bit-tech.net+feed%29

[22] New malware makes money “borrowing” computer mine cryptocurrency URL: https://blogs.sophos.com/2016/09/08/new-sophoslabs-research-cryptomining-malware-on-nas-servers-worldwide/?cmp=70130000001xIObAAM

[23] "Watch nasty Macbook malware" applenewsfeedly – URL: http://bgr.com/2016/09/09/watch-out-for-this-nasty-new-macbook-malware/

Page 88: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

84

[24] Android Banking Apps Targeted By New Malware android Apps – URL: http://www.pymnts.com/news/security-and-risk/2016/android-banking-apps-malware/

[25] Macro-based malware Hancitor developed ways trick user enabling macros – URL: https://blog.barkly.com/hancitor-macro-malware-campaign

[26]Hackers hit Seagate NAS devices cryptomining malware – URL: http://www.scmagazineuk.com/hackers-hit-seagate-nas-devices-with-cryptomining-malware/article/521842/

[27]New post: Malware Alert! Increasing Threats Put Bitcoin Users Danger – URL: http://www.thebitcoinchannel.com/archives/62480

[28] New DressCode malware slips Google Play Store undetected URL:http://phandroid.com/2016/09/12/dresscode-malware-android-apps/

[29]Researchers warn hackers DDoS 911 emergency phone service infosec URL: http://www.computerworld.com/article/3118703/security/researchers-warn-that-hackers-can-ddos-911-emergency-phone-service.html [30] A. De Paola, S. Gaglio, G. Lo Re, M. Ortolani. Multi-sensor fusion through adaptive bayesian networks. In AI*IA 2011: Artificial Intelligence Around Man and Beyond, 2011, pp. 360-371 [31] C. Crapanzano, F. Milazzo, A. De Paola, G. Lo Re. Reputation management for distributed service-oriented architectures. In Proceedings of the Fourth IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshop (SASOW), 2010 , pp. 160-165 [32] A. De Paola, M. La Cascia, G. Lo Re, M. Morana, M. Ortolani. Mimicking biological mechanisms for sensory information fusion. In Journal of Biologically Inspired Cognitive Architectures, vol. 3, 2013, pp. 27-38. [33] V. Agate, A. De Paola, G. Lo Re, M. Morana. A Simulation Framework for Evaluating Distributed Reputation Management Systems. In Proceedings of the 13th International Conference on Distributed Computing and Artificial Intelligence [34] V. Agate, A. De Paola, S. Gaglio, G. Lo Re, M. Morana. A Framework for Parallel Assessment of Reputation Management Systems. In Proceedings of the 17th International Conference on Computer Systems and Technologies. CompSysTech 16 [35] S. Gaglio, G. Lo Re, M. Morana. Real-Time Detection of Twitter Social Events from the User's Perspective. In Proceedings of the 2015 IEEE International Conference on Communications (ICC2015)

Page 89: Progetto e sviluppo di un sistema di analisi dei contenuti ... · minacce informatiche ad organizzazioni criminali che cercano fonti di denaro ... l’analisi dei contenuti del noto

85

[36] V. Agate, A. De Paola, G. Lo Re, M. Morana. Vulnerability Evaluation of Distributed Reputation Management Systems. In Proceedings of "InfQ 2016 - New Frontiers in Quantitative Methods in Informatics", October 2016, Taormina, Italy