Utiliser Windows Event Forwarding pour optimiser la détection d'intrusion

Découvrez une approche pour collecter les événements à partir d'appareils au sein de votre entreprise. Cet article traite des événements aussi bien dans le cadre des opérations normales que lorsqu'une intrusion est suspectée.

Le transfert d’événements Windows (WEF) lit tout journal des événements opérationnels ou administratifs sur un appareil dans votre organization et transfère les événements que vous choisissez à un serveur Windows Event Collector (WEC).

Pour accomplir cette fonctionnalité, deux abonnements différents sont publiés sur les appareils clients : l’abonnement de base et l’abonnement suspect. L’abonnement Base de référence inscrit tous les appareils dans votre organization, et un abonnement Suspect inclut uniquement les appareils que vous avez ajoutés. L’abonnement Suspect collecte davantage d’événements pour aider à créer le contexte de l’activité du système et peut être rapidement mis à jour pour prendre en charge les nouveaux événements et/ou scénarios en fonction des besoins sans affecter les opérations de base.

Cette implémentation permet de différencier l’endroit où les événements sont finalement stockés. Les événements de base peuvent être envoyés à des appareils dotés d’une fonctionnalité analytique en ligne, comme Security Event Manager (SEM), tout en envoyant des événements à un système MapReduce, tel que HDInsight ou Hadoop, pour un stockage à long terme et une analyse plus approfondie. Les événements de l’abonnement Suspect sont envoyés directement à un système MapReduce en raison d’un volume et d’un rapport signal/bruit inférieur. Ils sont largement utilisés pour l’analyse d’investigation de l’hôte.

La force d’un SEM réside dans la capacité d’inspecter, de mettre en corrélation des événements et de générer des alertes pour les modèles connus de manière et d’alerter le personnel de sécurité à la vitesse de la machine.

Un système MapReduce a une durée de rétention plus longue (années par rapport à mois pour un SEM), une plus grande capacité d’entrée (des centaines de téraoctets par jour) et la possibilité d’effectuer des opérations plus complexes sur les données, telles que l’analyse statistique et de tendance, l’analyse de modèle clustering ou l’application d’algorithmes Machine Learning.

Voici un guide de mise à l’échelle approximatif pour les événements WEF :

Événements/plage de secondes Magasin de données
0 - 5,000 SQL ou SEM
5,000 - 50,000 SEM
50,000+ Hadoop/HDInsight/Data Lake

La génération d’événements sur un appareil doit être activée séparément ou dans le cadre de l’objet de stratégie de groupe pour l’implémentation WEF de base, notamment l’activation des journaux des événements désactivés et la définition d’autorisations de canal. Pour plus d’informations, consultez Annexe C - Méthodes de paramètres de canal d’événements (activer et accès au canal). Cette condition est due au fait que WEF est un système passif concernant le journal des événements. Il ne peut pas modifier la taille des fichiers journaux des événements, activer les canaux d’événements désactivés, modifier les autorisations de canal ou ajuster une stratégie d’audit de sécurité. WEF interroge uniquement les canaux d’événements pour les événements existants. En outre, la génération d’événements déjà effectuée sur un appareil permet une collecte d’événements plus complète qui crée un historique complet de l’activité système. Sinon, vous serez limité à la vitesse des cycles d’actualisation des objets de stratégie de groupe et de l’abonnement WEF pour apporter des modifications à ce qui est généré sur l’appareil. Sur les appareils modernes, l’activation de canaux d’événements supplémentaires et l’augmentation de la taille des fichiers journaux des événements n’ont pas entraîné de différences de performances notables.

Pour connaître la stratégie d’audit minimale recommandée et les paramètres de liste de contrôle d’accès du système de Registre, consultez Annexe A - Stratégie d’audit minimale recommandée et Annexe B - Stratégie de liste de contrôle d’accès minimale recommandée pour le système du Registre.

Remarque

Il ne s’agit que des valeurs minimales qui doivent correspondre à ce que l’abonnement WEF sélectionne.

Du point de vue de la gestion des abonnements WEF, les requêtes d’événements fournies doivent être utilisées dans deux abonnements distincts pour faciliter la maintenance ; seuls les ordinateurs répondant à des critères spécifiques seraient autorisés à accéder à l’abonnement ciblé, cet accès serait déterminé par un algorithme ou une direction d’analyste. Tous les appareils doivent avoir accès à l’abonnement De base de référence.

Ce système de double abonnement signifie que vous créez deux abonnements de base :

  • Abonnement WEF de base. Événements collectés auprès de tous les hôtes ; ces événements incluent certains événements spécifiques au rôle, qui seront émis uniquement par ces machines.
  • Abonnement WEF ciblé. Événements collectés à partir d’un ensemble limité d’hôtes en raison d’activités inhabituelles et/ou d’une sensibilisation accrue à ces systèmes.

Chacun utilisant la requête d’événement correspondante ci-dessous. Pour l’abonnement ciblé, l’activation de l’option « lire les événements existants » doit être définie sur true pour autoriser la collecte d’événements existants à partir de systèmes. Par défaut, les abonnements WEF transfèrent uniquement les événements générés après la réception de l’abonnement WEF par le client.

Dans Annexe E - Requête d’événement d’abonnement de référence annotée et Annexe F - Requête d’événement d’abonnement suspect annoté, le XML de requête d’événement est inclus lors de la création d’abonnements WEF. Ces abonnements sont annotés à des fins de requête et de clarté. Un élément individuel <Query> peut être supprimé ou modifié sans affecter le reste de la requête.

Questions courantes sur le WEF

Cette section répond aux questions courantes des professionnels de l’informatique et des clients.

L’utilisateur remarquera-t-il si son ordinateur est activé pour WEF ou si WEF rencontre une erreur ?

La réponse courte est : Non.

La réponse la plus longue est : Le canal d’événements Eventlog-forwardingPlugin/Operational enregistre les événements de réussite, d’avertissement et d’erreur liés aux abonnements WEF présents sur l’appareil. À moins que l’utilisateur n’ouvre observateur d'événements et accède à ce canal, il ne remarquera pas wef via la consommation de ressources ou les fenêtres contextuelles d’interface utilisateur graphique. Même en cas de problème avec l’abonnement WEF, il n’y a pas d’interaction utilisateur ni de dégradation des performances. Tous les événements de réussite, d’avertissement et d’échec sont enregistrés dans ce canal d’événements opérationnels.

Wef est-il push ou pull ?

Un abonnement WEF peut être configuré pour être envoyé (push) ou tiré (pull), mais pas les deux. Le déploiement informatique le plus simple et le plus flexible avec la plus grande scalabilité peut être obtenu à l’aide d’un abonnement push ou initié par la source. Les clients WEF sont configurés à l’aide d’un objet de stratégie de groupe et le client de transfert intégré est activé. Pour l’extraction lancée par le collecteur, l’abonnement sur le serveur WEC est préconfiguré avec les noms des appareils clients WEF à partir desquels les événements doivent être sélectionnés. Ces clients doivent être configurés à l’avance pour permettre aux informations d’identification utilisées dans l’abonnement d’accéder à distance à leurs journaux des événements (normalement en ajoutant les informations d’identification au groupe de sécurité local intégré Lecteurs du journal des événements).) Un scénario utile : surveiller de près un ensemble spécifique de machines.

Wef fonctionne-t-il sur VPN ou RAS ?

WEF gère bien les scénarios VPN, RAS et DirectAccess et se reconnecte et envoie tout backlog d’événements accumulé lorsque la connexion au collecteur WEF est rétablie.

Comment la progression du client est-elle suivie ?

Le serveur WEC conserve dans son registre les informations de signet et l’heure de la dernière pulsation pour chaque source d’événement pour chaque abonnement WEF. Lorsqu’une source d’événement se reconnecte à un serveur WEC, la dernière position de signet est envoyée à l’appareil pour l’utiliser comme point de départ pour reprendre les événements de transfert. Si un client WEF n’a aucun événement à envoyer, le client WEF se connecte régulièrement pour envoyer une pulsation au serveur WEC pour indiquer qu’il est actif. Cette valeur de pulsation peut être configurée individuellement pour chaque abonnement.

Wef fonctionne-t-il dans un environnement IPv4, IPv6 ou mixte IPv4/IPv6 ?

Oui. WEF est indépendant du transport et fonctionne sur IPv4 ou IPv6.

Les événements WEF sont-ils chiffrés ? Je vois une option HTTP/HTTPS !

Dans un paramètre de domaine, la connexion utilisée pour transmettre des événements WEF est chiffrée à l’aide de Kerberos, par défaut (avec NTLM comme option de secours, qui peut être désactivée à l’aide d’un objet de stratégie de groupe). Seul le collecteur WEF peut déchiffrer la connexion. En outre, la connexion entre le client WEF et le serveur WEC est mutuellement authentifiée, quel que soit le type d’authentification (Kerberos ou NTLM). Il existe des options d’objet de stratégie de groupe pour forcer l’authentification à utiliser Kerberos uniquement.

Cette authentification et ce chiffrement sont effectués, que HTTP ou HTTPS soit sélectionné.

L’option HTTPS est disponible si l’authentification basée sur les certificats est utilisée, dans les cas où l’authentification mutuelle basée sur Kerberos n’est pas une option. Le certificat SSL et les certificats clients provisionnés sont utilisés pour fournir une authentification mutuelle.

Les clients WEF disposent-ils d’une mémoire tampon distincte pour les événements ?

Le journal des événements local des machines clientes WEF est la mémoire tampon pour WEF pour lorsque la connexion au serveur WEC est perdue. Pour augmenter la « taille de mémoire tampon », augmentez la taille de fichier maximale du fichier journal des événements spécifique dans lequel les événements sont sélectionnés. Pour plus d’informations, consultez Annexe C - Méthodes paramètres du canal d’événements (activer et accès au canal).

Lorsque le journal des événements remplace des événements existants (entraînant une perte de données si l’appareil n’est pas connecté au collecteur d’événements), aucune notification n’est envoyée au collecteur WEF indiquant que les événements sont perdus du client. Il n’y a pas non plus d’indicateur indiquant qu’il y a eu un écart dans le flux d’événements.

Quel format est utilisé pour les événements transférés ?

WEF a deux modes pour les événements transférés. La valeur par défaut est « Texte rendu » qui inclut la description textuelle de l’événement tel que vous le voyez dans observateur d'événements. L’inclusion de cette description signifie que la taille de l’événement est effectivement doublée ou triplée en fonction de la taille de la description rendue. L’autre mode est « Événements » (également appelé « format binaire ») - qui est simplement le xml d’événement lui-même envoyé au format XML binaire (comme il serait écrit dans le fichier evtx).) Ce format est compact et peut plus que doubler le volume d’événements qu’un seul serveur WEC peut prendre en charge.

Un abonnement « testSubscription » peut être configuré pour utiliser le format Événements via l’utilitaire WECUTIL :

@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "testSubscription" /cf:Events

À quelle fréquence les événements WEF sont-ils remis ?

Les options de remise d’événements font partie des paramètres de configuration de l’abonnement WEF : il existe trois options de remise d’abonnement intégrées : Normal, Réduire la bande passante et Réduire la latence. Un quatrième fourre-tout appelé « Personnalisé » est disponible, mais ne peut pas être sélectionné ou configuré via l’interface utilisateur WEF à l’aide de observateur d'événements. L’option Remise personnalisée doit être sélectionnée et configurée à l’aide de l’application de ligne de commande WECUTIL.EXE. Toutes les options d’abonnement définissent le nombre maximal d’événements et l’âge maximal des événements. Si l’une ou l’autre limite est dépassée, les événements cumulés sont envoyés au collecteur d’événements.

Ce tableau présente les options de remise intégrées :

Options d’optimisation de la distribution d’événements Description
Normal Cette option garantit une remise fiable des événements et n’essaie pas d’économiser la bande passante. Il s’agit du choix approprié, sauf si vous avez besoin d’un contrôle plus strict sur l’utilisation de la bande passante ou si vous avez besoin d’événements transférés aussi rapidement que possible. Il utilise le mode de livraison d’extraction, traite 5 éléments à la fois et définit un délai d’expiration de lot de 15 minutes.
Réduire la bande passante Cette option garantit que l’utilisation de la bande passante réseau pour la remise des événements est strictement contrôlée. Il s’agit d’un choix approprié si vous souhaitez limiter la fréquence des connexions réseau établies pour remettre des événements. Il utilise le mode de remise push et définit un délai d’expiration de lot de 6 heures. En outre, il utilise un intervalle de pulsation de 6 heures.
Réduire la latence Cette option garantit que les événements sont remis avec un délai minimal. Il s’agit d’un choix approprié si vous collectez des alertes ou des événements critiques. Il utilise le mode de remise push et définit un délai d’expiration de lot de 30 secondes.

Pour plus d’informations sur les options de remise, consultez Configurer les paramètres d’abonnement avancés.

La principale différence réside dans la latence des événements envoyés à partir du client. Si aucune des options intégrées ne répond à vos besoins, vous pouvez définir des options de remise d’événements personnalisées pour un abonnement donné à partir d’une invite de commandes avec élévation de privilèges :

@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "SubscriptionNameGoesHere" /cm:Custom
@rem set DeliveryMaxItems to 1 event
Wecutil ss "SubscriptionNameGoesHere" /dmi:1
@rem set DeliveryMaxLatencyTime to 10 ms
Wecutil ss "SubscriptionNameGoesHere" /dmlt:10

Comment faire contrôler quels appareils ont accès à un abonnement WEF ?

Pour les abonnements initiés par la source : chaque abonnement WEF sur un serveur WEC a sa propre liste de contrôle d’accès pour les comptes d’ordinateur ou les groupes de sécurité contenant des comptes d’ordinateur (et non des comptes d’utilisateur) qui sont explicitement autorisés à participer à cet abonnement ou qui se voient refuser explicitement l’accès. Cette liste de contrôle d’accès s’applique uniquement à un seul abonnement WEF (étant donné qu’il peut y avoir plusieurs abonnements WEF sur un serveur WEC donné), les autres abonnements WEF ont leur propre liste de contrôle d’accès distincte.

Pour les abonnements initiés par le collecteur : l’abonnement contient la liste des machines à partir desquelles le serveur WEC doit collecter des événements. Cette liste est gérée sur le serveur WEC, et les informations d’identification utilisées pour l’abonnement doivent avoir accès à la lecture des journaux des événements à partir des clients WEF. Les informations d’identification peuvent être soit le compte d’ordinateur, soit un compte de domaine.

Un client peut-il communiquer avec plusieurs collecteurs d’événements WEF ?

Oui. Si vous souhaitez un environnement High-Availability, configurez plusieurs serveurs WEC avec la même configuration d’abonnement et publiez les deux URI de serveur WEC sur les clients WEF. Les clients WEF transfèrent les événements simultanément aux abonnements configurés sur les serveurs WEC, s’ils disposent de l’accès approprié.

Quelles sont les limitations du serveur WEC ?

Trois facteurs limitent la scalabilité des serveurs WEC. La règle générale pour un serveur WEC stable sur du matériel standard consiste à planifier un total de 3 000 événements par seconde en moyenne pour tous les abonnements configurés.

  • E/S disque. Le serveur WEC ne traite pas ou ne valide pas l’événement reçu, mais met plutôt en mémoire tampon l’événement reçu, puis le journalise dans un fichier journal des événements local (fichier EVTX). La vitesse de journalisation dans le fichier EVTX est limitée par la vitesse d’écriture du disque. L’isolation du fichier EVTX dans son propre tableau ou l’utilisation de disques haute vitesse peut augmenter le nombre d’événements par seconde qu’un seul serveur WEC peut recevoir.

  • Connections réseau. Bien qu’une source WEF ne conserve pas de connexion permanente au serveur WEC, elle ne se déconnecte pas immédiatement après l’envoi de ses événements. Cette clémence signifie que le nombre de sources WEF pouvant se connecter simultanément au serveur WEC est limité aux ports TCP ouverts disponibles sur le serveur WEC.

  • Taille du Registre. Pour chaque appareil unique qui se connecte à un abonnement WEF, une clé de Registre (correspondant au nom de domaine complet du client WEF) est créée pour stocker les informations de signet et de pulsation de la source. Si ces informations ne sont pas nettoyées pour supprimer les clients inactifs, cet ensemble de clés de Registre peut atteindre une taille ingérable au fil du temps.

    • Lorsqu’un abonnement a >1 000 sources WEF qui s’y connectent au cours de sa durée de vie, également appelées sources WEF de durée de vie, observateur d'événements peut ne plus répondre pendant quelques minutes lors de la sélection du nœud Abonnements dans le volet de navigation de gauche, mais fonctionnera normalement par la suite.
    • Avec >50 000 sources WEF de durée de vie, observateur d'événements n’est plus une option et wecutil.exe (inclus avec Windows) doit être utilisé pour configurer et gérer les abonnements.
    • À >100 000 sources WEF de durée de vie, le registre ne sera pas lisible et le serveur WEC devra probablement être reconstruit.

Informations sur la souscription

Vous trouverez ci-dessous la liste de tous les éléments collectés par chaque abonnement. Le code XML réel de l’abonnement est disponible dans une annexe. Ces éléments sont séparés en lignes de base et ciblés. L’objectif est d’abonner tous les hôtes à La base de référence, puis d’inscrire (et de supprimer) les hôtes selon les besoins à l’abonnement ciblé.

Abonnement de référence

Bien que cet abonnement semble être le plus grand abonnement, il s’agit en réalité du volume le plus faible par appareil. (Des exceptions doivent être autorisées pour les appareils inhabituels : un appareil effectuant des tâches complexes liées aux développeurs peut être censé créer un volume inhabituellement élevé d’événements de création de processus et AppLocker.) Cet abonnement ne nécessite pas de configuration spéciale sur les appareils clients pour activer les canaux d’événements ou modifier les autorisations de canal.

L’abonnement est essentiellement une collection d’instructions de requête appliquées au journal des événements. Cet abonnement signifie qu’il est modulaire par nature et qu’une instruction de requête donnée peut être supprimée ou modifiée sans affecter d’autre instruction de requête dans l’abonnement. En outre, supprimez les instructions qui filtrent des événements spécifiques, s’appliquent uniquement dans cette instruction de requête et ne sont pas à l’ensemble de l’abonnement.

Exigences relatives à l’abonnement de référence

Pour tirer le meilleur parti de l’abonnement de base, nous vous recommandons d’avoir les exigences suivantes définies sur l’appareil pour vous assurer que les clients génèrent déjà les événements requis à transférer hors du système.

  • Appliquez une stratégie d’audit de sécurité qui est un sur-ensemble de la stratégie d’audit minimale recommandée. Pour plus d’informations, consultez Annexe A - Stratégie d’audit minimale recommandée. Cette stratégie garantit que le journal des événements de sécurité génère les événements requis.

  • Appliquez au moins une stratégie AppLocker Audit-Only aux appareils.

    • Si vous autorisez ou limitez déjà les événements à l’aide d’AppLocker, cette condition est remplie.
    • Les événements AppLocker contiennent des informations utiles, telles que le hachage de fichier et les informations de signature numérique pour les exécutables et les scripts.
  • Activez les canaux d’événements désactivés et définissez la taille minimale pour les fichiers d’événements modernes.

  • Actuellement, il n’existe aucun modèle d’objet de stratégie de groupe pour activer ou définir la taille maximale pour les fichiers d’événements modernes. Ce seuil doit être défini à l’aide d’un objet de stratégie de groupe. Pour plus d’informations, consultez Annexe C - Méthodes paramètres du canal d’événements (activer et accès au canal).

La requête d’événement annoté se trouve dans la section suivante. Pour plus d’informations, consultez Annexe F - Requête d’événement d’abonnement suspect annoté.

  • Événements anti-programme malveillant provenant d’Microsoft Antimalware ou de Windows Defender. Ces événements peuvent être facilement configurés pour un produit anti-programme malveillant donné s’il écrit dans le journal des événements Windows.

  • Journal des événements de sécurité Processus Créer des événements.

  • Événements de création de processus AppLocker (EXE, script, installation et exécution d’applications empaquetées).

  • Événements de modification du registre. Pour plus d’informations, consultez Annexe B - Stratégie de liste de contrôle d’accès minimale recommandée pour le système du Registre.

  • Démarrage et arrêt du système d’exploitation

    • Les événements de démarrage incluent la version du système d’exploitation, le niveau du Service Pack, la version QFE et le mode de démarrage.
  • Installation du service

    • Inclut le nom du service, le chemin d’accès de l’image et qui a installé le service.
  • Événements d’audit de l’autorité de certification

    • Ces événements s’appliquent uniquement aux systèmes avec le rôle d’autorité de certification installé.
    • Journalise les demandes de certificat et les réponses.
  • Événements de profil utilisateur

    • L’utilisation d’un profil temporaire ou l’impossibilité de créer un profil utilisateur peut indiquer qu’un intrus se connecte de manière interactive à un appareil, mais ne souhaite pas laisser un profil persistant derrière lui.
  • Échec du démarrage du service

    • Les codes d’échec étant localisés, vous devez case activée la DLL du message pour les valeurs.
  • Événements d’accès de partage réseau

    • Filtrez les partages de fichiers IPC$ et /NetLogon, qui sont attendus et bruyants.
  • Demandes de lancement de l’arrêt du système

    • Découvrez ce qui a lancé le redémarrage d’un appareil.
  • Événement de déconnexion interactive initié par l’utilisateur

  • Les sessions des services Bureau à distance se connectent, se reconnectent ou se déconnectent.

  • Événements EMET, si EMET est installé.

  • Événements de plug-in de transfert d’événements

    • Pour surveiller les opérations d’abonnement WEF, telles que les événements de réussite partielle. Cet événement est utile pour diagnostiquer les problèmes de déploiement.
  • Création et suppression d’un partage réseau

    • Active la détection de la création de partage non autorisé.

      Remarque

      Tous les partages sont recréé au démarrage de l’appareil.

  • Sessions de connexion

    • Réussite de la connexion pour interactive (local et Bureau à distance/Bureau à distance)
    • Réussite de la connexion pour les services pour les comptes non intégrés, tels que LocalSystem, LocalNetwork, etc.
    • Réussite de la connexion pour les sessions batch
    • Fermeture de la session de connexion, c’est-à-dire les événements de déconnexion pour les sessions non réseau.
  • Rapport d'erreurs Windows (événements d’incident d’application uniquement)

    • Cette session peut aider à détecter les premiers signes d’intrus qui ne connaissent pas l’environnement d’entreprise à l’aide de programmes malveillants ciblés.
  • Événements du service de journal des événements

    • Erreurs, événements de démarrage et événements d’arrêt pour le service Journal des événements Windows.
  • Journal des événements effacé (y compris le journal des événements de sécurité)

    • Cet événement peut indiquer un intrus qui couvre ses traces.
  • Privilèges spéciaux attribués à la nouvelle connexion

    • Cette assignation indique qu’au moment de la connexion, un utilisateur est administrateur ou dispose de l’accès suffisant pour se faire administrateur.
  • Tentatives de session des services Bureau à distance sortantes

    • Visibilité de la tête de pont potentielle pour l’intrus
  • Heure système modifiée

  • Client SMB (connexions de lecteur mappées)

  • Validation des informations d’identification de compte

    • Comptes locaux ou comptes de domaine sur les contrôleurs de domaine
  • Un utilisateur a été ajouté ou supprimé du groupe de sécurité Administrateurs local.

  • Clé privée de l’API de chiffrement accessible

    • Associé à la signature d’objets à l’aide de la clé privée stockée localement.
  • Création et suppression de tâches du planificateur de tâches

    • Le planificateur de tâches permet aux intrus d’exécuter du code à des moments spécifiés en tant que LocalSystem.
  • Se connecter avec des informations d’identification explicites

    • Détecter les informations d’identification utilisent les modifications apportées par les intrus pour accéder à davantage de ressources.
  • Événements de vérification du titulaire de carte de carte à puce

    • Cet événement détecte quand une carte à puce est utilisée.

Abonnement suspect

Cet abonnement ajoute une activité possible liée à l’intrus pour aider l’analyste à affiner ses déterminations sur l’état de l’appareil.

  • Création d’une session de connexion pour les sessions réseau

    • Permet l’analyse des séries chronologiques des graphiques réseau.
  • Événements RADIUS et VPN

    • Utile si vous utilisez une implémentation RADIUS/VPN Microsoft IAS. Il montre l’attribution d’adresse> IP utilisateur avec une adresse IP distante se connectant à l’entreprise.
  • Événements de chaîne de build et d’objet X509 de l’API de chiffrement

    • Détecte un certificat, une autorité de certification ou une sous-autorité de certification défectueux connus
    • Détecte l’utilisation inhabituelle des processus capi
  • Groupes affectés à la connexion locale

    • Donne une visibilité aux groupes qui activent l’accès à l’échelle du compte
    • Permet une meilleure planification des efforts de correction
    • Exclut les comptes système intégrés connus.
  • Sortie de session de connexion

    • Spécifique aux sessions de connexion réseau.
  • Événements de recherche DNS du client

    • Retourne le processus effectué une requête DNS et les résultats retournés par le serveur DNS.
  • Sortie du processus

    • Permet de vérifier si les processus se terminent de façon inattendue.
  • Validation des informations d’identification locales ou connexion avec des informations d’identification explicites

    • Généré lorsque le sam local fait autorité pour les informations d’identification du compte en cours d’authentification.
    • Bruyant sur les contrôleurs de domaine
    • Sur les appareils clients, il est généré uniquement lorsque les comptes locaux se connectent.
  • Événements d’audit de modification du registre

    • Uniquement lorsqu’une valeur de Registre est créée, modifiée ou supprimée.
  • Authentification sans fil 802.1x

    • Détecter la connexion sans fil avec une adresse MAC d’homologue
  • journalisation Windows PowerShell

    • Couvre Windows PowerShell 2.0 et versions ultérieures et inclut les améliorations apportées à la journalisation Windows PowerShell 5.0 pour les attaques en mémoire à l’aide de Windows PowerShell.
    • Inclut Windows PowerShell journalisation de la communication à distance
  • Événement « Driver Loaded » de l’infrastructure du pilote en mode utilisateur

    • Peut éventuellement détecter un périphérique USB qui charge plusieurs pilotes de périphérique. Par exemple, un appareil USB_STOR charge le clavier ou le pilote réseau.

Si votre stratégie d’audit organisationnelle permet d’effectuer davantage d’audit pour répondre à ses besoins, c’est très bien. La stratégie ci-dessous correspond aux paramètres de stratégie d’audit minimaux nécessaires pour activer les événements collectés par les abonnements de base et ciblés.

Catégorie Sous-catégorie Paramètres d’audit
Ouverture de session au compte Validation des informations d’identification Réussite et échec
Gestion du compte Gestion des groupes de sécurité Opération réussie
Gestion du compte Gestion des comptes d’utilisateur Réussite et échec
Gestion du compte Gestion des comptes d’ordinateurs Réussite et échec
Gestion du compte Autres événements de gestion de compte Réussite et échec
Suivi détaillé Création de processus Opération réussie
Suivi détaillé Arrêt du processus Opération réussie
Ouverture de session/fermeture de session Revendications utilisateur/appareil Non configuré
Ouverture de session/fermeture de session Mode étendu IPsec Non configuré
Ouverture de session/fermeture de session Mode rapide IPsec Non configuré
Ouverture de session/fermeture de session Connexion Réussite et échec
Ouverture de session/fermeture de session L’option Fermer la session Opération réussie
Ouverture de session/fermeture de session Autres événements d’ouverture de session/fermeture de session Réussite et échec
Ouverture de session/fermeture de session Ouverture de session spéciale Réussite et échec
Ouverture de session/fermeture de session Verrouillage de compte Opération réussie
Accès aux objets Application générée Non configuré
Accès aux objets Partage de fichiers Opération réussie
Accès aux objets Système de fichiers Non configuré
Accès aux objets Autres événements d’accès aux objets Non configuré
Accès aux objets Registry Non configuré
Accès aux objets Stockage amovible Opération réussie
Changement de stratégie Auditer la modification de la stratégie Réussite et échec
Changement de stratégie Changement de stratégie de Rule-Level MPSSVC Réussite et échec
Changement de stratégie Autres événements de modification de stratégie Réussite et échec
Changement de stratégie Modification de la stratégie d’authentification Réussite et échec
Changement de stratégie Modification de la stratégie d’autorisation Réussite et échec
Utilisation des privilèges Utilisation des privilèges sensibles Non configuré
Système Modification de l’état de sécurité Réussite et échec
Système Extension du système de sécurité Réussite et échec
Système Intégrité du système Réussite et échec

Les clés Run et RunOnce sont utiles pour les intrus et la persistance des programmes malveillants. Il permet d’exécuter du code (ou de ne l’exécuter qu’une seule fois, puis supprimé, respectivement) lorsqu’un utilisateur se connecte au système.

Cette implication peut facilement être étendue à d’autres clés de points de démarrage d’exécution automatique dans le Registre.

Utilisez les illustrations suivantes pour voir comment configurer ces clés de Registre.

acl par défaut pour la clé d’exécution.

acl par défaut pour la clé runonce.

Annexe C - Méthodes de paramètres du canal d’événements (activer et accès au canal)

Certains canaux sont désactivés par défaut et doivent être activés. D’autres, comme Microsoft-Windows-CAPI2/Operational, doivent avoir l’accès au canal modifié pour permettre au groupe de sécurité intégré Lecteurs du journal des événements de lire à partir de celui-ci.

La méthode recommandée et la plus efficace pour effectuer cette personnalisation consiste à configurer l’objet de stratégie de groupe de base pour exécuter une tâche planifiée afin de configurer les canaux d’événements (activer, définir la taille maximale et ajuster l’accès au canal). Cette configuration prendra effet au prochain cycle d’actualisation de l’objet de stratégie de groupe et aura un impact minimal sur l’appareil client.

L’extrait de code d’objet de stratégie de groupe suivant effectue les tâches suivantes :

  • Active le canal d’événements Microsoft-Windows-Capi2/Operational .
  • Définit la taille de fichier maximale pour Microsoft-Windows-Capi2/Operational sur 100 Mo.
  • Définit la taille de fichier maximale pour Microsoft-Windows-AppLocker/EXE et DLL sur 100 Mo.
  • Définit l’accès au canal maximal pour Microsoft-Windows-Capi2/Operational afin d’inclure le groupe de sécurité intégré Lecteurs du journal des événements.
  • Active le canal d’événements Microsoft-Windows-DriverFrameworks-UserMode/Operational .
  • Définit la taille de fichier maximale pour Microsoft-Windows-DriverFrameworks-UserMode/Operational sur 50 Mo.

configurer les canaux d’événements.

Le tableau suivant contient également les six actions à configurer dans l’objet de stratégie de groupe :

Programme/Script Arguments
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e :true
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /ms :102432768
%SystemRoot%\System32\wevtutil.exe sl « Microsoft-Windows-AppLocker/EXE and DLL » /ms :102432768
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /ca :"O :BAG :SYD :(A ;; 0x7 ;;; BA)(A ;; 0x2 ;; AU)(A ;; 0x1 ;;; S-1-5-32-573) »
%SystemRoot%\System32\wevtutil.exe sl « Microsoft-Windows-DriverFrameworks-UserMode/Operational » /e :true
%SystemRoot%\System32\wevtutil.exe sl « Microsoft-Windows-DriverFrameworks-UserMode/Operational » /ms :52432896

Annexe D - Objet de stratégie de groupe minimal pour la configuration du client WEF

Voici les étapes minimales à suivre pour que WEF fonctionne :

  1. Configurez le ou les URI du collecteur.
  2. Démarrez le service WinRM.
  3. Ajoutez le compte service réseau au groupe de sécurité Lecteurs du journal des événements intégré. Cet ajout permet la lecture à partir du canal d’événements sécurisé, tel que le canal d’événements de sécurité.

configurer le client wef.

Annexe E - Requête d’événement d’abonnement de base annotée

<QueryList>
  <Query Id="0" Path="System">
    <!-- Anti-malware *old* events, but only detect events (cuts down noise) -->
    <Select Path="System">*[System[Provider[@Name='Microsoft Antimalware'] and (EventID &gt;= 1116 and EventID &lt;= 1119)]]</Select>
  </Query>
  <!-- AppLocker EXE events or Script events -->
  <Query Id="1" Path="Microsoft-Windows-AppLocker/EXE and DLL">
    <Select Path="Microsoft-Windows-AppLocker/EXE and DLL">*[UserData[RuleAndFileData[PolicyName="EXE"]]]</Select>
    <Select Path="Microsoft-Windows-AppLocker/MSI and Script">*</Select>
  </Query>
  <Query Id="2" Path="Security">
    <!-- Wireless Lan 802.1x authentication events with Peer MAC address -->
    <Select Path="Security">*[System[(EventID=5632)]]</Select>
  </Query>
  <Query Id="3" Path="Microsoft-Windows-TaskScheduler/Operational">
    <!-- Task scheduler Task Registered (106),  Task Registration Deleted (141), Task Deleted (142) -->
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
  </Query>
  <Query Id="4" Path="System">
    <!-- System startup (12 - includes OS/SP/Version) and shutdown -->
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=12 or EventID=13)]]</Select>
  </Query>
  <Query Id="5" Path="System">
    <!-- Service Install (7000), service start failure (7045), new service (4697) -->
    <Select Path="System">*[System[Provider[@Name='Service Control Manager'] and (EventID = 7000 or EventID=7045)]]</Select>
<Select Path="Security">*[System[(EventID=4697)]]</Select>
  </Query>
  <Query Id="6" Path="Security">
    <!-- TS Session reconnect (4778), TS Session disconnect (4779) -->
    <Select Path="Security">*[System[(EventID=4778 or EventID=4779)]]</Select>
  </Query>
  <Query Id="7" Path="Security">
    <!-- Network share object access without IPC$ and Netlogon shares -->
    <Select Path="Security">*[System[(EventID=5140)]] and (*[EventData[Data[@Name="ShareName"]!="\\*\IPC$"]]) and (*[EventData[Data[@Name="ShareName"]!="\\*\NetLogon"]])</Select>
  </Query>
  <Query Id="8" Path="Security">
    <!-- System Time Change (4616)  -->
    <Select Path="Security">*[System[(EventID=4616)]]</Select>
  </Query>
  <Query Id="9" Path="System">
    <!-- Shutdown initiate requests, with user, process and reason (if supplied) -->
    <Select Path="System">*[System[Provider[@Name='USER32'] and (EventID=1074)]]</Select>
  </Query>
  <!-- AppLocker packaged (Modern UI) app execution -->
  <Query Id="10" Path="Microsoft-Windows-AppLocker/Packaged app-Execution">
    <Select Path="Microsoft-Windows-AppLocker/Packaged app-Execution">*</Select>
  </Query>
  <!-- AppLocker packaged (Modern UI) app installation -->
  <Query Id="11" Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">
    <Select Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">*</Select>
  </Query>
  <Query Id="12" Path="Application">
    <!-- EMET events -->
    <Select Path="Application">*[System[Provider[@Name='EMET']]]</Select>
  </Query>
  <Query Id="13" Path="System">
    <!-- Event log service events -->
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
  </Query>
  <Query Id="14" Path="Security">
    <!-- Local logons without network or service events -->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]!="3"]]) and (*[EventData[Data[@Name="LogonType"]!="5"]])</Select>
  </Query>
  <Query Id="15" Path="Application">
    <!-- WER events for application crashes only -->
    <Select Path="Application">*[System[Provider[@Name='Windows Error Reporting']]] and (*[EventData[Data[3] ="APPCRASH"]])</Select>
  </Query>
  <Query Id="16" Path="Security">
    <!-- Security Log cleared events (1102), EventLog Service shutdown (1100)-->
    <Select Path="Security">*[System[(EventID=1102 or EventID = 1100)]]</Select>
  </Query>
  <Query Id="17" Path="System">
    <!-- Other Log cleared events (104)-->
    <Select Path="System">*[System[(EventID=104)]]</Select>
  </Query>
  <Query Id="18" Path="Security">
    <!--  user initiated logoff -->
    <Select Path="Security">*[System[(EventID=4647)]]</Select>
  </Query>
  <Query Id="19" Path="Security">
    <!-- user logoff for all non-network logon sessions-->
    <Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] != "3"]])</Select>
  </Query>
  <Query Id="20" Path="Security">
    <!-- Service logon events if the user account isn't LocalSystem, NetworkService, LocalService -->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="5"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]])</Select>
  </Query>
  <Query Id="21" Path="Security">
    <!-- Network Share create (5142), Network Share Delete (5144)  -->
    <Select Path="Security">*[System[(EventID=5142 or EventID=5144)]]</Select>
  </Query>
  <Query Id="22" Path="Security">
    <!-- Process Create (4688) -->
    <Select Path="Security">*[System[EventID=4688]]</Select>
  </Query>
  <Query Id="23" Path="Security">
    <!-- Event log service events specific to Security channel -->
    <Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
  </Query>
  <Query Id="26" Path="Security">
    <!-- Special Privileges (Admin-equivalent Access) assigned to new logon, excluding LocalSystem-->
    <Select Path="Security">*[System[(EventID=4672)]]</Select>
    <Suppress Path="Security">*[EventData[Data[1]="S-1-5-18"]]</Suppress>
  </Query>
  <Query Id="27" Path="Security">
    <!-- New user added to local security group-->
    <Select Path="Security">*[System[(EventID=4732)]]</Select>
  </Query>
  <Query Id="28" Path="Security">
    <!-- New user added to global security group-->
    <Select Path="Security">*[System[(EventID=4728)]]</Select>
  </Query>
  <Query Id="29" Path="Security">
    <!-- New user added to universal security group-->
    <Select Path="Security">*[System[(EventID=4756)]]</Select>
  </Query>
  <Query Id="30" Path="Security">
    <!-- User removed from local Administrators group-->
    <Select Path="Security">*[System[(EventID=4733)]] and (*[EventData[Data[@Name="TargetUserName"]="Administrators"]])</Select>
  </Query>
  <Query Id="31" Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">
    <!-- Log attempted TS connect to remote server -->
    <Select Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">*[System[(EventID=1024)]]</Select>
  </Query>
  <Query Id="32" Path="Security">
    <!-- Certificate Services received certificate request (4886), Approved and Certificate issued (4887), Denied request (4888) -->
    <Select Path="Security">*[System[(EventID=4886 or EventID=4887 or EventID=4888)]]</Select>
  </Query>
  <Query Id="34" Path="Security">
    <!-- New User Account Created(4720), User Account Enabled (4722), User Account Disabled (4725), User Account Deleted (4726) -->
    <Select Path="Security">*[System[(EventID=4720 or EventID=4722 or EventID=4725 or EventID=4726)]]</Select>
  </Query>
  <Query Id="35" Path="Microsoft-Windows-SmartCard-Audit/Authentication">
    <!-- Gets all Smart-card Card-Holder Verification (CHV) events (success and failure) performed on the host. -->
    <Select Path="Microsoft-Windows-SmartCard-Audit/Authentication">*</Select>
  </Query>
  <Query Id="36" Path="Microsoft-Windows-SMBClient/Operational">
    <!-- get all UNC/mapped drive successful connection -->
    <Select Path="Microsoft-Windows-SMBClient/Operational">*[System[(EventID=30622 or EventID=30624)]]</Select>
  </Query>
  <Query Id="37" Path="Application">
    <!-- User logging on with Temporary profile (1511), cannot create profile, using temporary profile (1518)-->
    <Select Path="Application">*[System[Provider[@Name='Microsoft-Windows-User Profiles Service'] and (EventID=1511 or EventID=1518)]]</Select>
  </Query>
  <Query Id="39" Path="Microsoft-Windows-Sysmon/Operational">
    <!-- Modern SysMon event provider-->
    <Select Path="Microsoft-Windows-Sysmon/Operational">*</Select>
  </Query>
  <Query Id="40" Path="Application">
    <!-- Application crash/hang events, similar to WER/1001. These include full path to faulting EXE/Module.-->
    <Select Path="Application">*[System[Provider[@Name='Application Error'] and (EventID=1000)]]</Select>
    <Select Path="Application">*[System[Provider[@Name='Application Hang'] and (EventID=1002)]]</Select>
  </Query>
  <Query Id="41" Path="Microsoft-Windows-Windows Defender/Operational">
    <!-- Modern Windows Defender event provider Detection events (1006-1009) and (1116-1119) -->
    <Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID &gt;= 1006 and EventID &lt;= 1009) )]]</Select>
    <Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID &gt;= 1116 and EventID &lt;= 1119) )]]</Select>
  </Query>
  <Query Id="42" Path="Security">
    <!-- An account Failed to Log on events -->
    <Select Path="Security">*[System[(EventID=4625)]] and (*[EventData[Data[@Name="LogonType"]!="2"]]) </Select>
  </Query>

</QueryList>

Annexe F - Requête d’événement d’abonnement suspect annoté

<QueryList>
  <Query Id="0" Path="Security">
    <!-- Network logon events-->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="3"]])</Select>
  </Query>
  <Query Id="1" Path="System">
    <!-- RADIUS authentication events User Assigned IP address (20274), User successfully authenticated (20250), User Disconnected (20275)  -->
    <Select Path="System">*[System[Provider[@Name='RemoteAccess'] and (EventID=20274 or EventID=20250 or EventID=20275)]]</Select>
  </Query>
  <Query Id="2" Path="Microsoft-Windows-CAPI2/Operational">
    <!-- CAPI events Build Chain (11), Private Key accessed (70), X509 object (90)-->
    <Select Path="Microsoft-Windows-CAPI2/Operational">*[System[(EventID=11 or EventID=70 or EventID=90)]]</Select>
  </Query>
  <Query Id="3" Path="Security">
    <!-- CA stop/Start events CA Service Stopped (4880), CA Service Started (4881), CA DB row(s) deleted (4896), CA Template loaded (4898) -->
    <Select Path="Security">*[System[(EventID=4880 or EventID = 4881 or EventID = 4896 or EventID = 4898)]]</Select>
  </Query>
  <Query Id="4" Path="Microsoft-Windows-LSA/Operational">
    <!-- Groups assigned to new login (except for well known, built-in accounts)-->
    <Select Path="Microsoft-Windows-LSA/Operational">*[System[(EventID=300)]] and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]])</Select>
  </Query>
  <Query Id="5" Path="Security">
    <!-- Logoff events - for Network Logon events-->
    <Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] = "3"]])</Select>
  </Query>
  <Query Id="6" Path="Security">
    <!-- RRAS events - only generated on Microsoft IAS server -->
    <Select Path="Security">*[System[( (EventID &gt;= 6272 and EventID &lt;= 6280) )]]</Select>
  </Query>
  <Query Id="7" Path="Microsoft-Windows-DNS-Client/Operational">
    <!-- DNS Client events Query Completed (3008) -->
    <Select Path="Microsoft-Windows-DNS-Client/Operational">*[System[(EventID=3008)]]</Select>
<!-- suppresses local machine name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryOptions"]="140737488355328"]]</Suppress>
<!-- suppresses empty name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryResults"]=""]]</Suppress>
  </Query>
  <Query Id="8" Path="Security">
    <!-- Process Terminate (4689) -->
    <Select Path="Security">*[System[(EventID = 4689)]]</Select>
  </Query>
  <Query Id="9" Path="Security">
    <!-- Local credential authentication events (4776), Logon with explicit credentials (4648) -->
    <Select Path="Security">*[System[(EventID=4776 or EventID=4648)]]</Select>
  </Query>
  <Query Id="10" Path="Security">
    <!-- Registry modified events for Operations: New Registry Value created (%%1904), Existing Registry Value modified (%%1905), Registry Value Deleted (%%1906) -->
    <Select Path="Security">*[System[(EventID=4657)]] and ((*[EventData[Data[@Name="OperationType"] = "%%1904"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1905"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1906"]]))</Select>
  </Query>
  <Query Id="11" Path="Security">
    <!-- Request made to authenticate to Wireless network (including Peer MAC (5632) -->
    <Select Path="Security">*[System[(EventID=5632)]]</Select>
  </Query>
  <Query Id="12" Path="Microsoft-Windows-PowerShell/Operational">
    <!-- PowerShell execute block activity (4103), Remote Command(4104), Start Command(4105), Stop Command(4106) -->
    <Select Path="Microsoft-Windows-PowerShell/Operational">*[System[(EventID=4103 or EventID=4104 or EventID=4105 or EventID=4106)]]</Select>
  </Query>
  <Query Id="13" Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">
    <!-- Detect User-Mode drivers loaded - for potential BadUSB detection. -->
    <Select Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">*[System[(EventID=2004)]]</Select>
  </Query>
<Query Id="14" Path="Windows PowerShell">
    <!-- Legacy PowerShell pipeline execution details (800) -->
    <Select Path="Windows PowerShell">*[System[(EventID=800)]]</Select>
  </Query>
</QueryList>

Annexe G - Ressources en ligne

Vous pouvez obtenir plus d’informations avec les liens suivants :