Retroscena

Vulnerabilità Log4Shell: Steam, Apple, Minecraft e molti altri sono a rischio

Dominik Bärlocher
14/12/2021
Traduzione: Leandra Amato

Log4Shell è una delle più grandi lacune di sicurezza degli ultimi anni. Lo strumento di logging interessato, Log4j, si trova praticamente in ogni applicazione e software scritti in Java. C'è il rischio di perdita di dati o addirittura peggio.

Dal 9 dicembre 2021, Log4j è considerato una minaccia per tutti gli utenti di PC, smartphone, console di videogiochi e Internet. Questo perché Log4j presenta una vulnerabilità che permetterebbe ad un hacker di far passare di nascosto codice arbitrario in un sistema. Questo si chiama «Remote Code Execution» («esecuzione remota di codice»).

Al di fuori dei circoli di sviluppatrici e sviluppatori, nessuno conosce Log4j. È normale: lo strumento di logging legge nel background delle applicazioni Java, fornendo agli sviluppatori informazioni su errori e altri processi. Ma è proprio questa libreria di programmi che apre la porta agli hacker malintenzionati. Il problema è che Log4j è estremamente diffuso, quindi moltissimi sistemi sono vulnerabili.

Tra questi cito i seguenti:

  • Apple
  • Tencent
  • Steam
  • Twitter
  • Baidu
  • CloudFlare
  • Amazon
  • Tesla
  • Minecraft
  • VMWare
  • WebEx
  • LinkedIn

Questa lista non è esaustiva e serve solo a dare un'idea di quanto sia grave il problema.

La vulnerabilità è stata denominata Log4Shell.

Cosa possono fare gli utenti contro Log4Shell? Come posso proteggermi?

Sei in gran parte in balia di Log4Shell. L'esperto di sicurezza Manuel Atug consiglia le seguenti misure:

  1. Fare un backup dei dati personali
  2. Installare tutti gli aggiornamenti che verranno rilasciati nei prossimi giorni

Cosa possono fare gli amministratori contro Log4Shell?

Gli amministratori hanno uno degli strumenti più forti a loro disposizione. Con una piccola modifica al loro sistema, possono bandire Log4Shell dai loro server per sempre.

Log4Shell viene corretto da un aggiornamento. Se Log4j gira sulla versione 2.1.50.rc2, allora la vulnerabilità non è più nel codice.

Questo aggiornamento è già stato aggiunto al repository ufficiale prima del rilascio di Log4Shell («Responsible Disclosure»). Gli scopritori di Alibaba hanno lavorato con la Apache Software Foundation e si sono impegnati a mantenere la segretezza fino a quando Apache ha rilasciato una correzione.

Per scoprire se una versione vulnerabile di Log4j è in esecuzione sul tuo sistema, la società di sicurezza Huntress Labs ha rilasciato il software log4shell-tester. Questo indica se il tuo sistema sta eseguendo Log4j in una versione non aggiornata.

Cos'è Log4j?

Log4j è uno strumento per la gestione dei log. Registra gli eventi di sistema che possono essere studiati dagli operatori del server per risolvere i problemi o migliorare le prestazioni.

Log4j non è un componente nuovo, ma viene aggiornato regolarmente. È stato inventato dal creatore di codice Ceki Gülcü e rilasciato nel 2001. L'aggiornamento più recente prima dell'arrivo della lacuna di sicurezza è datato 6 dicembre 2021 e include la correzione della vulnerabilità.

Log4j è open source e può essere usato da chiunque.

È scritto nel linguaggio di programmazione Java ed è usato dalle applicazioni Java. Java è spesso usato nello sviluppo di applicazioni web.

Log4j è così diffuso, infatti, che persino il fornitore di sicurezza Malwarebytes afferma che la vulnerabilità è «ovunque», anche su Marte.

Cos'è Log4Shell?

La vulnerabilità in Log4j ha ricevuto un nome proprio a causa della sua gravità: «Log4Shell». Il termine «Shell» indica che un hacker può utilizzare la vulnerabilità per eseguire il proprio codice sul computer vulnerabile.

Log4Shell non è solo sul tuo smartphone o sul tuo computer, ma in tutte le applicazioni che usano Log4j. Tra queste ci sono molti server che eseguono software con Log4j.

Dopo la sua scoperta, Log4Shell ha ricevuto una valutazione che indica quanto sia grave la vulnerabilità, ottenendo un punteggio di 10 su una scala da 1 a 10 e ricevendo il numero di identificazione CVE-2021
-44228
da Mitre, l'agenzia internazionale di gestione delle vulnerabilità informatiche.

In pratica, un hacker malintenzionato può eseguire qualsiasi codice maligno su molti server nel mondo. Oppure componenti middleware come gli switch di rete Cisco, per esempio.

Ancora peggio: Log4Shell è estremamente facile da sfruttare.

Cos'è Remote Code Execution?

Remote Code Execution si traduce in «esecuzione remota di codice». Un hacker può trovarsi alle Bahamas ed eseguire codice su un computer svizzero e persino controllarlo. Di regola questo non dovrebbe essere possibile. Anche su un sistema Windows o macOS non è possibile eseguire tutto il codice che si vuole. Se un sistema rileva del codice dannoso, visualizza un messaggio di errore e non lo esegue.

Ma Remote Code Execution lo aggira. Un hacker può fare qualsiasi cosa al tuo sistema. Non importa se si limita a mandare in crash il tuo server Minecraft o a scaricare una copia di tutti i dati dei clienti dal tuo negozio online.

Nel caso di Log4Shell, una semplice riga di caratteri è sufficiente per eseguire codice estraneo sui server della piattaforma di distribuzione di giochi Steam, senza far attivare i meccanismi di sicurezza.

Come funziona Log4Shell?

Log4Shell funziona in diversi passi. È così che la vulnerabilità è riuscita a sopravvivere senza essere scoperta per oltre un decennio. Log4Shell viene attivato solo quando Log4j riceve comandi per la «Java Naming and Directory Interface» (JNDI). Nel caso del seguente esempio astratto, questo codice maligno, in gergo «payload», si presenta così:

Basta una sola riga di codice per rendere l'attacco efficace.
Basta una sola riga di codice per rendere l'attacco efficace.

attacker.com è un sito web controllato dall'hacker.

L'impresa di sicurezza LunaSec descrive il processo di Log4Shell come segue:

  1. I dati dell'hacker vengono trasmessi al server tramite qualsiasi protocollo.
  2. Il server scrive i dati in un registro creato da Log4j. Se questi dati contengono il payload e gli indirizzi JNDI, allora Log4j invia una richiesta al sito web dell'hacker.
  3. La risposta del sito web dell'hacker contiene la seconda parte dell'attacco. Come esempio, LunaSec dà il codice http://second-stage.attacker.com/Exploit.class.
  4. La risposta di attacker.com viene eseguita dal processo vulnerabile in esecuzione sul server. Questa è la vera Code Injection (iniezione di codice).
  5. Questo codice iniettato apre la porta all'hacker per eseguire altro codice.

La prima fase dell'attacco dà all'hacker l'accesso all'interprete dei comandi (shell), la seconda fase dà all'attacco flessibilità, fa danni o ruba dati.

Chi ha scoperto Log4Shell?

Log4Shell è stato scoperto da Chen Zhaojun, un membro dell'Alibaba Cloud Security Team. Ha informato gli sviluppatori di Log4j e reso nota la vulnerabilità insieme a loro il 9 dicembre 2021. Questo ha dato agli sviluppatori abbastanza tempo per correggere la vulnerabilità, testare la correzione e inviare la patch al repository Github. In questo modo, le persone colpite possono riparare i loro sistemi immediatamente. In gergo tecnico, questo viene chiamato «Responsible Disclosure» («Responsible Disclosure»).

Questa lacuna di sicurezza in JNDI non è nuova. Nel 2016, gli hacker Alvaro Muñoz e Oleksandr Mirosh hanno parlato della vulnerabilità in JNDI alla conferenza sulla sicurezza Black Hat.

Log4Shell è usato da hacker malintenzionati?

Sì. Sono stati segnalati più di 500 attacchi da parti sconosciute che cercano di sfruttare il metodo di Log4Shell appena ore dopo la sua scoperta. Tuttavia, per quanto si sa, gli attacchi non erano mirati. Non devono esserlo, visto che Log4j è usato ovunque. Tutto quello che deve fare lo script di un hacker malintenzionato è trasmettere la prima parte dell'attacco a qualsiasi server. Se arriva una risposta, allora si avvia automaticamente la seconda fase dell'attacco. Se non c'è risposta o il tentativo viene bloccato, allora è così. Punto.

Non si sa da tutti gli attacchi cosa è stato trasmesso nel payload. Il ricercatore di sicurezza John Hammond parla di «botnet e miner di Bitcoin», ma anche di ransomware o trojan.

E da noi?

«I nostri sviluppi, compresi i negozi, non sono interessati da Log4Shell perché non usano Java», spiega Martin Wrona, Security Software Engineer da Digitec Galaxus.

Ciononostante, il nostro team di Security Engineer si è occupato del tema. Alcuni sistemi interni con cui non si entra mai in contatto da cliente finale – ad esempio i sistemi di magazzino – si basano su Java. Proprio come altre parti dell'infrastruttura dell'azienda. Dove c'è Java, ci sono Log4j e Log4Shell: «Abbiamo avuto un bel po' di lavoro da fare, ma attualmente tutti i sistemi sono stati patchati o mitigati attraverso la configurazione», rassicura Martin.

A 61 persone piace questo articolo


Potrebbero interessarti anche questi articoli

  • Retroscena

    Signal hackera Cellebrite: ultimatum al software di spionaggio

    di Dominik Bärlocher

  • Retroscena

    «Mario Forever» contiene cripto-malware: la mia ricerca di una versione pulita

    di Florian Bodoky

  • Retroscena

    Bungie vs cheater: Destiny 2 non arriverà su Steam Deck, a meno che...

    di Dominik Bärlocher

Commenti

Avatar