Какой правильный способ развернуть мою подписанную политику WDAC на тестовой виртуальной машине?

Вопрос или проблема

Я использую виртуальную машину Hyper-V, Windows 11 22H2, чтобы протестировать подписанную WDAC политику, в частности, тот факт, что даже администраторы не могут её отключить/удалить, поэтому я решил попробовать это.

Я уже успешно развернул неподписанную WDAC политику на своем хосте, и она работает прекрасно, но я испытываю трудности с тем, чтобы заставить работать подписанную версию.

Я изучил этот связанный вопрос и уже попробовал решение, предложенное там, которое заключалось в использовании PolicyID одного из шаблонов политики WDAC отсюда в моей WDAC политике:

"C:\Windows\schemas\CodeIntegrity\ExamplePolicies"

поэтому я сделал это, взял один из PolicyID из этих примерных XML файлов и заменил свой BasePolicyID и PolicyID на него так:

  <BasePolicyID>{A244370E-44C9-4C06-B551-F6016E563076}</BasePolicyID>
  <PolicyID>{A244370E-44C9-4C06-B551-F6016E563076}</PolicyID>

после перезагрузки виртуальной машины Windows больше не загружается.

до использования этого решения, моя виртуальная машина перезагружалась как минимум один раз, но на второй раз Windows больше не загружалась.

Я сделал контрольную точку перед её развертыванием на моей виртуальной машине, чтобы я мог вернуться в предыдущее состояние за секунды. Я открыт для любых предложений. этот вопрос был задан 3 года назад, я подумал, что, возможно, что-то изменилось сейчас.

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

Я не знаю, как Австралия это делает, но им честь и хвала.

Я не знаю, нужно ли добавлять файл .cert, который я использовал для создания подписанной WDAC политики, в хранилище сертификатов виртуальной машины или нет, и если нужно, то в какое хранилище? Я попробовал хранилище доверенных центров сертификации, но это не сработало.

вот как я создал свою подписанную WDAC политику (до применения решения из указанного вопроса):

сначала я создал свой сертификат для подписывания кода:

New-SelfSignedCertificate -DnsName test.com -CertStoreLocation Cert:\CurrentUser\My\ -Type Codesigning 

затем экспортировал его в .cert без приватных ключей и в .pfx с приватным ключом.

после этого, следуя руководству официального сайта Microsoft и сделал следующее:

Add-SignerRule -FilePath "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\MERGED.xml" -CertificatePath "C:\Users\username\OneDrive\Desktop\certificate.cer" -Kernel -User –Update 

 

Set-RuleOption -FilePath "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\MERGED.xml" -Option 6 –Delete 



$PolicyID= Set-CIPolicyIdInfo -FilePath "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\MERGED.xml"  -ResetPolicyID     
$PolicyID = $PolicyID.Substring(11)     
$CIPolicyBin = "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\" + $PolicyID + ".cip"     
ConvertFrom-CIPolicy "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\MERGED.xml" $CIPolicyBin 

 

cd "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\" 
     
 

.\signtool.exe sign -v /n "test.com" -p7 . -p7co 1.3.6.1.4.1.311.79.1 -fd sha256 "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\{3fc72282-501d-482a-906e-a67b66b8fc42}.cip" 

 

но это не сработало, как упомянуто выше.

Я сделал ту же процедуру, чтобы попробовать решение из упомянутого вопроса, за исключением того, что не запускал эту часть:

$PolicyID= Set-CIPolicyIdInfo -FilePath "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\MERGED.xml"  -ResetPolicyID 

$PolicyID = $PolicyID.Substring(11) 

$CIPolicyBin = "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\" + $PolicyID + ".cip" 

ConvertFrom-CIPolicy "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\MERGED.xml" $CIPolicyBin 

и вместо этого вручную заменил PolicyID и BasePolicyID, а затем использовал эту команду для создания .cip файла:

ConvertFrom-CIPolicy "C:\Users\username\OneDrive\Desktop\Signing test - my WDAC Policy\0 Signed\MERGED.xml" "{A244370E-44C9-4C06-B551-F6016E563076}.cip"

Мне отчаянно нужна помощь, так как мне больше нечего пробовать.

Используйте CiTool.exe. Это исполняемый файл, который включён в Windows 11, начиная с версии 22H2, и в Windows Server 2025. Он может развернуть подписанные и неподписанные политики для вас. Всё, что вам нужно, это предоставить ему .CIP файл политики.

Если вы ищете инструмент для автоматизации, я разработал бесплатное приложение с открытым исходным кодом:

https://github.com/HotCakeX/Harden-Windows-Security/wiki/AppControl-Manager

Он позволяет вам создавать правильные сертификаты для подписывания политик WDAC (Управление приложениями), развертывать их локально или даже удаленно, удалять неподписанные/подписанные политики и многое другое.

Ответ или решение

Для успешного развертывания подписанной политики Windows Defender Application Control (WDAC) на тестовой виртуальной машине (VM) Hyper-V с Windows 11 22H2 требуются определенные действия и внимание к деталям. В данном случае ваша цель — протестировать политику WDAC, чтобы даже администраторы не могли ее отключить или удалить. Вы сталкиваетесь с проблемой, когда подписанная версия политики WDAC мешает загрузке Windows, что может быть результатом различных факторов. Рассмотрим теоретическую базу, пример процесса развертывания и предложим практические рекомендации.

Теория

Windows Defender Application Control (WDAC) — это мощный инструмент безопасности, который позволяет ограничивать запуск программного обеспечения на компьютере по правилам, определенным политикой. Подписанная политика WDAC предлагает дополнительный уровень безопасности, поскольку она гарантирует неизменность политики после ее развертывания. Однако это также добавляет уровня сложности в развертывании, особенно в тестовых или лабораторных средах, где конфигурации и программное обеспечение могут часто изменяться.

Примеры и объяснения

  1. Создание сертификата: Вы успешно создали сертификат для подписи, воспользовавшись командлетом PowerShell New-SelfSignedCertificate. Правильная структура команды указывает пути для хранения сертификата.

  2. Экспорт сертификата: После создания сертификата важно правильно его экспортировать. Потребуются два файла: .cer без закрытого ключа и .pfx с закрытым ключом. Это гарантирует, что у вас есть возможность использовать сертификат для подписи и проверки.

  3. Подписывание политики: Используя signtool.exe, вы подписали файл политики .cip. Подпись проверяет подлинность и обеспечивает целостность политики, но также требует, чтобы сертификат был доверенным на целевой системе.

  4. Развертывание политики: После подписания необходимо корректно развернуть политику на виртуальной машине. Однако если она некорректно настроена или не признаётся системой как доверенная, это может препятствовать загрузке Windows.

Применение и практические рекомендации

На основе вышеизложенной теории и примеров вы можете предпринять следующие шаги для успешного развертывания подписанной политики WDAC:

  1. Установка сертификата в доверенный хранилище:

    Убедитесь, что сертификат, которым подписана политика WDAC, добавлен в хранилище доверенных корневых центров сертификации целевой машины. Для этого:

    • Откройте консолидированное управление сертификатами (certlm.msc).
    • Импортируйте .cer файл в раздел "Доверенные корневые ЦС".
  2. Использование CiTool.exe:

    Для упрощения процесса развертывания на Windows 11 22H2 используйте CiTool.exe. Этот инструмент, встроенный в операционную систему, может автоматически развернуть как подписанные, так и неподписанные политики. Команда будет выглядеть следующим образом:

    CiTool.exe /applypolicy /file <путь к файлу .cip>
  3. Проверка конфигураций:

    Убедитесь, что все конфигурации и параметры в XML-файле политики корректны. Изменения идентификаторов PolicyID и BasePolicyID можно проводить с помощью PowerShell команд, которые гарантируют уникальность и соответствие файла политики.

  4. Дополнительные инструменты и автоматика:

    Воспользуйтесь сторонними инструментами, такими как AppControl Manager от проекта Harden Windows Security на GitHub. Этот инструмент может упростить создание, развертывание и управление политиками WDAC, а также автоматизировать рутинные задачи.

  5. Возврат к предыдущим точкам восстановления:

    Если развертывание приводит к неработоспособности системы, не забудьте воспользоваться сделанной ранее контрольной точкой Hyper-V для быстрого возврата к рабочему состоянию. Это позволит избежать полного сбоя системы и сохранить ваши данные.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...