Планирование аттестации службы защиты узла

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

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

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

Аттестация крайне важна для обнаружения некоторых атак вредоносными администраторами ОС, например атак, связанных с изменением библиотеки SQL Server, работающей внутри анклава. Если вы не обеспокоены такими атаками (например, вы используете Always Encrypted с безопасными анклавами в нерабочей среде), см. статью Plan for Always Encrypted с безопасными анклавами в SQL Server без аттестации.

Роль службы защиты узла (HGS) в Windows Server 2019 или более поздних версий предоставляет возможности удаленной аттестации для Always Encrypted с анклавами VBS. В этой статье описываются действия, выполняемые перед развертыванием, и требования к использованию Always Encrypted с анклавами VBS и аттестацией HGS.

Заметка

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

Обзор архитектуры

Служба защиты узла (HGS) — это кластеризованная веб-служба, работающая в Windows Server 2019 или более поздних версий. В обычном развертывании будет 1–3 сервера HGS, по крайней мере один компьютер под управлением SQL Server, а компьютер под управлением клиентского приложения или средств, таких как SQL Server Management Studio. Поскольку служба HGS отвечает за определение доверенных компьютеров с SQL Server, ей требуется как физическая, так и логическая изоляция от защищаемого экземпляра SQL Server. Если те же администраторы имеют доступ к HGS и компьютеру SQL Server, они могут настроить службу аттестации, чтобы разрешить вредоносному компьютеру запускать SQL Server, что позволяет скомпрометировать анклав VBS.

Домен HGS

В ходе установки HGS автоматически создается домен Active Directory для серверов HGS, ресурсов отказоустойчивого кластера и учетных записей администраторов.

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

Высокая доступность

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

Между узлами HGS не требуется создавать общее хранилище. Копия базы данных аттестации хранится на каждом сервере HGS и автоматически реплицируется по сети службой кластеров.

Сетевое соединение

Клиент SQL и SQL Server должны иметь возможность взаимодействовать с HGS по протоколу HTTP. Настройте HGS с помощью сертификата TLS для шифрования всех данных, передаваемых между клиентом SQL и HGS, а также между SQL Server и HGS. Такая конфигурация помогает обеспечить защиту от атак типа "злоумышленник в середине" и гарантирует связь с правильным сервером HGS.

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

Режимы аттестации

Когда компьютер под управлением SQL Server пытается протестировать с помощью HGS, сначала будет спрашивать HGS, как это должно быть подтверждено. HGS поддерживает два режима аттестации для использования с SQL Server:

Режим аттестации Пояснение
TPM (Доверенный платформенный модуль) Аттестация доверенного платформенного модуля (TPM) обеспечивает надежную гарантию идентификации и целостности компьютера, проходящего аттестацию с помощью HGS. Для этого требуется, чтобы компьютеры под управлением SQL Server установили TPM версии 2.0. Каждая микросхема доверенного платформенного модуля имеет уникальный и неизменяемый идентификатор (ключ подтверждения), который можно использовать для проверки подлинности конкретного компьютера. Кроме того, модули TPM измеряют процесс загрузки компьютера, сохраняя хэши чувствительных к безопасности измерений в регистрах управления платформой (PCR), которые могут быть считаны, но не изменены операционной системой. Эти измерения используются во время аттестации для криптографического доказательства заявленной конфигурации безопасности компьютера.
Ключ узла Аттестация ключа узла — это упрощенная форма аттестации для проверки подлинности компьютера только с помощью пары асимметричных ключей. Закрытый ключ хранится на компьютере под управлением SQL Server, а открытый ключ предоставляется HGS. Конфигурация безопасности компьютера не оценивается, и для компьютера с SQL Server не требуется микросхема TPM 2.0. Важно защитить закрытый ключ, установленный на компьютере с SQL Server, так как любой пользователь, получающий этот ключ, может олицетворить законный компьютер SQL Server и анклав VBS, работающий в SQL Server.

Ниже приведены общие рекомендации.

  • Для физических рабочих серверов рекомендуется использовать аттестацию доверенного платформенного модуля для дополнительных гарантий, которые он предоставляет.
  • Для виртуальных рабочих серверов рекомендуется использовать аттестацию ключа узла, так как в большинстве виртуальных машин виртуальные модули TPM или безопасная загрузка недоступны. Если вы используете виртуальную машину с повышенным уровнем безопасности, например локальную экранированную виртуальную машину, можно выбрать режим TPM. Во всех виртуализированных развертываниях процесс аттестации анализирует только среду виртуальной машины, но не ее базовую платформу виртуализации.
  • В сценариях разработки и тестирования рекомендуется использовать аттестацию ключа узла, так как ее проще настроить.

Модель доверия

В модели доверия анклава VBS зашифрованные запросы и данные проходят оценку в программном анклаве, чтобы защитить его из ОС узла. Доступ к анклаву защищается гипервизором по такому же принципу, когда две виртуальные машины, работающие на одном компьютере, не могут получить доступ к памяти друг друга.

Чтобы клиент доверял тому, что он разговаривает с законным экземпляром VBS, необходимо использовать аттестацию на основе TPM, которая устанавливает аппаратный корень доверия на компьютере SQL Server.

Измерения доверенного платформенного модуля, выполненные во время процесса загрузки, включают уникальный ключ удостоверения экземпляра VBS, гарантирующий, что сертификат работоспособности действителен только на этом конкретном компьютере. Кроме того, если доверенный платформенный модуль доступен на компьютере с VBS, TPM защищает закрытую часть ключа удостоверения VBS, исключая попытки олицетворения этого экземпляра VBS.

В режиме аттестации TPM необходимо включить функцию безопасной загрузки, гарантирующую загрузку законного и подписанного корпорацией Майкрософт загрузчика и исключающую перехват процесса загрузки низкоуровневой оболочки программами rootkit. Кроме того, по умолчанию требуется устройство IOMMU, запрещающее всем устройствам с прямым доступом к памяти проверять или изменять память анклава.

Все эти защиты предполагают, что компьютер под управлением SQL Server является физическим компьютером. Если вы виртуализируете компьютер под управлением SQL Server, вы больше не можете гарантировать, что память виртуальной машины безопасна от проверки гипервизором или администратором гипервизора. Администратор гипервизора может, например, дамп памяти виртуальной машины и получить доступ к открытой версии запроса и данных в анклавах. Аналогично, даже если в виртуальной машине есть виртуальный доверенный платформенный модуль, он может измерять только состояние и целостность операционной системы виртуальной машины и среды загрузки. Он не может измерять состояние низкоуровневой оболочки, управляющей виртуальной машиной (VM).

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

Аналогичным образом аттестация ключа узла по-прежнему ценна в ситуациях, когда модуль TPM 2.0 не установлен на компьютере под управлением SQL Server или в сценариях разработки и тестирования, где безопасность не является первостепенной. Вы по-прежнему можете использовать множество упомянутых функций безопасности, включая безопасную загрузку и модуль TPM 1.2, для более эффективной защиты виртуальных машин и операционной системы в целом. Однако поскольку в рамках аттестации узла ключа служба HGS не может проверить, что эти параметры включены на компьютере, клиенту не гарантируется, что узел действительно использует все доступные средства защиты.

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

Необходимые компоненты для сервера HGS

Компьютер с ролью службы защиты узла, должны соответствовать следующим требованиям.

Компонент Требование
Операционная система Windows Server 2019 или более поздняя версия, выпуск Standard или Datacenter
ЦП 2 ядра (минимум), 4 ядра (рекомендуется)
ОЗУ 8 ГБ (минимум)
Сетевые карты Рекомендуются две сетевые карты со статическими IP-адресами (одна для трафика кластера и одна для службы HGS)

HGS — это роль, использующая ресурсы ЦП, которые необходимы для действий, требующих шифрования и расшифровки. Использование современных процессоров с возможностями ускорения шифрования повысит производительность HGS. Требования к хранению данных аттестации минимальны: от 10 КБ до 1 МБ на каждый проходящий аттестацию компьютер.

Компьютер(ы) HGS не должен (не должны) присоединяться к домену перед началом работы.

Предварительные требования к компьютеру SQL Server

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

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

  • SQL Server 2019 (15.x) или более поздней версии
  • Windows 10, версия 1809 или более поздняя — Корпоративная, Windows 11 или более поздней версии — Корпоративная, Windows Server 2019 или более поздней версии — выпуск Datacenter. Другие выпуски Windows 10/11 и Windows Server не поддерживают аттестацию с помощью HGS.
  • Поддержка ЦП для технологий виртуализации:
    • 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. Просмотрите сведения о совместимости и инструкции по настройке в документации по своему решению для виртуализации.
  • Если вы планируете выполнить аттестацию TPM, для работы на сервере потребуется микросхема TPM 2.0 ред. 1.16. В настоящее время аттестация HGS не работает с микросхемами TPM 2.0 ред. 1.38. Кроме того, доверенный платформенный модуль должен иметь допустимый сертификат ключа подтверждения.

Роли и обязанности при настройке аттестации с помощью HGS

Настройка аттестации с помощью HGS включает настройку компонентов различных типов: HGS, компьютеров SQL Server, экземпляров SQL Server и приложений, которые активируют аттестацию анклава. Настройка компонентов каждого типа выполняется пользователями со следующими различными ролями.

  • Администратор HGS — развертывает HGS, регистрирует компьютеры SQL Server с помощью HGS и предоставляет общий доступ к URL-адресу аттестации HGS с администраторами компьютеров SQL Server и администраторами клиентских приложений.
  • Администратор компьютера SQL Server — устанавливает клиентские компоненты аттестации, включает VBS на компьютерах SQL Server, предоставляет администратору HGS сведения, необходимые для регистрации компьютеров SQL Server в HGS, настраивает URL-адрес аттестации на компьютерах SQL Server и проверяет, что компьютеры SQL Server могут успешно проверяться с помощью HGS.
  • DBA — настраивает безопасные анклава в экземплярах SQL Server.
  • Администратор приложений. Настраивает приложение с использованием URL-адреса аттестации, полученным от администратора HGS.

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

Рекомендации по разработке или тестированию среды

Если вы используете Always Encrypted с анклавами VBS в среде разработки или тестирования и не требует высокой доступности или строгой защиты компьютера под управлением SQL Server, вы можете сделать любые или все следующие уступки для упрощенного развертывания:

  • Используйте Always Encrypted с безопасными анклавами без аттестации. См. раздел "Планирование always Encrypted с безопасными анклавами в SQL Server без аттестации".
  • Кроме того:
    • Разверните только один узел HGS. Несмотря на то что HGS устанавливает отказоустойчивый кластер, вам не нужно добавлять дополнительные узлы, если высокий уровень доступности не является проблемой.
    • Для упрощения процесса установки вместо режима TPM используйте режим ключа узла.
    • Виртуализация HGS и(или) SQL Server для сохранения физических ресурсов.
    • Запустите SSMS или другие средства для настройки Always Encrypted с безопасными анклавами на том же компьютере, что и SQL Server. Это оставляет главные ключи столбцов на том же компьютере, что и SQL Server, поэтому это не делается в рабочей среде.

Далее