Использование подписывания кода для добавления управления и защиты с помощью Защитник Windows управления приложениями

Примечание.

Некоторые возможности управления приложениями в Защитнике Windows доступны только в определенных версиях для Windows. Дополнительные сведения см. в разделе доступность функций управления приложениями Защитник Windows.

Что такое подписывание кода и почему это важно?

Подписывание кода обеспечивает некоторые важные преимущества для функций безопасности приложений, таких как Защитник Windows управление приложениями (WDAC). Во-первых, это позволяет системе криптографически проверять, что файл не был изменен с момента его подписания и до того, как любой код разрешен к запуску. Во-вторых, он связывает файл с реальным удостоверением, например с компанией или отдельным разработчиком. Это удостоверение может облегчить принятие решений о доверии политике и привести к реальным последствиям, когда подписывание кода злоупотребляется или используется злонамеренно. Хотя Windows не требует от разработчиков программного обеспечения цифровой подписи своего кода, большинство крупных независимых поставщиков программного обеспечения (ISV) используют подписывание кода для большей части своего кода. И метаданные, которые разработчик включает в заголовок ресурса файла (. RSRC), например OriginalFileName или ProductName, можно объединить с сертификатом подписи файла, чтобы ограничить область решений о доверии. Например, вместо того, чтобы разрешать все, что подписано корпорацией Майкрософт, можно разрешить только файлы, подписанные корпорацией Майкрософт, где ProductName имеет значение "Microsoft Teams". Затем используйте другие правила для авторизации всех других файлов, которые необходимо запустить.

По возможности необходимо, чтобы все двоичные файлы приложения и скрипты подписывали код в рамках условий принятия приложения. Кроме того, необходимо убедиться, что у разработчиков внутренних бизнес-приложений (LOB) есть доступ к сертификатам подписи кода, контролируемым вашей организацией.

Подписывание каталога

Двоичные файлы и скрипты приложений обычно подписаны внедрением или каталогом. Внедренные сигнатуры становятся частью самого файла и переносятся вместе с ним, где бы он ни копировался или перемещался. С другой стороны, подписи каталога отсоединяются от отдельных файлов. Вместо этого создается отдельный файл каталога, содержащий хэш-значения для одного или нескольких файлов для подписи. Затем этот файл каталога подписывается цифровой подписью и применяется к любому компьютеру, на котором должна существовать подпись. Любой файл, хэш-значение которого включен в подписанный каталог, наследует сигнатуру от файла каталога. Файл может иметь несколько подписей, включая сочетание внедренных подписей и подписей каталога.

Файлы каталога можно использовать для легкого добавления подписи в существующее приложение без необходимости доступа к исходным файлам и без дорогостоящей переупаковки. Вы даже можете использовать файлы каталога для добавления собственной подписи в приложение isV, если не хотите доверять всему, что isV подписывает напрямую, сами. Затем вы просто развернете подписанный каталог вместе с приложением во всех управляемых конечных точках.

Примечание.

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

Сведения о создании файлов каталога и управлении ими для существующих приложений см. в статье Развертывание файлов каталога для поддержки Защитник Windows управления приложениями.

Подписанные политики WDAC

Политика WDAC начинается как XML-документ, а затем преобразуется в двоичный файл перед развертыванием. Эта двоичная версия политики может быть подписана так же, как и любой другой двоичный файл приложения, что обеспечивает те же преимущества, что и для подписанного кода, как описано выше. Кроме того, подписанные политики обрабатываются специально в WDAC и помогают защититься от незаконного изменения или удаления политики даже администратором.

Дополнительные сведения об использовании подписанных политик см. в статье Использование подписанных политик для защиты Защитник Windows управления приложениями от незаконного изменения.

Получение сертификатов подписи кода для собственного использования

Ниже приведены некоторые способы получения сертификатов подписи кода для собственного использования.