I sistemi informatici sono diventati una parte fondamentale della vita di tutti i giorni, usiamo il software in tantissime situazioni per esempio con le applicazioni dello smartphone o con la smart tv oppure quando in auto ci sintonizziamo sul sistema di infotainment.
Questi sistemi sono basati su “logiche di programmazione”, una serie di istruzioni che permettono l’interazione tra utente e macchina. Nonostante gli sforzi dei programmatori, e gli stessi computer in grado di monitorare gli errori che avvengono durante il loro funzionamento, i software talvolta incorrono in errori che in gergo si chiamano “eccezioni”.
Durante queste condizioni il funzionamento atteso è sovvertito, il computer può anche bloccarsi e necessitare un riavvio: una condizione che tutti gli utenti conoscono.
Questa situazione di errore non è solo una problema per un utente: il computer che si impalla, i dati che si perdono è anche una condizione che spesso può essere sfruttata da hacker e virus informatici per penetrare nei sistemi.
Infatti durante un’eccezione un software, se programmato male, può eseguire del codice arbitrario che in certe condizioni di errore di sistema può portare a quella che si chiama “escalation di privilegi”, l’attaccante diventa amministratore della macchina e può installare dei software di controllo.
Di lì a sferrare attacchi sempre più complessi il passo è breve: infatti un computer sotto controllo remoto permette ad un attaccante di nascondere meglio le proprie tracce e nel mentre rubare dati ed altre informazioni personali.
L’economia legata ai virus, ed alle frodi informatiche sta diventando molto rilevante, si parla di molti miliardi di dollari di introiti per la criminalità, in particolare da quando sono emerse due tecnologie: le cryptovalute che permettono delle transazioni economiche del tutto anonime, e – sul piano delle tecniche informatiche – i ransomware.
Questo tipo di attacco informatico non sfrutta necessariamente delle vulnerabilità di un sistema o degli errori, molto spesso gli utenti installano il virus a loro insaputa. Il compito di un ransomware è quello di cifrare i dati presenti sul disco e chiedere un riscatto (ransom in inglese) per la decifrazione dei dati sotto forma di transazione in criptovaluta.
Dal momento che è molto facile ed economico inviare email di spam dai titoli accattivanti, che invitano ad installare e a visitare siti malevoli, cosa che attira molti utenti, l’infezione da ransomware può riguardare in uno stesso momento un elevato numero di computer. Oltre al riscatto da chiedere all’utente è pure possibile rubare qualcuno dei suoi dati, magari gli accessi al conto bancario, o direttamente le credenziali con cui accede alla sua azienda.
È il fattore umano, quello dei tanti che abboccano alle mail di spam, che installano programmi ed aprono link ammiccanti, che si rivela determinante per il successo di questi malware.
Molte persone non eseguono alcun backup dei propri dati o del proprio lavoro, finendo con il dover pagare il riscatto per riavere indietro i propri dati. Oppure usa il computer di lavoro condividendo dati personali ed aziendali, o ancora ha le password in chiaro degli accessi aziendali, tutta questa galleria di “cattivi comportamenti” e molto altro ancora.
Una pillola utile di sicurezza informatica è il consiglio per tutti gli utenti, di avere un backup a portata di mano in modo da ripristinare il sistema, senza dover sottostare al ricatto se un ransomware dovesse infettare il nostro computer.
Nel caso del ransomware e più in generale del malware (termine che indica tutta la categoria di software pericolosi) alcune nuove difese possono venire dalla Data Science.
Fino a poco tempo fa la protezione dai virus informatici e dagli attacchi sulla rete, seguiva regole deterministiche. Un attaccante svolge una precisa sequenza di operazioni che, se correttamente riconosciuta, fa scattare degli allarmi ed innalza le difese del sistema attaccato (ad esempio disconnettendo il server da Internet, o chiudendo le porte di un servizio etc.)
Questo sistema, usato moltissimo in passato ed anche oggi in parte aveva il pregio di essere preciso: di fatto non ha falsi negativi, tutti gli attacchi lo sono per davvero, ma aveva il difetto di aggiungere tanta complessità, con una sequenza di regole molto lunga, difficile da gestire e soprattutto “statica”.
In altre parole è un sistema che previene efficacemente solo gli attacchi noti, le sequenze di operazioni che di solito fa un attaccante o un particolare virus per penetrare nei sistemi.
La conseguenza più ovvia è che quando un attaccante fa qualcosa di diverso, sperimenta per esempio una vulnerabilità nuova e non nota, allora la mancanza di regole fa sì che questo attacco passi inosservato.
La Data Science ed in particolare il Machine Learning affrontano da tempo il problema della ricerca di anomalie nei segnali. Questa metodologia permette di trovare tutti quei comportamenti che deviano dalla normalità o che escono dalle classificazioni note.
È facile immaginare che sistemi del genere siano in grado di trovare nuovi attacchi informatici, perché sono deviazioni dal corso normale degli eventi. Sembrerebbe dunque che la anomaly detection sia sufficiente per trovare i nuovi attacchi e che il problema sia finalmente risolto.
In realtà non è completamente vero.
Una serie temporale con un picco anomalo. In cybersecurity un attacco sulla rete informatica ha spesso una forma simile: un carico inatteso di pacchetti verso un determinato servizio.
Per capire come mai una tecnica moderna come la ricerca di anomalie con metodi di Machine Learning non sia infallibile, occorre riflettere su come funziona in generale.
Supponiamo di avere un compito di classificazione, uno di quelli in cui la disciplina del Machine Learning eccelle. In questi casi di solito la bontà della classificazione è in un range tra 0.8 e 0.95 (0.99). Questo numero è associato ad una misura di accuratezza della previsione, ci dice che se il valore è 0.8 ben il 0.2 == 20% delle predizioni sono in realtà sbagliate.
Nel caso della anomaly detection si setta un valore di probabilità per gli eventi rari, queste anomalie sono tali se accadono al di sotto di una certa soglia di frequenza: poniamo il 0.1%.
Può apparire un numero piccolo, un evento ogni 1000 è una anomalia.
Tuttavia gli eventi sulle interfacce di rete sono molto frequenti: i pacchetti TCP/IP (i mattoncini dell’informazione che si scambiano i computer su Internet) fluiscono al ritmo di centinaia al minuto ed il rischio che gli eventi di anomalia inizino a diventare tantissimi è reale.
In altre parole questo sistema è sì in grado di rilevare tutte le anomalie, ma è anche cieco a quelle che in realtà anomalie reali non sono. Per questo ulteriore motivo è necessario un sistema di filtri successivi: le anomalie segnalate diventano dati per un ulteriore classificatore che riduce i falsi positivi a pochi punti percentuale.
Ora le anomalie hanno un senso, diventano infatti per esempio sono il 5% dello 0.1% e cioè 0.1*0.05 = 0.005% (ovvero 5 eventi ogni 100.000) un numero che è vicino alle conoscenze secondo cui un network per esempio viene attaccato diverse volte al giorno.
Quella della ricerca di anomalie è solo una delle possibilità legate alla Data Science, più in generale le tecniche di Data Cleaning possono tornare utili nella cybersecurity per ricostruire il segnale di attacco (attraverso la moltitudine di pacchetti e protocolli coinvolti). Ma è anche la protezione attiva usando l’analisi testuale su forum e social networks che può permetterci di prevenire gli attacchi: ad esempio, se leggiamo che dei server americani sono stati attaccati con una certa metodologia abbiamo qualche giorno di tempo per mettere al riparo anche i nostri server che magari abbiamo installato in un data center europeo.
Possiamo quindi lavorare sulle “correlazioni deboli” quei segnali a bassa frequenza che legano le discussioni sui forum ai successivi attacchi informatici, è una Data Science avanzata ma è sicuramente possibile usare questo “social listening” per carpire movimenti verso un determinato servizio informatico, una crescita di interesse che può portare a nuovi imprevisti attacchi.
In conclusione abbiamo visto come la Data Science possa aiutare i professionisti della sicurezza informatica a trattare i dati, capire i movimenti e forse anche – talvolta – prevenire attacchi futuri completamente sconosciuti.
Ovviamente dall’altra parte anche gli attaccanti potrebbero usarla, per capire quali server sono “statisticamente” più esposti, più semplici da colpire etc. Alla fine, è tutto un gioco di “guardia e ladri” dove c’è sempre chi scappa e chi insegue.