L'exploit zero-day Log4Shell mette in pericolo numerosi server delle aziende, essendo una vulnerabilità critica nella libreria Java Log4j, ampiamente utilizzata. Individuare i server con le librerie interessate è una priorità, in modo che gli amministratori di sistema possano porre rimedio a questa minaccia. Checkmk consente agli amministratori di sistema di identificare facilmente tali sistemi vulnerabili nella loro infrastruttura IT e di adottare contromisure.
L'exploit rilevato venerdì scorso consente di sfruttare una falla nella popolare libreria Java Log4j e di ottenere una shell su un server. Ciò consente l'esecuzione di codice arbitrario sul server e la compromissione del sistema. L'exploit ha un impatto su tutti i sistemi che eseguono la libreria Java. Ciò significa che Log4j colpisce sia i server Windows che i sistemi Linux.
È quindi particolarmente importante che gli amministratori di sistema siano in grado di identificare tutti i sistemi della loro infrastruttura IT che utilizzano la libreria Log4j interessata. Questo è l'unico modo per proteggere i sistemi dalla compromissione e per avviare misure di sicurezza, come l'applicazione di aggiornamenti di sicurezza. Con Checkmk, siete in grado di identificare automaticamente questi sistemi nella vostra infrastruttura IT, indipendentemente dal fatto che siano in esecuzione su Linux o Windows.

Ciò è possibile grazie alla rapida estensibilità di Checkmk. Ad esempio, il software di monitoraggio è in grado di utilizzare un check locale per cercare nel file system di un server i moduli Log4j2 interessati. I check locali di Checkmk consentono di estendere rapidamente e facilmente il monitoraggio. È possibile distribuire questi piccoli script ai server appropriati e ottenere, ad esempio, una panoramica di tutti i server Linux e Windows in cui sono installate le librerie Log4j2.
Aggiornamento del 20 dicembre:
Nel frattempo la comunità Checkmk ha lavorato e creato un sofisticato plugin che è possibile installare come pacchetto di estensione del monitoraggio. Il plugin consente di rilevare tutti i sistemi dell'infrastruttura IT interessati dall'exploit Log4j. Tutte le informazioni sul plugin sono disponibili più avanti in questo articolo.
Aggiornamento del 27 gennaio:
Abbiamo anche creato un video sul plugin e su come vi aiuta a rilevare i file vulnerabili sui vostri sistemi. Mathias e Robin mostrano anche come configurare il plugin nel vostro sito Checkmk:
Scansione delle vulnerabilità e patch di mitigazione per Log4j2
Aggiornato il 16 dicembre 2020 alle ore 13:00 (CET)
La comunità di Checkmk ha reagito molto rapidamente all'exploit e ha condiviso i primi script di Checkmk per rilevare le vulnerabilità di Log4j2 nella propria infrastruttura IT. L'utente del forum Doc ha utilizzato log4j2-scan per scrivere uno script di shell per la scansione delle vulnerabilità CVE-2021-44228 e la patch di mitigazione per i server Linux:
#!/bin/bash
# Christian Wirtz, 2021-12-15
# Wrapper intorno a:
# https://github.com/logpresso/CVE-2021-44228-Scanner
# per l'uso di checkmk - usato Logpresso CVE-2021-44228 Vulnerability Scanner 1.6.2
# https://github.com/logpresso/CVE-2021-44228-Scanner/releases/download/v1.6.2/logpresso-log4j2-scan-1.6.2-linux.tar.gz
# estrarre questo in ../../bin/
DESTPATH="/usr/"
COUNT=0
RISULTATO=`/usr/lib/check_mk_agent/bin/log4j2-scan $DESTPATH`
FILES_VUL=`echo "$RESULT" | grep "file vulnerabili" | grep -v "file potenzialmente vulnerabili" | awk '{ print $2 }'`
FILES_POTVUL=`echo "$RESULT" | grep "file potenzialmente vulnerabili" | awk '{ print $2 }'`
FILES_MIT=`echo "$RESULT" | grep "file mitigati" | awk '{ print $2 }'`
SCANNED=`echo "$RESULT" | grep "Scanned"`
RUNTIME=`echo "$RESULT" | grep "Completato in" | awk '{ print $3 }'`
SHORT="$FILES_VUL file vulnerabili, $FILES_POTVUL file potenzialmente vulnerabili, $FILES_MIT file mitigati, $SCANNED, Runtime: $RUNTIME s"
LONG=`echo "$RESULT" | awk 1 ORS='\\\\n'`
PERFDATA="vulnerabile=$FILES_VUL;1;1|potenziale_vulnerabile=$FILES_POTVUL;1;1|mitigato=$FILES_MIT;;|real_time=${RUNTIME};;;1;"
echo "P CVE-2021-44228_log4j_$DESTPATH $PERFDATA $SHORT (searchpath: $DESTPATH)\n$LONG"
È possibile modificare il DESTPATH a seconda dell'ampiezza della ricerca. Ricordatevi di posizionare lo script e il bin log4j2-scan (testato con v1.6.2) nella cartella giusta dell'agente dell'host e di renderli eseguibili. La struttura sotto /usr/lib/check_mk_agent/
dovrebbe essere:
|-- bin
| `-- log4j2-scan
`-- local
`-- 86400
`-- check_CVE-2021-44228_log4j.sh

È possibile installare facilmente CVE-2021-44228_log4j e utilizzarlo come check locale. Attenzione a inserire la versione corrente dei file binari log4j-scan
E log4j2-scan.exe
nella cartella giusta. I binari sono disponibili sul repo GitHub di Logpresso.
Se si desidera identificare i sistemi Windows vulnerabili, è possibile farlo facilmente anche con un check locale. Con entrambi gli script, Checkmk può aiutarvi a individuare rapidamente tutti i sistemi vulnerabili all'exploit Log4Shell.
Controllo locale per rilevare Log4j2 sui server Windows
Sulla base del lavoro di Doc, thl-cmk ha adottato lo script per Windows per l'ultima versione di log4j2-scan.exe (v.1.6.2).
<#
thl-cmk@outlok.com, 2021-12-15
Wrapper intorno a: https://github.com/logpresso/CVE-2021-44228-Scanner
per l'uso di checkmk basato sullo script bash di Christian Wirtz
#>
$RESULT=(C:\ProgramData\checkmk\agent\bin\log4j2-scan.exe --all-drives)
$FILES_VUL=((echo $RESULT | Select-String -Pattern "file vulnerabili" | Select-String -Pattern "file potenzialmente vulnerabili" -NotMatch | Select-String -Pattern "Fixed" -NotMatch) -split ' ')[1]
$FILES_POTVUL=((echo $RESULT | Select-String -Pattern "potentially vulnerable files") -split ' ')[1]
$FILES_MIT=((echo $RESULT | Select-String -Pattern "file mitigati") -split ' ')[1]
$SCANNED=(echo $RESULT | Select-String -Pattern "Scanned" | Select-String -Pattern "Running scan" -NotMatch)
$RUNTIME=((echo $RESULT | Select-String -Pattern "Completato in" ) -split ' ')[2]
$DRIVES_SCANNED=((echo $RESULT | Select-String -Pattern "Scanning drives" ) -split ' ')[2]
$SHORT="File: $FILES_VUL vulnerabili, $FILES_POTVUL potenzialmente vulnerabili, $FILES_MIT mitigati, $SCANNED, Runtime: $RUNTIME s, drive: $DRIVES_SCANNED"
$PERFDATA="vulnerabile=$FILES_VUL;1;1|potenziale_vulnerabile=$FILES_POTVUL;1;1|mitigato=$FILES_MIT;;|real_time=${RUNTIME};;;1;"
$LONG=$RESULT -join "\n"
# se qualcuno ha bisogno della metrica del conteggio decommentare la riga successiva (la metrica del conteggio e quella della vulnerabilità sono identiche)
#$PERFDATA="count=$FILES_VUL;1;1|vulnerable=$FILES_VUL;1;1|potential_vulnerable=$FILES_POTVUL;1;1|mitigated=$FILES_MIT;;|real_time=${RUNTIME};;;1;"
echo "P CVE-2021-44228_log4j $PERFDATA $SHORT\n$LONG"
Il check locale per le piattaforme Windows deve essere collocato nella directory %ProgramData%\checkmk\agent\local\
sull'host di destinazione. Il binario per lo script log4j2-scan.exe
deve essere scaricato da GitHub e inserito nella directory %ProgramData%\checkmk\agent\bin\
. Ora il controllo dovrebbe funzionare ed è possibile rilevare Log4j sui server Windows della propria infrastruttura.
Risposta rapida all'exploit Log4Shell
Nella Community di Checkmk l'utente spagnolo a3093 è stato uno dei primi membri a condividere nel nostro forum uno script per Checkmk per rintracciare le librerie Log4j2 nell'infrastruttura IT. Se siete interessati alla conversazione, consultate l'argomento nel nostro forum. Lo script esegue la scansione di tutti i sistemi per individuare i file .jar potenzialmente interessati.
Una guida dettagliata su come eseguire check locali sui vostri sistemi per rilevare i moduli Log4j2 sui server Windows o sui sistemi Linux può essere letta in dettaglio nella nostra documentazione.
Il plugin Checkmk esegue la scansione dei sistemi Log4j vulnerabili
Aggiornato il 21 dicembre 2021 alle 19:00 (CET)
Grazie all'eccellente spirito della comunità Checkmk, nel frattempo è stato creato un sofisticato plugin per Checkmk a partire dallo script di Doc da thl_cmk, che non solo esegue il CVE-2021-44228-Scanner di Logpresso (versione 2.3.1 per Linux e Windows dal 19/12/2021), ma tiene anche conto dei diversi output che lo strumento fornisce a partire dalle versioni più recenti. In questo modo, è possibile rilevare le librerie Log4j vulnerabili sui sistemi Windows e Linux della propria infrastruttura e personalizzare i dati delle serie temporali per il servizio in Checkmk.
Il plugin rileva i seguenti problemi di Log4j:
- CVE-2021-44228
- CVE-2021-4104 che colpisce anche le librerie Log4j1
- CVE-2021-42550
- CVE-2021-45105
- CVE-2021-45046
È possibile scaricare il plugin come MKP qui. Una volta scaricato, può essere distribuito sui sistemi di destinazione per gli utenti di Checkmk Enterprise Edition tramite Agent Bakery. Attenzione: Prima di utilizzare il pacchetto, rimuovere tutte le versioni precedenti o i controlli locali relativi a questo plugin.
Se desiderate utilizzare il plugin con Checkmk Raw Edition, seguite le istruzioni di thl_cmk. Il documento copre anche la distribuzione su sistemi AIX/Solaris e fornisce un aiuto per la risoluzione dei problemi nel caso in cui il plugin non funzioni.
Avere a disposizione un metodo così flessibile in Checkmk torna spesso utile, soprattutto quando si ha a che fare con le vulnerabilità.