settembre 26, 2016
Pigrizia, cyber-sicurezza e apprendimento automatico
È proprio così: l’essere umano è una creatura pigra. Se è possibile non fare qualcosa, non la facciamo. Comunque, paradossalmente si tratta di un qualcosa di positivo perché la pigrizia è… il motore del progresso! Cosa? E come? Beh, se un lavoro è considerato troppo difficile, lungo o complesso da svolgere per gli umani, certi esseri umani pigri (Homo Pigrus? 😉 ), ma coscienziosi, potrebbero affidare il lavoro ad una macchina! Nel campo della cybersicurezza lo possiamo chiamare ottimizzazione.
L’analisi giornaliera di milioni di file e siti dannosi, sviluppando “inoculazioni” contro future minacce, migliorando per sempre la protezione proattiva, e risolvendo dozzine di altri compiti critici… tutto questo è semplicemente impossibile senza l’uso dell’automazione. E l’apprendimento automatico (anche chiamato intelligenza computazionale) è uno dei concetti chiave nel campo dell’automazione.
L’automazione esiste nella cybersicurezza fin dall’inizio, dagli albori della cyber-sicurezza stessa. Ricordo, per esempio, come all’inizio degli anni 2000 avessi scritto il codice per un robot che aveva il compito di analizzare i campioni di malware in entrata: il robot metteva i file individuati nella cartella corrispondente del nostro archivio malware in continua crescita che si basava sui suoi verdetti (suoi, ovvero del robot!) e riguardavano le sue caratteristiche (quelle dei file!). È difficile credere ora che a quel tempo ero abituato a fare tutto manualmente!
Oggigiorno comunque, dare semplicemente ai robot istruzioni precise per i compiti che tu vuoi che lui svolga non è sufficiente. Le istruzioni per i compiti da svolgere dovevano essere impartite in modo impreciso. Sì, proprio così!
Per esempio, “trova i volti umani in questa fotografia”. Per farlo non descriverai come i volti umani vengono riconosciuti o come si distinguono da quelli di un cane. Quello che farai è mostrare al robot diverse fotografie e aggiungerai: “questi sono umani, questo è un volto umano, e questi invece sono cani; ora sbrigatela tu!”. In poche parole è la “libertà della creatività” ad autoproclamarsi apprendimento automatico.
AA + CS = Amore
Senza l’apprendimento automatico (AA), in questo decennio non sarebbe sopravvissuto nemmeno un singolo fornitore di cybersicurezza (a meno che il rilevamento sia semplicemente copiato da altri). Ad ogni modo, alcune startup presentano l’apprendimento automatico come qualcosa che rappresenta una rivoluzione nella cybersicurezza (CS) (una rivoluzione che “hanno iniziato e comandato”). In realtà, però, l’apprendimento automatico viene applicato alla cybersicurezza da oltre un decennio (solo senza il clamore del marketing).
L’apprendimento automatico è una disciplina che riguarda quante migliaia di tesi di dottorato e di libri di testo accademici sono stati scritti, quindi non basterebbe parlare di tutto questo in un solo post del blog. Anche in diversi post a dire il vero. Ma ad ogni modo, cari lettori, avete davvero bisogno dei dettagli accademici tecnici? Ovviamente no. Quindi vi dirò qualcosa di più utile e di cui si può parlare in questo unico post del blog: gli elementi più appetitosi, intriganti, importanti e mozzafiato di questa cosa chiamata apprendimento automatico (dalla prospettiva di KL).
All’inizio del “viaggio” abbiamo usato diversi modelli matematici di automazione solo per necessità interne; ad esempio, per l’automazione di una postazione di lavoro di un analista di malware (per scegliere le parti più importanti dal flusso di informazioni), per il clustering (raggruppare oggetti per attributi), e per l’ottimizzazione dei web crawler (determinando la priorità e l’intensità del crawling attraverso milioni di URL basate sulle ponderazioni di diversi fattori).
Successivamente è diventato chiaro che senza l’introduzione di simili tecnologie intelligenti nei nostri prodotti, il flusso delle cyber-porcherie ci avrebbe sopraffatto. Ciò di cui avevamo bisogno erano robot che potessero rispondere in maniera veloce e accurata a certe domande complesse, come “Hey robot, mostrami i file sospetti, basandoti su questi esempi”. Oppure: “Robot, controlla (ecco come sono le fantastiche procedure euristiche) quelli che rilevano decine di migliaia di oggetti. Quello che dovete fare è trovare le caratteristiche comuni in altri modelli pericolosi e poi eseguire voi quelle stesse procedure (solo su oggetti diversi)”.
Ma aspettate…
Prima che iniziate a pensare che sia tutto un gioco da ragazzi: quando si applicano i metodi di apprendimento automatico a compiti reali, sorgono tante difficoltà e sfumature. Specialmente nella cybersicurezza: il mercato underground informatico inventa costantemente nuovi tipi di attacchi, quindi non importa quanto sia buono un modello matematico, questo ha bisogno di essere migliorato costantemente. E questa è la caratteristica principale dell’apprendimento automatico nella cybersicurezza: lavoriamo in un ambiente dinamico e duro in cui l’apprendimento automatico si imbatte in una costante controazione diretta proprio ad esso.
In primo luogo, inizialmente si dovevano trovare tutti questi nuovi attacchi. Ovviamente, i cybercriminali raramente ci inviano i loro prodotti per il nostro piacere… anzi è proprio l’opposto: cercano di nascondersi per non dare nell’occhio il più tempo possibile in modo da poter guadagnare più profitti criminali per più tempo. La ricerca in corso per attacchi del genere è costosa: gli esperti utilizzano strumenti e intelligenza altamente complessi.
In secondo luogo, l’analista ha bisogno di formare un robot per capire che cos’è importante e cosa no. Ed è estremameeeeeente difficile, con tutti i tipi di rastrelli sparsi sul prato che stanno aspettano di essere calpestati. Solo un esempio: il problema dell’overfitting (o eccessivo adattamento).
Un classico esempio di overfitting è questo: i matematici hanno creato un modello per riconoscere le immagini delle mucche in molte foto di animali. E sì, il modello ha iniziato a riconoscere le mucche! Ma non appena hanno iniziato a complicare l’immagine, il modello non ha riconosciuto… nulla. Quindi hanno dato un’ occhiata per vedere cosa stava succedendo. Quello che hanno scoperto è che l’algoritmo era diventato “troppo intelligente” (più o meno), e ha iniziato ad ingannarsi: si era allenato con le foto di un campo verde in cui pascolavano le mucche!
Quindi, aggiungere “cervelli” alle tecnologie è davvero impegnativo; è un percorso che si muove per prova ed errori lungo e difficile che richiede la combinazione di almeno due tipi di competenze (nei dati scientifici e nella cybersicurezza). A metà degli anni 2000, ne abbiamo accumulate abbastanza e abbiamo inziato ad includere l’apprendimento automatico nei prodotti nelle nostre tecnologie di “combattimento”.
Da allora, l’automazione nei nostri prodotti è avanzata a vista d’occhio. Sono stati introdotti diversi approcci matematici nei prodotti e le componenti grandi e piccoli su tutto lo spettro: nell’anti spam, (classificazione di email basate sul grado del loro spam); anti-phishing (riconoscimento euristico dei siti di phishing); nel controllo genitori (selezionando contenuto indesiderato); nell’anti-truffe; nella protezione contro gli attacchi mirati; nel controllo delle attività e altro.
Non così veloce, sig. Smith
Dopo aver letto di tutto sul successo dell’apprendimento automatico, potrebbe nascere la tentazione di inserire un algoritmo automatico intelligente direttamente nel computer del cliente e lasciarlo stare: lasciarlo imparare, dal momento che l’algoritmo è intelligente. Ad ogni modo, nel gioco dell’apprendimento automatico non c’è posto per un ranger solitario. Vi spieghiamo perché…
In primo luogo, un approccio simile è limitato in termini di prestazione. L‘utente ha bisogno di un equilibrio ragionevole tra la qualità della protezione e la velocità, e lo sviluppo delle tecnologie esistenti e l’aggiunta di quelle nuove (non importa quanto siano intelligenti, esauriranno inevitabilmente risorse del sistema preziose).
In secondo luogo, tale isolazionismo (nessun aggiornamento, nessun nuovo materiale di studio) abbassa inevitabilmente la qualità della protezione. L‘algoritmo ha bisogno che qualcuno gli insegni regolarmente qualcosa sui nuovi tipi di cyberattacco; in caso contrario le sue abilità di rilevamento diventano obsolete più velocemente di quanto si impiegherebbe a dire “il panorama delle minacce cambia in continuazione”.
In terzo luogo, una concentrazione di tutte le tecnologie di “combattimento” su un computer fornisce ai criminali informatici grandi possibilità per studiare i dettagli della protezione per poter poi sviluppare metodi per neutralizzarla.
Queste sono le tre motivazioni principali, ma ce ne sono molte altre.
Quindi cosa bisogna fare?
In realtà è abbastanza chiaro; mettere tutta l’artiglieria pesante (le tecnologie pesanti e con alte risorse dell’apprendimento automatico) in un posto molto più sofisticato dei computer degli utenti! Per creare un “cervello remoto” che, basandosi sui dati studiati da milioni di computer dei clienti, è in grado di riconoscere gli attacchi in maniera veloce e accurata e di fornire la protezione richiesta…
Piccoli soffici cloud
Quindi, 10 anni fa abbiamo creato KSN (17 brevetti e domande di brevetto) – il “cervello remoto” necessario. KSN è una tecnologia cloud con un’infrastruttura avanzata connessa a ogni computer protetto che a malapena utilizza ogni risorsa endpoint e aumenta la qualità della protezione.
KSN è essenzialmente una bambola russa: il “cloud” contiene tante altre tecnologie smart per combattere i cyberattacchi. Include anche sistemi di “combattimento” e sviluppa continuamente modelli sperimentali. Ho già scritto qualcosa su uno di questi (Astraea – brevetti US7640589, US8572740, US7743419) che dal 2009 ha analizzato automaticamente eventi sui computer protetto per scoprire minacce sconosciute. Oggi Astraea esamina più di un miliardo di eventi al giorno e facendo ciò, calcola la classifica per decine di milioni di oggetti.
Sebbene le tecnologie cloud abbiano dimostrato quanto siano superiori, sono state tutte vendute come sistemi autonomi e isolati. Queste hanno fatto un po’ di apprendimento automatico preliminare e si sono raramente aggiornate dal momento che si trovano sul computer del cliente. Pensate un po’.
Ma aspettate.
Le aziende che producono queste soluzioni isolate affermano che, grazie all’apprendimetno automatico, possono rilevare la “nuova generazione di malware” senza aggiornamenti regolari. Ma il rilevamento non interessa nessuno, dal momento che protegge “superfici” insignificanti che promettono un guadagno economico insufficiente ai criminali (troppi pochi utenti = scarso interesse). A volte forse ne rilevano qualcuno, ma non ne sentirete parlare mai. Non è come se avessero sempre scoperto qualcosa di enorme (come attacchi avanzati di spie come Duqu, Flame o Equition).
Oggi analizziamo il 99.9% delle cyberminacce utilizzando i nostri algoritmi infrastrutturali che sono alimentate dall’apprendimento automatico. L’intervallo di tempo tra la scoperta del comportamente sospetto su un dispositivo protetto e il rilascio del nuovo “blocco” dura in media 10 minuti. Questo avviene, ovviamente, se non avevamo bloccato l’oggetto dannoso con una forte protezione (ad esempio, la protezione automatica contro gli exploit). Ci sono stati casi in cui, dal momento in cui è stato scoperto un oggetto sospetto al momento in cui è stato rilasciato un aggiornamento sono passati 40 secondi. Questo ha comportato lamentele nei forum di underground: “Come fanno questi tipi a rilevarci così velocemente? Non ce la facciamo più!”.
Riassumendo: infrastrutture cloud + apprendimento automatico = protezione sconvolgentemente efficace. Anche in precedenza, raramente i risultati non erano positivi nei test indipendenti; ma da quando abbiamo creato KSN siamo diventati i numeri 1 indiscussi. Inoltre, abbiamo mantenuto livelli molto bassi di falsi positivi, e per quanto riguarda la velocità possediamo i migliori indicatori sul mercato.
Vino d’annata vs. Vino scadente dell’anno scorso
Sembra come se, alla fine, sia stata trovata la panacea di tutti i mali informatici! Un leggero intercettatore di un cliente nell’endpoint e tutto il lavoro pesante sul cloud. Ma no. Se mai ci fossero problemi di rete, l’endpoint non sarebbe protetto. Infatti, la pratica ha mostrato che l’ambiente ideale in cui le tecnologie intelligenti si trova tra i due estremi (adottando una combinazione di autonomia e cloud).
Poi c’era l’idea che l’apprendimento automatico potesse sostituire tutti gli altri approcci al paradigma della sicurezza totale. Vale a dire mettere tutte le uova in un paniere.
Ma… cosa accadrà quando i criminali capiranno come funziona l’algoritmo e impareranno come raggirare la protezione? Questo significherebbe che tutti i modelli matematici avrebbero bisogno di essere modificati e bisognerebbe aggiornare i dispositivi protetti. E mentre il modello è stato modificato e l’aggiornamento inviato/ricevuto, l’utente affronterà da solo il cyberattacco (senza protezione).
La conclusione è ovvia: la miglior protezione è una combinazione di diverse tecnologie, a tutti i livelli, prendendo in considerazione tutti i vettori d’attacco.
E infine, la cosa più importante: l’apprendimento automatico è creato dagli esseri umani (gli esperti di alto calibro nelle analisi dei dati e nei pericoli informatici). Non potete avere uno senza l’altro. Si tratta di intelligenza umanautomatica.
E si tratta di un lungo processo di prove ed errore che impiega molti anni. È come un vino d’annata (è sempre meglio rispetto al vino scadente dell’anno scorso, non importa quanto sia carina l’etichetta). Chi si avventura sul sentiero lungo e tortuoso dell’automazione, avrà gli esperti più competenti, le tecnologie migliori e la protezione più affidabile. E non è solo la mia opinione. È confermata da test, da investigazioni/ricerche e dai clienti.
Bonus: o tempora o mores!
Il modello commerciale di alcune startup sulla sicurezza IT è chiara: “Non importa quanto guadagni, ma quanto vali“. Il loro obiettivo è una spruzzata di intensa attività commerciale basata sulle provocazioni, sui raggiri e sugli inganni (tutto per far scoppiare le bolle delle aspettative).
Se una startup non si basa sull’inganno, capirà subito che senza una protezione completa, senza l’applicazione di tutte le moderne tecnologie di protezione e senza lo sviluppo di esperti sarà condannata; perchè gli investimenti e il credito agevolato degli utenti stanno giungendo al termine.
Dall’altro lato, creare dal nulla un buon prodotto di sicurezza che contrassegna tutte le caselle al giorno d’oggi è difficile, se non impossibile. Non c’è tanto bisogno di soldi quanto di menti geniali e di tempo. Credo che molte startup abbiano scelto di iniziare in piccolo per poi svilupparsi costantemente.
Sono sicuro che prima o poi le startup rivoluzionarie inizieranno a introdurre tecnologie opportunamente testate e collaudate che dimostrano la loro efficienza. E le giovani startup migliori, che maturano esperienza genuina e che aumentano i propri esperti inizieranno ad espandere il loro arsenale di protezione per bloccare sempre di più potenziali attacchi. Facendo raggiungere ai loro prodotti un livello professionale, dimostreranno la correlazione dei criteri obiettivi di qualità adottati nella vera cybersicurezza.
#L’ApprendimentoAutomatico è fondamentale per la #cybersicurezza. @e_kaspersky ci dà qualche informazione interessante al riguardo#AITWEET