T1542.002

Component Firmware

Adversaries may modify component firmware to persist on systems. Some adversaries employ sophisticated means to compromise computer components and install malicious firmware that will execute adversary code outside of the operating system and main system firmware or BIOS. This technique may be similar to System Firmware (T1542.001) but conducted upon other system components such as hard drives, network interface cards, and other peripheral devices that may not have the same level of integrity checking. Malicious component firmware provides persistent access that survives disk reimaging, OS reinstallation, and most host-based defenses. Notable examples include the Equation Group's capability to overwrite hard drive firmware across multiple manufacturers (Seagate, Western Digital, Toshiba) and Cyclops Blink's persistent firmware patching of WatchGuard network devices.

Microsoft Sentinel / Defender
kusto
let FirmwareModificationTools = dynamic([
    "hdparm", "flashrom", "nvflash", "fwupdmgr", "fwupd-tool",
    "afuwin", "afudos", "amiflash", "awdflash", "mflash",
    "ethtool", "sg_write_buffer", "sg3_utils", "nvme", "sdparm",
    "atapwd", "nls_933w"
]);
let WriteOperationArgs = dynamic([
    "--write-sector", "--yes-i-know-what-i-am-doing",
    "security-set-pass", "security-unlock", "security-erase",
    "security-disable", "--flash", "writedmabuf",
    "--fwdl", "--fw-download", "-d firmware", "download_fw"
]);
let RawDevicePaths = dynamic([
    "\\\\.\\PhysicalDrive", "\\\\.\\SCSI", "\\Device\\Harddisk",
    "/dev/sda", "/dev/sdb", "/dev/sdc", "/dev/nvme", "/dev/hda", "/dev/hdb"
]);
DeviceProcessEvents
| where Timestamp > ago(24h)
| where FileName has_any (FirmwareModificationTools)
    or (ProcessCommandLine has_any (FirmwareModificationTools)
        and ProcessCommandLine has_any (WriteOperationArgs))
    or ProcessCommandLine has_any (RawDevicePaths)
| extend IsFirmwareTool = FileName has_any (FirmwareModificationTools)
| extend IsWriteOperation = ProcessCommandLine has_any (WriteOperationArgs)
| extend IsRawDeviceAccess = ProcessCommandLine has_any (RawDevicePaths)
| extend SuspicionScore = toint(IsFirmwareTool) + toint(IsWriteOperation) + toint(IsRawDeviceAccess)
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
         InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256,
         IsFirmwareTool, IsWriteOperation, IsRawDeviceAccess, SuspicionScore
| sort by SuspicionScore desc, Timestamp desc
critical severity medium confidence

Data Sources

Process: Process Creation Command: Command Execution Microsoft Defender for Endpoint

Required Tables

DeviceProcessEvents

False Positives

  • Legitimate firmware updates from hardware vendors pushed via enterprise management tools such as Dell Command Update, HP Client Management Script Library, or Lenovo System Update Service
  • IT administrators using hdparm or smartctl for read-only disk health diagnostics (hdparm -I, smartctl -a) — distinguish read versus write operations via command arguments
  • Network administrators using ethtool for NIC diagnostics and authorized firmware updates on managed switches or HBAs during approved maintenance windows
  • Automated OEM diagnostic agents that enumerate raw device paths for hardware inventory, health checks, or pre-boot environment reporting

Unlock Pro Content

Get the full detection package for T1542.002 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections