Detection of Hooking

Technique Detected:  Hooking | T0874

ID: DET0722
Domains: ICS
Analytics: AN1855, AN2110, AN2243, AN2286
Version: 1.0
Created: 21 October 2025
Last Modified: 13 October 2026

Analytics

AN1855

Real-time monitoring identifies an unsigned or unexpected process calling Windows hooking Application Programming Interfaces (APIs) (SetWindowsHookEx, SetWinEventHook) targeting an Industrial Control System (ICS) engineering or Human-Machine Interface (HMI) process, immediately followed by that target process loading a Dynamic Link Library (DLL) not present in the vendor's signed module baseline. Confirmed in the wild: Stuxnet replaced Siemens' s7otbxdx.dll on engineering workstations to intercept and falsify Programmable Logic Controller (PLC) read/write calls between WinCC/STEP7 and the controller. OT operational-fidelity gate: Alert only when execution violates an approved signer/hash/path/parent/process or tool allowlist, or originates from an unauthorized user/tool, and is tied to an OT asset or follow-on OT-relevant action. Suppress vendor-signed software, approved engineering utilities, diagnostics, patching, backup, and documented maintenance.

Log Sources
Data Component Name Channel
Process Metadata (DC0034) edr:ProcessIntegrity Process integrity/hash mismatch detected on Industrial Control Systems (ICS) communication process post-hook-install event
Module Load (DC0016) WinEventLog:Sysmon EventCode=7 of Industrial Control Systems (ICS) vendor communication Dynamic Link Library (DLL) with hash not in signed baseline
Process Access (DC0035) WinEventLog:Sysmon EventCode=10 where SourceImage outside the approved ICS vendor/process baseline accesses TargetImage associated with an ICS application or service
Mutable Elements
Field Description
ApprovedICSVendorProcessList Allowlist of processes permitted to install window/event hooks on ICS engineering and HMI hosts.
ICSServiceBinaryList List of binary paths for ICS gateway, OPC, and historian services on Linux assets that should never be launched with LD_PRELOAD set.
VendorPackageManifest Package manager manifest cross-reference confirming a shared library belongs to an installed, signed package.
VendorSignedDLLHashBaseline Cryptographic hash inventory of all vendor-signed ICS communication DLLs, refreshed on every legitimate vendor patch cycle.

AN2110

Real-time monitoring identifies a process setting LD_PRELOAD before launching an Industrial Control System (ICS) service binary, or writing to /etc/ld.so.preload, where the injected library path is not part of the vendor's package manifest. OT operational-fidelity gate: Alert only when execution violates an approved signer/hash/path/parent/process or tool allowlist, or originates from an unauthorized user/tool, and is tied to an OT asset or follow-on OT-relevant action. Suppress vendor-signed software, approved engineering utilities, diagnostics, patching, backup, and documented maintenance.

Log Sources
Data Component Name Channel
File Modification (DC0061) auditd:SYSCALL+PATH Linux Audit SYSCALL+PATH records: write to /etc/ld.so.preload by User Identifier (UID) outside authorized admin list
Process Metadata (DC0034) auditd:SYSCALL Linux Audit SYSCALL/EXECVE/SOCKADDR records (configured audit rule): execve with env containing LD_PRELOAD where exe matches Industrial Control Systems (ICS) service binary list and preload library not in vendor package manifest
Mutable Elements
Field Description
ApprovedICSVendorProcessList Allowlist of processes permitted to install window/event hooks on ICS engineering and HMI hosts.
ICSServiceBinaryList List of binary paths for ICS gateway, OPC, and historian services on Linux assets that should never be launched with LD_PRELOAD set.
VendorPackageManifest Package manager manifest cross-reference confirming a shared library belongs to an installed, signed package.
VendorSignedDLLHashBaseline Cryptographic hash inventory of all vendor-signed ICS communication DLLs, refreshed on every legitimate vendor patch cycle.

AN2243

Detect embedded hooking by correlating an independently acquired firmware/module integrity measurement that differs from the approved vendor/baseline image with protocol-response behavior that also departs from the device's known deterministic behavior. A protocol-response anomaly by itself does not prove a hook because firmware versions, device state, communications faults, and vendor-specific behavior can produce response differences. Treat network anomalies as corroboration and require independent integrity evidence or vendor/device attestation before escalating the condition as firmware-level hooking. Monitoring mode: periodic or event-triggered integrity verification plus near-real-time protocol monitoring where a capable OT protocol decoder is deployed.

Log Sources
Data Component Name Channel
Network Traffic Content (DC0085) NSM:Content deterministic function code response content diverges from the device's established per-function response baseline without a corresponding firmware update event
Firmware Modification (DC0004) assetinventory:FirmwareHash independently acquired firmware/module hash or vendor integrity measurement differs from approved baseline; protocol-response anomalies are corroboration only
Mutable Elements
Field Description
ApprovedICSVendorProcessList Allowlist of processes permitted to install window/event hooks on ICS engineering and HMI hosts.
ICSServiceBinaryList List of binary paths for ICS gateway, OPC, and historian services on Linux assets that should never be launched with LD_PRELOAD set.
VendorPackageManifest Package manager manifest cross-reference confirming a shared library belongs to an installed, signed package.
VendorSignedDLLHashBaseline Cryptographic hash inventory of all vendor-signed ICS communication DLLs, refreshed on every legitimate vendor patch cycle.

AN2286

Real-time monitoring identifies ICS protocol responses whose timing or payload structure deviates from the established device-specific per-function baseline in a pattern consistent with an intercepting relay or hook. OT operational-fidelity gate: Alert only when execution violates an approved signer/hash/path/parent/process or tool allowlist, or originates from an unauthorized user/tool, and is tied to an OT asset or follow-on OT-relevant action. Suppress vendor-signed software, approved engineering utilities, diagnostics, patching, backup, and documented maintenance.

Log Sources
Data Component Name Channel
Network Traffic Content (DC0085) otids:ProtocolDecoder Protocol decoder/IDS transaction: traffic on an ICS service port fails expected protocol parsing/conformance or decodes as a different application protocol
Mutable Elements
Field Description
ApprovedICSVendorProcessList Allowlist of processes permitted to install window/event hooks on ICS engineering and HMI hosts.
ICSServiceBinaryList List of binary paths for ICS gateway, OPC, and historian services on Linux assets that should never be launched with LD_PRELOAD set.
VendorPackageManifest Package manager manifest cross-reference confirming a shared library belongs to an installed, signed package.
VendorSignedDLLHashBaseline Cryptographic hash inventory of all vendor-signed ICS communication DLLs, refreshed on every legitimate vendor patch cycle.