T1553.003 Google Chronicle · YARA-L

Detect SIP and Trust Provider Hijacking in Google Chronicle

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/

YARA-L Detection Query

Google Chronicle (YARA-L)
yaral
rule sip_trust_provider_hijacking {
  meta:
    author = "Argus Detection Engineering"
    description = "Detects modifications to SIP and Trust Provider registry keys used for Authenticode signature validation hijacking"
    mitre_attack_tactic = "Defense Evasion"
    mitre_attack_technique = "T1553.003"
    severity = "HIGH"
    confidence = "HIGH"
    reference = "https://attack.mitre.org/techniques/T1553/003/"

  events:
    $e.metadata.event_type = "REGISTRY_MODIFICATION"
    (
      re.regex($e.target.registry.registry_key,
        `(?i)\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptSIPDllGetSignedDataMsg\\`) or
      re.regex($e.target.registry.registry_key,
        `(?i)\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptSIPDllVerifyIndirectData\\`) or
      re.regex($e.target.registry.registry_key,
        `(?i)\\Microsoft\\Cryptography\\Providers\\Trust\\FinalPolicy\\`)
    )
    re.regex($e.target.registry.registry_value_name, `(?i)^(Dll|FuncName|\$DLL|\$Function)$`)

  condition:
    $e
}
high severity high confidence

Chronicle YARA-L 2.0 rule detecting REGISTRY_MODIFICATION UDM events targeting Subject Interface Package (SIP) and Trust Provider registry paths. Monitors writes to the Dll, FuncName, $DLL, and $Function values under Cryptography OID EncodingType 0 and Trust FinalPolicy keys — the precise registry locations adversaries tamper with to hijack WinVerifyTrust signature validation and make malicious or unsigned code appear validly signed.

Data Sources

Chronicle UDM - Windows Sysmon ingestion feedChronicle UDM - Microsoft Defender for Endpoint feedChronicle UDM - Google SecOps Windows sensor

Required Tables

UDM Events with event_type = REGISTRY_MODIFICATION

False Positives & Tuning

  • Legitimate PKI infrastructure software registering new SIP DLL providers for handling non-standard signed file formats, such as custom container formats used by enterprise signing pipelines
  • Hardware security module (HSM) vendor software installing custom trust provider DLLs to enable hardware-backed signature verification during initial appliance integration
  • Windows OS servicing operations modifying trust provider registrations as part of cryptographic subsystem updates delivered through Windows Update or WSUS
Download portable Sigma rule (.yml)

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.

  1. 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.

  2. 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.

  3. 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.

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections