Considerações de segurança para o AppLocker

Este artigo para o profissional de TI descreve as considerações de segurança que você precisa abordar ao implementar o AppLocker.

O AppLocker ajuda a restringir o acesso ao software para usuários específicos ou grupos de usuários. A seguir estão as considerações de segurança para o AppLocker:

O AppLocker é implantado em uma empresa e administrado centralmente por esses recursos de TI com credenciais confiáveis. Esse sistema faz com que a criação e implantação de políticas estejam em conformidade com processos de implantação de políticas semelhantes e restrições de segurança.

As políticas do AppLocker são distribuídas por processos conhecidos e por meios conhecidos dentro do domínio por meio da Política de Grupo. Mas as políticas do AppLocker também podem ser definidas em computadores individuais se a pessoa tiver privilégios de administrador, e essas políticas podem ser contrárias à política de segurança escrita da organização. As configurações do modo de imposição das políticas do AppLocker distribuídas por meio de objetos de Política de Grupo (GPO) têm precedência sobre as políticas locais. No entanto, como as regras do AppLocker são aditivas, as regras de uma política local são mescladas com as regras de quaisquer GPOs aplicadas ao computador.

A Microsoft não fornece uma maneira de desenvolver extensões para o AppLocker. As interfaces não são públicas. Um usuário com credenciais de administrador pode automatizar alguns processos do AppLocker usando cmdlets do Windows PowerShell. Para obter informações sobre os cmdlets do Windows PowerShell para AppLocker, consulte os cmdlets do AppLocker no Windows PowerShell.

O AppLocker é executado no contexto de Administrator ou LocalSystem, que é o conjunto de privilégios mais alto. Esse contexto de segurança tem o potencial de uso indevido. Como as regras do AppLocker são aditivas, todas as regras de política local são aplicadas a esse computador juntamente com quaisquer GPOs. Se o computador local não tiver ingressado em um domínio ou não for controlado pela Política de Grupo, uma pessoa com credenciais administrativas poderá controlar totalmente a política do AppLocker.

As regras de caminho do AppLocker não substituem as ACLs (listas de controle de acesso). Você deve continuar a usar ACLs para restringir o acesso a arquivos de acordo com sua política de segurança.

Você não pode usar o AppLocker para impedir que o código seja executado fora do subsistema Win32. Por exemplo, ele não pode controlar o código em execução no Subsistema do Windows para Linux. Se for um requisito impedir que os aplicativos sejam executados no subsistema do Linux, você deverá desabilitar o subsistema. Ou então, você pode bloquear o Subsistema do Windows para Linux bloqueando LxssManager.dll.

O AppLocker só pode controlar VBScript, JScript, arquivos .bat, arquivos .cmd e scripts Windows PowerShell. Ele não controla todo o código interpretado que é executado em um processo host, por exemplo, scripts Perl e macros. O código interpretado é uma forma de código executável que é executada em um processo host. Por exemplo, arquivos em lotes do Windows (*.bat) são executados dentro do contexto do Host de Comando do Windows (cmd.exe). Para controlar o código interpretado usando o AppLocker, o processo de host deve chamar o AppLocker antes de executar o código interpretado e, em seguida, impor a decisão retornada pelo AppLocker. Nem todos os processos de host chamam o AppLocker e, portanto, o AppLocker não pode controlar todos os tipos de código interpretado, como macros do Microsoft Office.

Importante

Você deve definir as configurações de segurança apropriadas desses processos de host se precisar permitir que eles sejam executados. Por exemplo, defina as configurações de segurança no Microsoft Office para garantir que apenas macros assinadas e confiáveis sejam carregadas.

As regras do AppLocker permitem ou bloqueiam a execução do arquivo do aplicativo. O AppLocker não controla o comportamento dos aplicativos depois que eles são iniciados. Os aplicativos podem conter sinalizadores passados para funções que sinalizam ao AppLocker para contornar as regras e permitir que outro .exe ou .dll seja carregado. Na prática, um aplicativo permitido poderia usar esses sinalizadores para ignorar regras do AppLocker e iniciar processos filho. Você deve examinar minuciosamente cada aplicativo antes de permitir que eles sejam executados usando regras do AppLocker.

Observação

Dois sinalizadores que ilustram essa condição são SANDBOX_INERT, que pode ser passado para CreateRestrictedToken, e LOAD_IGNORE_CODE_AUTHZ_LEVEL, que pode ser passado para LoadLibraryEx. Ambos os sinalizadores sinalizam ao AppLocker para contornar as regras e permitir que um .exe ou .dll filho seja carregado.