Device Guard В Windows 10. Политика Целостности Кода

Автор статьи — Андрей Каптелин, член IT-сообщества.

Device Guard — набор технологий аппаратной и программной защиты, доступных для устройств под управлением Windows 10. Статья посвящена одному из компонентов Device Guard — политике целостности кода (CI).

Ознакомиться с подробностями настройки и использования CI вы можете Здесь .

Цель Device Guard В современном мире киберугрозы развиваются очень быстро.

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

Вирусы из развлечения для отдельных людей превратились в организованную киберпреступность.

Автоматизация и низкая стоимость сложных атак не оставляют даже небольшим компаниям шансов остаться незамеченными.



Device Guard в Windows 10. Политика целостности кода

Классическое решение основано на трех основных условиях: установленные обновления, обновленный антивирус и отсутствие административных привилегий.

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

Такой взгляд на безопасность делает любую программу подозрительной.

На список сигнатур антивирусов уже нельзя положиться, да и анализировать действия всех программ довольно сложно.

Новые угрозы требуют новых решений безопасности, и в Windows 10 они уже есть.

Одним из решений является использование только одобренного программного обеспечения.

Этот подход был успешно протестирован на мобильных платформах Windows и Apple. В них абсолютно все программное обеспечение протестировано и имеет цифровую подпись, на основании которой устройство разрешает его запуск.

В Windows эту функцию обеспечивает механизм проверки целостности кода — Code Integrity (CI).



Device Guard в Windows 10. Политика целостности кода

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

Далее, имея список вашего ПО, вы можете запретить запуск чего-то еще, и проблема безопасности будет решена.

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

Но мир программного обеспечения Windows очень разнообразен, и не все программы имеют цифровые подписи, а многие их никогда не получат. Для этого механизм Code Integrity может использовать каталоги, подписанные вашим сертификатом — списки файлов программ и их хеш-кодов.

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

Самый простой способ использовать Device Guard — для новых или существующих рабочих станций с фиксированным списком программного обеспечения.

Достаточно создать политику целостности кода и активировать функционал, после чего на этих компьютерах не сможет запускаться ничего постороннего.

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

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

Журнал запущенных приложений пригодится в дальнейшем для выявления нужных и ненужных программ.

Обратите внимание, что Device Guard с механизмами целостности кода и безопасности на основе виртуализации (VBS) доступен только в версии Windows 10 Enterprise. Настройка политики целостности кода Настройка Device Guard в пользовательском режиме Code Integrity наиболее близка к обычным задачам по ограничению запуска программного обеспечения.

Чтобы создать политику целостности кода на эталонном компьютере, вам потребуется создать теневую копию диска и запустить командлет File Scan. В этом случае теневая копия позволяет процессу сканирования получить доступ ко всем файлам, в том числе открытым на момент сканирования.

  
  
  
  
  
  
  
  
  
  
  
  
   

#Create a ShadowCopy to avoid locks $s1 = (gwmi -List Win32_ShadowCopy).

Create("C:\","ClientAccessible") $s2 = gwmi Win32_ShadowCopy | ? { $_.ID -eq $s1.ShadowID } $d = $s2.DeviceObject + "\" cmd /c mklink /d C:\scpy "$d"

Полученный снимок диска смонтирован в папку C:\scpy , можно сканировать с помощью следующего командлета:

New-CIPolicy -Level PcaCertificate -Fallback Hash -FilePath C:\BasePolicy.xml -ScanPath C:\scpy -UserPEs

Эта команда создаст список подписей (сертификатов), найденных на эталонном компьютере, и посчитает хэши исполняемых файлов, не имеющих подписи.

Результатом будет XML-файл, содержащий следующие параметры:

<Rule><Option>Enabled:Audit Mode</Option></Rule>

Опция, позволяющая модулю «Целостность кода» работать в режиме аудита, при котором в журнал аудита записываются все исполняемые файлы, не подпадающие под сгенерированную политику.



<Signer Name="Microsoft Code Signing PCA" ID="ID_SIGNER_S_231"><CertRoot Value=" 4E80BE107C860DE896384B3EFF50504DC2D76AC7151DF3102A4450637A032146" Type="TBS"/></Signer>

Пример обнаруженного сертификата.

Все подписанные им исполняемые файлы будут исполняться без ограничений.



<Allow Hash=" 88A87238099A3B4BB392C82589CA099DC70629D6EA32CF79F9071011C5994CA2" FriendlyName="\\?\GLOBALROOT\Device\HarddiskVolume4\Distr\npp.6.8.3.Installer.exe Hash Page Sha256" ID="ID_ALLOW_A_8_1"/>

Пример обнаруженного файла без цифровой подписи.

Если хэш-код совпадет, этот файл будет запущен.

Полученный XML-файл необходимо скомпилировать в двоичный формат и поместить в системную папку.

C:\Windows\System32\CodeIntegrity\ .



ConvertFrom-CIPolicy C:\BasePolicy.xml C:\SIPolicy.bin cp C:\SIPolicy.bin c:\Windows\System32\CodeIntegrity\SIPolicy.p7b

После перезагрузки компьютера механизм Code Integrity начнет работать в режиме аудита.

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



New-CIPolicy -Level PcaCertificate -Fallback Hash C:\AuditPolicy.xml -Audit

Ключ -Аудит указывает, что политика должна быть создана на основе записей журнала аудита.

Файл АудитПолици.

xml по структуре похож на файл Базеполици.

xml , образовавшийся ранее.

Для объединения результатов первоначального сканирования и информации, собранной в режиме аудита, существует команда слияния политик.



Merge-CIPolicy –OutputFilePath C:\Final.xml –PolicyPaths C:\ BasePolicy.xml,C:\AuditPolicy.xml

Чтобы включить применение политики, отключите режим аудита в полученном файле.



Set-RuleOption -Option 3 -FilePath C:\Final.xml -Delete

В результате запись удаляется Включено: Режим аудита из XML-файла, и такая политика будет блокировать все программное обеспечение, не входящее в него.

Затем мы компилируем XML-файл в двоичный формат, снова выполнив команду.



ConvertFrom-CIPolicy C:\Final.xml C:\SIPolicy.bin

Распространить политику на целевые компьютеры можно либо путем удобного копирования файла SIPolicy.bin, либо с помощью групповой политики Windows 10 в разделе Конфигурация компьютера\Административные шаблоны\Система\Device Guard .



Device Guard в Windows 10. Политика целостности кода

Создание файла каталога Политика Code Integrity — это монолитный список разрешенного ПО, что не всегда удобно.

Для использования новых или обновленных программ, если их невозможно заверить электронной подписью, можно создать файл-каталог.

Например, возьмем программу 7zip , для которого создадим файл-каталог, содержащий как данные о дистрибутиве, так и все исполняемые файлы после установки дистрибутива.

Для этого на станции без активного Device Guard запустите утилиту мониторинга.

Инспектор пакетов (входит в состав Windows 10 Enterprise), указав в качестве параметров букву диска для мониторинга и запускаемый файл дистрибутива программы.



.

\PackageInspector.exe start C: -path c:\Distr\7z1508-x64.exe

После установки 7zip проверяем его запуск и работу и прекращаем мониторинг командой

.

\PackageInspector.exe stop c: -name C:\Distr\7zip.cat -cdfpath c:\Distr\7zip.cdf

Файл 7zip.cdf покажет все исполняемые файлы, которые отслеживались.

Файл 7zip.cat содержит скомпилированную информацию для Device Guard. Чтобы созданный файл каталога стал доверенным со стороны Device Guard, мы подпишем его своей цифровой подписью.

Если у администратора уже есть импортированный сертификат с целью подписи кода, его можно использовать для подписи непосредственно из PowerShell, указав алгоритм хеширования SHA256, необходимый для Device Guard.

Get-ChildItem cert:\CurrentUser\My -codesign Set-AuthenticodeSignature -HashAlgorithm SHA256 7zip-osnova.cat @(Get-ChildItem cert:\CurrentUser\My -codesign)[0]

Сертификат должен быть выдан доверенным центром сертификации, корневой сертификат которого был импортирован на эталонный компьютер до создания политики.

Далее необходимо разместить сформированный и подписанный файл каталога на необходимых компьютерах, скопировав его в хранилище каталога по пути C:\Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE} В отличие от политики, файлы каталогов применяются немедленно и без перезагрузки.

Теперь установка и работа 7zip на вашем компьютере разрешена.

Более подробную документацию можно найти на портале TechNet по адресу: https://technet.microsoft.com/ru-ru/library/mt463091(v=vs.85).

aspx

Теги: #информационная безопасность #windows 10 #защита устройства #целостность кода #UMCI #KMCI
Вместе с данным постом часто просматривают: