Политика ограничения программного обеспечения Software Restriction Policy (SRP) - Дополнительные правила

ОГЛАВЛЕНИЕ

Дополнительные правила

При настройке дополнительных правил (Additional Rules), необходимо определиться с методом, или с парой методов относительно того, как идентифицировать программное обеспечение. У нас есть 4 различных метода идентификации программного обеспечения:

1. HASH правилаHASH – это зашифрованный отпечаток, который остается вне зависимости от изменения названия файла и его расположения. Это особенно хорошо при использовании WL, но не так эффективно при использовании BL (причина этого частично описана примером с использованием инструмента под названием ProduKey в моей первой статье об SRP): MD5 или SHA-1 HASH позволяет четко идентифицировать двоичный файл программного приложения "ProduKey.exe", поэтому, если разрешить запускать лишь приложения с определенным значением HASH, позволит гарантировать, что можно запускать лишь определенную версию исполняемого файла. Однако, если запретить файл с определенным значением HASH запускаться, мы лишь введем такое ограничение для одной версии этого приложения и хитрые пользователи могут достаточно просто изменить файл, и он уже не будет подходить под ограничение. Слово "unknown" (неизвестен) очень важно в этом случае – оно является ключевым при выборе между белыми списками BL и черными списками WL – хотим ли мы разрешить пользователям запускать неизвестное программное обеспечение?

Если пользователь не сможет запустить старую версию определенного приложения, предположим, она нерабочая и приводит к нарушению работы системы, то использование правила "deny this HASH value" (запретить это значение HASH) – будет хорошим решением. Пожалуйста, помните, что у новой версии того же самого приложения будет новое значение HASH, которое необходимо будет разрешить или запретить.

2. Правила для сертификатовПравила для сертификатов используют подписанные хэши и обеспечивают очень мощную идентификацию, но если мы доверяем определенному сертификату, то мы доверяем всем программным продуктами, которые подписаны с использованием этого сертификата. Это может быть и хорошо и плохо. Это может быть хорошо, если мы, например, получаем приложение от стороннего производителя, которые подписал все необходимые файлы приложения (может быть, включая DLL), поэтому вместо того, чтобы делать новые правила для HASH, мы просто создаем одно правило, которое доверяет сертификату, и продолжаем работать. Но если я доверяю цифровому сертификату, который используется для подписи некоторых инструментов от Microsoft (или любого другого поставщика) – то теперь мои пользователи могут запускать все приложения, которые подписаны этим сертификатом… Hmm, проблема в том, чтобы узнать, что именно подписано этим сертификатом? Без таких знаний мы не знаем, что у нас разрешено. Вместо того, чтобы разрешить одно приложение, необходимое для наших пользователей, мы должны разрешить сотни приложений этого производителя запускаться на наших системах.

Тестирование правил для сертификатов можно осуществить с помощью этих инструментов: File Signing Tool (Signcode.exe) & Certificate Creation Tool (Makecert.exe).

3. Правила для путейПравила для путей – это самые распространенные и простые в использовании правила. Правила для путей позволяют разрешить или запретить запускать файл из определенного места (например, "C:\Scripts\Script.VBS"), имя файла (т.е. "Script.VBS"), папки (т.е. "C:\Scripts"), путь UNC (т.е."\\SERVER\SHARE\File.VBS") или путь в реестре (т.е. "%[Registry Hive]\[Registry Key Name]\[Value Name]%"). Пути могут использовать переменные окружения (т.e. "%WINDIR%") и шаблоны "?" = один символ (т.е. "\\SERVER??\Share\Script.VBS") и "*" = любое количество символов (т.е. "*.VBS").

Если вы используете правила для путей, необходимо учитывать следующее:

  • Если задан путь к какой-либо папке, то правило будет затрагивать также все исполняемые файлы в дочерних папках
  • Если у пользователя есть доступ на запись для папки, для которой задано Unrestricted (без ограничений), то пользователя может копировать любой файл в эту директорию и выполнить его оттуда. При проектировании необходимо учесть это, может быть, благодаря использованию ACL (Access Control List или списков контроля доступа) при использовании политики групп Group Policies
  • Если у пользователя есть доступ на запись к папке, для которой задано Unrestricted, то пользователь может переписать этот выполняемый другим, чтобы обмануть SRP
  • Если путь к папке включает в себя переменные окружения, например, %TEMP%, то даже пользователь с ограниченными правами может изменить переменную окружения, используя команду SET, на другой путь (SET TEMP=C:\MyFolder) – и после этого пользователь может контролировать это приложение.

Как писалось выше, пользователи могут попытаться переименовать или переместить запрещенные файлы – или переписать разрешенные файлы для того, чтобы обмануть SRP – именно поэтому правила для HASH или для сертификатов обычно рассматриваются в качестве лучшего выбора.

4. Интернет зонаЗоны безопасности Internet Explorer security zone можно использовать для контроля установки программного обеспечения, но это относиться лишь к установочным пакетам Windows Installer packages (.MSI), которые запущены из одной из Интернет зон по умолчанию. Эти правила редко используются.

Когда используется несколько правил, то они обрабатываются в порядке, о котором уже упоминалось выше, правило по умолчанию будет последним.