Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2019 (15.x) и более поздних версий — только Windows
В этой статье описывается, как зарегистрировать компьютеры SQL Server для аттестации с помощью службы защиты узлов (HGS).
Примечание.
Процесс регистрации SQL Server в HGS требует совместных усилий администратора HGS и администратора компьютера SQL Server. См. раздел о ролях и обязанностях при настройке аттестации с помощью HGS.
Перед началом работы убедитесь, что вы развернули по крайней мере один компьютер HGS и настроили службу аттестации HGS. Дополнительные сведения см. в статье "Развертывание службы защиты узла для SQL Server".
Шаг 1. Установка клиентских компонентов аттестации
Примечание.
Этот шаг должен выполняться администратором компьютера SQL Server.
Чтобы разрешить клиенту SQL убедиться, что он взаимодействует с надежным компьютером SQL Server, компьютер SQL Server должен успешно подтвердить свою подлинность с помощью службы защиты узлов. Процесс аттестации управляется дополнительным компонентом Windows, который называется "клиент HGS". Выполните приведенные ниже шаги, чтобы установить этот компонент и начать аттестацию.
Убедитесь, что компьютер SQL Server соответствует предварительным требованиям, описанным в документации по планированию HGS.
Выполните следующую команду в консоли PowerShell с повышенными привилегиями, чтобы установить функцию поддержки Host Guardian Hyper-V, которая включает клиент HGS и компоненты аттестации.
Enable-WindowsOptionalFeature -Online -FeatureName HostGuardian -All
Чтобы завершить установку, перезагрузите компьютер.
Шаг 2: Убедитесь, что безопасность на основе виртуализации работает
Примечание.
Этот шаг должен выполняться администратором компьютера SQL Server.
При установке компонента "Служба защиты узла — поддержка Hyper-V" автоматически настраивается и включается функция безопасности на основе виртуализации (VBS).
Анклавы для SQL Server Always Encrypted защищены и работают в виртуализованной платформе VBS.
Функция VBS может не запуститься, если на компьютере не установлено и не включено устройство IOMMU.
Чтобы проверить, работает ли VBS, откройте средство "Сведения о системе", запустив файл msinfo32.exe
, и найдите элементы Virtualization-based security
ближе к концу списка "Сведения о системе".
Первый элемент, который нужно проверить, — Virtualization-based security
. Он может иметь одно из трех состояний.
-
Running
означает, что функция VBS настроена правильно и была успешно запущена. Если компьютер показывает этот статус, можно перейти к шагу 3. -
Enabled but not running
означает, что запуск функции VBS настроен, но оборудование не отвечает минимальным требованиям для запуска VBS. Может потребоваться изменить конфигурацию оборудования в BIOS или UEFI с помощью включения таких дополнительных функций процессора, как, например, IOMMU, либо (если оборудование действительно не поддерживает необходимые функции) снизить требования безопасности VBS. Дополнительные сведения см. далее в этом разделе. -
Not enabled
означает, что VBS не настроен для запуска. Функция поддержки Hyper-V в Службе защиты узла автоматически включает VBS, поэтому рекомендуется повторить шаг 1, если вы заметите этот статус.
Если VBS не работает на компьютере, проверьте свойства Virtualization-based security
. Сравните значения элемента Required Security Properties
со значениями элемента Available Security Properties
.
Чтобы функция VBS выполнялась, требуемые свойства должны быть равны доступным свойствам безопасности или являться их подмножеством.
В контексте проверки анклавов SQL Server свойства безопасности имеют следующее значение:
-
Base virtualization support
требуется всегда, так как представляет минимальный набор компонентов оборудования, необходимый для запуска гипервизора. -
Secure Boot
рекомендуется, но не требуется для SQL Server Always Encrypted. Безопасная загрузка защищает от руткитов, требуя немедленного запуска загрузчика, подписанного корпорацией Microsoft, после завершения инициализации UEFI. Если вы используете аттестацию доверенного платформенного модуля (TPM), включение безопасной загрузки будет замерено и обеспечено, независимо от того, настроен ли VBS для требования включения безопасной загрузки. -
DMA Protection
рекомендуется, но не требуется для SQL Server Always Encrypted. Защита DMA использует IOMMU для защиты VBS и памяти анклава от атак с прямым доступом к памяти. В рабочей среде следует всегда использовать компьютеры с защитой DMA. В среде разработки или тестирования можно сделать защиту DMA необязательной. Если экземпляр SQL Server виртуализирован, скорее всего, у вас нет защиты DMA и потребуется удалить требование для запуска VBS. Сведения о более низких гарантиях безопасности при выполнении в виртуальной машине см. в описании модели доверия.
Прежде чем понижать требования к функциям безопасности для VBS, обратитесь к изготовителю оборудования (OEM) или поставщику облачных служб, чтобы узнать, можно ли каким-либо образом обеспечить выполнение недостающих требований платформы в UEFI или BIOS (например, включить безопасную загрузку, Intel VT-d или AMD IOV).
Чтобы изменить требуемые функции безопасности платформы для VBS, выполните следующую команду в консоли PowerShell с повышенными привилегиями:
# Value 0 = No security features required
# Value 1 = Only Secure Boot is required
# Value 2 = Only DMA protection is required (default configuration)
# Value 3 = Both Secure Boot and DMA protection are required
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 0
После изменения реестра перезапустите компьютер SQL Server и проверьте, работает ли VBS снова.
Если компьютер управляется вашей компанией, Групповая политика или Microsoft Endpoint Manager могут отменить любые внесенные изменения в эти ключи реестра после перезагрузки. Чтобы узнать, развернуты ли политики, управляющие конфигурацией VBS, обратитесь в свою службу технической ИТ-поддержки.
Шаг 3. Настройка URL-адреса аттестации
Примечание.
Этот шаг должен выполняться администратором компьютера SQL Server.
Далее вы настроите на компьютере с SQL Server URL-адрес службы аттестации HGS, полученный от администратора HGS.
В консоли Windows PowerShell с повышенными привилегиями обновите и выполните следующую команду, чтобы настроить URL-адрес аттестации.
- Замените
hgs.bastion.local
именем кластера HGS. - Чтобы узнать имя кластера, можно выполнить командлет
Get-HgsServer
на любом компьютере HGS. - URL-адрес аттестации всегда должен заканчиваться на
/Attestation
. - SQL Server не использует функции защиты ключей HGS, поэтому укажите для
http://localhost
любой фиктивный URL-адрес, например-KeyProtectionServerUrl
.
Set-HgsClientConfiguration -AttestationServerUrl "https://hgs.bastion.local/Attestation" -KeyProtectionServerUrl "http://localhost"
Если вы не зарегистрировали это устройство в системе HGS ранее, команда сообщит об ошибке аттестации. Это нормальный результат.
В поле AttestationMode
в выходных данных командлета указывается режим аттестации, используемый HGS.
Перейдите к шагу 4А, чтобы зарегистрировать компьютер в режиме TPM, или шагу 4Б, чтобы зарегистрировать компьютер в режиме ключа узла.
Шаг 4A. Регистрация компьютера в режиме TPM
Примечание.
Этот шаг выполняется совместно администратором компьютера SQL Server и администратором HGS. Дополнительные сведения см. в примечаниях ниже.
Подготовить
Примечание.
Это действие должно выполняться администратором компьютера SQL Server.
На этом шаге вы собираете сведения о состоянии модуля TPM компьютера и регистрируете их в службе HGS.
Если для службы аттестации HGS настроен режим ключа узла, вместо этого перейдите к шагу 4Б.
Прежде чем приступить к сбору показателей TPM, убедитесь в том, что вы работаете с известной исправной конфигурацией компьютера SQL Server. На компьютере должно быть установлено все необходимое оборудование, а также применены последние обновления встроенного ПО и программного обеспечения. Служба HGS сравнивает параметры компьютеров с этой базовой линией при их аттестации, поэтому важно находиться в максимально безопасном и предназначенном состоянии при сборе измерений модуля TPM.
Для аттестации модуля TPM собираются три файла данных, некоторые из которых можно использовать повторно при наличии одинаково настроенных компьютеров.
Артефакт аттестации | Что измеряется | Уникальность |
---|---|---|
Идентификатор платформы | Открытый ключ подтверждения в модуле TPM компьютера и сертификат ключа подтверждения от производителя модуля TPM. | 1 на каждый компьютер |
Базовые показатели TPM | Регистр контроля платформы (PCR) в модуле TPM, который измеряет конфигурацию встроенного ПО и ОС, загружаемую во время запуска. К примерам относятся состояние безопасной загрузки и шифрование аварийных дампов. | Один базовый план на уникальную конфигурацию компьютера (для одинакового оборудования и программного обеспечения можно использовать один и тот же базовый план) |
Политика целостности кода | Политика управления приложениями в Защитнике Windows, которой вы доверяете для защиты компьютеров | По одной для каждой уникальной политики CI, развернутой на компьютерах. |
В HGS можно настроить более одного артефакта аттестации каждого типа для поддержки смешанного парка оборудования и программного обеспечения. Служба HGS требует, чтобы компьютер, проходящий аттестацию, соответствовал хотя бы одной политике из каждой категории. Например, если в службе HGS зарегистрированы три контрольных показателя TPM, компьютерные измерения могут соответствовать любому из них, чтобы соответствовать требованиям политики.
Настройка политики целостности кода
Примечание.
Эти действия должны выполняться администратором компьютера SQL Server.
Служба HGS требует, чтобы к каждому компьютеру, проходящему аттестацию в режиме TPM, применялась политика управления приложениями в Защитнике Windows (WDAC). Политики целостности кода WDAC ограничивают программное обеспечение, которое может выполняться на компьютере, проверяя каждый процесс, пытающийся выполнить код, по списку доверенных издателей и хэшей файлов. В варианте использования SQL Server анклавы защищены функцией безопасности на основе виртуализации и не могут изменяться из операционной системы узла (OS), поэтому строгость политики WDAC не влияет на безопасность зашифрованных запросов. Таким образом, рекомендуется развернуть политику режима аудита на компьютерах SQL Server, чтобы обеспечить соответствие требованиям аттестации без применения дополнительных ограничений в системе.
Если вы уже используете настраиваемую политику целостности кода WDAC на компьютерах для защиты конфигурации ОС, можно перейти к разделу Получение сведений для аттестации TPM.
В операционных системах Windows Server 2019, Windows 10 версии 1809 и более поздних версий имеются готовые примеры политик. Политика
AllowAll
позволяет запускать на компьютере любое программное обеспечение без ограничений. Чтобы использовать политику, преобразуйте ее в двоичную форму, понятную операционной системе и службе HGS. Чтобы скомпилировать политикуAllowAll
, в консоли PowerShell с повышенными привилегиями выполните следующие команды.# We are changing the policy to disable enforcement and user mode code protection before compiling $temppolicy = "$HOME\Desktop\allowall_edited.xml" Copy-Item -Path "$env:SystemRoot\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml" -Destination $temppolicy Set-RuleOption -FilePath $temppolicy -Option 0 -Delete Set-RuleOption -FilePath $temppolicy -Option 3 ConvertFrom-CIPolicy -XmlFilePath $temppolicy -BinaryFilePath "$HOME\Desktop\allowall_cipolicy.bin"
Следуйте инструкциям в руководстве по развертыванию управления приложениями в Защитнике Windows, чтобы развернуть
allowall_cipolicy.bin
файл на компьютерах SQL Server с помощью групповой политики. Для компьютеров из рабочей группы выполните тот же процесс в редакторе локальных групповых политик (gpedit.msc
).Запустите
gpupdate /force
на компьютерах SQL Server, чтобы настроить новую политику целостности кода, а затем перезапустите компьютеры, чтобы применить политику.
Сбор информации об аттестации TPM
Примечание.
Эти действия должны выполняться администратором компьютера SQL Server.
Повторите следующие действия для каждого компьютера SQL Server, который будет тестироваться с помощью HGS:
На компьютере, который находится в достоверно хорошем состоянии, выполните следующие команды в PowerShell, чтобы собрать сведения для аттестации TPM:
# Collects the TPM EKpub and EKcert $name = $env:computername $path = "$HOME\Desktop" (Get-PlatformIdentifier -Name $name).Save("$path\$name-EK.xml") # Collects the TPM baseline (current PCR values) Get-HgsAttestationBaselinePolicy -Path "$path\$name.tcglog" -SkipValidation # Collects the applied CI policy, if one exists Copy-Item -Path "$env:SystemRoot\System32\CodeIntegrity\SIPolicy.p7b" -Destination "$path\$name-CIpolicy.bin"
Передайте три файла аттестации администратору HGS.
Регистрация компьютера SQL Server в HGS
Примечание.
Следующие шаги должны выполняться администратором HGS.
Повторите следующие действия для каждого компьютера SQL Server, который будет тестироваться с помощью HGS:
Скопируйте файлы аттестации, полученные от администратора компьютера SQL Server на сервер HGS.
На сервере HGS выполните следующие команды в консоли PowerShell с повышенными привилегиями, чтобы зарегистрировать компьютер SQL Server:
# TIP: REMEMBER TO CHANGE THE FILENAMES # Registers the unique TPM with HGS (required for every computer) Add-HgsAttestationTpmHost -Path "C:\temp\SQL01-EK.xml" # Registers the TPM baseline (required ONCE for each unique hardware and software configuration) Add-HgsAttestationTpmPolicy -Name "MyHWSoftwareConfig" -Path "C:\temp\SQL01.tcglog" # Registers the CI policy (required ONCE for each unique CI policy) Add-HgsAttestationCiPolicy -Name "AllowAll" -Path "C:\temp\SQL01-CIpolicy.bin"
Совет
Если при попытке зарегистрировать уникальный идентификатор модуля TPM возникла ошибка, убедитесь в том, что вы импортировали промежуточные и корневые сертификаты TPM на используемый компьютер HGS.
Помимо идентификатора платформы, базовых показателей TPM и политики целостности кода, может потребоваться изменить встроенные политики, настраиваемые и применяемые службой HGS. Эти встроенные политики измеряются относительно базовых показателей модуля TPM, собирающихся с сервера, и представляют различные параметры безопасности, которые должны быть включены для защиты компьютера. Если имеются компьютеры, на которых нет IOMMU для защиты от атак путем прямого доступа к памяти (DMA) (например, виртуальные машины), необходимо отключить политику IOMMU.
Чтобы отключить требование наличия IOMMU, выполните следующую команду на сервере HGS:
Disable-HgsAttestationPolicy Hgs_IommuEnabled
Примечание.
Если отключить политику IOMMU, блоки IOMMU не будут требоваться для компьютеров, проходящих аттестацию с помощью HGS. Политику IOMMU нельзя отключить для отдельного компьютера.
Список зарегистрированных узлов и политик TPM можно просмотреть с помощью следующих команд PowerShell:
Get-HgsAttestationTpmHost
Get-HgsAttestationTpmPolicy
Шаг 4B. Регистрация компьютера в режиме ключа хоста
Примечание.
Этот шаг выполняется совместно администратором компьютера SQL Server и администратором HGS. Дополнительные сведения см. в примечаниях ниже.
В этом разделе приводятся пошаговые инструкции по созданию уникального ключа для узла и его регистрации в службе HGS. Если для службы аттестации HGS настроен режим TPM, вместо этого выполните инструкции в шаге 4А.
Создание ключа для компьютера SQL Server
Примечание.
Эта часть должна выполняться совместно администратором компьютера SQL Server.
Аттестация ключей узла работает путем создания пары асимметричных ключей на компьютере SQL Server и предоставления HGS общедоступной половины этого ключа.
Повторите следующие действия для каждого компьютера SQL Server, который будет тестироваться с помощью HGS:
Чтобы создать пару ключей, в консоли PowerShell с повышенными привилегиями выполните следующую команду:
Set-HgsClientHostKey Get-HgsClientHostKey -Path "$HOME\Desktop\$env:computername-key.cer"
Если вы уже создали ключ узла и хотите создать новую пару ключей, вместо этого используйте следующие команды:
Remove-HgsClientHostKey Set-HgsClientHostKey Get-HgsClientHostKey -Path "$HOME\Desktop\$env:computername-key.cer"
Передайте файл сертификата администратору HGS.
Зарегистрируйте компьютер с SQL Server в HGS
Примечание.
Следующие шаги должны выполняться администратором HGS.
Повторите следующие действия для каждого компьютера SQL Server, который будет тестироваться с помощью HGS:
Скопируйте файл сертификата, полученный администратором компьютера SQL Server, на сервер HGS.
Выполните следующую команду в консоли PowerShell с повышенными привилегиями, чтобы зарегистрировать компьютер SQL Server:
Add-HgsAttestationHostKey -Name "YourComputerName" -Path "C:\temp\yourcomputername.cer"
Шаг 5. Подтвердите, что хост может успешно дать аттестацию
Примечание.
Этот шаг должен выполняться администратором компьютера SQL Server.
После регистрации компьютера SQL Server в HGS (шаг 4A для режима TPM, шаг 4B для режима ключа узла) убедитесь, что он может успешно пройти аттестацию.
Вы можете проверить конфигурацию клиента аттестации HGS и выполнить попытку аттестации в любое время, используя командлет PowerShell Get-HgsClientConfiguration.
Выходные данные команды будут выглядеть следующим образом:
PS C:\> Get-HgsClientConfiguration
IsHostGuarded : True
Mode : HostGuardianService
KeyProtectionServerUrl : http://localhost
AttestationServerUrl : http://hgs.bastion.local/Attestation
AttestationOperationMode : HostKey
AttestationStatus : Passed
AttestationSubstatus : NoInformation
FallbackKeyProtectionServerUrl :
FallbackAttestationServerUrl :
IsFallbackInUse : False
Два наиболее важных поля в выходных данных — AttestationStatus
(показывает, прошел ли компьютер аттестацию) и AttestationSubStatus
(показывает, какие политики не соблюдаются, если компьютер не прошел аттестацию).
Ниже описываются наиболее распространенные значения поля AttestationStatus
.
AttestationStatus |
Описание |
---|---|
Срок действия истек | Хост проходил аттестацию ранее, но срок действия выданного ему сертификата работоспособности истек. Проверьте, синхронизировано ли время узла и службы HGS. |
InsecureHostConfiguration |
Компьютер не соответствует одной или нескольким политикам аттестации, настроенным на сервере HGS. Дополнительные сведения см. в разделе AttestationSubStatus . |
Не настроено | На компьютере не настроен URL-адрес аттестации. Настройте URL-адрес аттестации. |
Успешно завершено | Компьютер прошел аттестацию и ему доверено выполнение анклавов SQL Server. |
TransientError |
Попытка аттестации завершилась сбоем из-за временной ошибки. Эта ошибка обычно означает, что возникла проблема при обращении к службе HGS по сети. Проверьте сетевое подключение и возможность разрешения имени службы HGS и маршрутизации к нему. |
TpmError |
Устройство TPM компьютера сообщило об ошибке во время попытки аттестации. Дополнительные сведения см. в журналах TPM. Очистка модуля TPM может помочь устранить эту проблему, но перед этим не забудьте приостановить работу BitLocker и других служб, использующих модуль TPM. |
UnauthorizedHost |
Ключ хоста неизвестен службе HGS. Чтобы зарегистрировать компьютер в службе HGS, выполните инструкции из шага 4Б. |
Если поле AttestationStatus
содержит значение InsecureHostConfiguration
, в поле AttestationSubStatus
будет указано имя одной или нескольких политик, приведших к сбою.
В таблице ниже описываются наиболее распространенные значения и способы устранения ошибок.
AttestationSubStatus | Пояснение и требуемые меры |
---|---|
Политика целостности кода | Политика целостности кода на компьютере не зарегистрирована в службе HGS или на компьютере в настоящее время не используется политика целостности кода. Инструкции см. в разделе Настройка политики целостности кода. |
Включение дампов | На компьютере разрешены аварийные дампы, но политика Hgs_DumpsEnabled запрещает их. Отключите дампы на этом компьютере или отключите политику Hgs_DumpsEnabled, чтобы продолжить. |
FullBoot | Компьютер вышел из спящего режима или гибернации, что привело к изменениям в показателях TPM. Перезапустите компьютер, чтобы создать чистые показатели TPM. |
HibernationEnabled | На компьютере разрешена гибернация с незашифрованными файлами гибернации. Чтобы устранить эту проблему, отключите гибернацию на компьютере. |
Политика Чистоты Исходного Кода, Обеспеченная Гипервизором (HypervisorEnforcedCodeIntegrityPolicy) | На компьютере не настроено использование политики целостности кода. Проверьте узел "Групповая политика" или "Локальная групповая политика" > "Конфигурация компьютера" > "Административные шаблоны" > "Система" > "Средство защиты устройств" > "Включить средство обеспечения безопасности на основе виртуализации" > "Защита целостности кода на основе виртуализации". Этот элемент политики должен иметь значение "Включено без блокировки UEFI". |
Iommu | На этом компьютере не включено устройство IOMMU. Если это физический компьютер, включите IOMMU в меню конфигурации UEFI. Если это виртуальная машина и IOMMU недоступен, выполните команду Disable-HgsAttestationPolicy Hgs_IommuEnabled на сервере HGS. |
SecureBoot | На этом компьютере не включена безопасная загрузка. Чтобы устранить эту ошибку, включите безопасную загрузку в меню конфигурации UEFI. |
VirtualSecureMode | На этом компьютере не запущена функция безопасности на основе виртуализации. Следуйте инструкциям на шаге 2. Убедитесь, что VBS запущен на компьютере. |