Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products

Data Protection Advisor : Correction manuelle des vulnérabilités Apache Log4j script Windows PowerShell (CVE-2021-44228, CVE-2021-45046)

Summary: Cet article fournit des instructions pour la correction manuelle d’un agent DPA s’exécutant sur un nœud Microsoft Windows affecté par les vulnérabilités Apache Log4j (CVE-2021-44228 et CVE-2021-45046). ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Cette correction implique l’utilisation d’un script Windows PowerShell qui utilise des commandes de rédaction de scripts Windows natives.

Ces instructions peuvent être appliquées à n’importe quel type d’installation de Windows DPA, y compris l’application DPA, le datastore DPA et l’agent DPA autonome (installé seul sur un serveur ou sur un autre type de serveur d’applications).

Consultez l’avis de sécurité Dell ci-dessous pour plus d’informations sur les vulnérabilités Apache Log4j :

Pour toute question ou assistance concernant ces instructions, contactez le support technique Dell.

Étapes de correction manuelle :

Remarque :

  • Ces instructions nécessitent que PowerShell soit installé sur l’installation Windows et qu’il soit disponible (par défaut).
  • Les droits et l’accès administrateur Windows sont requis.

 

  1. Téléchargez le fichier texte joint à cet article de la base de connaissances, log4j_jndiremoval.txt.

Remarque : vous pouvez également fournir le texte intégral du fichier log4j_jndiremoval.txt à la fin de ces instructions, qui peuvent être copiées et collées dans un fichier texte.

  1. Copiez ou déplacez le fichier texte vers le nœud Windows concerné.
  2. Renommez le fichier texte et remplacez l’extension de fichier .txt par .ps1. Remarque : vous devrez peut-être accéder aux options du dossier de l’Explorateur Windows, afficher et cocher la case pour afficher les « extensions de nom de fichier » avant de renommer le fichier.
  3. Ouvrez une fenêtre Windows PowerShell. Dans le menu, cliquez sur Rechercher, puis saisissez PowerShell. « Windows PowerShell » doit s’afficher. Cliquez avec le bouton droit de la souris sur Windows PowerShell, puis sélectionnez « Exécuter en tant qu’administrateur ».

pic_01.JPG

 

  1. Arrêtez l’agent de service Windows DPA. Pour ce faire, utilisez le composant logiciel enfichable Services Windows ou à partir de la ligne de commande à l’aide de Windows PowerShell.

Dans la fenêtre Windows PowerShell, s’il s’agit d’une installation d’agent sur l’application DPA ou le datastore DPA, la commande est la suivante :

dpa agent stop

Dans la fenêtre Windows PowerShell, s’il s’agit d’une installation d’agent DPA autonome, la commande est la suivante :

\dpa stop

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

  1. Dans la fenêtre Windows PowerShell, accédez au répertoire contenant le fichier de script.

pic_03.JPG

 

  1. Exécutez le script dans la fenêtre PowerShell à l’aide de l’option de vérification, qui recherche et vérifie les fichiers concernés. La commande est la suivante :    
.\log4j_jndiremoval.ps1 -verify

pic_04.JPG

  1. Lorsque vous appuyez sur Entrée, le script s’exécute, puis vous invite à accéder au chemin d’accès à l’installation de DPA. Saisissez le chemin complet de l’installation DPA.

pic_06.JPG

 

  1. Après avoir appuyé sur Entrée, le script s’exécute et identifie tous les fichiers vulnérables.

pic_07.JPG

 

  1. Exécutez à nouveau le script dans la fenêtre PowerShell en omettant l’option Vérifier. Dans ce mode, le script recherche et corrige l’un des fichiers concernés. La commande est la suivante :   
.\log4j_jndiremoval.ps1

Remarque : le chemin d’installation de DPA doit être saisi à nouveau.

pic_09.JPG

 

  1. Après avoir appuyé sur Entrée, le script recherche et corrige tous les fichiers vulnérables trouvés.

pic_10.JPG

 

  1. À ce stade, la correction est terminée.
  2. En option, effectuez une nouvelle vérification en exécutant à nouveau le script. Exécutez le script dans la fenêtre PowerShell à l’aide de l’option Vérifier, qui recherche et vérifie les fichiers concernés. La commande est la suivante :
.\log4j_jndiremoval.ps1 -verify

pic_14.JPG

 

  1. Démarrez l’agent de service DPA. Cette opération peut être effectuée à l’aide du composant logiciel enfichable Services Windows ou à partir de la ligne de commande à l’aide de Windows PowerShell.

Dans la fenêtre Windows PowerShell, s’il s’agit d’une installation d’agent sur l’application DPA ou le datastore DPA, la commande est la suivante :

dpa agent start

Dans la fenêtre Windows PowerShell, s’il s’agit d’une installation d’agent DPA autonome, la commande est la suivante :

\dpa start

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

 

Addendum :
 Vous trouverez ci-dessous le texte complet du script PowerShell. Si le fichier joint à cet article de la base de connaissance n’est pas accessible, ce texte peut être copié et collé tel qu’il est dans un fichier texte (.txt) à utiliser dans les étapes ci-dessus.

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' }

 



Pour toute question ou assistance concernant ces instructions, contactez le support technique Dell.

Article Properties
Article Number: 000194869
Article Type: How To
Last Modified: 18 Aug 2022
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.