Планирование always Encrypted с безопасными анклавами в SQL Server без аттестации

Область применения: SQL Server 2019 (15.x) и более поздних версий — только для Windows

Настройка Always Encrypted с безопасными анклавами в SQL Server без аттестации позволяет легко начать работу с этой функцией. Однако при использовании безопасных анклавах в рабочей среде следует учитывать, что уровень защиты от администраторов ОС снижается без аттестации. Например, если вредоносный администратор ОС перенастраивал библиотеку SQL Server, запущенную внутри анклава, клиентское приложение не сможет обнаружить его. Если вы обеспокоены такими атаками, попробуйте настроить аттестацию с помощью службы защиты узла. Дополнительные сведения см. в разделе "Планирование аттестации службы защиты узлов".

В SQL Server Always Encrypted с безопасными анклавами использует анклавы безопасности на основе виртуализации (VBS) (также известные как виртуальный безопасный режим или анклавы VSM) — программное обеспечение, использующее гипервизор Windows и не требующее специального оборудования.

Заметка

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

Предварительные условия

Компьютеры под управлением SQL Server должны соответствовать требованиям для установки SQL Server и требований к оборудованию Hyper-V.

К этим требованиям относятся:

  • SQL Server 2019 (15.x) или более поздней версии

  • Windows 10 или более поздней версии или Windows Server 2019 или более поздней версии.

  • Поддержка ЦП для технологий виртуализации:

    • Intel VT-x с Extended Page Tables.
    • AMD-V с Rapid Virtualization Indexing.
    • Если вы используете SQL Server на виртуальной машине:
      • В Azure используйте размер виртуальной машины 2-го поколения (рекомендуется) или размер виртуальной машины 1-го поколения с включенной вложенной виртуализацией. Изучите документацию по размерам отдельных виртуальных машин, чтобы определить, какие размеры виртуальных машин 1-го поколения поддерживают вложенную виртуализацию.
      • В Hyper-V 2016 или более поздней версии (за пределами Azure) убедитесь, что виртуальная машина — это виртуальная машина поколения 2 (рекомендуется) или виртуальная машина поколения 1 с включенной вложенной виртуализацией. Дополнительные сведения см. в статьях о том, как выбрать поколение для виртуальной машины в Hyper-V, и о настройке вложенной виртуализации.
      • В VMware vSphere 6.7 или более поздней версии включите для виртуальной машины поддержку безопасности на основе виртуализации, как описано в документации VMware.
      • Другие низкоуровневые оболочки и общедоступные облака могут поддерживать возможности вложенной виртуализации, позволяющие использовать Always Encrypted с анклавами VBS. Просмотрите сведения о совместимости и инструкции по настройке в документации по своему решению для виртуализации.
  • Безопасность на основе виртуализации (VBS) должна быть включена и запущена.

Требования к инструментам

Требования к драйверу клиента

Сведения о версиях драйверов клиента, поддерживающих использование безопасных анклавах без аттестации, см. в статье "Разработка приложений с помощью Always Encrypted с безопасными анклавами".

Проверка выполнения VBS

Заметка

Этот шаг должен выполняться администратором компьютера SQL Server.

Чтобы проверить, работает ли VBS, откройте средство "Сведения о системе", запустив файл msinfo32.exe, и найдите элементы Virtualization-based security ближе к концу списка "Сведения о системе".

Screenshot of System Information showing virtualization-based security status and configuration.

Первый элемент, который нужно проверить, — Virtualization-based security. Он может иметь одно из трех состояний.

  • Running означает, что функция VBS настроена правильно и была успешно запущена.
  • Enabled but not running означает, что запуск функции VBS настроен, но оборудование не отвечает минимальным требованиям для запуска VBS. Может потребоваться изменить конфигурацию оборудования в BIOS или UEFI посредством включения дополнительных функций процессора, таких как IOMMU, либо (если оборудование действительно не поддерживает необходимые функции) снизить требования для VBS. Дополнительные сведения см. далее в этом разделе.
  • Not enabled означает, что запуск функции VBS не настроен.

Включение VBS

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

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name EnableVirtualizationBasedSecurity -Value 1

После изменения реестра перезапустите компьютер SQL Server и проверьте, работает ли VBS снова.

Другие способы включения VBS см. в статье "Включение защиты целостности кода на основе виртуализации".

Запуск VBS, если он не запущен

Если VBS включен, не выполняя на компьютере, проверьте Virtualization-based security свойства. Сравните значения элемента Required Security Properties со значениями элемента Available Security Properties. Чтобы функция VBS выполнялась, требуемые свойства должны быть равны доступным свойствам безопасности или являться их подмножеством. Свойства безопасности имеют следующую важность:

  • Base virtualization support требуется всегда, так как представляет минимальный набор компонентов оборудования, необходимый для запуска гипервизора.
  • Secure Boot рекомендуется, но не требуется. Безопасная загрузка защищает от программ rootkit, требуя запуска подписанного корпорацией Майкрософт загрузчика после завершения инициализации UEFI.
  • DMA Protection рекомендуется, но не требуется. Защита DMA использует IOMMU для защиты VBS и памяти анклава от атак с прямым доступом к памяти. В рабочей среде следует всегда использовать компьютеры с защитой DMA. В среде разработки или тестирования можно удалить требование защиты DMA. Если экземпляр SQL Server виртуализирован, скорее всего, у вас нет защиты DMA и потребуется удалить требование для запуска VBS.

Прежде чем понижать требования к функциям безопасности для VBS, обратитесь к изготовителю оборудования (OEM) или поставщику облачных служб, чтобы узнать, можно ли каким-либо образом обеспечить выполнение недостающих требований платформы в UEFI или BIOS (например, включить безопасную загрузку, Intel VT-d или AMD IOV).

Чтобы изменить требуемые функции безопасности платформы для VBS, выполните следующую команду в консоли PowerShell с повышенными привилегиями:

# 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 1

После изменения реестра перезапустите компьютер SQL Server и проверьте, работает ли VBS снова.

Если компьютер управляется вашей компанией, групповая политика или Microsoft Endpoint Manager могут переопределить любые изменения, внесенные в эти разделы реестра после перезапуска. Чтобы узнать, развернуты ли политики, управляющие конфигурацией VBS, обратитесь в свою службу технической ИТ-поддержки.

Далее