Sigma Rule Library

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.

View on GitHubOpen raw file

Detection logic

selection

EventID:
  - 3033
  - 3034

filter_optional_dtrace

FileNameBuffer|endswith: \Program Files\DTrace\dtrace.dll
ProcessNameBuffer|endswith: \Windows\System32\svchost.exe
RequestedPolicy: 12

filter_optional_av_generic

FileNameBuffer|contains: \Windows\System32\DriverStore\FileRepository\
FileNameBuffer|endswith: \igd10iumd64.dll
RequestedPolicy: 7

filter_optional_electron_based_app

FileNameBuffer|endswith: \Windows\System32\nvspcap64.dll
ProcessNameBuffer|endswith:
  - \AppData\Local\Keybase\Gui\Keybase.exe
  - \Microsoft\Teams\stage\Teams.exe
RequestedPolicy: 8

filter_optional_bonjour

FileNameBuffer|endswith: \Program Files\Bonjour\mdnsNSP.dll
ProcessNameBuffer|endswith:
  - \Windows\System32\svchost.exe
  - \Windows\System32\SIHClient.exe
RequestedPolicy:
  - 8
  - 12

filter_optional_msoffice_1

FileNameBuffer|contains: \Microsoft Office\root\vfs\ProgramFilesCommonX64\Microsoft Shared\OFFICE
FileNameBuffer|endswith: \MSOXMLMF.DLL
RequestedPolicy: 7

filter_optional_msoffice_2

ProcessNameBuffer|contains: \Program Files\Microsoft Office\root\vfs\ProgramFilesCommonX64\Microsoft Shared\Office
FileNameBuffer|contains: \Windows\System32\
RequestedPolicy: 8

filter_optional_slack

FileNameBuffer|endswith: \Windows\System32\nvspcap64.dll
ProcessNameBuffer|contains: \AppData\Local\slack\app-
ProcessNameBuffer|endswith: \slack.exe
RequestedPolicy: 8

filter_optional_firefox

FileNameBuffer|endswith:
  - \Mozilla Firefox\mozavcodec.dll
  - \Mozilla Firefox\mozavutil.dll
ProcessNameBuffer|endswith: \Mozilla Firefox\firefox.exe
RequestedPolicy: 8

filter_optional_avast

FileNameBuffer|endswith:
  - \Program Files\Avast Software\Avast\aswAMSI.dll
  - \Program Files (x86)\Avast Software\Avast\aswAMSI.dll
RequestedPolicy:
  - 8
  - 12

filter_main_gac

FileNameBuffer|contains: \Windows\assembly\GAC\
ProcessNameBuffer|endswith: \mscorsvw.exe
ProcessNameBuffer|contains: \Windows\Microsoft.NET\
RequestedPolicy: 8

filter_optional_google_drive

FileNameBuffer|contains: \Program Files\Google\Drive File Stream\
FileNameBuffer|endswith: \crashpad_handler.exe
ProcessNameBuffer|endswith: \Windows\ImmersiveControlPanel\SystemSettings.exe
RequestedPolicy: 8

filter_optional_trend_micro

FileNameBuffer|endswith: \Trend Micro\Client Server Security Agent\perficrcperfmonmgr.dll
RequestedPolicy: 8

filter_optional_mdns_responder

FileNameBuffer|endswith: "\\Program Files\\National Instruments\\Shared\\mDNS Responder\\nimdnsNSP.dll "

filter_optional_mcafee

FileNameBuffer|endswith:
  - \Program Files\McAfee\Endpoint Security\Threat Prevention\MfeAmsiProvider.dll
  - \Program Files\McAfee\MfeAV\AMSIExt.dll

filter_optional_eset

FileNameBuffer|endswith: \Program Files\ESET\ESET Security\eamsi.dll

filter_optional_comodo

FileNameBuffer|endswith: \Program Files\comodo\comodo internet security\amsiprovider_x64.dll

filter_optional_sentinel_one

- FileNameBuffer|contains: \Program Files\SentinelOne\Sentinel Agent
- ProcessNameBuffer|contains: \Program Files\SentinelOne\Sentinel Agent

filter_optional_national_instruments

FileNameBuffer|contains: \National Instruments\Shared\mDNS Responder\

filter_optional_kaspersky

- ProcessNameBuffer|contains|all:
    - \Kaspersky Lab\
    - \avp.exe
- FileNameBuffer|contains|all:
    - \Kaspersky Lab\
    - \antimalware_provider.dll

Condition

selection and not 1 of filter_main_* and not 1 of filter_optional_*

Raw YAML

title: CodeIntegrity - Unmet Signing Level Requirements By File Under Validation
id: f8931561-97f5-4c46-907f-0a4a592e47a7
status: experimental
description: |
    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.
references:
    - https://twitter.com/SBousseaden/status/1483810148602814466
    - 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
    - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/operations/event-tag-explanations
    - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/operations/event-id-explanations
author: Florian Roth (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
date: 2022-01-20
modified: 2025-02-28
tags:
    - attack.execution
logsource:
    product: windows
    service: codeintegrity-operational
detection:
    selection:
        EventID:
            - 3033 # Code Integrity determined that a process (%4) attempted to load %2 that did not meet the %5 signing level requirements.
            - 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.
    filter_optional_dtrace:
        # 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.
        FileNameBuffer|endswith: '\Program Files\DTrace\dtrace.dll'
        ProcessNameBuffer|endswith: '\Windows\System32\svchost.exe'
        RequestedPolicy: 12
    filter_optional_av_generic:
        # 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.
        FileNameBuffer|contains: '\Windows\System32\DriverStore\FileRepository\'
        FileNameBuffer|endswith: '\igd10iumd64.dll'
        # ProcessNameBuffer is AV products
        RequestedPolicy: 7
    filter_optional_electron_based_app:
        # 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.
        FileNameBuffer|endswith: '\Windows\System32\nvspcap64.dll'
        ProcessNameBuffer|endswith:
            - '\AppData\Local\Keybase\Gui\Keybase.exe'
            - '\Microsoft\Teams\stage\Teams.exe'
        RequestedPolicy: 8
    filter_optional_bonjour:
        FileNameBuffer|endswith: '\Program Files\Bonjour\mdnsNSP.dll'
        ProcessNameBuffer|endswith:
            - '\Windows\System32\svchost.exe'
            - '\Windows\System32\SIHClient.exe'
        RequestedPolicy:
            - 8
            - 12
    filter_optional_msoffice_1:
        FileNameBuffer|contains: '\Microsoft Office\root\vfs\ProgramFilesCommonX64\Microsoft Shared\OFFICE'
        FileNameBuffer|endswith: '\MSOXMLMF.DLL'
        # ProcessNameBuffer is AV products
        RequestedPolicy: 7
    filter_optional_msoffice_2:
        ProcessNameBuffer|contains: '\Program Files\Microsoft Office\root\vfs\ProgramFilesCommonX64\Microsoft Shared\Office'
        FileNameBuffer|contains: '\Windows\System32\'
        RequestedPolicy: 8
    filter_optional_slack:
        # Example: https://user-images.githubusercontent.com/112784902/197407680-96d4b662-8a59-4289-a483-b24d630ac2a9.png
        # 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 :)
        FileNameBuffer|endswith: '\Windows\System32\nvspcap64.dll'
        ProcessNameBuffer|contains: '\AppData\Local\slack\app-'
        ProcessNameBuffer|endswith: '\slack.exe'
        RequestedPolicy: 8
    filter_optional_firefox:
        # Example: https://user-images.githubusercontent.com/62423083/197451483-70e89010-ed96-4357-8079-b5a061a239d6.png
        FileNameBuffer|endswith:
            - '\Mozilla Firefox\mozavcodec.dll'
            - '\Mozilla Firefox\mozavutil.dll'
        ProcessNameBuffer|endswith: '\Mozilla Firefox\firefox.exe'
        RequestedPolicy: 8
    filter_optional_avast:
        FileNameBuffer|endswith:
            - '\Program Files\Avast Software\Avast\aswAMSI.dll'
            - '\Program Files (x86)\Avast Software\Avast\aswAMSI.dll'
        RequestedPolicy:
            - 8
            - 12
    filter_main_gac:
        # Filtering the path containing this string because of multiple possible DLLs in that location
        FileNameBuffer|contains: '\Windows\assembly\GAC\'
        ProcessNameBuffer|endswith: '\mscorsvw.exe'
        ProcessNameBuffer|contains: '\Windows\Microsoft.NET\'
        RequestedPolicy: 8
    filter_optional_google_drive:
        # Example: \Program Files\Google\Drive File Stream\67.0.2.0\crashpad_handler.exe
        FileNameBuffer|contains: '\Program Files\Google\Drive File Stream\'
        FileNameBuffer|endswith: '\crashpad_handler.exe'
        ProcessNameBuffer|endswith: '\Windows\ImmersiveControlPanel\SystemSettings.exe'
        RequestedPolicy: 8
    filter_optional_trend_micro:
        FileNameBuffer|endswith: '\Trend Micro\Client Server Security Agent\perficrcperfmonmgr.dll'
        RequestedPolicy: 8
    filter_optional_mdns_responder:
        FileNameBuffer|endswith: '\Program Files\National Instruments\Shared\mDNS Responder\nimdnsNSP.dll '
    filter_optional_mcafee:
        FileNameBuffer|endswith:
            - '\Program Files\McAfee\Endpoint Security\Threat Prevention\MfeAmsiProvider.dll'
            - '\Program Files\McAfee\MfeAV\AMSIExt.dll'
    filter_optional_eset:
        FileNameBuffer|endswith: '\Program Files\ESET\ESET Security\eamsi.dll'
    filter_optional_comodo:
        FileNameBuffer|endswith: '\Program Files\comodo\comodo internet security\amsiprovider_x64.dll'
    filter_optional_sentinel_one:
        # Example: program files\sentinelone\sentinel agent 23.4.4.223\inprocessclient64.dll
        - FileNameBuffer|contains: '\Program Files\SentinelOne\Sentinel Agent'
        # Example: Program Files\SentinelOne\Sentinel Agent 23.4.4.223\SentinelAgent.exe
        - ProcessNameBuffer|contains: '\Program Files\SentinelOne\Sentinel Agent'
    filter_optional_national_instruments:
        # Example: \device\harddiskvolume3\program files\national instruments\shared\mdns responder\nimdnsnsp.dll
        FileNameBuffer|contains: '\National Instruments\Shared\mDNS Responder\'
    filter_optional_kaspersky:
        # Example: \Program Files (x86)\Kaspersky Lab\Kaspersky Endpoint Security for Windows\x64\antimalware_provider.dll
        - ProcessNameBuffer|contains|all:
              - '\Kaspersky Lab\'
              - '\avp.exe'
        - FileNameBuffer|contains|all:
              - '\Kaspersky Lab\'
              - '\antimalware_provider.dll'
    condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - 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.
level: low

False positives

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

References