Detect SIP and Trust Provider Hijacking in IBM QRadar
Adversaries may tamper with Subject Interface Package (SIP) and trust provider components to mislead the operating system and application control tools during Authenticode signature validation. SIPs provide an abstraction layer between the WinVerifyTrust API and specific file formats, identified by GUIDs in the registry. Adversaries hijack these components by modifying Dll and FuncName registry values under HKLM\SOFTWARE[\WOW6432Node]\Microsoft\Cryptography\OID\EncodingType 0\CryptSIPDllGetSignedDataMsg\{GUID} (to return a forged known-good certificate) or CryptSIPDllVerifyIndirectData\{GUID} (to always return TRUE for hash validation). Trust providers may be hijacked by modifying $DLL and $Function values under HKLM\SOFTWARE\Microsoft\Cryptography\Providers\Trust\FinalPolicy\{GUID}. This allows malicious or unsigned code to appear validly signed to application whitelisting tools, AppLocker, WDAC, and SmartScreen. Because SIP components are invoked by any process performing signature validation, hijacking them also provides persistent code execution opportunities.
MITRE ATT&CK
- Tactic
- Defense Evasion
- Technique
- T1553 Subvert Trust Controls
- Sub-technique
- T1553.003 SIP and Trust Provider Hijacking
- Canonical reference
- https://attack.mitre.org/techniques/T1553/003/
QRadar Detection Query
SELECT
DATEFORMAT(devicetime, 'yyyy-MM-dd HH:mm:ss') AS EventTime,
"hostname" AS Host,
username AS User,
"TargetObject" AS RegistryPath,
"Details" AS NewValue,
"Image" AS ProcessImage,
"CommandLine" AS ProcessCommandLine,
QIDNAME(qid) AS EventName
FROM events
WHERE LOGSOURCETYPENAME(logsourceid) ILIKE '%Sysmon%'
AND eventid = '13'
AND (
"TargetObject" ILIKE '%CryptSIPDllGetSignedDataMsg%'
OR "TargetObject" ILIKE '%CryptSIPDllVerifyIndirectData%'
OR "TargetObject" ILIKE '%Trust\\FinalPolicy%'
)
AND (
"TargetObject" ILIKE '%\\Dll'
OR "TargetObject" ILIKE '%\\FuncName'
OR "TargetObject" ILIKE '%\\$DLL'
OR "TargetObject" ILIKE '%\\$Function'
)
ORDER BY devicetime DESC
LAST 24 HOURS Detects Sysmon EventID 13 (RegistryValueSet) events targeting SIP and Trust Provider registry keys via IBM QRadar. Monitors writes to Dll, FuncName, $DLL, and $Function values under Microsoft\Cryptography\OID and Cryptography\Providers\Trust\FinalPolicy. Requires QRadar Sysmon DSM with custom properties extracting TargetObject, Details, Image, and CommandLine from Sysmon XML.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate certificate management or PKI software registering new SIP DLL providers for handling custom signed file formats during enterprise-wide deployment
- Microsoft ADCS extensions or enterprise CA tools updating trust provider DLL registrations during version upgrades to the cryptographic subsystem
- Software vendors deploying custom Authenticode SIP handlers for proprietary executable formats as part of normal MSI-based software installation
Other platforms for T1553.003
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1SIP CryptSIPDllVerifyIndirectData Hijack — PE SIP Verify Function Override
Expected signal: Sysmon Event ID 13 (Registry Value Set): Two sequential events with TargetObject = HKLM\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CryptSIPDllVerifyIndirectData\{C689AAB8-8E78-11D0-8C47-00C04FC295EE}\Dll and ...\FuncName. Details field shows C:\Windows\System32\ntdll.dll and DbgUiContinue respectively. Image=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe. DeviceRegistryEvents in MDE: ActionType=RegistryValueSet, InitiatingProcessFileName=powershell.exe.
- Test 2SIP CryptSIPDllGetSignedDataMsg Hijack via reg.exe — PE SIP Certificate Retrieval Override
Expected signal: Sysmon Event ID 1 (Process Create): reg.exe with CommandLine containing 'CryptSIPDllGetSignedDataMsg' and '/v Dll'. Sysmon Event ID 13 (Registry Value Set): Two events for the Dll and FuncName values under CryptSIPDllGetSignedDataMsg\{C689AAB8...}, Details shows ntdll.dll and DbgPrintEx. Security Event ID 4688 (if command line auditing enabled): reg.exe process creation with command line. DeviceProcessEvents in MDE: FileName=reg.exe with full command line.
- Test 3Trust Provider FinalPolicy Registry Hijack — Software Publishing Trust Provider
Expected signal: Sysmon Event ID 13 (Registry Value Set): Two sequential events with TargetObject = HKLM\SOFTWARE\Microsoft\Cryptography\Providers\Trust\FinalPolicy\{00AAC56B-CD44-11D0-8CC2-00C04FC295EE}\$DLL and ...\$Function. Details field shows C:\Windows\System32\ntdll.dll and DbgUiContinue. Image=powershell.exe. DeviceRegistryEvents in MDE: RegistryKey contains Trust\FinalPolicy, RegistryValueName=$DLL and $Function, ActionType=RegistryValueSet.
References (10)
- https://attack.mitre.org/techniques/T1553/003/
- https://specterops.io/assets/resources/SpecterOps_Subverting_Trust_in_Windows.pdf
- https://github.com/mattifestation/PoCSubjectInterfacePackage
- https://msdn.microsoft.com/library/windows/desktop/aa388208.aspx
- https://msdn.microsoft.com/library/ms537359.aspx
- https://blogs.technet.microsoft.com/eduardonavarro/2008/07/11/sips-subject-interface-package-and-authenticode/
- https://docs.microsoft.com/windows-hardware/drivers/install/catalog-files
- https://docs.microsoft.com/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd941614(v=ws.10)
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1553.003/T1553.003.md
- https://learn.microsoft.com/en-us/sysinternals/downloads/sigcheck
Unlock Pro Content
Get the full detection package for T1553.003 including response playbook, investigation guide, and atomic red team tests.