Назад | Перейти на главную страницу

Политика ограничений программного обеспечения Windows GPO не работает с переменной% TEMP%

Я пытаюсь ввести некоторые скудные дополнительные меры по предотвращению вредоносных программ, ограничив выполнение * .exe в нескольких местах - в частности, временные папки, в которые распаковываются различные инструменты сжатия, когда пользователь может открыть исполняемый файл прямо из Zip-файла.

Из статьи TechNet, http://technet.microsoft.com/nl-nl/library/cc786941%28v=ws.10%29.aspx:

Вы можете использовать переменные среды в правиле пути. Поскольку правила пути оцениваются в клиентской среде, возможность использовать переменные среды (например,% Windir%) позволяет правилу адаптироваться к среде конкретного пользователя.

...

Правило пути может включать? и * подстановочные знаки, позволяющие таким правилам, как «* .vbs» соответствовать всем файлам сценариев Visual Basic. Следующие примеры иллюстрируют использование подстановочных знаков:

  • «\ DC - ?? \ login $» соответствует \ DC-01 \ login $, \ DC-02 \ login $
  • «* \ Windows» соответствует C: \ Windows, D: \ Windows, E: \ Windows
  • «C: \ win *» соответствует c: \ winnt, c: \ windows, c: \ windir

У меня есть эти правила пути (которые я применял как по отдельности, так и в различных комбинациях):

... который теоретически должен представляют исполняемые файлы непосредственно во временной папке пользователя, а исполняемые файлы в временных папках, названные так, как Winzip, WinRAR и 7-zip могут называть свои временные папки (например, %TEMP%\7zSF20.tmp\the_file.exe).

В %APPDATA% и %LOCALAPPDATA% одни работают; в %TEMP% другие не делают. Исполняемые файлы появиться быть заблокированным в% TEMP%, но это только потому, что в настройках по умолчанию они также соответствуют %LOCALAPPDATA%\*\*.exe правило (по умолчанию Temp находится в AppData \ Local).

Первоначально я думал, что это проблема с подстановочными знаками в частичных именах папок, но, похоже, это характерно для использования переменной% TEMP% (отсюда и перезапись).

Я подтвердил два обходных пути (и почему я бы предпочел не использовать их):

  1. с помощью %LOCALAPPDATA%\Temp на месте %TEMP%

    • Строго говоря, это неправильно, так как %TEMP% переменная может отличаться от %LOCALAPPDATA%\Temp.
  2. с помощью %HKEY_CURRENT_USER\Environment\TEMP%

    • Правила пути на основе реестра, похоже, применяются ко всем подпапкам - я бы предпочел немного более легкий подход (так что мне не нужно обходить белый список все еще)
    • Правила, основанные на реестре, кажутся ограниченными, поэтому у вас не может быть ничего более конкретного, например %HKEY_CURRENT_USER\Environment\TEMP%\7z*\*.exe
      • С тех пор я обнаружил %HKEY_CURRENT_USER\Environment\TEMP%7z* приблизится ( \ между переменной и подпапкой указывать не следует, и после этого вы не можете указать маску имени файла)
    • Это также технически неверно, так как это расположение реестра содержит только значение, которое должно быть в Начало процесса, а не то, на что он может быть изменен в течении курса этого процесса - например, это не применимо, если вы откроете командную строку, выдав SET TEMP=C:\ и запустил программу из командной строки).

(Как бы то ни было, я попытался настроить SRP как в разделе «Компьютер», так и в разделе «Пользователь» объекта групповой политики, как независимо, так и одновременно, на случай, если один перезаписал другой или %TEMP% было решено по-разному на уровне компьютера и пользователя.)

Что такого особенного в %TEMP% переменная, которая здесь не применяется, тогда как что-то вроде %LOCALAPPDATA%\Temp\\wz*\\*.exe бы?


Обновить:

Похоже, что ограничение связано именно с %TEMP% переменная окружения. Я отредактировал вопрос как таковой.

Программа может увидеть другое содержимое% TEMP%, чем вы, когда вы проверяете его в cmd.exe или command.com. Иногда они не совпадают.

Но использование переменных среды в политике ограниченного использования программ в любом случае - плохая идея, потому что вредоносное ПО может изменить переменную.

Пожалуйста, попробуйте это:

%HKEY_CURRENT_USER\Environment\TEMP%7z*/*.exe

Если вы опускаете обратную косую черту (\) после закрытия%, а затем используете прямую косую черту (/) для подкаталогов

Я нашел эту ссылку: https://www.sysadmins.lv/blog-en/software-restriction-policies-rule-creation.aspx

Я использую это, чтобы заблокировать exe-файлы из% TMP% и% TMP% * \, это выглядит странно, но он работает здесь на клиентах Win7 pro, UAC включен, нет административных разрешений для текущего пользователя.

%HKEY_CURRENT_USER\Environment\TEMP%*exe
%TEMP%\*\*.exe

Я пытался использовать %TEMP%\Rar*\*.exe и успешно заблокирован запуск из %TEMP%\Rar15\putty.exe и из %TEMP%\Rar14.tmp\putty.exe

Не думаю, что в% TEMP% может быть что-то особенное. Я дважды проверил, путь к ключу реестра, который я использую, не влияет %TEMP%\Rar*\*.exe