Поделиться через


Использование элемента управления приложениями для защиты PowerShell

Windows 10 включает две технологии, управление приложениями для бизнеса и AppLocker, которые можно использовать для управления приложениями. Они позволяют создавать интерфейс блокировки для защиты среды PowerShell.

AppLocker создан на основе функций управления приложениями в рамках политики ограниченного использования программного обеспечения. AppLocker позволяет создавать правила для разрешения или запрета приложений для определенных пользователей или групп. Вы определяете приложения на основе уникальных свойств файлов.

Управление приложениями для бизнеса, появившееся в Windows 10 в качестве элемента управления приложениями Защитника Windows (WDAC), позволяет управлять тем, какие драйверы и приложения разрешены запускать в Windows.

Обнаружение политики блокировки

PowerShell обнаруживает политики appLocker и управления приложениями для бизнес-системы. AppLocker не имеет способа запрашивать состояние применения политики. Чтобы определить, применяется ли политика управления приложениями системы в AppLocker, PowerShell создает два временных файла и тесты, если их можно выполнить. Имена файлов используют следующий формат имени:

  • $env:TEMP/__PSAppLockerTest__<random-8dot3-name>.ps1
  • $env:TEMP/__PSAppLockerTest__<random-8dot3-name>.psm1

Управление приложениями для бизнеса — это предпочтительная система управления приложениями для Windows. Элемент управления приложениями предоставляет API-интерфейсы, позволяющие обнаруживать конфигурацию политики. Управление приложениями предназначено как компонент безопасности в соответствии с критериями обслуживания, определенными Центром реагирования майкрософт (MSRC). Дополнительные сведения см. в разделе "Элементы управления приложениями" для Windows и управления приложениями и доступность функций AppLocker.

Примечание.

При выборе между элементом управления приложениями или AppLocker рекомендуется реализовать управление приложениями с помощью элемента управления приложениями для бизнеса, а не AppLocker. Корпорация Майкрософт больше не инвестирует в AppLocker. Хотя AppLocker может продолжать получать исправления безопасности, он не получит усовершенствований функций.

Применение политики управления приложениями

При запуске PowerShell в политике управления приложениями его поведение изменяется на основе определенной политики безопасности. В политике управления приложениями PowerShell запускает доверенные скрипты и модули, разрешенные политикой в FullLanguage режиме. Все остальные скрипты и блоки скриптов являются ненадежными и выполняются в ConstrainedLanguage режиме. PowerShell выдает ошибки, когда ненадежные скрипты пытаются выполнить действия, которые не разрешены в ConstrainedLanguage режиме. Трудно знать, почему скрипт не удалось выполнить правильно в ConstrainedLanguage режиме.

Аудит политики управления приложениями

PowerShell 7.4 добавила новую функцию для поддержки политик управления приложениями в режиме аудита . В режиме аудита PowerShell запускает ненадежные скрипты в ConstrainedLanguage режиме без ошибок, но записывает сообщения в журнал событий. Сообщения журнала описывают, какие ограничения будут применяться, если политика была в режиме принудительного применения .

Журнал изменений

Windows PowerShell 5.1 была первой версией PowerShell для поддержки управления приложениями. Функции безопасности управления приложениями и AppLocker улучшаются с каждым новым выпуском PowerShell. В следующих разделах описывается, как эта поддержка изменилась в каждой версии PowerShell. Изменения являются накопительными, поэтому функции, описанные в более поздних версиях, включают эти функции из более ранних версий.

Изменения в PowerShell 7.4

В Windows, когда PowerShell выполняется в политике управления приложениями, его поведение изменяется на основе определенной политики безопасности. В политике управления приложениями PowerShell запускает доверенные скрипты и модули, разрешенные политикой в FullLanguage режиме. Все остальные скрипты и блоки скриптов являются ненадежными и выполняются в ConstrainedLanguage режиме. PowerShell выдает ошибки, когда ненадежные скрипты пытаются выполнить запрещенные действия. Трудно знать, почему скрипт не работает правильно в ConstrainedLanguage режиме.

PowerShell 7.4 теперь поддерживает политики управления приложениями в режиме аудита . В режиме аудита PowerShell запускает ненадежные скрипты в ConstrainedLanguage режиме, но записывает сообщения в журнал событий вместо возникновения ошибок. Сообщения журнала описывают, какие ограничения будут применяться, если политика была в режиме принудительного применения .

Изменения в PowerShell 7.3

  • PowerShell 7.3 теперь поддерживает возможность блокировать или разрешать файлы скриптов PowerShell через API управления приложениями.

Изменения в PowerShell 7.2

  • В AppLocker существовал сценарий с угловой ситуацией, в котором у вас есть только правила запрета и ограниченный режим не используется для принудительного применения политики, которая позволяет обойти политику выполнения. Начиная с PowerShell 7.2, внесено изменение, благодаря которому правила AppLocker имеют приоритет над командой Set-ExecutionPolicy -ExecutionPolicy Bypass.

  • PowerShell 7.2 теперь запрещает использование командлета Add-Type в сеансе PowerShell в NoLanguage режиме на заблокированном компьютере.

  • PowerShell 7.2 теперь запрещает использование COM-объектов в условиях блокировки системы AppLocker. Командлеты, использующие COM или DCOM, не затрагиваются.

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