Usar o Controle de Aplicativos para proteger o PowerShell
O Windows 10 inclui duas tecnologias, Controle de Aplicativos para Empresas e AppLocker, que você pode usar para controlar aplicativos. Eles permitem que você crie uma experiência de bloqueio para ajudar a proteger seu ambiente do PowerShell.
O AppLocker se baseia nos recursos de controle de aplicativo das Políticas de Restrição de Software. O AppLocker permite que você crie regras para permitir ou negar aplicativos para usuários ou grupos específicos. Você identifica os aplicativos com base nas propriedades exclusivas dos arquivos.
O Controle de Aplicativos para Empresas, introduzido no Windows 10 como Windows Defender WDAC (Controle de Aplicativos), permite controlar quais drivers e aplicativos têm permissão para serem executados no Windows.
Detecção de política de bloqueio
O PowerShell detecta políticas de todo o sistema AppLocker e App Control for Business. O AppLocker não tem como consultar o status de imposição de política. Para detectar se uma política de controle de aplicativo em todo o sistema está sendo imposta pelo AppLocker, o PowerShell cria dois arquivos temporários e testa se eles podem ser executados. Os nomes de arquivo usam o seguinte formato de nome:
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.ps1
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.psm1
O App Control for Business é o sistema de controle de aplicativos preferido para Windows. O Controle de Aplicativos fornece APIs que permitem que você descubra a configuração da política. O Controle de Aplicativos foi projetado como um recurso de segurança de acordo com os critérios de manutenção definidos pelo MSRC (Microsoft Security Response Center). Para obter mais informações, consulte Controles de Aplicativos para Windows e Controle de Aplicativos e disponibilidade de recursos do AppLocker.
Observação
Ao escolher entre o Controle de Aplicativos ou o AppLocker, recomendamos que você implemente o controle de aplicativos usando o Controle de Aplicativos para Empresas em vez do AppLocker. A Microsoft não está mais investindo no AppLocker. Embora o AppLocker possa continuar a receber correções de segurança, ele não receberá aprimoramentos de recursos.
Imposição de política de Controle de Aplicativos
Quando o PowerShell é executado em uma política de Controle de Aplicativos, seu comportamento muda com base na política de segurança definida. Em uma política de Controle de Aplicativos, o PowerShell executa scripts e módulos confiáveis permitidos pela política no FullLanguage
modo. Todos os outros scripts e blocos de script não são confiáveis e são executados no modo ConstrainedLanguage
. O PowerShell gera erros quando os scripts não confiáveis tentam executar ações que não são permitidas no modo ConstrainedLanguage
. Pode ser difícil saber por que um script falhou ao ser executado corretamente no modo ConstrainedLanguage
.
Auditoria de política de Controle de Aplicativos
O PowerShell 7.4 adicionou um novo recurso para dar suporte a políticas de Controle de Aplicativos no modo de auditoria . No modo de auditoria, o PowerShell executa os scripts não confiáveis no modo ConstrainedLanguage
sem mostrar erros, mas registra as mensagens no log de eventos. As mensagens de log descrevem quais restrições seriam aplicadas se a política estivesse no Modo de imposição.
Histórico de alterações
O Windows PowerShell 5.1 foi a primeira versão do PowerShell a dar suporte ao Controle de Aplicativos. Os recursos de segurança do Controle de Aplicativos e do AppLocker melhoram a cada nova versão do PowerShell. As seções a seguir descrevem como esse suporte mudou em cada versão do PowerShell. As alterações são cumulativas, portanto, os recursos descritos nas versões posteriores incluem os de versões anteriores.
Alterações no PowerShell 7.4
No Windows, quando o PowerShell é executado em uma política de Controle de Aplicativos, seu comportamento muda com base na política de segurança definida. Em uma política de Controle de Aplicativos, o PowerShell executa scripts e módulos confiáveis permitidos pela política no FullLanguage
modo. Todos os outros scripts e blocos de script não são confiáveis e são executados no modo ConstrainedLanguage
. O PowerShell gera erros quando os scripts não confiáveis tentam executar ações não permitidas. É difícil saber por que um script falha ao ser executado corretamente no modo ConstrainedLanguage
.
O PowerShell 7.4 agora dá suporte a políticas de Controle de Aplicativos no modo de Auditoria . No modo de auditoria, o PowerShell executa os scripts não confiáveis no modo ConstrainedLanguage
, mas registra mensagens no log de eventos em vez de gerar erros. As mensagens de log descrevem quais restrições seriam aplicadas se a política estivesse no Modo de imposição.
Alterações no PowerShell 7.3
- O PowerShell 7.3 agora dá suporte à capacidade de bloquear ou permitir arquivos de script do PowerShell por meio da API de Controle de Aplicativos.
Alterações no PowerShell 7.2
Há um cenário incomum no AppLocker em que só se tem regras de Negação e o modo restrito não é usado para impor a política que permite ignorar a política de execução. No PowerShell 7.2, houve uma alteração para garantir que as regras do AppLocker tenham precedência sobre um comando
Set-ExecutionPolicy -ExecutionPolicy Bypass
.O PowerShell 7.2 não permite o uso do cmdlet
Add-Type
em uma sessão do PowerShell no modoNoLanguage
em uma máquina bloqueada.O PowerShell 7.2 agora não permite que scripts usem objetos COM nas condições de bloqueio do sistema AppLocker. Cmdlets que usam COM ou DCOM internamente não são afetados.
Leitura adicional
- Para obter mais informações sobre como o Controle de Aplicativos funciona e quais restrições ele impõe, consulte Como o Controle de Aplicativos funciona com o PowerShell.
- Para obter mais informações sobre como proteger o PowerShell com o Controle de Aplicativos, consulte Como usar o Controle de Aplicativos.