CodeIntegrity - Unmet Signing Level Requirements By File Under Validation
Detects attempted file load events that did not meet the signing level requirements. It often means the file's signature is revoked or a signature with the Lifetime Signing EKU has expired. This event is best correlated with EID 3089 to determine the error of the validation.
Sigma rule (View on GitHub)
1title: CodeIntegrity - Unmet Signing Level Requirements By File Under Validation
2id: f8931561-97f5-4c46-907f-0a4a592e47a7
3status: experimental
4description: |
5 Detects attempted file load events that did not meet the signing level requirements. It often means the file's signature is revoked or a signature with the Lifetime Signing EKU has expired.
6 This event is best correlated with EID 3089 to determine the error of the validation.
7references:
8 - https://twitter.com/SBousseaden/status/1483810148602814466
9 - https://github.com/MicrosoftDocs/windows-itpro-docs/blob/40fe118976734578f83e5e839b9c63ae7a4af82d/windows/security/threat-protection/windows-defender-application-control/event-id-explanations.md#windows-codeintegrity-operational-log
10 - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/operations/event-tag-explanations
11 - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/operations/event-id-explanations
12author: Florian Roth (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
13date: 2022-01-20
14modified: 2024-10-08
15tags:
16 - attack.execution
17logsource:
18 product: windows
19 service: codeintegrity-operational
20detection:
21 selection:
22 EventID:
23 - 3033 # Code Integrity determined that a process (%4) attempted to load %2 that did not meet the %5 signing level requirements.
24 - 3034 # Code Integrity determined that a process (%4) attempted to load %2 that did not meet the %5 signing level requirements or violated code integrity policy. However, due to code integrity auditing policy, the image was allowed to load.
25 filter_optional_dtrace:
26 # Example: Code Integrity determined that a process (\Device\HarddiskVolume5\Windows\System32\svchost.exe) attempted to load \Device\HarddiskVolume5\Program Files\DTrace\dtrace.dll that did not meet the Windows signing level requirements.
27 FileNameBuffer|endswith: '\Program Files\DTrace\dtrace.dll'
28 ProcessNameBuffer|endswith: '\Windows\System32\svchost.exe'
29 RequestedPolicy: 12
30 filter_optional_av_generic:
31 # Example: Code Integrity determined that a process (\Device\HarddiskVolume5\ProgramData\Microsoft\Windows Defender\Platform\4.18.2207.7-0\MsMpEng.exe) attempted to load \Device\HarddiskVolume5\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_36fb67bd6dbd887d\igd10iumd64.dll that did not meet the Custom 3 / Antimalware signing level requirements.
32 FileNameBuffer|contains: '\Windows\System32\DriverStore\FileRepository\'
33 FileNameBuffer|endswith: '\igd10iumd64.dll'
34 # ProcessNameBuffer is AV products
35 RequestedPolicy: 7
36 filter_optional_electron_based_app:
37 # Example: Code Integrity determined that a process (\Device\HarddiskVolume5\Users\user\AppData\Local\Keybase\Gui\Keybase.exe) attempted to load \Device\HarddiskVolume5\Windows\System32\nvspcap64.dll that did not meet the Microsoft signing level requirements.
38 FileNameBuffer|endswith: '\Windows\System32\nvspcap64.dll'
39 ProcessNameBuffer|endswith:
40 - '\AppData\Local\Keybase\Gui\Keybase.exe'
41 - '\Microsoft\Teams\stage\Teams.exe'
42 RequestedPolicy: 8
43 filter_optional_bonjour:
44 FileNameBuffer|endswith: '\Program Files\Bonjour\mdnsNSP.dll'
45 ProcessNameBuffer|endswith:
46 - '\Windows\System32\svchost.exe'
47 - '\Windows\System32\SIHClient.exe'
48 RequestedPolicy:
49 - 8
50 - 12
51 filter_optional_msoffice:
52 FileNameBuffer|contains: '\Microsoft Office\root\vfs\ProgramFilesCommonX64\Microsoft Shared\OFFICE'
53 FileNameBuffer|endswith: '\MSOXMLMF.DLL'
54 # ProcessNameBuffer is AV products
55 RequestedPolicy: 7
56 filter_optional_slack:
57 # Example: https://user-images.githubusercontent.com/112784902/197407680-96d4b662-8a59-4289-a483-b24d630ac2a9.png
58 # Even though it's the same DLL as the one used in the electron based app filter. We need to do a separate selection due to slack's folder naming convention with the version number :)
59 FileNameBuffer|endswith: '\Windows\System32\nvspcap64.dll'
60 ProcessNameBuffer|contains: '\AppData\Local\slack\app-'
61 ProcessNameBuffer|endswith: '\slack.exe'
62 RequestedPolicy: 8
63 filter_optional_firefox:
64 # Example: https://user-images.githubusercontent.com/62423083/197451483-70e89010-ed96-4357-8079-b5a061a239d6.png
65 FileNameBuffer|endswith:
66 - '\Mozilla Firefox\mozavcodec.dll'
67 - '\Mozilla Firefox\mozavutil.dll'
68 ProcessNameBuffer|endswith: '\Mozilla Firefox\firefox.exe'
69 RequestedPolicy: 8
70 filter_optional_avast:
71 FileNameBuffer|endswith:
72 - '\Program Files\Avast Software\Avast\aswAMSI.dll'
73 - '\Program Files (x86)\Avast Software\Avast\aswAMSI.dll'
74 RequestedPolicy:
75 - 8
76 - 12
77 filter_main_gac:
78 # Filtering the path containing this string because of multiple possible DLLs in that location
79 FileNameBuffer|contains: '\Windows\assembly\GAC\'
80 ProcessNameBuffer|endswith: '\mscorsvw.exe'
81 ProcessNameBuffer|contains: '\Windows\Microsoft.NET\'
82 RequestedPolicy: 8
83 filter_optional_google_drive:
84 # Example: \Program Files\Google\Drive File Stream\67.0.2.0\crashpad_handler.exe
85 FileNameBuffer|contains: '\Program Files\Google\Drive File Stream\'
86 FileNameBuffer|endswith: '\crashpad_handler.exe'
87 ProcessNameBuffer|endswith: '\Windows\ImmersiveControlPanel\SystemSettings.exe'
88 RequestedPolicy: 8
89 filter_optional_trend_micro:
90 FileNameBuffer|endswith: '\Trend Micro\Client Server Security Agent\perficrcperfmonmgr.dll'
91 RequestedPolicy: 8
92 filter_optional_mdns_responder:
93 FileNameBuffer|endswith: '\Program Files\National Instruments\Shared\mDNS Responder\nimdnsNSP.dll '
94 filter_optional_mcafee:
95 FileNameBuffer|endswith:
96 - '\Program Files\McAfee\Endpoint Security\Threat Prevention\MfeAmsiProvider.dll'
97 - '\Program Files\McAfee\MfeAV\AMSIExt.dll'
98 filter_optional_eset:
99 FileNameBuffer|endswith: '\Program Files\ESET\ESET Security\eamsi.dll'
100 filter_optional_comodo:
101 FileNameBuffer|endswith: '\Program Files\comodo\comodo internet security\amsiprovider_x64.dll'
102 filter_optional_sentinel_one:
103 # Example: program files\sentinelone\sentinel agent 23.4.4.223\inprocessclient64.dll
104 - FileNameBuffer|contains: '\Program Files\SentinelOne\Sentinel Agent'
105 # Example: Program Files\SentinelOne\Sentinel Agent 23.4.4.223\SentinelAgent.exe
106 - ProcessNameBuffer|contains: '\Program Files\SentinelOne\Sentinel Agent'
107 condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
108falsepositives:
109 - Antivirus and other third party products are known to trigger this rule quite a lot. Initial filters and tuning is required before using this rule.
110level: low
References
Related rules
- Renamed Powershell Under Powershell Channel
- Suspicious Non PowerShell WSMAN COM Provider
- Alternate PowerShell Hosts Pipe
- Add Potential Suspicious New Download Source To Winget
- Arbitrary File Download Via IMEWDBLD.EXE