- Вопрос или проблема
- Краткий ответ
- Предотвращение запуска PowerShell не увеличивает безопасность
- Политика выполнения PowerShell – это функция безопасности, а не граница безопасности
- Ответ или решение
- Ответ на вопрос о блокировке PowerShell с помощью GPO
- Общая информация
- Почему блокировка PowerShell может быть неэффективной
- Рекомендации по ограничению доступа к PowerShell
- Заключение
Вопрос или проблема
Мой руководитель сказал мне, что они хотят, чтобы PowerShell выполнялся только на серверах с учетной записью администратора, поэтому я создал групповую политику (GPO), которая блокирует PowerShell.exe и PowerShell_ise.exe с помощью функции “Не запускать указанные приложения Windows”.
Несколько дней назад я обнаружил, что я все еще могу запускать PowerShell через cmd, просто выполнив powershell -c или просто powershell, и я не блокирую cmd, потому что мне это нужно для поддержки и административных задач на рабочих станциях.
После небольшого исследования я попытался установить хеш SRP для блокировки PowerShell и ise. Дело в том, что это не применяется, хотя делегация хорошая, OU в порядке, права групп в порядке. Я имею в виду, что я вижу, что пользователь получает GPO и находится в одной из групп, которые читают и применяют GPO.
Я пробовал разные OU, группы, аккаунты, типы SRP, но ничего не помогает.
Есть ли у вас какие-либо советы для этой ситуации? Заранее благодарен
Правка: я не хочу блокировать ядро PowerShell, потому что некоторые процессы или задачи не смогут выполниться. Поэтому идея заключается в том, чтобы заблокировать доступ к PowerShell для определенных пользователей (или компьютеров).
Краткий ответ
Краткий ответ на ваш вопрос – не пытаться предотвратить пользователей от открытия PowerShell. Почему? PowerShell – это программа, а не граница безопасности. Для получения подробной информации продолжайте читать.
Предотвращение запуска PowerShell не увеличивает безопасность
Блокировка PowerShell или предотвращение выполнения сценариев PowerShell не увеличивает безопасность. В Windows границей безопасности является учетная запись пользователя, а не программы, которые запускает пользователь. Тот факт, что пользователь может открыть PowerShell или запускать сценарии PowerShell, не позволяет ему обойти какие-либо средства контроля безопасности, которые присутствуют для его учетной записи.
Политика выполнения PowerShell – это функция безопасности, а не граница безопасности
Политика выполнения PowerShell – это широко misunderstood функция, которую часто (зло) используют, чтобы попытаться остановить пользователей от выполнения сценариев PowerShell в ошибочном убеждении, что это как-то увеличивает безопасность.
Политика выполнения PowerShell – это функционал безопасности, который был разработан для предотвращения случайного выполнения неподписанных сценариев. Брюс Пейтт, один из основных разработчиков PowerShell, говорит точно это в принятом ответе на этот вопрос на StackOverflow.
ExecutionPolicy
не является границей безопасности. Как кто-то заметил в комментарии1, это функция безопасности. Думайте о ней как о ремне безопасности, а не о замке двери. Но ремни безопасности уменьшают риск, поэтому лучше использовать их, чем не использовать.ExecutionPolicy
снижает риск случайного выполнения вредоносного кода. Рекомендуемая минимальная политика –RemoteSigned
.
1“Кто-то”, о ком он говорил, это я сам.
Ответ или решение
Ответ на вопрос о блокировке PowerShell с помощью GPO
Общая информация
Блокировка PowerShell с помощью групповых политик (GPO) – задача, требующая тщательного подхода. Однако, стоит отметить, что простое ограничение доступа к программе PowerShell не всегда повышает безопасность. Защита ваших систем должна основываться на контроле доступа и управлении привилегиями пользователей. Давайте рассмотрим, как правильно подойти к этой задаче, предоставив конкретные шаги для решения вашей ситуации.
Почему блокировка PowerShell может быть неэффективной
PowerShell является мощным инструментом управления в Windows, и его блокировка не предотвратит злоумышленников от использования альтернативных методов, таких как запуск через cmd
. Блокировка программы не является достаточным средством для защиты вашей среды, так как главное значение имеет учетная запись пользователя, а не конкретные приложения.
Рекомендации по ограничению доступа к PowerShell
-
Управление доступом через группы безопасности:
- Создайте группу безопасности для администраторов, которым разрешен доступ к PowerShell.
- Убедитесь, что только пользователи, входящие в эту группу, имеют необходимые права для запуска PowerShell. Все остальные должны быть исключены из этой группы.
-
Используйте политики выполнения PowerShell:
- Вместо полного блокирования PowerShell, настройте политику выполнения (
Execution Policy
) на уровне OU. Например, установитеRemoteSigned
, что позволит запускать только подписанные скрипты. - Это может снизить риск случайного запуска вредоносного кода.
- Вместо полного блокирования PowerShell, настройте политику выполнения (
-
Фильтрация процессов с помощью Software Restriction Policies (SRP):
- Если вы хотите больше контролировать доступ к PowerShell, примените SRP, чтобы разрешить или запрещать выполнение конкретных версий PowerShell только для определенных групп пользователей.
- Настройте правила хеширования для
powershell.exe
иpowershell_ise.exe
, чтобы ограничить доступ.
-
Аудит и мониторинг:
- Включите аудит использования PowerShell, чтобы отслеживать, кто запускает его и какие команды выполняет. Это поможет вам следить за потенциальными злоупотреблениями.
- Используйте решения для мониторинга и журналирования, такие как Windows Event Forwarding или сторонние инструменты SIEM, для анализа и своевременного обнаружения необычной активности.
-
Обучение пользователей:
- Проведите обучение для пользователей о важности безопасного использования PowerShell и последствиях запуска потенциально вредоносных скриптов.
Заключение
Учитывая вышеизложенные рекомендации, вы сможете более эффективно контролировать доступ к PowerShell и минимизировать возможные риски. Помните, что безопасность – это процесс, а не состояние, и он должен включать в себя использование комплексного подхода, включая управление пользователями, контроль доступа и мониторинг.
Если у вас дальше возникают сложности с настройкой GPO или SRP, может быть полезно обратиться к IT-специалисту с экспертизой в области управления политиками безопасности в Windows.