Voir la démo×
×

Voir NinjaOne en action !

Comment surveiller les fichiers Log4j à l’aide de NinjaOne

Champs Personnalisés bannière blog

Comment surveiller les fichiers Log4j

Avec les dernières nouvelles concernant la généralisation de Log4Shell (CVE-2021-44228) et des tentatives d’exploitation, 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 pouvant être utilisés pour analyser les environnements à la recherche de fichiers Log4j potentiellement vulnérables et de signes d’Indicateurs de Compromission (IoC).

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, si vous souhaitez vous familiariser avec Log4Shell, vous trouverez ci-dessous d’excellentes ressources :

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

Pour configurer un monitoring personnalisé qui détecte la présence de fichiers Log4J de la bibliothèque des terminaux dans Ninja, vous aurez besoin de :

  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 le 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) Nous devons ensuite configurer le champ personnalisé. Nous allons définir l’ accès du script en lecture/écriture.

Remarque : si l’accès du script n’est pas défini sur ‘Écriture seulement’ ou ‘Lecture/écriture’, vous ne pourrez pas écrire dans ce champ à partir d’un script.

text-log4j

C’est tout ce qui est nécessaire pour configurer le champ personnalisé si nous configurons un champ personnalisé général.

Créer un script pour extraire des données

À des fins d’illustration, nous utiliserons un script d’exemple ci-dessous, inspiré du script 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 :

Ceux-ci 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
}

If ($array -ne $null) { $array += “Menace Potentielle Détectée”}

Ninja-Property-Set log4j $array

*Remarque : pour les appareils sous Windows 8, vous devrez peut-être supprimer la commande ‘-force’ de la commande Get-ChildItem (gci).

Ninja-Property-Set est la commande Powershell de Ninja permettant de définir un champ personnalisé à une valeur spécifique. La syntaxe est la suivante :

Ninja-Property-Set NomDuChamp Valeur

Dans ce cas, nous définissons le champ log4j à la valeur stockée dans la variable $array.

L’ajout de ce script à Ninja est facile.

1) Naviguez vers « Configuration » -> « Écriture de script »

2) Cliquez sur « Créer un nouveau script »

3) Copiez le code ci-dessus dans l’environnement de développement intégré (EDI)

  • Si votre champ personnalisé n’est pas nommé « log4j », mettez à jour le nom du champ à côté de Ninja-Property-Set

4) Définissez les paramètres du script comme suit

  • Nom : Détection de Log4J
  • Langue : PowerShell
  • Système d’exploitation : Windows
  • Architecture : Toutes

5) Enregistrez le script

Configuration du moniteur de surveillance

Les conditions dans Ninja sont utilisées pour surveiller les changements d’état d’un terminal. Ninja inclut la possibilité de contrôler les champs personnalisés. Nous allons configurer un moniteur qui émettra une alerte en fonction des résultats renvoyés dans notre champ Log4J.

1) Dans la stratégie que vous avez choisie, allez dans la rubrique « Conditions » et cliquez sur « Ajouter une condition »

2) Sélectionnez le type de condition « Champs Personnalisés »

3) Sous « La valeur du champ personnalisé doit répondre à toutes les conditions », sélectionnez « Ajouter » et cherchez « Log4J »

4) Réglez le choix sur « contient » et ajoutez « Menace Potentielle Détectée »

5) Définissez les paramètres de gravité, de priorité, de canal de notification et de ticketing selon vos préférences, puis cliquez sur « Ajouter »

6) Si vous avez intégré votre PSA ou si vous utilisez Ninja Ticketing, vous pouvez également créer un ticket via la condition

Déployer le script

La dernière étape de ce processus consiste à exécuter le script. Vous pouvez exécuter le script :

  • Ponctuellement sur des appareils individuels via la bibliothèque de scripts
  • Ponctuellement sur plusieurs appareils en ligne via la fonction de recherche
  • Automatiquement via des tâches planifiées
  • Automatiquement via les stratégies

Découvrez ce que vous pouvez accomplir d’autre en utilisant les champs personnalisés dans NinjaOne

Ce n’est qu’un exemple de la façon dont l’utilisation de champs personnalisés dans NinjaOne peut vous aider à déployer une surveillance personnalisée et une automatisation puissante. Nous commençons une nouvelle série consacrée au partage d’autres exemples, et vous pouvez voir le premier article ici.

Prochaines étapes

 

Les principes fondamentaux de la sécurité des appareils sont essentiels à votre posture de sécurité. 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 Protect, participer à une visite guidée ou profitez d’un 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.

By clicking the “I Accept” button below, you indicate your acceptance of the following legal terms as well as our Terms of Use:

  • Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms.
  • Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party.
  • Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library belonging to or under the control of any other software provider.
  • Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations.
  • Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks.
  • Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script.
  • EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).