Credito:Pixabay/CC0 di dominio pubblico
Log4Shell, una vulnerabilità di Internet che colpisce milioni di computer, coinvolge un software oscuro ma quasi onnipresente, Log4j. Il software viene utilizzato per registrare tutti i tipi di attività che si svolgono sotto il cofano in un'ampia gamma di sistemi informatici.
Jen Easterly, direttrice della Cybersecurity &Infrastructure Security Agency degli Stati Uniti, ha definito Log4Shell la vulnerabilità più grave che abbia visto nella sua carriera. Ci sono già stati centinaia di migliaia, forse milioni, di tentativi di sfruttare la vulnerabilità.
Allora, qual è questo umile pezzo di infrastruttura Internet, come possono sfruttarlo gli hacker e che tipo di caos potrebbe derivarne?
Cosa fa Log4j?
Log4j registra eventi, errori e operazioni di sistema di routine, e comunica messaggi diagnostici su di essi agli amministratori di sistema e agli utenti. È un software open source fornito dalla Apache Software Foundation.
Un esempio comune di Log4j al lavoro è quando si digita o si fa clic su un collegamento Web errato e viene visualizzato un messaggio di errore 404. Il server Web che esegue il dominio del collegamento Web a cui hai cercato di accedere ti dice che non esiste una pagina Web del genere. Registra anche quell'evento in un registro per gli amministratori di sistema del server che utilizzano Log4j.
Messaggi diagnostici simili vengono utilizzati in tutte le applicazioni software. Ad esempio, nel gioco online Minecraft, Log4j viene utilizzato dal server per registrare attività come la memoria totale utilizzata e i comandi utente digitati nella console.
Come funziona Log4Shell?
Log4Shell funziona abusando di una funzione in Log4j che consente agli utenti di specificare un codice personalizzato per la formattazione di un messaggio di registro. Questa funzione consente a Log4j, ad esempio, di registrare non solo il nome utente associato a ogni tentativo di accesso al server, ma anche il nome reale della persona, se un server separato contiene una directory che collega nomi utente e nomi reali. Per fare ciò, il server Log4j deve comunicare con il server che contiene i nomi reali.
Sfortunatamente, questo tipo di codice può essere utilizzato per qualcosa di più della semplice formattazione dei messaggi di registro. Log4j consente ai server di terze parti di inviare codice software in grado di eseguire tutti i tipi di azioni sul computer di destinazione. Ciò apre la porta ad attività nefaste come il furto di informazioni sensibili, il controllo del sistema preso di mira e la trasmissione di contenuti dannosi ad altri utenti che comunicano con il server interessato.
È relativamente semplice sfruttare Log4Shell. Sono stato in grado di riprodurre il problema nella mia copia di Ghidra, un framework di reverse engineering per ricercatori di sicurezza, in un paio di minuti. C'è una barra molto bassa per l'utilizzo di questo exploit, il che significa che una gamma più ampia di persone con intenzioni dannose può usarlo.
Log4j è ovunque
Una delle principali preoccupazioni di Log4Shell è la posizione di Log4j nell'ecosistema software. La registrazione è una caratteristica fondamentale della maggior parte dei software, il che rende Log4j molto diffuso. In addition to popular games like Minecraft, it's used in cloud services like Apple iCloud and Amazon Web Services, as well as a wide range of programs from software development tools to security tools.
This means hackers have a large menu of targets to choose from:home users, service providers, source code developers and even security researchers. So while big companies like Amazon can quickly patch their web services to prevent hackers from exploiting them, there are many more organizations that will take longer to patch their systems, and some that might not even know they need to.
The damage that can be done
Hackers are scanning through the internet to find vulnerable servers and setting up machines that can deliver malicious payloads. To carry out an attack, they query services (for example, web servers) and try to trigger a log message (for example, a 404 error). The query includes maliciously crafted text, which Log4j processes as instructions.
These instructions can create a reverse shell, which allows the attacking server to remotely control the targeted server, or they can make the target server part of a botnet. Botnets use multiple hijacked computers to carry out coordinated actions on behalf of the hackers.
A large number of hackers are already trying to abuse Log4Shell. These range from ransomware gangs locking down minecraft servers to hacker groups trying to mine bitcoin and hackers associated with China and North Korea trying to gain access to sensitive information from their geopolitical rivals. The Belgian ministry of defense reported that its computers were being attacked using Log4Shell.
Although the vulnerability first came to widespread attention on Dec. 10, 2021, people are still identifying new ways to cause harm through this mechanism.
Stopping the bleeding
It is hard to know whether Log4j is being used in any given software system because it is often bundled as part of other software. This requires system administrators to inventory their software to identify its presence. If some people don't even know they have a problem, it's that much harder to eradicate the vulnerability.
Another consequence of Log4j's diverse uses is there is no one-size-fits-all solution to patching it. Depending on how Log4j was incorporated in a given system, the fix will require different approaches. It could require a wholesale system update, as done for some Cisco routers, or updating to a new version of software, as done in Minecraft, or removing the vulnerable code manually for those who can't update the software.
Log4Shell is part of the software supply chain. Like physical objects people purchase, software travels through different organizations and software packages before it ends up in a final product. When something goes wrong, rather than going through a recall process, software is generally "patched," meaning fixed in place.
However, given that Log4j is present in various ways in software products, propagating a fix requires coordination from Log4j developers, developers of software that use Log4j, software distributors, system operators and users. Usually, this introduces a delay between the fix being available in Log4j code and people's computers actually closing the door on the vulnerability.
Some estimates for time-to-repair in software generally range from weeks to months. However, if past behavior is indicative of future performance, it is likely the Log4j vulnerability will crop up for years to come.
As a user, you are probably wondering what can you do about all this. Unfortunately, it is hard to know whether a software product you are using includes Log4j and whether it is using vulnerable versions of the software. However, you can help by heeding the common refrain from computer security experts:Make sure all of your software is up to date.