Zu den Hauptinhalten
  • Bestellungen schnell und einfach aufgeben
  • Bestellungen anzeigen und den Versandstatus verfolgen
  • Profitieren Sie von exklusiven Prämien und Rabatten für Mitglieder
  • Erstellen Sie eine Liste Ihrer Produkte, auf die Sie jederzeit zugreifen können.

Data Protection Advisor: Script per Windows PowerShell per la correzione di vulnerabilità di Apache Log4j (CVE-2021-44228, CVE-2021-45046)

Zusammenfassung: Questo articolo fornisce istruzioni per la correzione manuale di un agent DPA in esecuzione su un nodo Microsoft Windows interessato da vulnerabilità di Apache Log4j (CVE-2021-44228 e CVE-2021-45046). ...

Dieser Artikel gilt für   Dieser Artikel gilt nicht für 

Weisungen

Questa correzione prevede l'utilizzo di uno script di Windows PowerShell che utilizza comandi di scripting Windows nativi.

Queste istruzioni possono essere applicate a qualsiasi tipo di installazione di DPA su Windows, inclusi l'applicazione DPA, il datastore DPA e l'agent DPA standalone (installato da solo su un server o su un altro tipo di application server).

Per ulteriori informazioni sulle vulnerabilità Apache Log4j, consultare il seguente l'avviso di sicurezza Dell:

Per domande o assistenza su queste istruzioni, contattare il supporto tecnico Dell.

Procedura di risoluzione manuale:

Nota:

  • queste istruzioni richiedono in Windows sia installato PowerShell e che sia disponibile (impostazione predefinita).
  • Sono necessari autorizzazioni e permessi di accesso di livello amministratore.

 

  1. Scaricare il file di testo allegato a questo articolo della Knowledge Base, log4j_jndiremoval.txt.

Nota: in alternativa, alla fine di queste istruzioni viene fornito il testo completo del file log4j_jndiremoval.txt, che può essere copiato e incollato in un file di testo.

  1. Copiare o spostare il file di testo nel nodo di Windows interessato.
  2. Rinominare il file di testo e modificare l'estensione da .txt a .ps1. Nota: potrebbe essere necessario andare in Opzioni cartella di Esplora risorse, Visualizza e selezionare la casella "Estensioni nomi file" prima di rinominare il file.
  3. Aprire una finestra di Windows PowerShell. Dal menu, cliccare su Cerca e digitare PowerShell. Viene visualizzato "Windows PowerShell". Cliccare con il pulsante destro del mouse su Windows PowerShell e selezionare "Esegui come amministratore".

pic_01.JPG

 

  1. Arrestare il servizio DPA Agent. Eseguire questa operazione utilizzando lo snap-in Servizi di Windows o dalla riga di comando in Windows PowerShell.

Dalla finestra Windows PowerShell, se si tratta di un'installazione dell'agent nell'applicazione o nel datastore DPA, il comando è:

dpa agent stop

Dalla finestra Windows PowerShell, se si tratta di un'installazione standalone dell'agent DPA, il comando è:

\dpa stop

Esempio:   
C:\Program Files\EMC\DPA\agent\etc\dpa stop

  1. Nella finestra Windows PowerShell, sostituire le directory con la directory che contiene il file di script.

pic_03.JPG

 

  1. Eseguire lo script nella finestra di PowerShell utilizzando l'opzione verify, che esegue la scansione e verifica i file interessati. Il comando è:    
.\log4j_jndiremoval.ps1 -verify

pic_04.JPG

  1. Dopo aver premuto Invio, lo script viene eseguito, quindi viene richiesto il percorso per l'installazione di DPA. Immettere il percorso completo per l'installazione di DPA.

pic_06.JPG

 

  1. Dopo aver premuto Invio, lo script viene eseguito e identifica eventuali file vulnerabili.

pic_07.JPG

 

  1. Eseguire nuovamente lo script nella finestra di PowerShell omettendo l'opzione verify. In questo modo, lo script esegue la scansione e corregge tutti i file interessati. Il comando è:   
.\log4j_jndiremoval.ps1

Nota: il percorso di installazione DPA deve essere immesso una seconda volta.

pic_09.JPG

 

  1. Dopo aver premuto Invio, lo script cerca e corregge i file vulnerabili rilevati.

pic_10.JPG

 

  1. A questo punto, la correzione è stata completata.
  2. È possibile eseguire nuovamente lo script per un ulteriore controllo. Eseguire lo script nella finestra di PowerShell utilizzando l'opzione verify, che esegue la scansione e verifica i file interessati. Il comando è:
.\log4j_jndiremoval.ps1 -verify

pic_14.JPG

 

  1. Avviare il servizio DPA Agent. Questa operazione può essere eseguita utilizzando lo snap-in Servizi di Windows o dalla riga di comando in Windows PowerShell.

Dalla finestra Windows PowerShell, se si tratta di un'installazione dell'agent nell'applicazione o nel datastore DPA, il comando è:

dpa agent start

Dalla finestra Windows PowerShell, se si tratta di un'installazione standalone dell'agent DPA, il comando è:

\dpa start

Esempio:   
C:\Program Files\EMC\DPA\agent\etc\dpa start

 

Appendice:
di seguito è riportato il testo completo dello script PowerShell. Se non è possibile accedere al file allegato a questo articolo della Knowledge Base, è possibile copiare e incollare il testo così com'è in un file di testo (.txt) da utilizzare nella procedura descritta più sopra.

param ( [switch]$verify ) '--------------------------------------------------------------------------' '--------------------------------------------------------------------------' ' Data Protection Advisor CVE-2021-44228, CVE-2021-45046 Patcher 1.1 ' ' Developer : Pankaj Pande(p.pande@dell.com) ' ' Release : 29 Dec 2021 ' '--------------------------------------------------------------------------' 'Welcome to CVE-2021-44228, CVE-2021-45046 Patching Tool.' 'This utility will assist you in patching Data Protection Advisor for CVE-2021-44228 and CVE-2021-45046 on a Windows system.' "Special Note : The tool automates remediation steps for all internal components. Following remediation, validation checks are also run. While this tool remediates these vulnerabilities, all available information from Apache on log4j continues to be monitored. If new CVEs are discovered, Dell Technologies' Engineering teams will clarify impact and new remediation steps where necessary. If needed this tool will be updated to include the new remediation steps." '---------------------------------------------------------------------------' function List-JndiLookup { Param ( [string[]]$JarFiles, [string] $FilenameToRemove ) #initiate the .net namespace add-type -AssemblyName 'System.IO.Compression.filesystem' "The number of files to be processed is : $($JarFiles.Count)" #list the files we are processing # them later foreach ($JarFile in $JarFiles) { "$JarFile" } $processedFiles = 0; $skippedFiles = 0; foreach ($JarFile in $JarFiles) { # Open the jar for updating (.jar files are just .zip files) try { $ProcessJarFile = [io.compression.zipfile]::Open($JarFile,'Update') } catch { # Error Handling } "Checking $JarFile for $FilenameToRemove" $totalFilesInJar = ($ProcessJarFile.Entries | Where FullName -Match $FilenameToRemove).Count if($totalFilesInJar -gt 0){ $processedFiles++ } #close Zip try { $ProcessJarFile.Dispose() } catch { # Error Handling } } if ( $processedFiles -gt 0) { Write-Host "$processedFiles file(s) found vulnerable" -fore red Write-Host "Finished...Please make sure to run the patching on this sytem" -fore red } else { Write-Host "$processedFiles file(s) found vulnerable" -fore green Write-Host "Finished...No Action needed" -fore green } } function Remove-JndiLookup { Param ( [string[]]$JarFiles, [string] $FilenameToRemove ) #initiate the .net namespace add-type -AssemblyName 'System.IO.Compression.filesystem' "The number of files to be processed is : $($JarFiles.Count)" #list the files we are processing # them later foreach ($JarFile in $JarFiles) { "$JarFile" } "Starting patching/Removel Process" $processedFiles = 0; $skippedFiles = 0; foreach ($JarFile in $JarFiles) { # Open the jar for updating (.jar files are just .zip files) try { $ProcessJarFile = [io.compression.zipfile]::Open($JarFile,'Update') } catch { # Error Handling } "Checking $JarFile for $FilenameToRemove" $totalFilesInJar = ($ProcessJarFile.Entries | Where FullName -Match $FilenameToRemove).Count if($totalFilesInJar -gt 0){ "Deleting unwanted file $FilenameToRemove from $JarFile" ($ProcessJarFile.Entries | Where FullName -Match $FilenameToRemove).Delete() $processedFiles++ } else { "File $FilenameToRemove not found inside $JarFile, this may have already been deleted." $skippedFiles++ } # Clean up / close the zip try { $ProcessJarFile.Dispose() } catch { # Error Handling } } "$processedFiles file(s) processed`n$skippedFiles file(s) skipped" Write-Host "Finished..." -fore green } if ( $verify ) { Write-Host "Running in dry-run mode. Will not process any files" -fore green } else { Write-Host "Running in fix mode. Will patch files that are found affected" -fore red } $dpa_path = Read-Host "Enter the DPA location " Write-Host "Running in : '$dpa_path' " -fore green if ($verify) { List-JndiLookup -JarFiles (Get-ChildItem -Exclude 'tmp' -Recurse -Path "$dpa_path" -Filter 'dpa*.jar' | ? { $_.FullName -inotmatch 'tmp' }).FullName -FilenameToRemove 'JndiLookup.class' } else { Remove-JndiLookup -JarFiles (Get-ChildItem -Exclude 'tmp' -Recurse -Path "$dpa_path" -Filter 'dpa*.jar' | ? { $_.FullName -inotmatch 'tmp' }).FullName -FilenameToRemove 'JndiLookup.class' }

 



Per domande o assistenza su queste istruzioni, contattare il supporto tecnico Dell.