Deep dive nella cybersec: exploits

In termini generali, un exploit è una serie di azioni eseguite per trarre il massimo beneficio da una risorsa preesistente.

Nella cybersecurity potremmo definire un exploit come un pezzo di software, un chunk di dati o una sequenza di comandi che sfrutta un bug o una vulnerabilità al fine di causare un comportamento non previsto o non prevedibile su software o hardware del computer. Ciò può includere la fuga di dati, l’escalation dei privilegi, l’esecuzione di codice arbitrario (spesso utilizzato come parte di un attacco zero-day), attacchi denial-of-service e virus.

Per andare ancora più a fondo, questo termine viene utilizzato per descrivere l’uso di istruzioni software di basso livello che vanno oltre la funzione o la progettazione prevista di un programma informatico.

Gli hacker sono sempre alla ricerca di vulnerabilità. Utilizzano gli exploit per ottenere dati personali, come numeri di carte di credito, accessi a conti bancari, numeri di previdenza sociale e ogni tipo di informazione sensibile.

Il vettore più comune per un exploit è l’iniezione:

  • Un’iniezione SQL, in cui un malintenzionato (o qualcuno che si spaccia per tale) inietta codice dannoso in un campo di immissione per estrarre dati da un database.
  • Un attacco XSS, in cui un malintenzionato inietta bit dannosi nel codice sorgente di un sito web per estrarre dati dal database o dal server del sito.

Exploit famosi

Ci sono molti exploit e hack famosi: alcuni di quelli che hanno fatto più scalpore sono Heartbleed, Sony PlayStation Network Hack, Target Security Breach, Eternalblue (che ha dato il via alla tendenza del Ransomware).

Heartbleed è una vulnerabilità di OpenSSL scoperta il 7 aprile 2014: si trattava di un bug nel protocollo che permetteva agli aggressori di rubare informazioni dai server senza essere rilevati. Questo exploit ha colpito oltre il 66% di tutti i server web a livello globale, compresi siti come Yahoo!, Facebook, Google e Amazon.

Quello del PSN (PlayStation Network) di Sony è avvenuto anche prima: nel 2011 un gruppo di hacker ha rubato le informazioni personali di 77 milioni di account. Gli hacker sono stati in grado di farlo in seguito all’ottenimento dei dati di accesso al PSN da parte di un soggetto esterno che si era introdotto nella rete di Sony all’inizio dello stesso anno.

La violazione della sicurezza di Target (nota catena commerciale statunitense) si è verificata durante le festività natalizie del 2013 e ha visto il furto di 40 milioni di carte di credito dai suoi sistemi: in quel caso gli hacker hanno utilizzato un malware inviato ai POS di Target per rubare i dati delle carte mentre venivano inseriti nel sistema.

Un altro esempio famoso è stato l’exploit WannaCry, veicolato da Eternalblue, una vulnerabilità scoperta dall’NSA e tenuta segreta fino a quando non è stata trapelata da un gruppo chiamato Shadow Brokers. Si tratta di un exploit di sicurezza che colpisce Microsoft Windows e che, al momento della divulgazione, non era ancora stato patchato. L’exploit Eternalblue è stato uno degli exploit più pericolosi al mondo, venendo per creare alcuni degli attacchi ransomware più devastanti come WannaCry, NotPetya e BadRabbit.

Per capirne la pericolosità il ransomware è un tipo di virus che blocca i dati nel computer della vittima e richiede un pagamento per sbloccarli. Di solito si diffonde attraverso allegati di posta elettronica, download da fonti non attendibili o, in generale, attraverso una o più vulnerabilità del sistema.

Stare al sicuro

Con l’aumento del numero di persone e dispositivi connessi a Internet, è aumentato anche il numero di attacchi informatici: i criminali informatici sono sempre alla ricerca di nuovi modi per sfruttare le vulnerabilità del sistema.

Per prevenirli, è importante adottare misure per assicurarsi di non essere vulnerabili:

  • aggiornare sempre regolarmente il software e l’hardware
  • utilizzare password forti e cambiarle regolarmente
  • utilizzare l’autenticazione a due fattori quando possibile
  • installare una suite di sicurezza che includa una protezione antivirus e impostazioni di firewall che bloccano l’accesso al sistema da parte di programmi sospetti o dannosi.

Quest’ultimo aspetto è particolarmente importante per gli utenti di Windows, ma ciò non significa che gli utenti Linux e macOS debbano sentirsi al sicuro: man mano che l’uso e la distribuzione di sistemi basati su Unix aumentano e guadagnano popolarità, aumentano anche le ricerche sui possibili vettori di attacco.

Gli aggiornamenti sono una parte fondamentale per mantenere il dispositivo protetto. Questi aggiornamenti non solo bloccano gli exploit, ma migliorano la sicurezza del dispositivo e lo proteggono dai vettori di attacco conosciuti: la maggior parte degli exploit più devastanti sono stati effettuati a causa di sistemi non aggiornati (anche dopo la distribuzione delle patch).

Internet è un mondo digitale che è sia benefico che dannoso. È stato creato per mettere in contatto persone di tutto il mondo, ma ha anche creato uno spazio per gli hacker per sfruttare le vulnerabilità, mettendo a rischio tutti coloro che non hanno una conoscenza adeguata del problema e dei rischi. Ecco perché è fondamentale imparare a proteggere la propria privacy e i propri dati e acquisire consapevolezza sulla sicurezza e sulle minacce online.

La conoscenza è potere, in questo caso il potere di difendere i propri dati da attacchi malevoli.

Il Reinforcement Learning (RL): come i robot impararono autonomamente dal loro ambiente

Il Reinforcement Learning (RL) trova sempre più applicazione, negli ultimi anni, nel mondo della robotica autonoma, specialmente nello sviluppo di quelli che sono stati chiamati i “curious robots”, ovvero robot programmati in modo da mimare la curiosità umana per l’ambiente esterno.

Infatti, in generale, uno dei problemi fondamentali dei robot autonomi riguarda la capacità di generare autonomamente delle strategie per risolvere un problema, o per esplorare autonomamente un ambiente. Il RL permette di migliorare le performance del robot in entrambi questi campi. L’apprendimento per rinforzo è uno dei tre paradigmi di base dell’apprendimento automatico, insieme all’apprendimento supervisionato e all’apprendimento non supervisionato. Nel campo della “open ended robotics” il RL viene utilizzato per permettere al robot di esplorare e imparare da un ambiente anche in assenza di un esplicito obiettivo. In breve, il funzionamento del RL in questo contesto è il seguente: il robot inizia ad esplorare una parte dell’ambiente con i sensori e gli attuatori, ovvero le braccia meccaniche. Nel momento in cui l’ambiente è conosciuto oltre una certa soglia, l’algoritmo di RL diminuisce la ricompensa, ovvero il “rinforzo” positivo – da qui Reinforcement learning – nell’esplorare quella parte di ambiente, e forza il robot ad esplorare una nuova porzione. In questo modo il robot è spinto, autonomamente, da un principio simile alla curiosità. Uno dei maggiori vantaggi dell’utilizzo dell’apprendimento per rinforzo nello sviluppo di “robot curiosi” è che consente a questi robot di apprendere dal loro ambiente in modo più naturale. Le tecniche di programmazione tradizionali richiedono agli ingegneri di specificare ogni passaggio che un robot deve eseguire per completare un’attività, il che può richiedere molto tempo ed essere difficile e inefficace, specialmente se il robot trova applicazioni in ambienti imprevedibili e mutevoli. L’apprendimento per rinforzo, invece, consente ai robot di imparare autonomamente dal loro ambiente e sviluppare le strategie di interazione migliori. Queste tecniche possono essere utilizzate anche per far scoprire al robot, con una procedura di “trial and error”, quale sia la strada più breve per uscire da un labirinto. In generale, il RL funziona molto bene per obiettivi esplorativi, e per l’interazione con ambienti estremamente imprevedibili, dove le normali tecniche di programmazione fallirebbero certamente. L’evoluzione di questo approccio potrebbe portare nei prossimi anni a robot in grado di esplorare vaste porzioni di ambiente, per lungo tempo, senza bisogno di alcuna supervisione umana. Una simile tecnologia trova applicazione in molteplici campi, sia civili che militari.

Nonostante questi vantaggi, ci sono anche alcuni potenziali rischi associati all’utilizzo dell’apprendimento per rinforzo nei robot curiosi. Una delle preoccupazioni principali è che gli algoritmi di apprendimento per rinforzo possono essere difficili da interpretare, il che rende complesso capire come un robot prende le decisioni e prevedere come si comporterà in una determinata situazione. Inoltre, gli algoritmi di apprendimento per rinforzo comportano il rischio che un robot impari a compiere azioni non ottimali o addirittura dannose, se l’interpretazione del feedback ambientale è inefficace.

Nel complesso, sebbene esistano certamente dei rischi associati all’utilizzo dell’apprendimento a rinforzo in robotica, i vantaggi di questa tecnica possono essere significativi. Consentendo ai robot di apprendere compiti complessi e adattarsi più facilmente a nuovi ambienti, l’apprendimento per rinforzo può aiutare a rendere i robot più versatili ed efficienti. Fintanto che questi algoritmi vengono utilizzati con attenzione e con un’adeguata supervisione, possono essere un potente strumento per migliorare le prestazioni e far progredire il campo della robotica.

Intelligenza artificiale: esplorando l’innovazione invisibile

Cos’è l’intelligenza artificiale

 L’intelligenza artificiale è un settore dell’Information Technology (IT) che si pone come scopo quello di dimostrare come un software possa agire razionalmente.

I primi riferimenti di studi sul cervello umano si collocano intorno al XVII secolo a.C. con il Papiro chirurgico di Edwin Smith: è chiaro come l’interesse degli esseri umani per la materia grigia sia andato di pari passo con la civilizzazione, fino all’avvento dell’informatica, dove sono fioriti studi sulla replicazione dello stesso flusso di lavoro cerebrale in una macchina.

BREVE STORIA DELL’INTELLIGENZA ARTIFICIALE

Contrariamente a quanto si pensa, l’intelligenza artificiale non è un campo nuovo. I primi studi sono iniziati negli anni ’30 con le “macchine pensanti”, quando tre attori principali ne hanno definito le basi:

  • Norbert Wiener con la sua rete elettrica che imita l’attivazione dei neuroni;
  • Claude Shannon, che descrisse l’elaborazione digitale dei segnali;
  • Alan Turing, che definì le regole per valutare qualsiasi problema da un punto di vista digitale.

Questi tre principi chiave si concretizzeranno nel 1943, quando Walter Pitts e Warren McCulloch definirono la prima Rete Neurale, in cui ai neuroni artificiali veniva affidato il compito di risolvere semplici funzioni logiche.

Negli anni successivi, gli studi continuarono senza un vero e proprio focus (o un vero e proprio nome), finché nel 1956 si tenne il Dartmouth Workshop basato su una proposal molto diretta: “ogni aspetto dell’apprendimento o di qualsiasi altra caratteristica dell’intelligenza può essere descritto in modo così preciso da poter essere simulato da una macchina“. In quel preciso momento nacque il termine Intelligenza Artificiale e gli studi fiorirono. L’attenzione del pubblico e i finanziamenti erano in costante aumento, ad eccezione di due periodi – 1974-1980 e 1987-1993 – che videro rispettivamente un importante taglio dei fondi da parte della DARPA (1974) e il crollo delle LISP Machines (1987).

IL COMPAGNO INVISIBILE

La storia ha dimostrato che l’Intelligenza Artificiale non è solo vaporware: dopo tempi bui gli studi ricominciano a prosperare (con qualche intoppo, ad esempio nel 2010 con i contratti futures EMini S&P 500, quando iniziò a scatenarsi un effetto patata bollente tra “agenti intelligenti”).

Ai giorni nostri la presenza dell’Intelligenza Artificiale è appena percettibile, eppure è parte integrante e importantissima della nostra vita, partecipando a:

  • Distribuzione di servizi di pubblica utilità;
  • Controllo del traffico nelle grandi città;
  • Previsioni del tempo;
  • Catena alimentare dei trasporti;
  • Logistica;
  • Social media;
  • Analisi delle abitudini;
  • Arte;
  • e così via.

Secondo un sondaggio condotto da Ipsos per il World Economic Forum, il 60% dei candidati intervistati pensa che l’IA renderà la loro vita più facile nei prossimi 3-5 anni, ma solo il 52% pensa che la loro vita subirà un effettivo miglioramento.

I DATI COME DNA DIGITALE

La ragione dello scetticismo risiede nello stesso cuore pulsante dell’IA: i dati.

Per rendere autonomo un sistema è necessario alimentarlo con dati che saranno successivamente organizzati in dataset di addestramento da cui la macchina potrà imparare.

Mentre molti dati per applicazioni specifiche sono raccolti da governi/istituzioni/organizzazioni, i dati personali possono essere raccolti solo con l’uso di applicazioni come i social media.

I dati personali sono ovviamente molto dinamici e richiedono quindi un aggiornamento e una raccolta costanti.

Questo ha sollevato molte preoccupazioni sulla privacy e, sebbene i nostri dati stiano gradualmente diventando sempre più protetti grazie a svariate regolamentazioni (come il GDPR per l’UE), la sensazione è che siamo ancora nel selvaggio west.

Sebbene nella maggior parte dei casi la raccolta avvenga per un obiettivo finale piuttosto innocuo (come il clustering per scopi di marketing), gli stessi dati potrebbero essere utilizzati per manipolare le persone (ad esempio Cambridge Analytica) o, peggio, per controllare la vita delle persone.