Come monitorare i file Log4j utilizzando NinjaOne

Management des Lebenszyklus von IT-Assets mit NinjaOne

Come monitorare le vulnerabilità dei file Log4j utilizzando NinjaOne

Con le notizie che si susseguono in merito a: Log4Shell (CVE-2021-44228) e ai sempre più diffusi tentativi di sfruttarlo, gli MSP e i team IT stanno lavorando senza sosta per individuare la propria esposizione, rilevare potenziali IoC, applicare forme di attenuazione e risolvere i problemi.

Poiché questa vulnerabilità riguarda un così elevato numero di applicazioni e poiché non tutti i fornitori sono stati in grado di fornire informazioni chiare sul fatto che i loro prodotti siano o meno interessati (nota: NinjaOne non lo è), stabilire quali sistemi sono potenzialmente vulnerabili costituisce una grande sfida.

Questo problema ha spinto alcuni ricercatori e membri della comunità della sicurezza a creare script e strumenti impiegabili per scansionare gli ambienti alla ricerca di file Log4j potenzialmente vulnerabili e di segni di IoC.

Tra gli esempi è possibile citare:

La decisione di utilizzare uno degli script disponibili dipende esclusivamente da te (naturalmente ti consigliamo di fare sempre delle prove con la necessaria diligenza); se trovi uno script che desideri provare, questo post ti mostrerà un esempio di come distribuirlo sulla tua rete sfruttando i campi personalizzati di NinjaOne.

Prima di approfondire questo argomento, se stai cercando di migliorare le tue conoscenze su Log4Shell ti consigliamo di consultare le seguenti eccellenti risorse:

Esempio di come monitorare i file Log4j utilizzando NinjaOne

Per configurare un monitor personalizzato che rilevi la presenza di file di libreria Log4J sugli endpoint in Ninja, sono necessari:

  1. Un campo personalizzato
  2. Uno script che raccolga e memorizzi i dati (vedi l’esempio che segue; in alternativa fai riferimento ad altri esempi citati in precedenza)
  3. Una condizione personalizzata per creare un avviso
  4. Un metodo per distribuire lo script di rilevamento

Configurazione del campo personalizzato

Il campo personalizzato sarà utilizzato per memorizzare i dati restituiti dallo script di rilevamento.

1) Aggiungi un nuovo campo personalizzato. Dal momento che monitoreremo il risultato dello script su tutti gli endpoint, creeremo un campo personalizzato globale.

ninja-screen-log4j

2) Il campo personalizzato avrà come nome log4j e sarà impostato come tipo Multilinea. Utilizziamo il tipo multilinea perché ogni endpoint può avere più file con vulnerabilità. Il tipo multilinea consente di rendere più leggibili queste informazioni.

create-field-log4j

3) Fatto ciò è necessario configurare il campo personalizzato. Procederemo quindi impostando Accesso agli script su Lettura/Scrittura.

Nota:se l’accesso agli script non è impostato su “Scrittura” o “Lettura/Scrittura”, non sarai in grado di scrivere in questo campo da uno script.

text-log4j

Se stiamo configurando un campo personalizzato globale, questo è tutto ciò che serve fare.

Creazione di uno script per estrarre i dati

A scopo illustrativo, utilizzeremo uno script di esempio basato su quello di Kelvin Tegelaar fornito su CyberDrain e in NinjaOne Community Dojo. La differenza principale con lo script di Kelvin è che questo utilizza uno strumento esterno chiamato “Everything” che ne velocizza l’esecuzione.

Nota che sono disponibili altri script a cui puoi fare riferimento e che possono essere personalizzati , tra cui:

Questi script possono fornire risultati più rapidi ed efficienti.

*** Dichiarazione di non responsabilità: l’utilizzo di questi script in Ninja avviene a tua discrezione e a tuo rischio. ***

$array = @()
$Drives = Get-PSDrive -PSProvider 'FileSystem'

foreach($Drive in $Drives) {

    $drivePath = $Drive.name + ":"
    $array += gci $drivePath -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path
}

If ($array -ne $null) { $array += “Possible Threat Detected”}

Ninja-Property-Set log4j $array

*Nota: per i dispositivi Windows 8 può essere necessario rimuovere il comando “-force” nel comando Get-ChildItem (gci).

Ninja-Property-Set è il comando Powershell di Ninja che permette di impostare un campo personalizzato su un valore specifico. La sintassi è:

Ninja-Property-Set fieldName Value

In questo caso, stiamo impostando il campo log4j sul valore memorizzato nella variabile $array.

Aggiungere questo script a Ninja è facile.

1) Naviga su “Configurazione” > “Scripting”

2) Fai clic su “Aggiungi uno script”

3) Copia il codice qui sopra nell’IDE

  • Se il campo personalizzato non ha il nome “log4j”, aggiorna il nome del campo accanto a Ninja-Property-Set

4) Configura i parametri dello script su

  • Nome: Log4J Detection
  • Lingua: PowerShell
  • Sistema operativo: Windows
  • Architettura: Tutti

5) Salva lo script

Configurazione del monitoraggio

Le condizioni in Ninja sono utilizzate per monitorare le variazioni di stato di un endpoint. Ninja comprende la possibilità di monitorare i campi personalizzati. Imposteremo un monitor in modo che emetta un avviso basato sui risultati restituiti al nostro campo Log4J.

1) Nella politica prescelta, passa alle condizioni e fai clic su “Aggiungi una condizione”

2) Seleziona il tipo di condizione “Campi personalizzati”

3) Sotto “Il valore del campo personalizzato deve soddisfare eventuali condizioni”, seleziona “Aggiungi” e cerca “Log4J”

4) Imposta il selettore su “contiene” e aggiungi “Rilevata una possibile minaccia”

5) Imposta gli eventuali valori di gravità, priorità, canale di notifica e creazione di ticket in base alle tue preferenze, quindi fai clic su “Aggiungi”.

6) Se hai integrato il tuo PSA o utilizzi la creazione di ticket di Ninja, puoi anche utilizzare la condizione per creare un ticket

Distribuzione dello script

La fase finale di questo processo è l’esecuzione dello script. Puoi eseguire lo script:

  • Come operazione ad hoc su singoli dispositivi tramite la libreria degli script
  • Come operazione ad hoc su più dispositivi online tramite la funzione di ricerca
  • Automaticamente tramite attività pianificate
  • Automaticamente tramite le politiche

Scopri cos’altro puoi ottenere utilizzando i campi personalizzati in NinjaOne

Questo è solo un esempio di come l’utilizzo di campi personalizzati in NinjaOne può aiutarti a implementare un monitoraggio personalizzato e una potente automazione. Stiamo iniziando una nuova serie dedicata alla condivisione di altri esempi di cui puoi vedere il primo post qui.

Passi successivi

Le basi della sicurezza dei dispositivi sono fondamentali per lo stato della tua sicurezza complessiva. NinjaOne semplifica l’applicazione di patch, l’hardening, la protezione e il backup di tutti i dispositivi in modo centralizzato, da remoto e su larga scala.

Ti potrebbe interessare anche

Vuoi diventare un Ninja dell’IT?

Scopri come NinjaOne può aiutarti a semplificare le operazioni IT.
×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.