Дополнительные сведения о безопасности сценариев PowerShell

Относится к Configuration Manager (Current Branch)

Администратор отвечает за проверку предлагаемого использования PowerShell и параметров PowerShell в своей среде. Ниже приведены некоторые полезные ресурсы, которые помогут администраторам ознакомиться с возможностями PowerShell и потенциальными рисками. Это руководство поможет снизить потенциальные риски и разрешить использование безопасных сценариев.

Безопасность сценариев PowerShell

Функция скриптов Configuration Manager позволяет визуально просматривать и утверждать скрипты. Другой администратор может запросить разрешение скрипта. Администраторы должны знать, что сценарии PowerShell могут содержать скрытые скрипты. Скрытый скрипт может быть вредоносным и трудно обнаружить с помощью визуальной проверки во время процесса утверждения скрипта. Визуальная проверка сценариев PowerShell и использование средств проверки для обнаружения подозрительных проблем со скриптами. Эти средства не всегда могут определить намерение автора PowerShell, поэтому они могут привлечь внимание к подозрительному скрипту. Однако эти средства потребуют от администратора определить, является ли это вредоносным или преднамеренным синтаксисом скрипта.

Рекомендации

  • Ознакомьтесь с рекомендациями по безопасности PowerShell, используя различные ссылки, указанные ниже.
  • Подписывание скриптов. Еще один способ обеспечения безопасности сценариев заключается в проверке и подписании скриптов перед их импортом для использования.
  • Не храните секреты (например, пароли) в сценариях PowerShell и узнайте больше о том, как обрабатывать секреты.

Общие сведения о безопасности PowerShell

Эта коллекция ссылок была выбрана, чтобы предоставить администраторам Configuration Manager отправную точку для изучения рекомендаций по безопасности сценариев PowerShell.

Защита от атак PowerShell

Защита от внедрения вредоносного кода

PowerShell — синяя команда, в которой обсуждается ведение журнала блоков глубоких сценариев, ведение журнала защищенных событий, интерфейс проверки вредоносных программ и API создания безопасного кода.

API для интерфейса проверки на наличие вредоносных программ

Безопасность параметров PowerShell

Передача параметров — это способ гибко использовать скрипты и отложить принятие решений до времени выполнения. Это также открывает другую поверхность риска.

В следующем списке содержатся рекомендации по предотвращению вредоносных параметров или внедрения скриптов.

  • Разрешить использование только предварительно определенных параметров.
  • Используйте функцию регулярных выражений для проверки допустимых параметров.
    • Пример. Если разрешен только определенный диапазон значений, используйте регулярное выражение для проверки только тех символов или значений, которые могут составлять диапазон.
    • Проверка параметров может помочь предотвратить попытки пользователей использовать определенные символы, которые можно экранировать, например кавычки. Кавычки могут быть нескольких типов, поэтому использовать регулярные выражения для проверки допустимости символов часто проще, чем пытаться определить все входные данные, которые не допускаются.
  • Используйте модуль PowerShell "Охотник за внедрением" в коллекция PowerShell.
    • Могут быть ложные срабатывания, поэтому ищите намерение, когда что-то помечено как подозрительное, чтобы определить, является ли это реальной проблемой или нет.
  • Майкрософт Visual Studio имеет анализатор скриптов, который может помочь в проверке синтаксиса PowerShell.

В следующем видео под названием "DEF CON 25 - Lee Holmes - Get $pwnd: Attacking Battle Hardened Windows Server" приведен обзор типов проблем, от которые можно защитить (особенно в разделе с 12:20 по 17:50):

Рекомендации по среде

В следующем списке содержатся общие рекомендации для администраторов PowerShell.

  • Разверните последнюю версию PowerShell, например версию 5 или более позднюю, которая встроена в Windows 10 или более поздней версии. Вы также можете развернуть Windows Management Framework.
  • Включите и соберите журналы PowerShell, при необходимости в том числе защищенные журналы событий. Включите эти журналы в рабочие процессы сигнатур, охоты и реагирования на инциденты.
  • Реализуйте just Enough Administration в высокоценных системах, чтобы исключить или уменьшить неограниченный административный доступ к этим системам.
  • Разверните Защитник Windows политики управления приложениями, чтобы разрешить предварительно утвержденным административным задачам использовать все возможности языка PowerShell, ограничивая интерактивное и неутвержденное использование ограниченным подмножеством языка PowerShell.
  • Разверните Windows 10 или более поздней версии, чтобы предоставить поставщику антивирусной программы полный доступ ко всему содержимому (включая содержимое, созданное или не замаскированное во время выполнения), обрабатываемое узлами сценариев Windows, включая PowerShell.