Compreendendo os eventos de controle do aplicativo

Visão geral de eventos do WDAC

O WDAC registra eventos quando uma política é carregada, quando um arquivo é bloqueado ou quando um arquivo será bloqueado se estiver no modo de auditoria. Esses eventos de bloco incluem informações que identificam a política e dão mais detalhes sobre o bloco. O WDAC não gera eventos quando um binário é permitido. No entanto, você pode ativar os eventos de auditoria para arquivos autorizados por um instalador gerenciado ou o ISG (Intelligent Security Graph), conforme descrito posteriormente neste artigo.

Logs de eventos WDAC principais

Os eventos WDAC são gerados em dois locais no Windows Visualizador de Eventos:

  • Logs de aplicativos e serviços – Microsoft – Windows – CodeIntegrity – o operacional inclui eventos sobre a ativação da política de Controle de Aplicativo e o controle de executáveis, dlls e drivers.
  • Os logs de aplicativos e serviços – Microsoft – Windows – AppLocker – MSI e Script incluem eventos sobre o controle de instaladores msi, scripts e objetos COM.

A maioria das falhas de aplicativo e script que ocorrem quando o WDAC está ativo pode ser diagnosticada usando esses dois logs de eventos. Este artigo descreve com mais detalhes os eventos que existem nesses logs. Para entender o significado de diferentes elementos de dados ou marcas, encontrados nos detalhes desses eventos, consulte Noções básicas sobre marcas de evento do Controle de Aplicativo.

Observação

Os logs de aplicativos e serviços – Microsoft – Windows – AppLocker – EVENTOS MSI e Script não estão incluídos na edição do Windows Server Core.

Eventos de bloco WDAC para executáveis, dlls e drivers

Esses eventos são encontrados no log de eventos CodeIntegrity – Operacional .

ID do evento Explicação
3004 Esse evento não é comum e pode ocorrer com ou sem uma política de Controle de Aplicativo presente. Normalmente, indica que um driver de kernel tentou carregar com uma assinatura inválida. Por exemplo, o arquivo pode não ser assinado por WHQL em um sistema em que o WHQL é necessário.

Esse evento também é visto para o código do kernel ou do modo de usuário que o desenvolvedor optou por /INTEGRITYCHECK , mas não foi assinado corretamente.
3033 Esse evento pode ocorrer com ou sem uma política de Controle de Aplicativo presente e deve ocorrer junto com um evento 3077 se causado pela política WDAC. Isso geralmente significa que a assinatura do arquivo é revogada ou uma assinatura com o EKU de Assinatura vitalícia expirou. A presença do EKU de Assinatura vitalícia é o único caso em que o WDAC bloqueia arquivos devido a uma assinatura expirada. Tente usar a opção 20 Enabled:Revoked Expired As Unsigned em sua política junto com uma regra (por exemplo, hash) que não depende do certificado revogado ou expirado.

Esse evento também ocorrerá se o código compilado com o CIG (Code Integrity Guard) tentar carregar outro código que não atenda aos requisitos do CIG.
3034 Esse evento não é comum. É o modo de auditoria equivalente ao evento 3033.
3076 Este evento é o evento de bloco main Controle de Aplicativo para políticas de modo de auditoria. Ele indica que o arquivo teria sido bloqueado se a política fosse imposta.
3077 Este evento é o evento de bloco main Controle de Aplicativo para políticas impostas. Ele indica que o arquivo não passou na política e foi bloqueado.
3089 Este evento contém informações de assinatura para arquivos bloqueados ou de auditoria bloqueados pelo Controle de Aplicativo. Um desses eventos é criado para cada assinatura de um arquivo. Cada evento mostra o número total de assinaturas encontradas e um valor de índice para identificar a assinatura atual. Arquivos não assinados geram um único desses eventos com TotalSignatureCount de 0. Esses eventos estão correlacionados com eventos 3004, 3033, 3034, 3076 e 3077. Você pode corresponder aos eventos usando o Correlation ActivityID encontrado na parte sistema do evento.

Eventos de bloco do WDAC para aplicativos empacotados, instaladores de MSI, scripts e objetos COM

Esses eventos são encontrados no log de eventos AppLocker – MSI e Script .

ID do evento Explicação
8028 Esse evento indica que um host de script, como o PowerShell, consultou o Controle de Aplicativo sobre um arquivo que o host de script estava prestes a executar. Como a política estava no modo de auditoria, o script ou o arquivo MSI deveriam ter sido executados, mas não teriam passado a política WDAC se ela fosse imposta. Alguns hosts de script podem ter informações adicionais em seus logs. Observação: a maioria dos hosts de script de terceiros não se integra ao Controle de Aplicativo. Considere os riscos de scripts não verificados ao escolher quais hosts de script você permite executar.
8029 Esse evento é o modo de imposição equivalente ao evento 8028. Observação: embora este evento diga que um script foi bloqueado, os hosts de script controlam o comportamento real de aplicação do script. O host de script pode permitir que o arquivo seja executado com restrições e não bloqueie o arquivo imediatamente. Por exemplo, o PowerShell executa script não permitido pela política do WDAC no Modo de Linguagem Restrita.
8036 O objeto COM foi bloqueado. Para saber mais sobre a autorização de objeto COM, consulte Permitir registro de objeto COM em uma política de Controle de Aplicativo Windows Defender.
8037 Esse evento indica que um host de script verificou se deve permitir a execução de um script e o arquivo passou pela política WDAC.
8038 Evento de informações de assinatura correlacionado com um evento 8028 ou 8029. Um evento 8038 é gerado para cada assinatura de um arquivo de script. Contém o número total de assinaturas em um arquivo de script e um índice sobre qual assinatura ele é. Arquivos de script não assinados geram um único evento 8038 com TotalSignatureCount 0. Esses eventos estão correlacionados com eventos 8028 e 8029 e podem ser correspondidos usando o Correlation ActivityID encontrado na parte System do evento.
8039 Esse evento indica que um aplicativo empacotado (MSIX/AppX) foi autorizado a instalar ou executar porque a política WDAC está no modo de auditoria. Mas, teria sido bloqueado se a política fosse imposta.
8040 Esse evento indica que um aplicativo empacotado foi impedido de instalar ou executar devido à política WDAC.

Eventos de ativação de política do WDAC

Esses eventos são encontrados no log de eventos CodeIntegrity – Operacional .

ID do evento Explicação
3095 A política de Controle de Aplicativo não pode ser atualizada e deve ser reinicializada.
3096 A política de Controle de Aplicativo não foi atualizada, pois já está atualizada. Os detalhes deste evento incluem informações úteis sobre a política, como suas opções de política.
3097 A política de Controle de Aplicativo não pode ser atualizada.
3099 Indica que uma política foi carregada. Os Detalhes deste evento incluem informações úteis sobre a política de Controle de Aplicativo, como suas opções de política.
3100 A política de controle do aplicativo foi atualizada, mas foi ativada sem êxito. Repetir.
3101 Atualização da política de controle de aplicativo iniciada para políticas N .
3102 Atualização da política de Controle de Aplicativo concluída para políticas N .
3103 O sistema está ignorando a atualização da política de Controle de Aplicativo. Por exemplo, uma política do Windows de caixa de entrada que não atende às condições de ativação.
3105 O sistema está tentando atualizar a política de Controle de Aplicativo com a ID especificada.

Eventos de diagnóstico para ISG (Intelligent Security Graph) e INSTALADOR Gerenciado (MI)

Observação

Quando o Instalador Gerenciado estiver habilitado, os clientes que usam o LogAnalytics devem estar cientes de que o Instalador Gerenciado pode disparar muitos eventos 3091. Os clientes podem precisar filtrar esses eventos para evitar altos custos do LogAnalytics.

Os eventos a seguir fornecem informações úteis de diagnóstico quando uma política WDAC inclui a opção ISG ou MI. Esses eventos podem ajudá-lo a depurar por que algo foi permitido/negado com base no instalador gerenciado ou no ISG. Os eventos 3090, 3091 e 3092 não indicam necessariamente um problema, mas devem ser revisados em contexto com outros eventos como 3076 ou 3077.

A menos que seja observado de outra forma, esses eventos são encontrados no Log de eventos CodeIntegrity - Operacional ou codeIntegrity - Verbose , dependendo da sua versão do Windows.

ID do evento Explicação
3090 Opcional Esse evento indica que um arquivo foi autorizado a ser executado com base apenas no ISG ou no instalador gerenciado.
3091 Esse evento indica que um arquivo não tinha autorização ISG ou instalador gerenciado e que a política de Controle de Aplicativo está no modo de auditoria.
3092 Esse evento é o modo de aplicação equivalente a 3091.
8002 Esse evento é encontrado no log de eventos AppLocker – EXE e DLL . Quando um processo é iniciado que corresponde a uma regra do instalador gerenciado, esse evento é gerado com PolicyName = MANAGEDINSTALLER encontrado nos detalhes do evento. Eventos com PolicyName = EXE ou DLL não estão relacionados ao WDAC.

Os eventos 3090, 3091 e 3092 são relatados por política ativa no sistema, portanto, você pode ver vários eventos para o mesmo arquivo.

Detalhes do evento de diagnóstico ISG e MI

As informações a seguir são encontradas nos detalhes dos eventos 3090, 3091 e 3092.

Nome Explicação
ManagedInstallerEnabled Indica se a política especificada habilita a confiança do instalador gerenciado
PassesManagedInstaller Indica se o arquivo se originou de um MI
SmartlockerEnabled Indica se a política especificada habilita a confiança ISG
PassesSmartlocker Indica se o arquivo tinha reputação positiva de acordo com o ISG
AuditEnabled True se a política de Controle de Aplicativo estiver no modo de auditoria, caso contrário, ela estará no modo de execução
Policyname O nome da política de Controle de Aplicativo à qual o evento se aplica

Habilitando eventos de diagnóstico ISG e MI

Para habilitar o 3090 permitir eventos, crie um regkey testFlags com um valor de 0x300 conforme mostrado no comando do PowerShell a seguir. Em seguida, reinicie seu computador.

reg add hklm\system\currentcontrolset\control\ci -v TestFlags -t REG_DWORD -d 0x300

Os eventos 3091 e 3092 estão inativos em algumas versões do Windows e são ativados pelo comando anterior.

Apêndice

Uma lista de outras IDs de eventos relevantes e sua descrição correspondente.

ID do Evento Descrição
3001 Um driver sem sinal foi tentado a carregar no sistema.
3002 A Integridade do Código não pôde verificar a imagem de inicialização, pois o hash da página não pôde ser encontrado.
3004 A Integridade do Código não pôde verificar o arquivo, pois o hash da página não pôde ser encontrado.
3010 O catálogo que contém a assinatura do arquivo em validação é inválido.
3011 A Integridade do Código terminou de carregar o catálogo de assinaturas.
3012 A Integridade do Código começou a carregar o catálogo de assinaturas.
3023 O arquivo de driver em validação não atendia aos requisitos para passar a política de controle do aplicativo.
3024 O controle do aplicativo Windows não pôde atualizar o arquivo de catálogo de inicialização.
3026 A Microsoft ou a autoridade emissora de certificados revogaram o certificado que assinou o catálogo.
3032 O arquivo em validação é revogado ou o arquivo tem uma assinatura revogada.
3033 O arquivo em validação não atendia aos requisitos para passar a política de controle do aplicativo.
3034 O arquivo em validação não atenderia aos requisitos para passar a política de Controle de Aplicativo se fosse imposta. O arquivo foi permitido, pois a política está no modo de auditoria.
3036 A Microsoft ou a autoridade emissora de certificados revogaram o certificado que assinou o arquivo que estava sendo validado.
3064 Se a política de Controle de Aplicativo fosse imposta, uma DLL do modo de usuário em validação não atenderia aos requisitos para passar a política de controle do aplicativo. A DLL foi permitida, pois a política está no modo de auditoria.
3065 Se a política de Controle de Aplicativo fosse imposta, uma DLL do modo de usuário em validação não atenderia aos requisitos para passar a política de controle do aplicativo.
3074 Falha de hash de página enquanto a integridade do código protegida pelo hipervisor estava habilitada.
3075 Esse evento mede o desempenho da política de Controle de Aplicativo marcar durante a validação do arquivo.
3076 Este evento é o evento de bloco main Controle de Aplicativo para políticas de modo de auditoria. Ele indica que o arquivo teria sido bloqueado se a política fosse imposta.
3077 Este evento é o evento de bloco main Controle de Aplicativo para políticas impostas. Ele indica que o arquivo não passou na política e foi bloqueado.
3079 O arquivo em validação não atendia aos requisitos para passar a política de controle do aplicativo.
3080 Se a política de Controle de Aplicativo estivesse no modo imposto, o arquivo em validação não teria atendido aos requisitos para passar a política de controle do aplicativo.
3081 O arquivo em validação não atendia aos requisitos para passar a política de controle do aplicativo.
3082 Se a política de Controle de Aplicativo fosse imposta, a política teria bloqueado esse driver não WHQL.
3084 A Integridade do Código está aplicando os requisitos de assinatura do driver WHQL nesta sessão de inicialização.
3085 A Integridade do Código não está aplicando os requisitos de assinatura do driver WHQL nesta sessão de inicialização.
3086 O arquivo em validação não atende aos requisitos de assinatura de um processo de IUM (modo de usuário isolado).
3089 Este evento contém informações de assinatura para arquivos bloqueados ou de auditoria bloqueados pelo Controle de Aplicativo. Um evento 3089 é criado para cada assinatura de um arquivo.
3090 Opcional Esse evento indica que um arquivo foi autorizado a ser executado com base apenas no ISG ou no instalador gerenciado.
3091 Esse evento indica que um arquivo não tinha autorização ISG ou instalador gerenciado e que a política de Controle de Aplicativo está no modo de auditoria.
3092 Esse evento é o modo de aplicação equivalente a 3091.
3095 A política de Controle de Aplicativo não pode ser atualizada e deve ser reinicializada.
3096 A política de Controle de Aplicativo não foi atualizada, pois já está atualizada.
3097 A política de Controle de Aplicativo não pode ser atualizada.
3099 Indica que uma política foi carregada. Este evento também inclui informações sobre as opções definidas pela política de Controle de Aplicativo.
3100 A política de controle do aplicativo foi atualizada, mas foi ativada sem êxito. Repetir.
3101 O sistema começou a atualizar a política de Controle de Aplicativo.
3102 O sistema terminou de atualizar a política de Controle de Aplicativo.
3103 O sistema está ignorando a atualização da política de Controle de Aplicativo.
3104 O arquivo em validação não atende aos requisitos de assinatura de um processo PPL (luz de processo protegido).
3105 O sistema está tentando atualizar a política de Controle de Aplicativo.
3108 O evento de alteração do modo Windows foi bem-sucedido.
3110 O evento de alteração do modo Windows não teve êxito.
3111 O arquivo em validação não atendia à política HVCI (integridade de código protegida pelo hipervisor).
3112 O Windows revogou o certificado que assinou o arquivo que está sendo validado.
3114 O Dynamic Code Security optou pelo aplicativo .NET ou DLL na validação da política de Controle de Aplicativo. O arquivo em validação não passou na política e foi bloqueado.