Основы Windows Defender Application Control (WDAC)

Windows Defender Application Control (WDAC) эта еще одна технология, позволяющая повысить безопасность Windows за счет контроля запуска исполняемых файлов, создавая белые списки разрешенных программ. Функционал WDAC доступен на Windows 10,11 (Enterprise и Professional редакции) и Windows Server 2016+. Обязательное условие – наличие UEFI.

WDAC позволяет определить каким драйверам и приложениям разрешен запуска на устройствах с Windows. Политики целостности кода (CI) WDAC выполняют проверку запускаемых приложений как в режиме ядра (драйверы и компоненты Windows), так и в пользовательском режиме (как AppLocker).

В чем-то функционал WDAC похож на Software Restriction Policies (SRP) и AppLocker . Недостаток SRP – сложность настройки, а при наличии прав локального администратора вы можете отключить Applocker. Основное преимущество Windows Defender Application Control – возможность контроля запуска драйверов и компонентов в режиме ядра и при загрузке ОС, простота интеграции в концепцию современного рабочего места Microsoft, возможности централизованного управления политиками запуска программ на компьютерах через Intune/Microsoft Endpoint Manager.

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

В Windows нет графических инструментов управления параметрами WDAC, любые настройки выполняются через PowerShell.

Политика WDAC представляет собой XML файл с политикой целостности кода (Code Integrity). Несколько готовых шаблонов политик WDAC хранятся в каталоге C:WindowsschemasCodeIntegrityExamplePolicies .

Например, шаблоны DefaultWindows_Audit.xml и DefaultWindows_Enforced.xml позволяют запускать все программы, подписанные Microsoft, и программы с хорошей репутацией. Отличия в шаблонах политик в том, что DefaultWindows_Audit.xml применяет политики WDAC в режиме аудита (такой режим используется для анализа применённых настроек и отладки применений политики по журналам событий). В режиме Enforced политики запуска приложений применяются в продуктивном режиме и блокируют запуск приложений, не соответствующих политике.

Попробуем активировать данную политики на тестовом компьютере. Для применения политики XML файл с описанием политики нужно сконвертировать в бинарный формат SIPolicy.p7b с помощью PowerShell командлета ConvertFrom-CIPolicy:

ConvertFrom-CIPolicy -XmlFilePath "C:WindowsschemasCodeIntegrityExamplePoliciesDefaultWindows_Enforced.xml" -BinaryFilePath "C:WindowsSystem32CodeIntegritySIPolicy.p7b"

В каталоге system32codeintegrity появится файл SIPolicy.p7b с вашей политикой.

Осталось перезагрузить Windows для применения WDAC политики.

Теперь запуск любой недоверенной программы в Windows (например, скачанной пользователем из интернета) будет блокироваться с сообщением:

Your organization used Windows Defender Application Control to block this app. Contact your support person for more information.

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

Code Integrity determined that a process (DeviceHarddiskVolume3WindowsSystem32svchost.exe) attempted to load DeviceHarddiskVolume3xxx.exe that did not meet the Windows signing level requirements or violated code integrity policy. However, due to code integrity auditing policy, the image was allowed to load.
C:PSPowerShellMOdule.psm1 was allowed to run but would have been prevented if the Config CI policy were enforced.

Такие события доступны в следующих журналах Event Viewer:

  • Applications and Services logs > Microsoft > Windows > CodeIntegrity > Operational (EventID 3076, 3077)
  • Applications and Services logs > Microsoft > Windows > AppLocker > MSI and Script

Администратору нужно проанализировать логи и определить, есть ли события блокировки запуска нужных программ. Такие программы придется добавить в список доверенных в XML файле.

Создаем собственную политику WDAC для корпоративных устройств Windows

Попробуем описать типовой план внедрения политики запуска приложений WDAC для устройств с Windows в корпоративной среде:

Создание бейзлайнов для каждой модели компьютера

Установите Windows на эталонный компьютер, установите все необходимые драйвера и программы. Считаем, что такая конфигурация Windows с программами и драйверами является доверенной. Для захвата бейзлайна текущего образа Windows нужно выполнить команду:

$wdacxmlpolicy="c:pswdachp322_base.xml"
New-CIPolicy -MultiplePolicyFormat -filePath $wdacxmlpolicy -ScanPath C: -level FilePublisher -UserPEs -Fallback Hash

Команда просканирует все исполняемые файлы, драйвера и библиотеки, добавит их в доверенные в XML политике (займет длительное время).

Включите опции политики:

  • Option 14 – для использования Microsoft Intelligent Security Graph
  • Option 16 – разрешает политике примениться без перезагрузки
  • Option 17 – разрешает объединение политик
С помощью Microsoft Intelligent Security Graph вы можете автоматически доверять приложениям, которым доверяет Microsoft. Это позволяет упростить создание WDAC политик.

Set-RuleOption -FilePath $wdacxmlpolicy -Option 14
Set-RuleOption -FilePath $wdacxmlpolicy -Option 16
Set-RuleOption -FilePath $wdacxmlpolicy -Option 17

Объединение нескольких безлайнов в общий

После того, как вы получили бейзлайнов со всех моделей компьютеров, можно объединить их в один файл.

$MergedXML = "C:pswdacmerged_base.xml"
$MergedBin = "C:pswdacmerged_base.cip"
Merge-CIPolicy -OutputFilePath $MergedXML -PolicyPaths "C:pswdachp300_base.xml","c:pswdaclenovo900_base.xml","c:pswdacdell15_base.xml"

Сконвертировать политику WDAC в бинарный формат:

ConvertFrom-CIPolicy -XmlfilePath $MergedXML -BinaryFilePath $MergedBin

Теперь нужно скопировать ID политики из < PolicyID> секции файла merged_base.xml и использовать это имя в качестве имени файла cip файла.

Создадим дополнительную политику

Теперь нужно создать WDAC политику, которая будет определять дополнительные правила.

Начиная с версии Windows 10 1903, а также в Windows 11 и Windows Server 2022 WDAC поддерживает до 32 активных политик на одном устройстве.

Например, мы хотим разрешить запуск программ из доверенных путей (каталогов Program Files и с определенного файлового сервера):

$SupplementalXmlPolicy = "C:pswdacsupplemental.xml"
$SupplementaBin = "C:pswdacsupplemental.bin"
$rules = New-CIPolicyRule -FilePathRule "C:Program files*"
$rules += New-CIPolicyRule -FilePathRule "C:Program files (x86)*"
$rules += New-CIPolicyRule -FilePathRule "\msk-fso1tools*"
New-CIPolicy -FilePath $SupplementalXmlPolicy -Rules $rules -UserPEs
Set-CIPolicyIdInfo -FilePath $SupplementalXmlPolicy -BasePolicyToSupplementPath "C:PSwdacAllowMicrosoft.xml"
ConvertFrom-CIPolicy -XmlFilePath $SupplementalXmlPolicy -Binary $SupplementaBin

Аналогичным образом переименуйте файл в соответствии с ID политики в секции <PolicyID> файла supplemental.xml.

Чтобы применить две WDAC политики, нужно скопировать оба bin файла в каталог C:WindowsSystem32CodeIntegrityCIPoliciesActive

Перезагрузите компьютер, чтобы применить политики WDAC или выполните следующую PowerShell команду, чтобы применить политики CI без перезагрузки:

Invoke-CimMethod -Namespace rootMicrosoftWindowsCI -ClassName PS_UpdateAndCompareCIPolicy -MethodName Update -Arguments @{FilePath = 'C:WindowsSystem32CodeIntegrityCiPoliciesActive{GUID}.cip'}

Протестируйте политику в режиме аудита

Протестируйте политику WDAC в режиме аудита. Определите, есть ли события блокировки приложений, которые должны быть разрешено использовать пользователям. Если нужно, создайте дополнительные политики.

Чтобы отключить режим аудита у политики WDAC, используйте команду:

Set-RuleOption -FilePath $wdacxmlpolicy -Delete -Option 3

Распространение политики WDAC на устройства

Вы можете распространить файл с политикой WDAC на другие устройства компании с помощью Intune, Microsoft Endpoint Manager, групповых политик или скриптов. WDAC уже встроена в Windows и вам не придется платить за нее в рамках подписки Intune.

Для создания и редактирования разрешающих и запрещающих правил WDAC можно использовать специальное приложение WDAC Policy Wizard ( https://webapp-wdac-wizard.azurewebsites.net/ ). Это современное APPX приложение, поставляющееся в виде MSIX файла.

В интерфейсе мастера можно включить/отключить опции политики WDAC.

С помощью Windows Defender App Control Policy Wizard вы можете отредактировать правила WDAС политики из графического интерфейса. Например, я добавил в стандартную DefaultWindows_Enforced политику правило, разрешающее запускать файл putty.exe.

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

admin

Recent Posts

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

6 дней ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago