Pubblicati da Cristiano Frassineti

Come Minecraft ha quasi distrutto Internet

La vulnerabilità di Log4j e il suo impatto su Minecraft

Minecraft, il popolarissimo videogioco sandbox creato da Mojang Studios, ha affascinato milioni di giocatori in tutto il mondo con la sua creatività senza limiti e i suoi ampi mondi virtuali. Tuttavia, alla fine del 2021, una vulnerabilità in una libreria di log ampiamente utilizzata, chiamata Log4j, ha minacciato la stabilità del gioco e, cosa più allarmante, la sicurezza dell’intero Internet. In questo post ci addentreremo nei dettagli della vulnerabilità Log4j, esploreremo il modo in cui ha colpito Minecraft e discuteremo le lezioni apprese da questa crisi di cybersicurezza.

La vulnerabilità Log4j: Una breve panoramica

Log4j è un’utilità di registrazione open-source basata su Java e sviluppata dalla Apache Software Foundation. È ampiamente utilizzata dagli sviluppatori per registrare gli eventi di sistema e monitorare le applicazioni software. Nel dicembre 2021 è stata scoperta in Log4j una vulnerabilità critica nota come Log4Shell (CVE-2021-44228). 

Questa vulnerabilità consentiva agli aggressori di eseguire da remoto un codice arbitrario sui sistemi interessati semplicemente inviando una stringa appositamente creata all’applicazione vulnerabile.

La gravità della vulnerabilità di Log4j derivava dal suo uso diffuso e dalla facilità con cui poteva essere sfruttata. Nel giro di pochi giorni dalla sua scoperta, la vulnerabilità è stata sfruttata da attori malintenzionati, portando a diffusi attacchi a varie organizzazioni, tra cui agenzie governative e aziende private.

Minecraft e la vulnerabilità Log4j

Minecraft, che gira su Java e utilizza Log4j per le registrazioni, è stato uno dei bersagli più importanti della vulnerabilità Log4Shell. Non appena la vulnerabilità è stata resa pubblica, gli hacker hanno iniziato a prendere di mira i server Minecraft, sfruttando la falla Log4j per eseguire codice dannoso, rubare dati sensibili e interrompere le operazioni dei server.

La situazione si è ulteriormente complicata a causa dell’enorme base di giocatori di Minecraft e dell’enorme numero di server ospitati dalla comunità, molti dei quali gestiti da hobbisti con conoscenze limitate in materia di sicurezza informatica. Questo ha reso difficile per Mojang Studios e per la più ampia comunità di Minecraft rispondere in modo rapido ed efficace alla minaccia.

Come Minecraft ha reagito alla minaccia

Mojang Studios, lo sviluppatore del gioco, e Microsoft, la sua società madre, sono intervenuti immediatamente per risolvere la vulnerabilità di Log4j. Hanno rilasciato una serie di patch sia per i server ufficiali del gioco sia per il software lato client per ridurre il rischio di sfruttamento. Inoltre, hanno fornito indicazioni chiare alla comunità su come aggiornare i server e proteggere gli utenti.

Tuttavia, la risposta non è stata priva di difficoltà. A causa della natura decentralizzata dei server Minecraft, molti server ospitati dalla comunità sono stati lenti nell’applicare le patch, lasciandoli esposti ad attacchi continui. In alcuni casi, gli aggressori hanno approfittato di questo ritardo creando patch false contenenti malware, aggravando ulteriormente il problema.

Le conseguenze e le lezioni apprese

La vulnerabilità di Log4j in Minecraft ci ricorda le potenziali conseguenze di una singola vulnerabilità software nel nostro mondo digitale interconnesso. Sebbene non siano state segnalate distruzioni diffuse a causa dell’exploit Log4j in Minecraft, l’incidente ha evidenziato l’importanza di solide pratiche di cybersicurezza nei giochi e non solo.

Ecco alcune lezioni chiave che possiamo trarre dalla crisi di Minecraft Log4j:

  1. Aggiornare regolarmente il software e applicare le patch di sicurezza: Assicurarsi che il software sia aggiornato con le ultime patch di sicurezza è fondamentale per prevenire lo sfruttamento delle vulnerabilità. Nel caso di Minecraft, l’applicazione delle patch ufficiali rilasciate da Mojang Studios avrebbe evitato molti dei problemi incontrati dai server ospitati dalla comunità.
  2. Aumentare la consapevolezza delle migliori pratiche di cybersecurity: Molti amministratori di server e utenti potrebbero non essere consapevoli dell’importanza di applicare le patch o dei potenziali pericoli derivanti dal download di patch non ufficiali. La sensibilizzazione alle migliori pratiche di sicurezza informatica può contribuire a ridurre i rischi associati a incidenti come la vulnerabilità di Log4j.
  3. Rafforzare la collaborazione tra gli sviluppatori e la comunità: L’incidente di Minecraft Log4j ha sottolineato la necessità di una migliore comunicazione e collaborazione tra gli sviluppatori di software, come Mojang Studios, e la più ampia comunità di utenti. Promuovendo un forte rapporto con gli utenti e incoraggiando il feedback, gli sviluppatori possono affrontare più efficacemente i problemi di sicurezza e fornire un supporto tempestivo durante le crisi.
  4. Sottolineare l’importanza della sicurezza a più livelli: Sebbene la risoluzione della vulnerabilità di Log4j in Minecraft sia stata fondamentale, è essenziale ricordare che nessuna singola misura di sicurezza è infallibile. L’adozione di un approccio alla sicurezza a più livelli, che combina diverse misure difensive, può aiutare a proteggere le risorse e i sistemi digitali da potenziali attacchi.
  5. Incoraggiare le gli audit sui software open-source: La vulnerabilità di Log4j è rimasta inosservata per anni, nonostante l’uso diffuso della libreria. Incoraggiare e finanziare verifiche regolari del software open-source può aiutare a identificare e correggere le vulnerabilità prima che possano essere sfruttate da soggetti malintenzionati.
  6. Promuovere una cultura della divulgazione responsabile delle vulnerabilità: la tempestiva divulgazione pubblica della vulnerabilità di Log4j da parte dei suoi scopritori ha permesso agli sviluppatori e alle organizzazioni di agire rapidamente per risolvere il problema. Incoraggiare una cultura di divulgazione responsabile delle vulnerabilità, in cui i ricercatori di sicurezza e le organizzazioni collaborano per rimediare alle vulnerabilità prima di renderle pubbliche, può aiutare a prevenire l’armamento di tali falle.

Conclusione

La vulnerabilità di Log4j in Minecraft ha dimostrato il profondo impatto che una singola falla del software può avere sul mondo digitale. Sebbene l’incidente non abbia portato alla distruzione di Internet come lo conosciamo, ha evidenziato l’importanza di solide pratiche di sicurezza informatica e la necessità di collaborazione tra sviluppatori, utenti e comunità di sicurezza informatica. Imparando da questa esperienza e adottando misure proattive per proteggere le nostre risorse digitali, possiamo sperare di ridurre i rischi associati alle future minacce alla sicurezza informatica.

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.

BLOCKCHAIN E SICUREZZA

La blockchain è un libro mastro digitale che registra le transazioni condividendole tra molti computer. È un database distribuito, il che significa che ne esistono molte copie e che nuove informazioni possono essere aggiunte solo se tutti i partecipanti alla rete sono d’accordo.

La tecnologia blockchain è uno strumento potente per migliorare la sicurezza e l’affidabilità: tuttavia, non è priva di rischi e pericoli.

EXPLOIT

Il rischio più evidente della tecnologia blockchain è la vulnerabilità agli exploit. Si tratta di minacce alla blockchain che sorgono a causa di bug o violazioni nella progettazione del sistema. Esistono due tipi di exploit: quelli che sfruttano i bug (ad esempio, gli attacchi denial-of-service) e quelli che sfruttano i difetti di progettazione del sistema stesso (ad esempio, la rientranza). Ad esempio, un attore può utilizzare un attacco denial-of-service per mettere offline un nodo inviandogli un numero eccessivo di messaggi o di query che non è in grado di gestire.

RIENTRANZA

Un exploit di rientranza si verifica quando un attore invia due transazioni diverse allo stesso tempo, una dopo l’altra, con ciascuna transazione che apporta modifiche per conto dell’attore stesso senza attendere che la prima transazione venga eseguita. La seconda transazione sarà in grado di eseguire le sue modifiche anche prima che la precedente transazione restituisca una risposta. Se le transazioni di una blockchain non sono atomiche, un attore che invia due transazioni contemporaneamente può permettere alla seconda transazione di essere eseguita prima che la prima termini l’esecuzione, apportando le sue modifiche senza attendere che la prima transazione termini. Questa è chiamata rientranza ed è considerata un problema importante per le blockchain come Ethereum a causa della sua dipendenza da smart contract.

Altri tipi di problemi di sicurezza

La sicurezza delle blockchain è una preoccupazione fondamentale per molti investitori e aziende che stanno cercando di utilizzare la tecnologia blockchain nel loro modello di business. Oltre a quelli indicati sopra, ci sono vari altri rischi che devono essere affrontati, come gli errori umani, gli attacchi di phishing e le vulnerabilità del codice (soprattutto nelle chain con possibilità di esecuzione di smart contract).

Vulnerabilità del codice

Le vulnerabilità del codice sono una conseguenza diretta degli smart contract, una forma di codice supportata da molte Blockchain. Gli smart contract sono protocolli informatici che eseguono i termini di un contratto: si possono considerare come un programma informatico auto-operante che viene eseguito automaticamente quando vengono soddisfatte determinate condizioni.

Le vulnerabilità degli smart contract sono causate da una cattiva stesura del codice e da bug. Il rischio è elevato a causa della difficoltà di modificare uno smart contract in seguito alla sua distribuzione.

I bug possono essere sfruttati dagli hacker, che possono utilizzarli per rubare denaro o dati dalla blockchain, ad esempio accedendo a funzioni del codice che non dovrebbero essere eseguibili.

Nel mondo della blockchain, gli smart contract vengono utilizzati per automatizzare alcuni processi che di solito vengono svolti manualmente, ma come sempre l’automazione aumenta il livello di rischio.

Una delle vulnerabilità più tipiche è il rischio di rientranza di cui sopra, che colpisce gli smart contract in modo molto comune a causa della loro struttura basata su metodi con un controllo degli accessi autovalutativi.

Attacchi di phishing

Dall’altro lato, il phishing è quando qualcuno ruba le vostre credenziali per un servizio, come l’accesso al vostro conto bancario o all’account di un social media, fingendo di essere un’altra persona che conoscete tramite un’e-mail, un messaggio di testo, una telefonata, ecc. Le chiavi private vengono utilizzate per firmare le transazioni su una blockchain, il che significa che se qualcuno fosse in grado di rubare la vostra chiave privata, avrebbe accesso ai vostri fondi e a tutte le funzioni degli smart contract che avete voi stessi implementato.

Le truffe di phishing sono, in generale, il tipo di attacco informatico più comune. I malintenzionati utilizzano l’ingegneria sociale per ottenere l’accesso alla vostra chiave privata e prendere il controllo del vostro conto.

Di solito si tratta di uno schema composto da quattro fasi:

  1. I truffatori creano un sito web falso che sembra identico a quello legittimo;
  2. Inviano e-mail di spam o messaggi su siti di social media come Facebook, Twitter, ecc;
  3. Poi ingannano l’utente e lo costringono a inserire la sua chiave privata o la sua frase mnemonica sul loro sito;
  4. Infine, sottraggono le informazioni di cui hanno bisogno e le usano per agire a vostro nome.

Il phishing non è un fenomeno nuovo, ma è diventato più sofisticato con l’avvento dei social media e di altri strumenti online. Può essere difficile riconoscere i tentativi di phishing perché vengono fatti passare per messaggi legittimi provenienti da fonti attendibili.

Errori umani

Infine, ci sono molti tipi di errori umani che possono portare a violazioni della sicurezza nelle reti blockchain. Il tipo di errore umano più comune è l’ingegneria sociale, un ventaglio di attacchi che utilizza l’inganno per ottenere l’accesso a informazioni o dati privati. L’errore umano è un grande rischio per la sicurezza della blockchain a causa della sua complessità. L’ingegneria sociale è un tipo di errore umano che può essere mitigato assicurandosi che le persone siano ben addestrate su cosa fare e cosa non fare quando interagiscono con la tecnologia blockchain. Gli attacchi di ingegneria sociale possono verificarsi quando agli esseri umani vengono fornite informazioni organizzative a cui non dovrebbero avere accesso, come password o chiavi (come detto prima). Abbiamo appena parlato del tipo più comune di attacco di social engineering – il phishing – ma, come già detto, non ci si ferma qui: altri vettori di attacco sono:

  • spoofing, ovvero quando qualcuno finge di essere qualcun altro tramite e-mail o telefono, di solito con una posizione geografica corrispondente;
  • vishing, ovvero quando gli hacker chiamano la vittima al telefono e la convincono a fornire informazioni per qualcosa che non esiste.

Attori malintenzionati: scams e rug pulls

Il mondo delle criptovalute è pieno di progetti scam. È importante saperli riconoscere prima di investire in un progetto.

  • Uno scam è un inganno o una frode intenzionale, che tipicamente comporta l’uso di informazioni false o fuorvianti, progettate per trarre vantaggio da altri.
  • Il rug pull invece è una tattica utilizzata dai manipolatori del mercato che consiste nel convincere gli investitori ad acquistare un token, spesso rilasciando dichiarazioni positive sulle prospettive del progetto, con l’unica intenzione di estrarre (cioè togliere, “pullare”) tutto il valore immesso dagli utenti per rubarlo.

Il mercato delle criptovalute non è un luogo sicuro e ci sono molte persone che vogliono approfittare della mancanza di conoscenza ed esperienza altrui. I progetti scam sono spesso lanciati da sviluppatori con l’intenzione di derubare gli investitori. Promettono rendimenti irrealistici per attirare l’attenzione sul loro progetto, ma nella maggior parte dei casi falliscono miseramente o scompaiono senza lasciare traccia. Altri modi in cui i truffatori cercano di approfittare degli investitori inesperti sono:

  • Promettere profitti garantiti che non possono essere raggiunti nella realtà
  • Vendita di token a prezzi scontati
  • Creazione di ICO false
  • Promessa di token gratuiti in cambio di major asset.

Le truffe sono un problema importante nello spazio delle criptovalute. Con il lancio di così tanti progetti e token, diventa sempre più difficile per l’utente medio distinguere tra una truffa e un progetto legittimo.

Per difendersi da questi rischi, si dovrebbe investire solo in token con informazioni sul locking della liquidità. Questo impedisce al token di essere venduto sul mercato prima della data di rilascio, riducendo così la possibilità che si verifichi, appunto, un rug pull. Con la liquidità bloccata, nessuno è in grado di sottrarre al progetto il valore investito. È inoltre molto importante essere consapevoli dell’offerta in circolazione del token in cui si è investito e della distribuzione dello stesso (tokenomics). Infatti, un progetto all’interno del quale solo pochi attori hanno alte percentuali di token sbloccate, rispetto all’offerta totale è può comportare un rischio concreto.