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.
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
| Objet | Contenu attendu |
|---|---|
__EventFilter SCM Event Log Filter | Query = select * from MSFT_SCMEventLogEvent, QueryLanguage = WQL, EventNamespace = root\cimv2 |
NTEventLogEventConsumer SCM Event Log Consumer | SourceName = 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
| Objet | Contenu attendu |
|---|---|
__EventFilter BVTFilter | SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_Processor" AND TargetInstance.LoadPercentage > 99 |
CommandLineEventConsumer BVTConsumer | CommandLineTemplate = 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
BVTConsumerdont la commande n'est pascscript KernCap.vbs, un répertoire de travail situé ailleurs, unSCM Event Log Consumerqui est unCommandLineEventConsumer, ou un filtre avec une autre requête. WMI Parser le signale comme Nom par défaut, autre contenu. - Un
KernCap.vbsqui existe. SiC:\tools\kernrate\KernCap.vbsest 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.