La patch di emergenza per la famigerata vulnerabilità nella libreria Java Log4j non è infallibile. La Apache Software Foundation sta rilasciando una nuova versione per correggere la vulnerabilità una volta per tutte.
Una vulnerabilità in una libreria per Java estremamente popolare sta scuotendo il panorama IT globale. Si stima che la libreria esista nella maggior parte degli ambienti aziendali.
Log4j viene utilizzato principalmente per la registrazione. Gli eventi nelle applicazioni possono essere registrati con le note. Pensa a una stampa dei dettagli di accesso dopo un tentativo di accesso. Oppure, nel caso di un'applicazione web in Java, il nome del browser a cui un utente sta tentando di connettersi.
Questi ultimi esempi sono comuni. In entrambi i casi, un utente esterno influenza il log che Log4j emette. È possibile abusare di tale influenza. I registri di qualsiasi versione di Log4j tra il 13 settembre 2013 e il 5 dicembre 2021 sono in grado di indicare alle applicazioni Java di eseguire il codice da un server remoto su un dispositivo locale.
Dal 2013 Log4j elabora un'API: JNDI, o Java Naming and Directory Interface. L'aggiunta di JNDI consente a un'applicazione Java di eseguire codice da un server remoto su un dispositivo locale. I programmatori istruiscono aggiungendo una singola riga di dettagli sul server remoto in un'applicazione.
Il problema è che non solo i programmatori sono in grado di aggiungere la regola alle applicazioni. Supponiamo che Log4j registri i nomi utente dei tentativi di accesso. Quando qualcuno inserisce la suddetta riga nel campo del nome utente, Log4j esegue la riga e l'applicazione Java interpreta un comando per eseguire il codice sul server specificato. Lo stesso vale per i casi in cui Log4j registra una richiesta HTTPS. Se modifichi il nome di un browser nella riga, Log4j esegue la riga, indicando indirettamente di eseguire il codice come desiderato.
Anche la patch di emergenza può essere pericolosa
Il 9 dicembre la vulnerabilità è venuta alla luce su larga scala. La Apache Software Foundation, sviluppatore di Log4j, ha rilasciato una patch di emergenza (2.15) per correggere la vulnerabilità. Da allora, è stata una priorità assoluta per i fornitori di software elaborare la versione 2.15 e fornire una patch per le organizzazioni.
Tuttavia, l'organizzazione di sicurezza LunaSec afferma che la patch non è completamente a tenuta stagna. È possibile modificare un'impostazione e far eseguire i comandi JNDI registrati.
Nota: l'impostazione pertinente deve essere regolata manualmente, in modo che le varianti non modificate di 2.15 siano effettivamente sicure. Tuttavia, Luna Sec consiglia ai fornitori e alle organizzazioni di aggiornare a Log4j 2.16. 2.16 è stato pubblicato da Apache Software Foundation in risposta a LunaSec. La nuova versione rimuove completamente l'impostazione vulnerabile, rendendo impossibile creare le condizioni per l'abuso.