Estou tentando colocar algumas medidas de prevenção de malware adicionais, limitando a execução de * .exe em vários locais - em particular, as pastas temporárias às quais várias ferramentas de compactação são descompactadas, quando um usuário pode escolher para abrir um executável diretamente de um arquivo Zip.
No artigo do TechNet, link :
You can use environment variables in a path rule. Since path rules are evaluated in the client environment, the ability to use environment variables (for example, %Windir%) allows a rule to adapt to a particular user’s environment.
...
A path rule can incorporate the ? and * wildcards, allowing rules such as "*.vbs" to match all Visual Basic Script files. The following examples illustrate the use of wildcards:
- “\DC-??\login$” matches \DC-01\login$, \DC-02\login$
- “*\Windows” matches C:\Windows, D:\Windows, E:\Windows
- “c:\win*” matches c:\winnt, c:\windows, c:\windir
Eu tenho essas regras de caminho (que apliquei individualmente e em várias combinações):
-
%APPDATA%\*.exe
-
%APPDATA%\*\*.exe
-
%LOCALAPPDATA%\*.exe
-
%LOCALAPPDATA%\*\*.exe
-
%TEMP%\*.exe
-
%TEMP%z*\*.exe
-
%TEMP%\wz*\*.exe
-
%TEMP%\Rar*\*.exe
... que teoricamente deve representar executáveis diretamente na pasta temporária do usuário, e executáveis em pastas temporárias nomeadas da maneira que o Winzip, WinRAR e 7-zip podem nomear suas pastas temporárias (por exemplo, %TEMP%zSF20.tmp\the_file.exe
).
Os trabalhos %APPDATA%
e %LOCALAPPDATA%
funcionam; os %TEMP%
não. Os executáveis aparecem para serem bloqueados em% TEMP%, mas isso ocorre apenas porque, em uma configuração padrão, eles também correspondem à regra %LOCALAPPDATA%\*\*.exe
(Por padrão, Temp está em AppData \ Local).
Eu tinha pensado originalmente que isso era um problema com curingas em nomes de pastas parciais, mas parece que isso é específico para o uso da variável% TEMP% (daí a reescrita).
As duas soluções que confirmei (e por que prefiro não usá-las) são:
-
usando %LOCALAPPDATA%\Temp
no lugar de %TEMP%
- A rigor, isso não está correto, pois a variável
%TEMP%
pode ser definida para diferir de %LOCALAPPDATA%\Temp
.
-
usando %HKEY_CURRENT_USER\Environment\TEMP%
- As regras de caminho com base no registro parecem se aplicar a todas as subpastas - preferiria um toque um pouco mais leve (para que eu não precise usar a lista de permissões tudo mais)
- As regras baseadas em registro parecem ser limitadas, de modo que você não pode ter nada mais específico, por exemplo, %código%
- Descobri que
%HKEY_CURRENT_USER\Environment\TEMP%z*\*.exe
será fechado (o %HKEY_CURRENT_USER\Environment\TEMP%7z*
entre a variável e a subpasta não deve ser especificado, e você não pode especificar uma máscara de nome de arquivo posteriormente)
- Também é tecnicamente incorreto, já que este local do registro contém apenas o valor como deveria estar no início de um processo e não o que pode ser alterado para durante o curso desse processo - por exemplo não se aplicaria se você abrisse um Prompt de Comando, emitiu
\
e executou o programa a partir do prompt).
(Para o que vale a pena, tentei configurar o SRP nas seções Computador e Usuário do GPO, de forma independente e simultânea, caso um substitua o outro ou SET TEMP=C:\
foi resolvido de maneira diferente no Computador e no Usuário nível.)
O que há de tão especial sobre a variável %TEMP%
que ela não aplicaria aqui, enquanto algo como %TEMP%
seria?
Atualização:
Parece que a limitação é especificamente com a variável de ambiente %LOCALAPPDATA%\Temp\wz*\*.exe
. Eu editei a questão como tal.