В этом разделе описывается, как безопасность сценария в командной консоли Exchange помогает предотвратить выполнение вредоносных или других нежелательных сценариев в организации и какие параметры доступны для изменения безопасности сценария в соответствии с требованиями организации.
Как правило, встречаются сценарии трех разных источников: собственные, созданные другим пользователем в организации или авторами, не входящими в организацию, например, из Интернета. Собственному сценарию разрешается выполнять то, для чего он предназначен, его автором. Если этот сценарий используется совместно с другими администраторами в организации, они также могут доверять этому сценарию, но только потому, что ему доверяет автор.
Если сценарии поступили из других источников, например, из Интернета, безопасность сценария неизвестна. Единственным способом убедиться в безопасности сценариев из источников, неизвестных организации, заключается в прямой проверке кода сценария и его испытании в изолированной лабораторной среде. Этот процесс может оказаться трудоемким и занять много времени. Рекомендуется предотвращать непреднамеренное выполнение вредоносного кода.
Командная консоль Exchange поддерживает рекомендуемое использование цифровых подписей для проверки того, что сценарий не подделан после его создания. Дополнительные сведения о цифровых подписях см. ниже в разделе «Общие сведения о цифровой подписи».
Режимы выполнения сценариев
В командной консоли Exchange предусмотрены четыре режима выполнения сценариев для управления использованием сценариев, в зависимости от того, как они подписаны, и источника (известный или неизвестный) происхождения. Эти режимы выполнения сценариев описаны в приведенной ниже таблице.
Режимы выполнения сценариев
Режим | Описание |
---|---|
Режим |
Заперщено выполнение любых сценариев, даже подписанных доверенным издателем. |
Режим |
Выполняются только сценарии, имеющие цифровую подпись доверенного издателя. |
Режим |
Выполняются все сценарии, созданные локально. Сценарии, загруженные из удаленных источников, например, из Интернета, безопасность которых неизвестна, выполняться не будут. Этот режим выполнения сценариев установлен по умолчанию. |
Режим |
Выполняются все сценарии, независимо от наличия цифровой подписи
и доверия. Не рекомендуется использовать режим
|
Чтобы изменить установленный по умолчанию режим
выполнения сценариев RemoteSigned
, используйте
командлет Set-ExecutionPolicy в командной консоли Exchange.
Например, чтобы изменить политику выполнения на режим
AllSigned
, выполните следующую команду:
Копировать код | |
---|---|
Set-ExecutionPolicy AllSigned |
Командная консоль Exchange немедленно применит изменение этой политики.
В крупных организациях для установки одинакового режима
выполнения сценариев для всех компьютеров с командной консолью
Exchange необходимо применять параметр режима выполнения
сценариев с помощью групповой политики
Active Directory. Групповая политика
Active Directory задает необходимый режим выполнения сценариев
в качестве значения параметра ExecutionPolicy
в
разделе реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
.
Внимание! |
---|
Неправильное изменение реестра может вызвать серьезные неполадки, требующие переустановки операционной системы. Корпорация Майкрософт не гарантирует разрешения неполадок, вызванных неправильным изменением реестра. Перед изменением реестра создайте резервную копию всех важных данных. |
Общие сведения о цифровой подписи
Цифровые подписи создаются с помощью алгоритма подписи с открытым ключом, который использует два разных ключа шифрования, называемых криптографической парой: открытый ключ и закрытый ключ. Закрытый ключ известен только его владельцу, а открытый ключ доступен всем. В цифровых подписях закрытый ключ создает подпись, а соответствующий открытый ключ удостоверяет эту подпись.
Сертификат является цифровым документом, который широко используется для проверки подлинности и способствует защите информации в открытых сетях. Сертификат надежно связывает открытый ключ с объектом, хранящим соответствующий закрытый ключ. Сертификаты имеют цифровые подписи, изданные центрами сертификации. Используя сертификат с цифровой подписью, автор сценария добавляет цифровую подпись в файл сценария. Во время этого процесса создается односторонняя хэш-функция сценария, которая шифруется с помощью закрытого ключа. Зашифрованная хэш-функция и является строкой цифровой подписи, которая добавляется в файл сценария. Эта строка цифровой подписи превращается в комментарий и не влияет на функциональность сценария.
При выполнении этого сценария в командной консоли Exchange, где требуется цифровая подпись, создается новая односторонняя хэш-функция файла сценария. Эта односторонняя хэш-функция сравнивается с зашифрованной хэш-функцией, включенной в файл сценария, после ее расшифровки с помощью открытого ключа. Если этот сценарий был каким-либо способом изменен после того как был подписан, хэш-функции не совпадут. Компьютер затем попытается проверить, что подпись принадлежит доверенному издателю построением цепочки сертификатов к доверенному центру сертификации. Если достоверность сертификата подтверждена, сценарий выполняется.
Принадлежность сценария к доверенному источнику зависит от исходного сертификата цифровой подписи, использованного для цифровой подписи сценария. Вообще, существует два типа сертификатов:
- Сертификаты, изданные доверенным центром сертификации
Центр сертификации проверяет подлинность запрашивающей стороны,
прежде чем выдать сертификат цифровой подписи. Издающий центр может
быть внешней, публичной сторонней организацией, которая продает
сертификаты, или внутренним центром сертификации, который входит в
вашу организацию. Если для подписи сценария используется сертификат
этого типа, то сценарий может использоваться пользователями на
других компьютерах, которые распознают и доверяют центру
сертификации, который выдал этот сертификат.
- Сертификаты с собственной подписью Для
сертификата этого типа компьютер пользователя сам является центром
сертификации, создающим сертификат. Преимущество сертификата с
собственной подписью состоит в том, что пользователь создает,
подписывает и выполняет сценарии на своем компьютере. Но в этом
случае выполнение такого сценария на других компьютерах невозможно,
поскольку они не рассматривают компьютер пользователя как
доверенный центр сертификации. Если они не доверяют компьютеру
пользователя, издавшего сертификат, они не могут проверить
подлинность этой самозаверенной подписи и сценарий не будет
выполнен.
Командлеты для управления цифровой подписью
Командная консоль Exchange содержит два командлета
для управления цифровой подписью.
Командлет Set-AuthenticodeSignature используется
для добавления цифровых подписей в файлы сценария. В качестве
первого позиционного параметра для командлета
Set-AuthenticodeSignature указывается имя файла,
который должен быть подписан. Если этот файл не находится в текущем
каталоге, необходимо указать путь к файлу. Вторым входным
параметром для этого командлета является сертификат, используемый
для подписи. Этот сертификат хранится в локальном хранилище данных.
Этот параметр необходимо указать в форме строки, которая ссылается
на сертификат. Получить доступ к сертификату можно с
помощью Cert
: диск.
Вторым командлетом для управления цифровой подписью является Get-AuthenticodeSignature. Командлет Get-AuthenticodeSignature используется для проверки и подтверждения текущего состояния цифровой подписи для файла, который указан в качестве входного параметра. Если при использовании сценария с цифровой подписью возникает проблема, выводимые командой Get-AuthenticodeSignature сведения будут полезными для устранения проблемы.
Если необходимо выполнить сценарии из внешних
источников, например, Microsoft, необходимо адаптировать эти
сценарии согласно режиму выполнения сценариев в своей среде. Можно
получить сценарии в виде исходных .txt
–файлов,
переименовать их в файлы сценария с расширением .ps1
,
а затем, после применения требуемой подписи, выполнять эти файлы,
как будто они написаны самостоятельно.
Для получения дополнительных сведений о цифровой
подписи и политиках выполнения сценариев необходимо выполнить в
командной консоли Exchange команду: Get-Help
About_Signing
. Эта команда выводит справочную информацию,
которая содержит подробные указания для цифровой подписи
сценариев.