A Política de Restrição de Software foi descontinuada pela Microsoft (tecnologia que afirma efetivamente que o SRP não é suportado ), desde que o Windows 7 Enterprise / Ultimate introduziu o AppLocker.
Na prática, o SRP tem certas armadilhas, tanto para falsos negativos quanto para falsos positivos. O AppLocker tem a vantagem de ainda estar sendo mantido e suportado ativamente. Se o AppLocker for uma opção, poderá ser a mais barata - depois de contabilizar o tempo e os riscos assumidos. Também é possível que exista uma alternativa de terceiros adequada (mas essa pergunta não incluiu essa opção :).
Espero que você tenha uma compreensão perfeita das armadilhas do SRP antes de cair em qualquer uma delas </sarcasm>
. Alguns deles são descritos em um bom artigo de segurança da Vadims Podāns .
Armadilhas conhecidas
Por padrão, a execução da \Windows
pasta é permitida. Algumas subpastas podem ser gravadas pelos usuários. Applocker é o mesmo, mas pelo menos a documentação oficial menciona essa limitação .
Edição: "Para enumerar todas as pastas com acesso de gravação de usuários, você pode usar, por exemplo, o utilitário AccessEnum do pacote Sysinternals." (ou AccessChk ).
Tecnicamente, a documentação também evita a substituição das regras padrão . EDIT: Um documento da NSA fornece 16 exemplos de pastas para a lista negra com SRP , embora as regras do caminho do registro usem barras invertidas incorretamente, portanto, devem ser corrigidas (consulte o ponto nos caminhos do registro abaixo) e avisa sobre uma entrada comum na lista negra excessiva.
A pergunta óbvia é por que não estamos colocando na lista branca cuidadosamente os caminhos individuais abaixo \Windows
. (Incluindo o \Windows\*.exe
legado System32\*.exe
, etc). Não notei respostas para isso em nenhum lugar :(.
Usando variáveis de ambiente como %systemroot%
, o SRP pode ser ignorado pelos usuários limpando a variável de ambiente. EDIT: Estes não são usados nos padrões sugeridos. No entanto, eles podem ser tentadores de usar. Essa espingarda é corrigida no AppLocker, porque nunca analisa variáveis de ambiente.
- Os padrões sugeridos são negligenciados para permitir os dois diferentes
\Program Files
usados nas instalações modernas de 64 bits. Ao resolver isso usando os "caminhos do registro" mais seguros, há relatos de negações falsas em situações aleatórias, que podem ser facilmente perdidas nos testes. por exemplo, veja comentários sobre o SpiceWorks SRP howto . EDIT: isso é para aplicativos de 32 bits que leem caminhos relevantes do WOW6432Node do registro: a resolução é adicionar esses dois caminhos ao SRP para permitir que todos os programas funcionem em máquinas de 32 bits e de 64 bits como irrestrito, se iniciado a partir de um processo host x64 ou x86:%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86)%
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramW6432Dir%
- As extensões padrão negligenciam a proibição de scripts do PowerShell (* .PS1) suportados pelo Windows . (Veja o vídeo ). E o APPX também ... também de acordo com a tabela de comparação da Microsoft, o SRP não pode gerenciar "Aplicativos empacotados" no Windows 8, não tenho idéia do que isso significa.
- Regras de caminho de registro não deve ter barras imediatamente após o último sinal de porcentagem (apesar de ser incluído no da Microsoft própria base de regras para XP / Server 2003) e quaisquer barras invertidas devem ser substituídos com forwardslashes em ordem para a regra para o trabalho ( 1 / 2 / 3 )
- Das fontes que encontrei para o SRP, nenhuma colocou a lista completa acima para você. E só descobri o artigo de Vadims Podāns por acidente. O que mais está à espreita por aí?
- Muitas fontes recomendam simplesmente remover arquivos LNK da lista. (E atalhos da Web para evitar a quebra de favoritos ?!). De maneira perturbadora, nenhuma fonte parece discutir as vulnerabilidades do LNK ... ou fazer com que os intérpretes de script executem arquivos com uma extensão inesperada, por exemplo
wscript /e
... ou talvez com um código de shell suficiente em um parâmetro de script embutido ... etc.
- Se você tentar se comprometer ao permitir arquivos LNK na área de trabalho e deixar usuários com acesso de gravação à área de trabalho, agora eles poderão ignorar completamente sua política. Dica adorável de Vadims Podāns novamente. Observe que a explicação se aplica ao uso de qualquer extensão em uma regra de caminho. A Microsoft apresenta vários exemplos disso
*.Extension
, incluindo , sem aviso prévio. Portanto, você não pode confiar na documentação oficial e parece improvável que seja corrigido agora.
- [Potencial desvantagem do AppLocker]. Vadims Podāns relata que as entradas SRP usando unidades mapeadas não funcionam. O caminho UNC deve ser usado. Talvez eles se candidatassem ao acesso através de uma unidade mapeada? não é 100% claro. Aparentemente, o AppLocker era diferente: não funcionava com :(. "Por motivos desconhecidos, os caminhos UNC não funcionam no Applocker! Isso significa que, se o aplicativo estiver instalado na rede, você deverá criar regras de hash ou de editor . "
Abordagem pragmática
A lista de permissões de software é potencialmente uma defesa muito poderosa. Se ficarmos cínicos: é exatamente por isso que a Microsoft reprova as versões de preço mais baixo e inventa versões mais complexas.
Talvez nenhuma outra opção esteja disponível (inclua soluções de terceiros). Então, uma abordagem pragmática seria tentar configurar o SRP da maneira mais simples possível. Trate-o como uma camada extra de defesa, com furos conhecidos. Combinando as armadilhas acima:
- Comece pelas regras padrão (da era anterior ao Win7 :).
- Prefira não usar variáveis de ambiente, por exemplo
%systemroot%
.
- Adicione regras para garantir que ambos os
\Program Files\
diretórios sejam permitidos em máquinas modernas de 64 bits. Os "caminhos de registro" extras que você precisará adicionar \Program Files\
nos computadores de 64 bits são %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86)%
e %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramW6432Dir%
.
- Ao adicionar às regras do caminho do registro, deixe de fora a barra invertida imediatamente após o sinal de porcentagem e substitua outras barras invertidas
\
por barras invertidas /
(por exemplo %HKEY_LOCAL_MACHINE\Software\CompanyName\CustomApps%App/Bin/start.exe
)
- Adicione o PS1 à lista de extensões controladas.
- Entenda que uma configuração gerenciável de SRP não é segura contra um usuário determinado a derrotá-la. O objetivo é ajudar / incentivar os usuários a trabalharem dentro da política, para protegê-los contra ataques como "downloads drive-by".
- Permitir arquivos LNK. (De preferência, removendo-o da lista de extensões, não através de alguma regra de caminho).
- Veja acima :).
- Verifique se a pasta do script de logon é permitida. O documento da NSA sugere adicionar
\\%USERDNSDOMAIN%\Sysvol\
. (Veja o ponto 2, suspiro e depois o ponto 6).