Giovedì (9 dicembre), è stato scoperto un exploit 0-day nella popolare libreria di log Java log4j (versione 2) che si traduce in Remote Code Execution (RCE) registrando una determinata stringa. Questo post fornisce risorse per aiutarti a comprendere la vulnerabilità

Log4j:

E’ un pacchetto/libreria java-based utilizzato per fornire capacità di logging a strumenti ed applicazioni.

 

Prodotti e versioni affette:

La vulnerabilità di livello critico, a cui è assegnato il punteggio massimo (CVSSv3: 10) in quanto permette l’esecuzione di codice da remoto (RCE) senza autenticazione, è nota col nome Log4Shell ed interessa applicazioni Java-based che utilizzano il prodotto Log4j 2 dalla versione 2.0 fino alla 2.14.1.

 

Vulnerabilità:

La vulnerabilità risiede nel modulo di messaggistica e consente l’esecuzione di codice arbitrario da remoto sul server che utilizza la libreria portando alla completa compromissione dello stesso senza necessità di autenticazione.

 

Scenario di attacco:

L’eventuale sfruttamento della falla consente l’esecuzione di codice arbitrario a danno dell’applicazione affetta. Gli aggressori, che non necessitano di un accesso preventivo al sistema, possono inviare una richiesta https malformata tramite una stringa appositamente predisposta, per generare un log su Log4j – che adotta JNDI (Java Naming and Directory Interface) – al fine di registrare la stringa dannosa nel registro dell’applicazione. Durante l’elaborazione del registro, il sistema vulnerabile si troverà nelle condizioni di esegue il codice appositamente inserito dall’utente malintenzionato. Questa condizione può ad esempio portare l’applicazione ad effettuare una richiesta verso un dominio dannoso per eseguire un payload malevolo. In questo modo per l’attaccante sarà possibile acquisire il controllo dell’applicazione interessata e l’accesso completo al sistema.

 

Possibili prodotti affetti:

Log4j 2 è una libreria per il logging ampiamente utilizzata nello sviluppo di sistemi aziendali, è infatti inclusa in vari software open-source e spesso direttamente integrata in importanti applicazioni software. Per tale ragione la portata dell’impatto è potenzialmente estesa a migliaia tra prodotti e dispositivi, inclusi quelli di casa Apache come: Struts 2, Solr, Druid, Flink e Swift.

 

Tramite l’accesso agli avvisi pubblicati dai differenti produttori e riferiti alla vulnerabilità, sono state raccolte le informazioni sulle specifiche misure di mitigazione disponibili per vari prodotti, creando un catalogo alfabetico che è possibile consultare facendo riferimento a quelli in uso. Si tratta di una lista, in fase di aggiornamento, che include oltre 150 prodotti, tra i quali emergono anche quelli di diversi vendor orientati alla sicurezza.

https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

https://github.com/NCSC-NL/log4shell/tree/main/software

 

Possibili azioni di rilevamento tentativi di sfruttamento:

È possibile utilizzare il set di regole YARA disponibili al link:

Linux:

È possibile ricercare tentativi di compromissione nei log attraverso i comandi:

  • sudo find /var/log/ -type f -exec sh -c “cat {} | sed -e ‘s/\${lower://’g | tr -d ‘}’ | egrep -I -i ‘jndi:(ldap[s]?|rmi|dns|nis|iiop|corba|nds|http):'” \;
  • sudo find /var/log/ -name ‘*.gz’ -type f -exec sh -c “zcat {} | sed -e ‘s/\${lower://’g | tr -d ‘}’ | egrep -i ‘jndi:(ldap[s]?|rmi|dns|nis|iiop|corba|nds|http):'” \;

Windows:

È  possibile ricercare software vulnerabile attraverso il comando di seguito riportato.

  • gci ‘C:\’ -rec -force -include *.jar -ea 0 | foreach {select-string “JndiLookup.class” $_} | select -exp Path

Per maggiori informazioni, seguire le indicazioni rilasciate da Microsoft al seguente link: