Detection rules › Splunk

Windows BootLoader Inventory

Status
experimental
Group by
host
Author
Michael Haag, Splunk
Source
github.com/splunk/security_content

The following analytic identifies the bootloader paths on Windows endpoints. It leverages a PowerShell Scripted input to capture this data, which is then processed and aggregated using Splunk. Monitoring bootloader paths is significant for a SOC as it helps detect unauthorized modifications that could indicate bootkits or other persistent threats. If confirmed malicious, such activity could allow attackers to maintain persistence, bypass security controls, and potentially control the boot process, leading to full system compromise.

MITRE ATT&CK coverage

Rule body splunk

name: Windows BootLoader Inventory
id: 4f7e3913-4db3-4ccd-afe4-31198982305d
version: 8
creation_date: '2023-04-14'
modification_date: '2026-05-13'
author: Michael Haag, Splunk
status: experimental
type: Hunting
description: The following analytic identifies the bootloader paths on Windows endpoints. It leverages a PowerShell Scripted input to capture this data, which is then processed and aggregated using Splunk. Monitoring bootloader paths is significant for a SOC as it helps detect unauthorized modifications that could indicate bootkits or other persistent threats. If confirmed malicious, such activity could allow attackers to maintain persistence, bypass security controls, and potentially control the boot process, leading to full system compromise.
data_source: []
search: |-
    `bootloader_inventory`
      | stats count min(_time) as firstTime max(_time) as lastTime values(_raw)
        BY host
      | `security_content_ctime(firstTime)`
      | `security_content_ctime(lastTime)`
      | `windows_bootloader_inventory_filter`
how_to_implement: To implement this analytic, a new stanza will need to be added to a inputs.conf and deployed to all or some Windows endpoints. https://gist.github.com/MHaggis/26518cd2844b0e03de6126660bb45707 provides the stanza. If modifying the sourcetype, be sure to update the Macro for this analytic. Recommend running it daily, or weekly, depending on threat model.
known_false_positives: No false positives here, only bootloaders. Filter as needed or create a lookup as a baseline.
references:
    - https://gist.github.com/MHaggis/26518cd2844b0e03de6126660bb45707
    - https://www.microsoft.com/en-us/security/blog/2023/04/11/guidance-for-investigating-attacks-using-cve-2022-21894-the-blacklotus-campaign/
analytic_story:
    - BlackLotus Campaign
    - Windows BootKits
asset_type: Endpoint
mitre_attack_id:
    - T1542.001
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint

Stages and Predicates

Stage 1: search

`bootloader_inventory`

Stage 2: stats

| stats count min(_time) as firstTime max(_time) as lastTime values(_raw)
    BY host

Stage 3: search

| `security_content_ctime(firstTime)`

Stage 4: search

| `security_content_ctime(lastTime)`

Stage 5: search

| `windows_bootloader_inventory_filter`

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
sourcetypeeq
  • PwSh:bootloader