Glossaire
WQL (WMI Query Language)
Le langage de requête de type SQL de WMI, pour les données et les événements ; les filtres l'utilisent pour décrire l'événement déclencheur.
WQL est le langage de requête de WMI, un sous-ensemble de SQL en lecture seule. Il se présente sous deux formes principales. Les requêtes de données lisent des instances, par exemple SELECT * FROM Win32_Process. Les requêtes d'événements décrivent des changements : c'est ce qu'un filtre d'événements stocke dans sa propriété Query, avec QueryLanguage défini sur WQL.
Les requêtes d'événements utilisent deux types d'événements. Les événements intrinsèques (__InstanceCreationEvent, __InstanceModificationEvent, __InstanceDeletionEvent) signalent les modifications des instances de n'importe quelle classe ; TargetInstance désigne l'instance concernée, et ISA la restreint à une classe. Lorsqu'aucun fournisseur ne signale directement ces modifications, WITHIN n fait interroger WMI toutes les n secondes. Les événements extrinsèques, tels que Win32_ProcessStartTrace, sont émis par les fournisseurs eux-mêmes. Les événements de minuterie (__TimerEvent) se déclenchent sur un minuteur WMI.
Pourquoi c'est important en investigation
Lire la requête vous indique quand un abonnement se déclenche, ce qui est nécessaire pour y aligner les preuves d'exécution. Une condition sur le temps de fonctionnement se déclenche peu après chaque démarrage, une requête sur les sessions à chaque ouverture de session, une requête sur les processus lorsqu'un programme donné démarre. Les requêtes révèlent aussi l'intention : un filtre qui attend le démarrage d'un outil de sécurité, ou l'insertion d'un lecteur amovible, en dit long sur son auteur.
Exemple
Un filtre qui se déclenche à l'apparition d'une nouvelle session d'ouverture, interrogé toutes les 15 secondes :
SELECT * FROM __InstanceCreationEvent WITHIN 15
WHERE TargetInstance ISA 'Win32_LogonSession'
Une alternative extrinsèque qui se déclenche au démarrage d'un processus donné, sans interrogation périodique :
SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName = 'notepad.exe'
Si vous trouvez l'une ou l'autre dans un dépôt, corrélez-la avec les ouvertures de session ou les démarrages de processus correspondants, et vérifiez à quel consommateur d'événements le filtre est lié.
Termes associés
WMI Parser affiche la requête WQL de chaque filtre à côté du consommateur qu'il déclenche. Pour une explication du déclencheur classique sur le temps de fonctionnement, lisez La persistance par abonnement aux événements WMI expliquée.