Imposição de script com Windows Defender WDAC (Controle de Aplicativo)

Observação

Alguns recursos do Windows Defender Application Control só estão disponíveis em versões específicas do Windows. Saiba mais sobre a disponibilidade do recurso controle de aplicativo.

Importante

A opção 11 Desabilitada:Script Enforcement não tem suporte no Windows Server 2016 ou no Windows 10 1607 LTSB e não deve ser usada nessas plataformas. Isso resultará em comportamentos inesperados de imposição de script.

Visão geral da aplicação do script

Por padrão, a aplicação de script está habilitada para todas as políticas do WDAC, a menos que a opção 11 Disabled:Script Enforcement seja definida na política. A aplicação do script WDAC envolve um aperto de mão entre um host de script iluminado, como o PowerShell, e o WDAC. No entanto, o host de script lida com o comportamento de aplicação real. Alguns hosts de script, como o Microsoft HTML Application Host (mshta.exe), bloqueiam toda a execução de código se qualquer política WDAC UMCI estiver ativa. A maioria dos hosts de script primeiro pergunta ao WDAC se um script deve ser permitido para ser executado com base nas políticas do WDAC atualmente ativas. Em seguida, o host de script bloqueia, permite ou altera a forma como o script é executado para proteger melhor o usuário e o dispositivo.

A validação para scripts assinados é feita usando a API WinVerifyTrust. Para passar a validação, a raiz de assinatura deve estar presente no repositório raiz confiável no dispositivo e sua política WDAC deve permitir isso. Esse comportamento é diferente da validação WDAC para arquivos executáveis, o que não requer a instalação do certificado raiz.

O WDAC compartilha o log de eventos AppLocker – MSI e Script para todos os eventos de execução de script. Sempre que um host de script pergunta ao WDAC se um script deve ser permitido, um evento é registrado com a resposta WDAC retornada ao host de script. Para obter mais informações sobre eventos de imposição de script do WDAC, consulte Entendendo eventos de Controle de Aplicativo.

Observação

Quando um script é executado que não é permitido pela política, o WDAC gera um evento indicando que o script foi "bloqueado". No entanto, o comportamento real de imposição de script é tratado pelo host de script e pode não impedir completamente a execução do arquivo.

Também esteja ciente de que alguns hosts de script podem mudar a forma como se comportam, mesmo que uma política WDAC esteja apenas no modo de auditoria. Você deve examinar as informações específicas do host de script neste artigo e testar minuciosamente em seu ambiente para garantir que os scripts necessários para executar estejam funcionando corretamente.

Hosts de script iluminados que fazem parte do Windows

Windows PowerShell

Suas políticas do WDAC devem permitir que todos os scripts do PowerShell (.ps1), módulos (.psm1) e manifestos (.psd1) sejam executados com direitos de Linguagem Completa.

As políticas do WDAC também devem permitir módulos dependentes carregados por um módulo permitido e as funções do módulo devem ser exportadas explicitamente pelo nome quando o WDAC for imposto. Módulos que não especificam nenhuma função exportada (nenhuma lista de nomes de exportação) ainda são carregados, mas nenhuma função de módulo está acessível. Os módulos que usam curingas (*) em seu nome não serão carregados.

Qualquer script do PowerShell que não seja permitido pela política do WDAC ainda é executado, mas apenas no Modo de Linguagem Restrita.

O dot-sourcing do PowerShell não é recomendado. Em vez disso, os scripts devem usar módulos do PowerShell para fornecer funcionalidades comuns. Se um arquivo de script permitido tentar executar arquivos de script de origem de ponto, esses arquivos de script também devem passar a política.

O WDAC coloca o PowerShell interativo no Modo de Linguagem Restrita se qualquer política WDAC UMCI for imposta e qualquer política WDAC ativa habilitar a aplicação de script, mesmo que essa política esteja no modo de auditoria. Para executar o PowerShell interativo com direitos de Linguagem Completa, você deve desabilitar a aplicação de script para todas as políticas.

Para obter mais informações, confira Sobre modos de linguagem e modo de linguagem restrito.

VBscript, cscript e jscript

Suas políticas do WDAC devem permitir que todos os scripts sejam executados usando o Host de Script Baseado no Windows (wscript.exe) ou o Host de Script Baseado no Console da Microsoft (cscript.exe). Caso contrário, o script será bloqueado.

MICROSOFT HTML Application Host (MSHTA) e MSXML

Toda a execução de código usando MSHTA ou MSXML será bloqueada se qualquer política WDAC com a imposição de script estiver ativa, mesmo que essa política esteja no modo de auditoria.

Objetos COM

Além disso, o WDAC impõe uma lista de permissões restrita para objetos COM que sua política WDAC pode expandir ou restringir ainda mais. A aplicação do objeto COM não é afetada pela opção 11 Desabilitado:Script Enforcement. Para obter mais informações sobre como permitir ou negar objetos COM, consulte Permitir registro de objeto COM.

Scripts que não são controlados diretamente pelo WDAC

O WDAC não controla diretamente a execução de código por meio do Processador de Comando do Windows (cmd.exe), incluindo .bat/.cmd arquivos de script. No entanto, qualquer coisa que um script de lote tenta executar está sujeita ao controle WDAC. Se você não precisar executar cmd.exe, é recomendável bloqueá-la de imediato ou permitir apenas por exceção com base no processo de chamada. Consulte Usar uma política de Controle de Aplicativo Windows Defender para controlar plug-ins, suplementos e módulos específicos.

O WDAC não controla scripts executados por meio de um host de script não iluminado, como muitos mecanismos Java ou Python de terceiros. Se sua política WDAC permitir que um host de script não iluminado seja executado, você permitirá implicitamente que todos os scripts sejam executados por esse host. Para hosts de script que não são da Microsoft, você deve marcar com o fornecedor de software se seus hosts de script são esclarecidos para a política WDAC.