11 Individuazione tramite query WMI
Panoramica
WMI è una potente interfaccia di Windows che può essere utilizzata per recuperare varie informazioni sui componenti di Windows, i servizi, lo stato e il software installato.
Può essere utilizzata per l'individuazione dei dischi fisici e la raccolta dei relativi dati sulle prestazioni, l'individuazione delle interfacce di rete, l'individuazione dei guest Hyper-V, il monitoraggio dei servizi Windows e molte altre attività nel sistema operativo Windows.
Questo tipo di discovery di basso livello viene eseguito utilizzando query WQL i cui risultati vengono trasformati automaticamente in un oggetto JSON adatto alla discovery di basso livello.
Chiave item
L'item da utilizzare nella regola di discovery è
wmi.getall[<namespace>,<query>]
Questo item trasforma il risultato della query in un array JSON. Per esempio:
select * from Win32_DiskDrive where Name like '%PHYSICALDRIVE%'
può restituire qualcosa di simile:
[
{
"DeviceID" : "\\.\PHYSICALDRIVE0",
"BytesPerSector" : 512,
"Capabilities" : [
3,
4
],
"CapabilityDescriptions" : [
"Random Access",
"Supports Writing"
],
"Caption" : "VBOX HARDDISK ATA Device",
"ConfigManagerErrorCode" : 0,
"ConfigManagerUserConfig" : "False",
"CreationClassName" : "Win32_DiskDrive",
"Description" : "Disk drive",
"FirmwareRevision" : "1.0",
"Index" : 0,
"InterfaceType" : "IDE"
},
{
"DeviceID" : "\\.\PHYSICALDRIVE1",
"BytesPerSector" : 512,
"Capabilities" : [
3,
4
],
"CapabilityDescriptions" : [
"Random Access",
"Supports Writing"
],
"Caption" : "VBOX HARDDISK ATA Device",
"ConfigManagerErrorCode" : 0,
"ConfigManagerUserConfig" : "False",
"CreationClassName" : "Win32_DiskDrive",
"Description" : "Disk drive",
"FirmwareRevision" : "1.0",
"Index" : 1,
"InterfaceType" : "IDE"
}
]
Macro di low-level discovery
Anche se nel JSON restituito non vengono create macro di low-level discovery, queste macro possono essere definite dall'utente come passaggio aggiuntivo, utilizzando la funzionalità macro LLD personalizzata con JSONPath che punta ai valori individuati nel JSON restituito.
Le macro possono quindi essere utilizzate per creare prototipi di item, trigger, ecc.