Come scansionare e correggere la vulnerabilità di Log4j?

La vulnerabilità di Log4j è tra i problemi di sicurezza più mortali nei sistemi moderni.

La registrazione è una funzionalità chiave nelle applicazioni moderne e la libreria di registrazione, Log4j, è leader in questo spazio.

Questa libreria viene utilizzata nella maggior parte delle applicazioni, dei servizi e dei sistemi. Pertanto, tutte le applicazioni in cui viene utilizzato Log4j sono tutte interessate da questa vulnerabilità Log4j rilevata l’anno scorso.

Con i crescenti problemi di sicurezza informatica in tutto il mondo, le organizzazioni e gli individui stanno adottando misure per salvaguardare le proprie applicazioni, sistemi e dati.

E quando questa vulnerabilità è stata scoperta, ha stressato ancora di più professionisti e aziende.

Pertanto, rilevare la vulnerabilità di Log4j e risolverla è essenziale se si desidera proteggere i dati, la rete, la reputazione e la fiducia dei clienti.

In questo articolo, discuterò qual è la vulnerabilità di Log4j, insieme ai passaggi per rilevarla e risolverla.

Iniziamo col capire Log4j e perché ne hai bisogno.

Cos’è Log4j?

Log4j è un’utilità di registrazione open source scritta in Java che viene utilizzata principalmente per archiviare, formattare e pubblicare record di registrazione generati da applicazioni e sistemi e quindi verificare la presenza di errori. I record possono essere di vario tipo, da una pagina Web e dati del browser ai dettagli tecnici di un sistema in cui viene eseguito Log4j.

Invece di scrivere codice da zero, gli sviluppatori possono utilizzare la libreria Log4j integrandone il codice nelle loro app.

Utilizzando Log4j, gli sviluppatori possono tenere traccia di tutti gli eventi associati alle loro applicazioni con informazioni di registrazione accurate. Li aiuta a monitorare le applicazioni, individuare i problemi in tempo e risolvere i problemi prima che possano trasformarsi in un problema più grande in termini di prestazioni e/o sicurezza.

Questa libreria basata su Java è stata scritta da Ceki Gülcü ed è stata rilasciata nel 2001 con licenza Apache 2.0. Utilizza i servizi di denominazione Java e Directory Interface (JNDI) per consentire alle app di interagire con altre app come LDAP, DNS, CORBA, ecc. e ottenere una directory e una funzionalità di denominazione per le applicazioni basate su Java. Log4j ha tre componenti per svolgere le sue attività:

  • Logger per acquisire i record di registrazione
  • Layout per formattare i record di registrazione in stili diversi
  • Aggiunge per pubblicare i record di registrazione in destinazioni diverse

Log4j è, infatti, una delle librerie di registrazione più famose sul Web ed è utilizzata da organizzazioni di più settori e paesi. Hanno integrato questa libreria di registrazione in molte applicazioni, inclusi i migliori servizi cloud di Google, Microsoft, Apple, Cloudflare, Twitter, ecc.

Il suo sviluppatore, Apache Software Foundation, ha sviluppato Log4j 2, un aggiornamento a Log4j per risolvere i problemi riscontrati nelle versioni precedenti. L’anno scorso è stata rilevata una vulnerabilità in Log4j, che, se non indirizzata, può consentire agli aggressori di entrare in applicazioni e sistemi, rubare dati, infettare una rete ed eseguire altre attività dannose.

Capiamolo di più.

Cos’è Log4Shell: la vulnerabilità di Log4j?

Log4Shell è una vulnerabilità critica della sicurezza informatica sulla libreria Log4j, che influisce sul funzionamento principale della libreria. Consente a un utente malintenzionato di controllare un dispositivo o un’applicazione connesso a Internet eseguendo l’esecuzione di codice in modalità remota. Quando ci riescono, possono:

  • Esegui qualsiasi codice sul dispositivo o sul sistema
  • Accedi a tutta la rete e ai dati
  • Modifica o crittografa qualsiasi file sull’app o sul dispositivo interessato

Questa vulnerabilità è stata segnalata per la prima volta il 24 novembre 2021 da Chen Zhaojun, un ricercatore di sicurezza presso Alibaba (un gigante cinese dell’eCommerce). La vulnerabilità ha colpito i loro server Minecraft, che il team di sicurezza cloud di Alibaba ha scoperto il 9 dicembre.

Successivamente, il NIST ha pubblicato questa vulnerabilità nel National Vulnerability Database e l’ha denominata CVE-2021-44228. Apache Software Foundation ha quindi valutato questa vulnerabilità con una gravità di 10 CVSS. Questo viene assegnato raramente ed è molto grave poiché ha il potenziale di essere sfruttato ampiamente e facilmente, causando enormi danni per organizzazioni e individui.

Apache, in risposta, ha rilasciato una patch per questa vulnerabilità, ma alcune parti sono state lasciate non indirizzate, portando ad altre vulnerabilità:

  • CVE-2021-45046 che ha facilitato gli attacchi Denial of Service (DoS) tramite ricerche JNDI
  • CVE-2021-45105 per consentire agli hacker di controllare le informazioni sulla mappa del contesto del thread e causare attacchi DoS interpretando una stringa creata
  • CVE-2021-44832 influisce su tutte le versioni di Log4j 2 tramite Remote Code Injection (RCE)

Come funziona Log4Shell?

Per capire la sua gravità e quanto danno può fare Log4Shell, è pertinente imparare come funziona questa vulnerabilità di Log4j.

La vulnerabilità di Log4Shell consente a un utente malintenzionato di iniettare in remoto qualsiasi codice arbitrario in una rete e di ottenerne il controllo completo.

Questa sequenza di attacchi informatici inizia con la libreria di registrazione, come Log4j, che raccoglie e archivia le informazioni di registro. Se non è presente una libreria di registrazione, tutti i dati dal server verranno archiviati immediatamente dopo la raccolta dei dati.

Ma se si desidera analizzare questi dati o eseguire alcune azioni in base a informazioni di registro specifiche, sarà necessaria una libreria di registrazione per analizzare i dati di registro prima che vengano archiviati.

A causa della vulnerabilità di Log4j, qualsiasi sistema o app che utilizza Log4j diventa vulnerabile agli attacchi informatici. La libreria di registrazione esegue il codice in base all’input. Un hacker può forzare la libreria di log a eseguire codice dannoso poiché la vulnerabilità consentirà loro di manipolare l’input.

Nel frattempo, molte cose accadono in background. Quando a Log4j viene passata una stringa appositamente predisposta, invocherà un server LDP e scaricherà quel codice ospitato nella sua directory per eseguire il codice. In questo modo, gli aggressori possono creare un server LDAP per archiviare codice dannoso che può aiutarli a controllare qualsiasi server in cui viene eseguito il codice. Invierà quindi una stringa che indirizza il codice dannoso a un’app o un sistema mirato e ne assumerà il pieno controllo.

Quindi, ecco come sfruttare la vulnerabilità di Log4j:

  • Un utente malintenzionato trova un server con una versione vulnerabile di Log4j.
  • Invieranno al server di destinazione una richiesta di ricezione con il collegamento del server LDAP dannoso.
  • Il server di destinazione, invece di verificare la richiesta, si connetterà direttamente a questo server LDAP.
  • Gli aggressori ora invieranno al server preso di mira una risposta del server LDAP contenente codice dannoso. A causa della vulnerabilità di Log4j, che consente di ricevere il codice ed eseguirlo senza verifica, l’hacker può sfruttare questa debolezza per entrare nel server di destinazione e sfruttare sistemi, reti e dispositivi connessi.

In che modo la vulnerabilità di Log4j può danneggiare gli utenti?

La vulnerabilità di Log4j è preoccupante poiché viene utilizzata in un’ampia gamma di applicazioni e sistemi software.

Poiché la registrazione è una funzionalità essenziale nella maggior parte delle app software e Log4j è una soluzione leader nello spazio, Log4j trova applicazioni in una varietà di sistemi software.

Alcuni dei servizi e delle app popolari che utilizzano Log4j sono Minecraft, AWS, iCloud, Microsoft, Twitter, router Internet, strumenti di sviluppo software, strumenti di sicurezza e così via. Pertanto, gli aggressori possono prendere di mira un gran numero di applicazioni, servizi e sistemi da utenti domestici, sviluppatori di codice, fornitori di servizi e altri professionisti e individui correlati.

Inoltre, la vulnerabilità di Log4j è estremamente facile da sfruttare per un utente malintenzionato. Il processo complessivo richiede un minor numero di set di abilità, non di livello esperto, per eseguire un attacco. Ecco perché il numero di attacchi che sfruttano questa vulnerabilità è in aumento.

L’impatto della vulnerabilità di Log4j è:

  • Attacchi DoS
  • Attacchi alla catena di approvvigionamento
  • Estrazione di monete
  • Iniezioni di malware come ransomware e cavalli di troia
  • Iniezione di codice arbitrario
  • Esecuzione di codice a distanza

E altro ancora.

Come risultato di questi attacchi, puoi perdere la presa delle tue applicazioni, sistemi e dispositivi e i tuoi dati possono cadere preda degli aggressori che possono vendere i tuoi dati, manipolarli o esporli al mondo esterno. Pertanto, la tua azienda può essere danneggiata in termini di privacy dei dati dei clienti, fiducia, segreti dell’organizzazione e persino vendite e entrate, per non parlare dei rischi di conformità.

Secondo un rapportooltre il 40% delle reti aziendali globali ha subito attacchi a causa di questa vulnerabilità.

Quindi, anche se non utilizzi alcuna versione vulnerabile di Log4j nelle tue applicazioni, le integrazioni di terze parti potrebbero utilizzarla, il che rende la tua app vulnerabile agli attacchi.

Si noti che tutte le versioni di Log4j precedenti a Log4j 2.17.0. sono interessati; quindi, è necessario aggiornare il logger se lo si utilizza. Inoltre, i fornitori famosi che sono interessati da questa vulnerabilità di Log4j sono Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet, ecc. Se ne utilizzi qualcuno, monitora continuamente le tue app e usa i sistemi di sicurezza per risolvere i problemi non appena sorge.

Come rilevare i programmi interessati da Log4j e risolvere i problemi

La vulnerabilità di Log4Shell ha un punteggio di 10 nel CVSS. Quindi, tutti i problemi in Log4j non sono ancora stati corretti. Ma è possibile che tu o il tuo fornitore di terze parti stiate utilizzando Log4j, che avete utilizzato nella vostra applicazione.

Pertanto, se desideri proteggere i tuoi dati, i tuoi sistemi e la tua rete, assicurati di seguire alcuni passaggi di riparazione.

# 1. Aggiorna la tua versione di Log4j

L’aggiornamento della versione corrente di Log4j a Log 4j 2.17.1 è la tecnica di riparazione più efficace se si desidera proteggere il dispositivo e le app dagli attacchi a causa della vulnerabilità di Log4j.

Log4Shell è un tipo di attacco zero-day che può potenzialmente influenzare il tuo ecosistema software. Apache ha corretto alcune delle vulnerabilità nelle versioni recenti, ma se il tuo sistema è stato compromesso prima dell’aggiornamento, sei ancora a rischio.

Quindi, supponendo ciò, non devi solo aggiornare la versione, ma anche avviare immediatamente le procedure di risposta agli incidenti per assicurarti che non ci siano vulnerabilità nei tuoi sistemi e app e mitigare gli attacchi. È inoltre necessario rivedere tutti i registri del server per trovare gli Indicatori di Compromise (IOC) e monitorare costantemente i sistemi e la rete.

#2. Usa gli ultimi firewall e sistemi di sicurezza

Firewall come Web Application Firewall (WAF) e firewall di nuova generazione possono aiutare a proteggere il perimetro della rete dagli aggressori scansionando i pacchetti di dati in entrata e in uscita e bloccando quelli sospetti. Quindi, utilizza i firewall più recenti nella tua rete e imposta rigide regole in uscita sui tuoi server per aiutare a prevenire gli attacchi associati alla vulnerabilità di Log4j.

Sebbene gli aggressori possano aggirare i firewall, otterrai comunque un certo grado di sicurezza con firewall in grado di bloccare le richieste di un utente malintenzionato.

Inoltre, aggiorna tutti i tuoi sistemi di sicurezza, come i sistemi di rilevamento delle intrusioni (IDS), i sistemi di prevenzione delle intrusioni (IPS), ecc., con le firme e le regole più recenti. Questi sistemi aiuteranno a bloccare o filtrare il traffico RMI e LDAP dalla connessione a un server LDAP dannoso.

#3. Implementare l’AMF

L’impostazione dell’autenticazione a più fattori (MFA) nelle applicazioni e nel sistema fornirà una migliore sicurezza dagli aggressori. Fornirà un secondo livello di sicurezza anche se un utente malintenzionato riesce a violare il primo livello. Puoi farlo attraverso dati biometrici come impronte digitali, scansione dell’iride, ecc., Impostando una domanda di sicurezza o abilitando un PIN di sicurezza.

L’uso di MFA aumenterà la difficoltà e il tempo degli attaccanti per eseguire un attacco in piena regola. Nel frattempo, può anche informarti immediatamente dell’incidente in modo che tu possa adottare le misure di riparazione necessarie quando hai ancora tempo.

Inoltre, devi anche applicare politiche VPN rigorose per ridurre le violazioni dei dati. Ciò consentirà agli utenti di accedere ai tuoi sistemi in modo sicuro da qualsiasi luogo senza il timore di aggressori.

#4. Modifica le proprietà del sistema

Nel caso in cui non sia possibile eseguire l’aggiornamento all’ultima versione della libreria Log4j, è necessario modificare immediatamente le proprietà del sistema java se si utilizza una versione che va da Log4j 2.10 a Log4j 2.14.1.

È necessario impostarlo in modo tale da impedire le ricerche che gli aggressori utilizzano per rilevare le vulnerabilità e quindi trovare il modo per sfruttarle.

#5. Rimuovere JNDI

La ragione di questa vulnerabilità di sicurezza critica risiede nella sua progettazione. Il plug-in di ricerca JNDI presenta un difetto di progettazione attraverso il quale gli aggressori possono eseguire un attacco.

JNDI viene utilizzato per l’esecuzione del codice in base ai dati di input nel suo registro, che chiunque può manipolare facilmente poiché il logger accetta qualsiasi richiesta senza verifica.

I ricercatori di sicurezza hanno scoperto che questo plugin ha sempre consentito dati non analizzati da quando è stato rilasciato nel 2013 e li invia alla libreria Log4j.

Pertanto, la vulnerabilità di Log4j è soggetta allo sfruttamento con una semplice iniezione di stringhe. Una volta che l’attaccante lo ha iniettato, il logger accetterà l’operazione richiesta nella stringa e la eseguirà istantaneamente senza verifica.

Quindi, se vuoi proteggere i tuoi sistemi e le tue applicazioni, devi disabilitare la classe – JndiLookup. Ciò impedirà al logger di agire in base ai dati di registro.

In effetti, la ricerca JNDI è già disabilitata in Log4j 2.16.0 per impostazione predefinita nel tentativo di proteggere le tue applicazioni e i tuoi sistemi.

Quindi, se stai utilizzando una versione di Log4j precedente alla 2.16.0, assicurati di aver disabilitato la ricerca JNDI.

#6. Parla con i tuoi fornitori

Se hai fatto tutto bene, i firewall e i sistemi di sicurezza aggiornati, la versione di Log4j aggiornata, la ricerca JNDI disabilitata, ecc., non rilassarti ancora.

Anche se non utilizzi una versione vulnerabile di Log4j nelle tue applicazioni, i tuoi fornitori di terze parti potrebbero utilizzarla. Quindi, non saprai mai come la tua applicazione o il tuo sistema sono stati violati perché il vero problema era con l’integrazione di terze parti.

Pertanto, parla con i tuoi fornitori e assicurati che anche loro abbiano aggiornato Log4j all’ultima versione e implementato altre pratiche di sicurezza discusse sopra.

#7. Utilizzare uno scanner di vulnerabilità Log4j

Sul mercato sono disponibili molti strumenti di scansione delle vulnerabilità di Log4j per semplificare il rilevamento delle vulnerabilità di Log4j nei tuoi sistemi e applicazioni.

Quindi, quando cerchi questi strumenti, controlla i loro tassi di accuratezza poiché molti di essi generano falsi positivi. Inoltre, trova uno strumento in grado di soddisfare le tue esigenze perché potrebbe concentrarsi sull’identificazione della vulnerabilità di Log4j, sulla segnalazione dell’esposizione e sulla correzione della vulnerabilità.

Quindi, se il tuo obiettivo è il rilevamento, trova uno scanner di vulnerabilità Log4j in grado di rilevare il problema o utilizzare quello in grado di rilevare e risolvere il problema.

Alcuni dei migliori strumenti di scansione di Log4j sono:

  • Microsoft 365 Defender: Microsoft offre una gamma di soluzioni e strumenti di sicurezza per aiutarti a rilevare e prevenire gli exploit di Log4j nella tua rete. Sarai in grado di individuare l’esecuzione di codice in remoto e i tentativi di sfruttamento, proteggendoti dalle vulnerabilità di Log4j nei dispositivi Windows e Linux.
  • Amazon Inspector e AWS: Amazon ha creato uno strumento di scansione per trovare la vulnerabilità di Log4j nelle istanze Amazon EC2 e Amazon ECR.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike ha anche creato un eccellente strumento di scansione per rilevare la vulnerabilità di Log4j per aiutarti a risolvere i problemi in tempo prima che gli aggressori possano sfruttarlo.
  • Rilevamento della registrazione nel cloud di Google: la soluzione di rilevamento della registrazione nel cloud di Google consente di rilevare gli exploit di Log4j utilizzando Logs Explorer. È possibile creare una query di registro in questo strumento e cercare potenziali stringhe di exploit.
  • Google ha anche creato log4jscanner, uno scanner di file system open source per rilevare la vulnerabilità di Log4j.
  • Scanner BurpSuite Log4j: questo è un plug-in di sicurezza per professionisti e aziende per aiutarli a rilevare la vulnerabilità di Log4j.
  • Huntress Log4Shell Vulnerability Tester: questo strumento genera un identificatore univoco a caso che puoi utilizzare durante il test dei campi di input. Dopo aver individuato una vulnerabilità nell’applicazione o nel campo di input, il suo server LDAP sicuro interromperà immediatamente la connessione dannosa e ti manterrà al sicuro.
  • WhiteSource Log4j Detect: WhiteSource ha creato uno strumento CLI gratuito, WhiteSource Log4j Detect, ospitato su GitHub per aiutarti a rilevare e correggere le vulnerabilità di Log4j: CVE-2021-445046 e CVE-2021-44228.
  • Strumenti di scansione open source di JFrog per Log4j: JFrog ha creato varie soluzioni e strumenti open source per trovare le vulnerabilità di Log4j nei file binari e nel codice sorgente.

Conclusione

La vulnerabilità di Log4j è un problema di sicurezza critico. Poiché questa libreria di registrazione è ampiamente utilizzata in varie applicazioni e sistemi, la vulnerabilità di Log4j si è diffusa, consentendo agli aggressori di sfruttare un’ampia gamma di sistemi e app.

Quindi, se vuoi proteggere i tuoi sistemi e le tue applicazioni da questa vulnerabilità, assicurati di aggiornare la libreria Log4j all’ultima versione e di implementare le migliori pratiche di sicurezza discusse sopra.