Comment surveiller les fichiers Log4j à l’aide de NinjaOne

Champs Personnalisés bannière blog

Avec les dernières nouvelles concernant la généralisation de Log4Shell (CVE-2021-44228) et des tentatives de piratage, les MSP et les équipes informatiques ont travaillé sans relâche pour évaluer leur exposition, rechercher des Indicateurs de Compromission (IoC) potentiels, appliquer des mesures d’atténuation et appliquer des correctifs.

Le problème est que, puisque cette vulnérabilité affecte beaucoup d’applications, et que tous les fournisseurs n’ont pas été en mesure de fournir une réponse claire sur le fait que leurs produits sont affectés ou non (remarque : NinjaOne ne l’est pas), déterminer quels systèmes sont potentiellement vulnérables est un grand défi.

Ce problème a conduit un certain nombre de chercheurs en sécurité et de membres de la communauté à créer des scripts et des outils permettant de rechercher des fichiers Log4j potentiellement vulnérables et des signes d’IoC dans les environnements.

En voici quelques exemples :

La décision d’utiliser l’un ou l’autre des scripts disponibles vous appartient entièrement (il faut toujours tester et effectuer les contrôles préalables appropriés, bien sûr), mais si vous trouvez un script que vous voulez essayer, cet article vous montrera comment le déployer sur votre réseau en utilisant les champs personnalisés  dans NinjaOne.

Avant de nous plonger dans le vif du sujet, vous trouverez ci-dessous d’excellentes ressources si vous souhaitez vous familiariser avec Log4Shell (en anglais) :

Exemple de surveillance des fichiers Log4j à l’aide de NinjaOne

Pour configurer depuis NinjaOne une surveillance personnalisée qui détecte la présence de fichiers de la bibliothèque Log4J sur les terminaux, il vous faudra :

  1. Un champ personnalisé
  2. Un script pour collecter et stocker les données (exemple ci-dessous, ou vous pouvez vous référer aux autres exemples cités ci-dessus)
  3. Une condition personnalisée pour créer une alerte
  4. Une méthode pour déployer le script de détection

Configurer un champ personnalisé

Le champ personnalisé sera utilisé pour stocker les données renvoyées par le script de détection.

1) Ajoutez un nouveau champ personnalisé. Comme nous allons contrôler le résultat du script sur tous les terminaux, nous allons créer un champ personnalisé général.

ninja-screen-log4j

2) Le champ personnalisé sera nommé log4j et sera défini comme étant de type multi-ligne. Nous utilisons le terme “multi-ligne” car chaque terminal peut avoir plusieurs fichiers présentant des vulnérabilités. La présence de plusieurs lignes rendra cette information plus lisible.

create-field-log4j

3) Il faut ensuite configurer le champ personnalisé. Nous allons définir l’accès du script sur lecture/écriture.

Remarque : si l’accès du script n’est pas défini sur « écriture seulement » ou « lecture/écriture », ce champ ne sera pas éditable à partir d’un script.

text-log4j

C’est tout en ce qui concerne la configuration d’un champ personnalisé si nous configurons un champ personnalisé général.

Créer un script pour extraire des données

À des fins d’exemple, nous utiliserons ci-dessous un script inspiré de celui de Kelvin Tegelaar, disponible sur CyberDrain et dans la Communauté du Dojo de NinjaOne. La principale différence avec le script de Kelvin est qu’il utilise un outil externe appelé “Everything” qui permet d’accélérer son exécution.

Veuillez noter qu’il existe d’autres scripts en circulation auxquels vous pouvez également vous référer et que vous pouvez personnaliser , notamment :

Ces derniers peuvent fournir des résultats plus rapides et plus efficaces.

*** Attention : L’utilisation de l’un de ces scripts dans Ninja relève de votre propre responsabilité et de vos propres risques. ***

$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”


		

Pour aller plus loin

Les principes fondamentaux de la sécurité des appareils sont essentiels à votre posture de sécurité globale. NinjaOne facilite l’application de correctifs, le durcissement, la sécurisation et la sauvegarde des données de tous les appareils de façon centralisée, à distance et à grande échelle.
Pour en savoir plus sur NinjaOne Backup, participez à une visite guidée en direct ou commencez votre essai gratuit de la plateforme NinjaOne.

Vous pourriez aussi aimer

Prêt à devenir un Ninja de l’informatique ?

Découvrez comment NinjaOne peut vous aider à simplifier les opérations informatiques.
×

Voir NinjaOne en action !

En soumettant ce formulaire, j'accepte la politique de confidentialité de NinjaOne.

Termes et conditions NinjaOne

En cliquant sur le bouton “J’accepte” ci-dessous, vous indiquez que vous acceptez les termes juridiques suivants ainsi que nos conditions d’utilisation:

  • Droits de propriété: NinjaOne possède et continuera de posséder tous les droits, titres et intérêts relatifs au script (y compris les droits d’auteur). NinjaOne vous accorde une licence limitée pour l’utilisation du script conformément à ces conditions légales.
  • Limitation de l’utilisation: Les scripts ne peuvent être utilisés qu’à des fins personnelles ou professionnelles internes légitimes et ne peuvent être partagés avec d’autres entités.
  • Interdiction de publication: Vous n’êtes en aucun cas autorisé à publier le script dans une bibliothèque de scripts appartenant à, ou sous le contrôle d’un autre fournisseur de logiciels.
  • Clause de non-responsabilité: Le texte est fourni “tel quel” et “tel que disponible”, sans garantie d’aucune sorte. NinjaOne ne promet ni ne garantit que le script sera exempt de défauts ou qu’il répondra à vos besoins ou attentes particulières.
  • Acceptation des risques: L’utilisation du script est sous votre propre responsabilité. Vous reconnaissez qu’il existe certains risques inhérents à l’utilisation du script, et vous comprenez et assumez chacun de ces risques.
  • Renonciation et exonération de responsabilité: Vous ne tiendrez pas NinjaOne pour responsable des conséquences négatives ou involontaires résultant de votre utilisation du script, et vous renoncez à tout droit ou recours légal ou équitable que vous pourriez avoir contre NinjaOne en rapport avec votre utilisation du script.
  • EULA: Si vous êtes un client de NinjaOne, votre utilisation du script est soumise au contrat de licence d’utilisateur final qui vous est applicable (End User License Agreement (EULA)).