Skip to content

SCM Event Log Consumer et BVTConsumer : légitimes ou non ?

Les deux abonnements WMI livrés avec Windows, SCM Event Log et BVTFilter/BVTConsumer : contenu attendu, innocuité et détournement de leurs noms.

Publié le 4 min de lecture

En bref. Deux abonnements aux événements WMI appartiennent à Windows. SCM Event Log (SCM Event Log Filter → NTEventLogEventConsumer SCM Event Log Consumer) transmet les événements du Service Control Manager au journal d'événements. BVT (BVTFilter → CommandLineEventConsumer BVTConsumer, cscript KernCap.vbs) est un reliquat de vérification de build sur les images de l'époque Windows 7. Tous deux sont inoffensifs lorsque leur contenu correspond. Vérifiez le contenu, pas seulement le nom.

Pourquoi c'est important

Tout examen de root\subscription fait d'abord apparaître ces deux abonnements, et un analyste peu familier de WMI peut les signaler comme persistance. L'erreur inverse est plus grave : un attaquant qui réutilise un nom de confiance, ou modifie le consommateur par défaut, échappe à une liste d'autorisation fondée uniquement sur les noms. PyWMIPersistenceFinder annotait déjà ces deux liaisons comme « courantes, possiblement légitimes » ; WMI Parser va plus loin et compare chaque propriété avec ce que Windows installe.

SCM Event Log

ObjetContenu attendu
__EventFilter SCM Event Log FilterQuery = select * from MSFT_SCMEventLogEvent, QueryLanguage = WQL, EventNamespace = root\cimv2
NTEventLogEventConsumer SCM Event Log ConsumerSourceName = Service Control Manager, NameOfUserSIDProperty = sid
__FilterToConsumerBinding__EventFilter.Name="SCM Event Log Filter" → NTEventLogEventConsumer.Name="SCM Event Log Consumer"

Il existe depuis Windows Vista. Son CreatorSID est généralement S-1-5-32-544 (le groupe Administrateurs), puisqu'il est créé lors de l'installation. Le consommateur écrit une entrée dans le journal d'événements ; il n'exécute aucun code.

BVTFilter et BVTConsumer

ObjetContenu attendu
__EventFilter BVTFilterSELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_Processor" AND TargetInstance.LoadPercentage > 99
CommandLineEventConsumer BVTConsumerCommandLineTemplate = cscript KernCap.vbs, WorkingDirectory = C:\\tools\\kernrate (les barres obliques inverses doublées sont stockées telles quelles)
__FilterToConsumerBinding__EventFilter.Name="BVTFilter" → CommandLineEventConsumer.Name="BVTConsumer"

« BVT » signifie build verification test (test de vérification de build). L'abonnement exécuterait un script de profilage du noyau lorsqu'un processeur reste au-dessus de 99 % de charge ; C:\tools\kernrate\KernCap.vbs n'existe pas sur un système normal, donc rien ne se produit. Il apparaît sur les images de l'époque Windows 7 / Server 2008 R2 et sur les machines mises à niveau depuis celles-ci, et son CreatorSID est généralement un administrateur local (RID 500).

Ce qui doit éveiller l'attention

  • Un nom par défaut avec un contenu différent : un BVTConsumer dont la commande n'est pas cscript KernCap.vbs, un répertoire de travail situé ailleurs, un SCM Event Log Consumer qui est un CommandLineEventConsumer, ou un filtre avec une autre requête. WMI Parser le signale comme Nom par défaut, autre contenu.
  • Un KernCap.vbs qui existe. Si C:\tools\kernrate\KernCap.vbs est présent sur le disque, l'abonnement BVT dormant devient actif : lisez le script.
  • Une troisième liaison vers un filtre ou un consommateur par défaut. Un attaquant peut lier son propre consommateur à un filtre existant. Comptez les liaisons, pas seulement les objets.
  • Des objets par défaut dans l'espace libéré avec un contenu différent. Une version antérieure récupérée d'un objet par défaut signifie qu'il a été modifié à un moment donné.

Le reste n'est pas automatiquement malveillant

Les agents d'administration, les produits de sécurité des postes de travail et les outils des constructeurs (supervision matérielle, gestion de configuration) enregistrent eux aussi des abonnements. Ils ne sont « pas des objets Windows par défaut », ce qui ne veut pas dire « malveillants ». Identifiez le produit à partir des noms, des lignes de commande et des chemins, et comparez avec une machine saine de la même build.

FAQ

SCM Event Log Consumer est-il malveillant ?

Non, lorsqu'il correspond à la configuration par défaut de Windows : un NTEventLogEventConsumer dont le SourceName est Service Control Manager, lié au SCM Event Log Filter qui interroge MSFT_SCMEventLogEvent dans root\cimv2.

Que sont BVTConsumer et kernCap.vbs ?

BVTFilter et BVTConsumer sont un reliquat de vérification de build présent sur les images de l'époque Windows 7 et Server 2008 R2. Le consommateur exécute cscript KernCap.vbs depuis C:\tools\kernrate lorsque la charge CPU reste au-dessus de 99 % ; le script n'existe normalement pas, donc rien ne s'exécute.

Faut-il supprimer les abonnements WMI par défaut ?

Inutile lorsqu'ils correspondent à la configuration par défaut. Ce qui compte, c'est un nom par défaut associé à un contenu différent : une requête modifiée, une autre classe de consommateur ou une ligne de commande différente.

Articles liés

Articles liés

Checklist pas à pas face à une persistance WMI : requêtes en direct, dépôt, événements 5860 et 5861, Sysmon 19-21, traces d'exécution et nettoyage sûr.
Pourquoi filtres, consommateurs et liaisons WMI supprimés subsistent dans OBJECTS.DATA : parcours d'index, carving, python-cim et PyWMIPersistenceFinder.
Persistance WMI : fonctionnement de __EventFilter, des consommateurs et de __FilterToConsumerBinding, où ils sont stockés et comment les détecter.