Я не могу заставить политику Windows Defender Application Control работать в Windows 11.

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

На Windows 11 я создал политику WDAC с помощью WDAC Wizard и добавил ее в Group Policy, перезагрузил ПК, но политика все еще не применяется.

Вот тестовая политика, которую я создал:

<?xml version="1.0" encoding="utf-8"?>
<SiPolicy xmlns="urn:schemas-microsoft-com:sipolicy">
  <VersionEx>10.0.0.0</VersionEx>
  <PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
  <Rules>
    <Rule>
      <Option>Enabled:UMCI</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Unsigned System Integrity Policy</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Advanced Boot Options Menu</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Update Policy No Reboot</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Dynamic Code Security</Option>
    </Rule>
  </Rules>
  <!--EKUS-->
  <EKUs>
    <EKU ID="ID_EKU_STORE" Value="010a2b0601040182374c0301" FriendlyName="Windows Store EKU - 1.3.6.1.4.1.311.76.3.1 Windows Store" />
  </EKUs>
  <!--File Rules-->
  <FileRules>
    <FileAttrib ID="ID_FILEATTRIB_F_1_0_0" FriendlyName="C:\Program Files\CrystalDiskMark8\DiskMark64.exe FileAttribute" FileName="DiskMark.exe" MinimumFileVersion="8.0.4.0" />
    <FileAttrib ID="ID_FILEATTRIB_REFRESH_POLICY_1" FriendlyName="RefreshPolicy.exe FileAttribute" FileName="RefreshPolicy.exe" MinimumFileVersion="10.0.19042.0" />
  </FileRules>
  <!--Signers-->
  <Signers>
    <Signer ID="ID_SIGNER_F_1_0_0" Name="Certum Code Signing CA SHA2">
      <CertRoot Type="TBS" Value="F7B6EEB3A567223000A61F68C53B458193557C17E5D512D2825BCB13E5FC9BE5" />
      <CertPublisher Value="Open Source Developer, Noriyuki Miyazaki" />
      <FileAttribRef RuleID="ID_FILEATTRIB_F_1_0_0" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_PRODUCT_1997_1" Name="MincryptKnownRootMicrosoftProductRoot1997">
      <CertRoot Type="Wellknown" Value="04" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_PRODUCT_2001_1" Name="MincryptKnownRootMicrosoftProductRoot2001">
      <CertRoot Type="Wellknown" Value="05" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_PRODUCT_2010_1" Name="MincryptKnownRootMicrosoftProductRoot2010">
      <CertRoot Type="Wellknown" Value="06" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_STANDARD_2011_1" Name="MincryptKnownRootMicrosoftStandardRoot2011">
      <CertRoot Type="Wellknown" Value="07" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_CODEVERIFICATION_2006_1" Name="MincryptKnownRootMicrosoftCodeVerificationRoot2006">
      <CertRoot Type="Wellknown" Value="08" />
    </Signer>
    <Signer ID="ID_SIGNER_DRM_1" Name="MincryptKnownRootMicrosoftDMDRoot2005">
      <CertRoot Type="Wellknown" Value="0C" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_FLIGHT_2014_1" Name="MincryptKnownRootMicrosoftFlightRoot2014">
      <CertRoot Type="Wellknown" Value="0E" />
    </Signer>
    <Signer ID="ID_SIGNER_TEST2010_1" Name="MincryptKnownRootMicrosoftTestRoot2010">
      <CertRoot Type="Wellknown" Value="0A" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_PRODUCT_1997_UMCI_1" Name="MincryptKnownRootMicrosoftProductRoot1997">
      <CertRoot Type="Wellknown" Value="04" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_PRODUCT_2001_UMCI_1" Name="MincryptKnownRootMicrosoftProductRoot2001">
      <CertRoot Type="Wellknown" Value="05" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_PRODUCT_2010_UMCI_1" Name="MincryptKnownRootMicrosoftProductRoot2010">
      <CertRoot Type="Wellknown" Value="06" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_STANDARD_2011_UMCI_1" Name="MincryptKnownRootMicrosoftStandardRoot2011">
      <CertRoot Type="Wellknown" Value="07" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_CODEVERIFICATION_2006_UMCI_1" Name="MincryptKnownRootMicrosoftCodeVerificationRoot2006">
      <CertRoot Type="Wellknown" Value="08" />
    </Signer>
    <Signer ID="ID_SIGNER_DRM_UMCI_1" Name="MincryptKnownRootMicrosoftDMDRoot2005">
      <CertRoot Type="Wellknown" Value="0C" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_FLIGHT_2014_UMCI_1" Name="MincryptKnownRootMicrosoftFlightRoot2014">
      <CertRoot Type="Wellknown" Value="0E" />
    </Signer>
    <Signer ID="ID_SIGNER_STORE_1" Name="Microsoft MarketPlace PCA 2011">
      <CertRoot Type="TBS" Value="FC9EDE3DCCA09186B2D3BF9B738A2050CB1A554DA2DCADB55F3F72EE17721378" />
      <CertEKU ID="ID_EKU_STORE" />
    </Signer>
    <Signer ID="ID_SIGNER_MICROSOFT_REFRESH_POLICY_1" Name="Microsoft Code Signing PCA 2011">
      <CertRoot Type="TBS" Value="F6F717A43AD9ABDDC8CEFDDE1C505462535E7D1307E630F9544A2D14FE8BF26E" />
      <CertPublisher Value="Microsoft Corporation" />
      <FileAttribRef RuleID="ID_FILEATTRIB_REFRESH_POLICY_1" />
    </Signer>
    <Signer ID="ID_SIGNER_TEST2010_UMCI_1" Name="MincryptKnownRootMicrosoftTestRoot2010">
      <CertRoot Type="Wellknown" Value="0A" />
    </Signer>
  </Signers>
  <!--Driver Signing Scenarios-->
  <SigningScenarios>
    <SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_DRIVERS_1" FriendlyName="Auto generated policy on 09-09-2022">
      <ProductSigners>
        <AllowedSigners>
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_PRODUCT_1997_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_PRODUCT_2001_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_PRODUCT_2010_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_STANDARD_2011_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_CODEVERIFICATION_2006_1" />
          <AllowedSigner SignerId="ID_SIGNER_DRM_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_FLIGHT_2014_1" />
          <AllowedSigner SignerId="ID_SIGNER_TEST2010_1" />
        </AllowedSigners>
      </ProductSigners>
    </SigningScenario>
    <SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_WINDOWS" FriendlyName="Auto generated policy on 09-09-2022">
      <ProductSigners>
        <DeniedSigners>
          <DeniedSigner SignerId="ID_SIGNER_F_1_0_0" />
        </DeniedSigners>
        <AllowedSigners>
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_PRODUCT_1997_UMCI_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_PRODUCT_2001_UMCI_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_PRODUCT_2010_UMCI_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_STANDARD_2011_UMCI_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_CODEVERIFICATION_2006_UMCI_1" />
          <AllowedSigner SignerId="ID_SIGNER_DRM_UMCI_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_FLIGHT_2014_UMCI_1" />
          <AllowedSigner SignerId="ID_SIGNER_STORE_1" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_REFRESH_POLICY_1" />
          <AllowedSigner SignerId="ID_SIGNER_TEST2010_UMCI_1" />
        </AllowedSigners>
      </ProductSigners>
    </SigningScenario>
  </SigningScenarios>
  <UpdatePolicySigners />
  <CiSigners>
    <CiSigner SignerId="ID_SIGNER_F_1_0_0" />
    <CiSigner SignerId="ID_SIGNER_STORE_1" />
    <CiSigner SignerId="ID_SIGNER_MICROSOFT_REFRESH_POLICY_1" />
  </CiSigners>
  <HvciOptions>0</HvciOptions>
  <Settings>
    <Setting Provider="AllHostIds" Key="{0468C085-CA5B-11D0-AF08-00609797F0E0}" ValueName="EnterpriseDefinedClsId">
      <Value>
        <Boolean>true</Boolean>
      </Value>
    </Setting>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Name">
      <Value>
        <String>DefaultMicrosoftEnforced</String>
      </Value>
    </Setting>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Id">
      <Value>
        <String>022422</String>
      </Value>
    </Setting>
  </Settings>
  <PolicyTypeID>{A244370E-44C9-4C06-B551-F6016E563076}</PolicyTypeID>
</SiPolicy>

Затем я добавил тестовую программу в список запрещенных, чтобы посмотреть, будет ли политика применяться после перезагрузки компьютера

Скриншот списка запрещенных WDAC Wizard

после этого я использовал эту команду

ConvertFrom-CIPolicy -XmlFilePath C:\Users\UserName\OneDrive\Desktop\policy.xml -BinaryFilePath C:\Windows\System32\CodeIntegrity\SIPolicy.p7b

чтобы создать файл SIPolicy.p7b из XML файла, предоставленного WDAC Wizard, а затем добавил его в групповую политику следующим образом:

Скриншот групповой политики

Есть ли идеи, что я упускаю, чтобы это заработало? Я перезагружал несколько раз, но все программы, не относящиеся к Microsoft, и сторонние программы все еще работают, и программа, которую я специально добавил в список запрещенных, также может запускаться.

вот связанная часть системной информации

скриншот системной информации

Вам необходимо использовать формат файла .CIP вместо .p7b, и вам необходимо использовать CiTool.exe для развертывания. CiTool.exe доступен в Windows 11, начиная с сборки 22H2, и в Windows Server 2025 и позже.

Также нет необходимости перезагружать систему после развертывания. Если вы используете Windows Server 2025 или Windows 11 24H2, перезагрузка также не требуется при удалении политики.

Для создания политик отказа необходимо помнить, что WDAC (Контроль приложений) по сути является стратегией белого списка, поэтому все, что вы явно не разрешаете в своей политике, автоматически запрещается.

Я создал приложение для упрощения создания политик WDAC (Контроль приложений). Оно обладает гораздо большим количеством функций и точности, чем любое другое доступное решение, и оно открытое, бесплатное и доступно здесь: https://github.com/HotCakeX/Harden-Windows-Security/wiki/AppControl-Manager

Эта страница показывает, как именно создать политики отказа:
https://github.com/HotCakeX/Harden-Windows-Security/wiki/Create-Deny-App-Control-Policy

Если у вас или у кого-либо есть какие-либо вопросы по WDAC (Контроль приложений), не стесняйтесь обратиться на GitHub, и я буду рад помочь.

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

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

Теория

Для эффективного использования WDAC, политика должна быть правильно создана, преобразована и развернута. Перевод файла политики из XML в бинарный формат, подходящий для Windows, и добавление его в Group Policy — критические этапы. Однако инструменты и форматы файлов, которые используются в этом процессе, играют ключевую роль. Так, ранее упоминаемый .p7b формат может вызывать сложности в контексте вашей проблемы. Современные версии Windows 11 требуют использования формата .CIP и инструмента CiTool.exe, доступного начиная с версии Windows 11 22H2.

Пример

Из вашей проблемы видно, что вы создали политику с помощью WDAC Wizard, а затем использовали команду для преобразования XML-файла политики в формат .p7b. Далее вы развернули эту политику с помощью групповой политики. Несмотря на это, приложения, которые должны были быть заблокированы, по-прежнему работают. Это может указывать на то, что формат или средство развертывания были выбраны неправильно.

Применение

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

  2. Создание и развертывание политики: Пересмотрите созданную вами политику, возможно, стоит воспользоваться усовершенствованными инструментами для конфигурации, такими как AppControl-Manager от HotCakeX, который предоставляет более точные и богатые функциональные возможности для создания политик.

  3. Валидация развертывания: После применения политики без необходимости перезагрузки системы, следует убедиться, что политика действительно работает. Это можно сделать с помощью командлетов PowerShell, таких как Get-CIPolicy и просмотра логов в журнале событий Windows, чтобы отслеживать события, связанные с блокировкой приложений.

  4. Использование открытых ресурсов: Для более глубокого понимания и конфигурации WDAC, ознакомьтесь с ресурсами на GitHub, где разработчики, как HotCakeX, предлагают подробные руководства и помощь.

  5. Обратная связь и поддержка: Воспользуйтесь возможностью получить консультацию у специалистов через открытые платформы вроде GitHub, чтобы решить специфические проблемы, с которыми вы сталкиваетесь при развертывании WDAC.

Подводя итог, для успешного развертывания политики WDAC на Windows 11 необходимо корректно выбирать инструменты и форматы, следовать современным методологиям управления политиками и активно использовать доступные ресурсы и сообщества для поддержки и упрощения процесса.

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

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