
Scanner e strumento di patch per CVE-2021-44228 e problematiche correlate a log4j.
| Scarica il file Java .jar |
🚑 Nota: i clienti SAS che desiderano applicare la patch alle proprie implementazioni SAS 9.4 o SAS Viya 3.x devono seguire le istruzioni specifiche fornite nella documentazione del SAS Help Center.
Questo progetto è un fork iniziale di logpresso/CVE-2021-44228-Scanner, inizialmente modificato per ispezionare ricorsivamente gli archivi e per aggiungere il supporto alla compressione tar/gz. Dal fork, il progetto si è evoluto in parallelo all'originale e implementa molte funzionalità simili, anche se la maggior parte del codice è stata riscritta. Mentre la funzionalità originale di 'fix' è stata sostituita con un metodo patch che supporta alcuni casi limite di annidamento profondo ed è più tollerante a errori e rollback, il meccanismo di rilevamento (il comando scan) continua a funzionare in modo molto simile all'originale.
Puoi scaricare una versione dello strumento dalla pagina delle Release o seguendo i link in cima a questa pagina. La immagine nativa è un eseguibile autonomo che funziona su EL7 e versioni successive. Il file jar può essere eseguito con java -jar su JRE 1.8+. Questo è attualmente il modo migliore per eseguirlo su altre piattaforme e versioni precedenti di glibc (inclusi Windows, AIX, Solaris, ecc.).
Dopo aver scaricato l'immagine nativa, è necessario eseguire chmod +x sul file prima di poterlo eseguire.
La sintassi dei comandi è la stessa sia che si chiami il file .jar sia l'eseguibile nativo. Ad esempio, questo:
./loguccino help
è funzionalmente identico a questo
java -jar ./loguccino-all.jar help
Il comando loguccino help fornisce la documentazione sui comandi disponibili.
./loguccino scan /path/to/approot
Questo attraverserà tutte le sottodirectory in /path/to/approot, inclusa l'esplorazione ricorsiva di tutti gli archivi annidati .tar.gz, .tgz, .tar, .zip, .ear, .war e .jar.
Nella directory di lavoro verrà creato un file .csv denominato loguccino-scan-[datetime].csv, contenente i seguenti dati:
/opt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear/install/deploy/21w47SASConfig/Lev5/Web/Staging/sas.webreportstudio4.4.21w47AIX.earopt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear::sas.webreportstudio.war::WEB-INF/lib/log4j-core-2.1.jarMaggiori informazioni sul comando scan sono disponibili tramite ./loguccino help scan.
Se vengono trovate vulnerabilità, il file loguccino-scan-[datetime].csv viene utilizzato come input per il comando patch:
./loguccino patch ./loguccino-scan-23122021003311.csv
Questo rimuove ogni vulnerabilità trovata e crea una directory loguccino-patch-[timestamp] contenente un backup di ogni file corretto. Quando un file è stato corretto per più vulnerabilità (come un archivio di backup più grande contenente più strumenti o versioni di software), vengono salvate più versioni del file corretto in ogni fase del processo per consentire un rollback graduale in caso di errore.
Nota:
Applicare la patch a un file su disco non corregge la versione del programma già in esecuzione sull'host. Ricorda che devi arrestare i servizi/applicazioni pertinenti prima di applicare la patch e riavviarli dopo la patch affinché le modifiche abbiano effetto.
Maggiori informazioni sul comando patch sono disponibili tramite ./loguccino help patch.
Durante la scansione delle vulnerabilità, alcuni archivi potrebbero essere segnalati come corrotti (questo accade anche con archivi annidati in cui i metodi di compressione non corrispondono all'estensione dell'archivio). Il comando scan stamperà il percorso di questi file nel file logpresso-scan-[datetime].log. Se ritenuti significativi, questi archivi dovrebbero essere decompressi e ispezionati (o scansionati) manualmente per confermare che siano effettivamente corrotti.
Se incontri bug o comportamenti imprevisti, ti preghiamo di aprire un issue e allegare i passaggi per riprodurre il bug insieme ad altre informazioni di contesto.
Le pull request e gli aggiornamenti al codice sono benvenuti e incoraggiati.