Compartilhar via


Imposição de scripts com o Controlo de Aplicações do Windows Defender (WDAC)

Observação

Algumas capacidades do Controlo de Aplicações do Windows Defender só estão disponíveis em versões específicas do Windows. Saiba mais sobre a disponibilidade das funcionalidades do Controlo de Aplicações.

Importante

Opção 11 Desativada:A Imposição de Script não é suportada no Windows Server 2016 ou no Windows 10 1607 LTSB e não deve ser utilizada nessas plataformas. Se o fizer, resultará em comportamentos de imposição de script inesperados.

Descrição geral da imposição de scripts

Por predefinição, a imposição de scripts está ativada para todas as políticas WDAC, a menos que a opção 11 Desativada:Imposição de Script esteja definida na política. A imposição do script WDAC envolve um handshake entre um anfitrião de scripts otimizado, como o PowerShell e o WDAC. No entanto, o anfitrião do script processa o comportamento de imposição real. Alguns anfitriões de script, como o Anfitrião de Aplicações HTML da Microsoft (mshta.exe), bloqueiam toda a execução de código se alguma política umci do WDAC estiver ativa. A maioria dos anfitriões de scripts pergunta primeiro ao WDAC se um script deve ser autorizado a ser executado com base nas políticas WDAC atualmente ativas. Em seguida, o anfitrião do script bloqueia, permite ou altera a forma como o script é executado para proteger melhor o utilizador e o dispositivo.

A validação de scripts assinados é feita com a API WinVerifyTrust. Para passar a validação, a raiz de assinatura tem de estar presente no arquivo de raiz fidedigna no dispositivo e a política WDAC tem de permitir. Este comportamento é diferente da validação do WDAC para ficheiros executáveis, o que não requer a instalação do certificado de raiz.

O WDAC partilha o registo de eventos AppLocker – MSI e Script para todos os eventos de imposição de scripts. Sempre que um anfitrião de scripts pergunta ao WDAC se um script deve ser permitido, é registado um evento com a resposta WDAC devolvida ao anfitrião do script. Para obter mais informações sobre eventos de imposição de scripts WDAC, veja Compreender os eventos do Controlo de Aplicações.

Observação

Quando um script é executado que não é permitido pela política, o WDAC gera um evento que indica que o script foi "bloqueado". No entanto, o comportamento real de imposição do script é processado pelo anfitrião do script e pode não bloquear completamente a execução do ficheiro.

Tenha também em atenção que alguns anfitriões de script podem alterar a forma como se comportam, mesmo que uma política WDAC esteja apenas no modo de auditoria. Deve rever as informações específicas do anfitrião de scripts neste artigo e testar cuidadosamente no seu ambiente para garantir que os scripts que precisa de executar estão a funcionar corretamente.

Anfitriões de scripts otimizados que fazem parte do Windows

Windows PowerShell

As políticas WDAC têm de permitir que todos os scripts do PowerShell (.ps1), módulos (.psm1) e manifestos (.psd1) sejam executados com direitos de Idioma Completo.

As políticas WDAC também têm de permitir quaisquer módulos dependentes carregados por um módulo permitido e as funções do módulo têm de ser exportadas explicitamente pelo nome quando o WDAC é imposto. Os módulos que não especificam quaisquer funções exportadas (sem lista de nomes de exportação) continuam a ser carregados, mas não estão acessíveis funções de módulo. Os módulos que utilizam carateres universais (*) no respetivo nome não serão carregados.

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

O dot-sourcing do PowerShell não é recomendado. Em vez disso, os scripts devem utilizar módulos do PowerShell para fornecer funcionalidades comuns. Se um ficheiro de script permitido tentar executar ficheiros de script de origem de pontos, esses ficheiros de script também têm de passar na política.

O WDAC coloca o PowerShell interativo no Modo de Idioma Restrito se alguma política WDAC UMCI for imposta e qualquer política WDAC ativa ativar a imposição de scripts, mesmo que essa política esteja no modo de auditoria. Para executar o PowerShell interativo com direitos de Idioma Completo, tem de desativar a imposição de scripts para todas as políticas.

Para obter mais informações, veja About Language Modes and Constrained Language Mode ( Acerca dos Modos de Idioma e do Modo de Idioma Restrito).

VBscript, cscript e jscript

As políticas WDAC têm de permitir a execução de todos os scripts com o Anfitrião de Script Baseado no Windows (wscript.exe) ou o Anfitrião de Script Baseado na Consola da Microsoft (cscript.exe). Caso contrário, o script é bloqueado.

Microsoft HTML Application Host (MSHTA) e MSXML

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

Objetos COM

O WDAC também impõe uma lista de permissões restrita para objetos COM que a sua política WDAC pode expandir ou restringir ainda mais. A imposição de objetos COM não é afetada pela opção 11 Desativado:Imposição do Script. Para obter mais informações sobre como permitir ou negar objetos COM, veja Permitir o registo de objetos COM.

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

O WDAC não controla diretamente a execução de código através do Processador de Comandos do Windows (cmd.exe), incluindo .batficheiros de script /.cmd. No entanto, tudo o que um script de lote tentar executar está sujeito ao controlo WDAC. Se não precisar de executar cmd.exe, recomenda-se bloqueá-lo imediatamente ou permitir apenas por exceção com base no processo de chamada. Veja Utilizar uma política de Controlo de Aplicações do Windows Defender para controlar plug-ins, suplementos e módulos específicos.

O WDAC não controla os scripts executados através de um anfitrião de scripts não iluminado, como muitos motores Java ou Python de terceiros. Se a sua política WDAC permitir a execução de um anfitrião de script não esclarido, permite implicitamente que todos os scripts sejam executados nesse anfitrião. Para anfitriões de scripts que não sejam da Microsoft, deve verificar junto do fornecedor de software se os anfitriões de script estão otimizados para a política WDAC.