Usar o Controle de Aplicativo para proteger o PowerShell
O Windows 10 inclui duas tecnologias, App Control for Business 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 baseia-se nos recursos de controle de aplicativos 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 Aplicativo para Empresas, introduzido no Windows 10 como WDAC (Controle de Aplicativo do Windows Defender), permite controlar quais drivers e aplicativos podem ser executados no Windows.
Deteção de política de bloqueio
O PowerShell deteta as políticas do AppLocker e do App Control for Business em todo o sistema. O AppLocker não tem como consultar o status de imposição da política. Para detetar 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 dos arquivos 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 Aplicativo fornece APIs que permitem descobrir a configuração da política. O Controle de Aplicativo foi projetado como um recurso de segurança de acordo com os critérios de manutenção definidos pelo Microsoft Security Response Center (MSRC). Para obter mais informações, consulte Controles de aplicativo para Windows e Controle de aplicativos e Disponibilidade de recursos do AppLocker.
Nota
Ao escolher entre o Controle de Aplicativo ou o AppLocker, recomendamos que você implemente o controle de aplicativo usando o Controle de Aplicativo 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.
Aplicação da política de Controlo de Aplicações
Quando o PowerShell é executado sob uma política de Controle de Aplicativo, seu comportamento muda com base na política de segurança definida. Em uma política de Controle de Aplicativo, 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 ConstrainedLanguage
modo. O PowerShell gera erros quando os scripts não confiáveis tentam executar ações que não são permitidas no ConstrainedLanguage
modo. Pode ser difícil saber por que um script não foi executado corretamente no ConstrainedLanguage
modo.
Auditoria da política de Controlo de Aplicações
O PowerShell 7.4 adicionou um novo recurso para dar suporte às políticas de Controle de Aplicativo no modo de Auditoria . No modo de auditoria, o PowerShell executa os scripts não confiáveis no modo sem erros, mas registra as mensagens no ConstrainedLanguage
log de eventos. As mensagens de log descrevem quais restrições seriam aplicadas se a política estivesse no modo Enforce .
Histórico de mudanças
O Windows PowerShell 5.1 foi a primeira versão do PowerShell a oferecer suporte ao Controle de Aplicativos. Os recursos de segurança do Controle de Aplicativo e do AppLocker melhoram a cada nova versão do PowerShell. As seções a seguir descrevem como esse suporte foi alterado 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 sob uma política de Controle de Aplicativo, seu comportamento muda com base na diretiva de segurança definida. Em uma política de Controle de Aplicativo, 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 ConstrainedLanguage
modo. O PowerShell lança erros quando os scripts não confiáveis tentam executar ações não permitidas. É difícil saber por que um script não é executado corretamente no ConstrainedLanguage
modo.
O PowerShell 7.4 agora oferece suporte a políticas de Controle de Aplicativo no modo de Auditoria . No modo de auditoria, o PowerShell executa os scripts não confiáveis no modo, mas registra as mensagens no ConstrainedLanguage
log de eventos em vez de lançar erros. As mensagens de log descrevem quais restrições seriam aplicadas se a política estivesse no modo Enforce .
Alterações no PowerShell 7.3
- O PowerShell 7.3 agora oferece suporte à capacidade de bloquear ou permitir arquivos de script do PowerShell por meio da API de Controle de Aplicativo.
Alterações no PowerShell 7.2
Havia um cenário de caso de esquina no AppLocker em que você só 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. A partir do PowerShell 7.2, uma alteração foi feita para garantir que as regras do AppLocker tenham precedência sobre um
Set-ExecutionPolicy -ExecutionPolicy Bypass
comando.O PowerShell 7.2 agora não permite o uso do cmdlet em uma
NoLanguage
sessão doAdd-Type
PowerShell de modo em uma máquina bloqueada.O PowerShell 7.2 agora não permite que scripts usem objetos COM em condições de bloqueio do sistema do AppLocker. Os cmdlets que usam COM ou DCOM internamente não são afetados.
Leitura adicional
- Para obter mais informações sobre como o Controle de Aplicativo funciona e quais restrições ele impõe, consulte Como o Controle de Aplicativo funciona com o PowerShell.
- Para obter mais informações sobre como proteger o PowerShell com o Controle de Aplicativo, consulte Como usar o Controle de Aplicativo.