let img_ =
VMwareESXi
| where SyslogMessage has ('Matched discovered VM')
| extend DstHostname = extract(@'vim.VirtualMachine\S+,(.*?)\]', 1, SyslogMessage)
| extend kImageName = extract(@'ds:///vmfs/volumes/(.*)/(.*?),', 2, SyslogMessage)
| summarize img_lst = makeset(kImageName) by DstHostname;
VMwareESXi
| where SyslogMessage has ('Matched discovered VM')
| extend DstHostname = extract(@'vim.VirtualMachine\S+,(.*?)\]', 1, SyslogMessage)
| extend ImageName = extract(@'ds:///vmfs/volumes/(.*)/(.*?),', 2, SyslogMessage)
| join (img_) on DstHostname
| where img_lst !has ImageName
| extend HostCustomEntity = DstHostname
entityMappings:
- entityType: Host
fieldMappings:
- identifier: FullName
columnName: HostCustomEntity
tactics:
- Impact
requiredDataConnectors:
- datatypes:
- Syslog
connectorId: SyslogAma
id: 395c5560-ddc2-45b2-aafe-2e3f64528d3d
severity: Medium
status: Available
query: |
let img_ =
VMwareESXi
| where SyslogMessage has ('Matched discovered VM')
| extend DstHostname = extract(@'vim.VirtualMachine\S+,(.*?)\]', 1, SyslogMessage)
| extend kImageName = extract(@'ds:///vmfs/volumes/(.*)/(.*?),', 2, SyslogMessage)
| summarize img_lst = makeset(kImageName) by DstHostname;
VMwareESXi
| where SyslogMessage has ('Matched discovered VM')
| extend DstHostname = extract(@'vim.VirtualMachine\S+,(.*?)\]', 1, SyslogMessage)
| extend ImageName = extract(@'ds:///vmfs/volumes/(.*)/(.*?),', 2, SyslogMessage)
| join (img_) on DstHostname
| where img_lst !has ImageName
| extend HostCustomEntity = DstHostname
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/VMWareESXi/Analytic Rules/ESXiUnexpectedDiskImage.yaml
kind: Scheduled
queryPeriod: 14d
version: 1.0.2
name: VMware ESXi - Unexpected disk image
queryFrequency: 1h
triggerThreshold: 0
relevantTechniques:
- T1496
description: |
'Detects unexpected disk image for VM.'
triggerOperator: gt