Подключение к ядру СУБД с расширенной защитой
Область применения:SQL Server
SQL Server поддерживает расширенную защиту , начиная с SQL Server 2008 R2 (10.50.x).
расширенная защита помогает предотвратить атаки ретрансляции аутентификации, обеспечивая, что клиент знает, к какому сервису он подключается.
расширенная защита — это функция сетевых компонентов, реализованных операционной системой. Расширенная защита поддерживается в Windows 7 и Windows Server 2008 R2. Расширенная защита входит в пакет обновления для более старых операционных систем Microsoft.
SQL Server является более безопасным, если подключения выполняются с помощью расширенной защиты.
Описание расширенной защиты
Расширенная защита предусматривает привязку служб и каналов для предотвращения релейных атак при проверке подлинности. Во время проведения релейной атаки при проверке подлинности клиент, который может выполнить проверку подлинности NTLM (например, через проводник Windows, Microsoft Outlook, приложение .NET SqlClient и т. д.), подключается к атакующему (например, злонамеренному файловому серверу CIFS). Злоумышленник использует учетные данные клиента, чтобы выдавать себя за клиента и проходить аутентификацию в сервисе, например, в экземпляре СУБД.
Существуют две разновидности этой атаки.
В атаках с заманиванием клиента заставляют добровольно подключиться к злоумышленнику.
В спуфинговой атаке клиент намерен подключиться к действительной службе, но не знает, что DNS и IP-маршрутизация подделаны, чтобы перенаправить подключение к злоумышленнику.
SQL Server поддерживает привязку служб и каналов, чтобы сократить возможность проведения таких атак на экземпляр SQL Server.
Привязка службы
Привязка служб решает проблему атак с заманиванием, требуя от клиента отправки подписанного имени участника службы (SPN) службы SQL Server, к которой клиент собирается подключиться. В рамках ответа аутентификации служба проверяет, совпадает ли полученное в пакете имя основного участника службы (SPN) с ее собственным SPN. Если клиента заманивают подключиться к злоумышленнику, клиент включает подписанный SPN злоумышленника. Злоумышленник не может переслать пакет для аутентификации на настоящий сервис SQL Server, выступая в роли клиента, так как это будет включать в себя SPN злоумышленника. Привязка службы влечет за собой незначительные единовременные затраты, но не устраняет атаки подделки (спуфинга). Привязка службы возникает, когда клиентское приложение не использует шифрование для подключения к SQL Server.
Привязка канала
Привязка канала устанавливает защищенный канал (Schannel) между клиентом и экземпляром службы SQL Server. Служба проверяет подлинность клиента, сравнивая маркер привязки канала клиента (CBT), специфичный для этого канала, с собственным CBT. Привязка канала противодействует как заманивающим атакам, так и атакам с подделкой. Тем не менее, это увеличивает затраты на выполнение, так как требуется шифрование TLS для всего трафика сеанса. Привязка канала происходит, когда клиентское приложение использует шифрование для подключения к SQL Server вне зависимости от принудительного применения шифрования клиентом или сервером.
Предупреждение
Поставщики данных SQL Server и Microsoft для SQL Server поддерживают TLS 1.0 и SSL 3.0. Если применить другой протокол (например, TLS 1.1 или TLS 1.2), внеся изменения на уровне операционной системы SChannel, при подключении к SQL Server может возникнуть ошибка. Убедитесь, что у вас установлена последняя сборка SQL Server для поддержки TLS 1.1 или TLS 1.2. Дополнительные сведения см. в разделе https://support.microsoft.com/topic/kb3135244-tls-1-2-support-for-microsoft-sql-server-e4472ef8-90a9-13c1-e4d8-44aad198cdbe.
Поддержка операционной системы
Дополнительные сведения о поддержке расширенной защитыв ОС Windows можно найти по следующим ссылкам:
Интегрированная проверка подлинности Windows с расширенной защитой
Советы по безопасности от Microsoft (973811), расширенная защита для проверки подлинности
Настройки
Имеются три параметра подключения к SQL Server, влияющие на привязку служб и привязку каналов. Параметры можно настроить с помощью диспетчера конфигурации SQL Server или WMI и просмотреть с помощью аспекта управления на основе политик "Настройки протокола сервера".
Принудительное шифрование
Возможные значения — Вкл. и Выкл. Чтобы использовать привязку канала, принудительное шифрование необходимо установить в положение Вкл., а все клиенты должны передавать данные в зашифрованном виде. Если выкл, гарантируется только сервисная привязка. ПараметрПринудительное шифрование — это один из флажков на вкладке Свойства протоколов для MSSQLSERVER (вкладка "Флаги") в диспетчере конфигурации SQL Server.
Расширенная защита
Возможными значениями являются Выкл., Разрешенои Обязательно. Параметр Расширенная защита позволяет настраивать уровень расширенной защиты для каждого экземпляра SQL Server. ПараметрРасширенная защита находится на дополнительной вкладке Свойства протоколов для MSSQLSERVER в диспетчере конфигурации SQL Server.
Если задано значение Выкл., Расширенная защита отключается. Экземпляр SQL Server принимает подключения от любого клиента независимо от того, защищен ли клиент. Off совместим со старыми и неисправленными операционными системами, но менее безопасен. Используйте этот параметр, если клиентские операционные системы не поддерживают расширенную защиту.
Если задано Разрешено, функция Расширенная защита требуется для соединений от операционных систем, поддерживающих функцию Расширенная защита. расширенная защита игнорируется для подключений из операционных систем, которые не поддерживают расширенную защиту. Подключения от незащищенных клиентских приложений, работающих в защищенных клиентских операционных системах, отклоняются. Этот параметр является более безопасным, чем Off, но это не является самым безопасным. Используйте этот параметр в смешанных средах; некоторые операционные системы поддерживают расширенную защиту, а другие — нет.
Если выбрано Обязательно, то будут приниматься только соединения от защищенных приложений на защищенных операционных системах. Этот параметр является наиболее безопасным, но подключения из операционных систем или приложений, которые не поддерживают расширенную защиту не смогут подключаться к SQL Server.
Принятые SPNs NTLM
Переменная принимаемые NTLM SPNs необходима, если несколько SPN распознают сервер. Когда клиент пытается подключиться к серверу, используя действительное SPN, о котором сервер не знает, привязка сервиса завершается ошибкой. Чтобы избежать этой проблемы, пользователи могут указать несколько SPN, представляющих сервер, с помощью принимаемых NTLM SPN. Принятые NTLM SPN — это ряд SPN, разделенных точками с запятой. Например, чтобы разрешить SPN MSSQLSvc/ HostName1.Contoso.com и MSSQLSvc/ HostName2.Contoso.com, введите MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com в поле Принятые SPN NTLM. Максимальная длина этой переменной 2 048 символов. ПараметрПринятые имена участников-служб NTLM находится на дополнительной вкладке Свойства протоколов для MSSQLSERVER в диспетчере конфигурации SQL Server.
Включение расширенной защиты ядра СУБД
Для использования расширенной защитысервер и клиент должны иметь операционную систему, которая поддерживает расширенную защиту и должна быть активирована на операционной системе. Дополнительные сведения о включении расширенной защиты в операционной системе см. в разделе Расширенная защита при проверке подлинности.
Хотя расширенная защита и NTLMv2 по умолчанию включены во всех поддерживаемых версиях Windows, расширенная защита по умолчанию не включена для подключений SQL Server. Пользователи должны вручную включить его в SQL Server Configuration Manager.
Чтобы включить Расширенную защиту для подключений SQL Server, администраторы должны настроить параметры в Диспетчер конфигурации SQL Server. Сюда входят параметры привязки сервиса и привязки каналов для смягчения различных типов атак ретрансляции аутентификации. Подробные инструкции см. в документации по SQL Server по настройке расширенной защиты.
После включения параметра Расширенная защита на компьютере сервера выполните следующие шаги, чтобы включить расширенную защиту.
В меню "Пуск" выберите Все программы, наведите указатель на Microsoft SQL Server, а затем выберите SQL Server Configuration Manager.
Разверните конфигурацию сети SQL Server, затем щелкните правой кнопкой мыши Протоколы для _<_InstanceName*>*, а затем выберите Свойства.
на вкладке Advanced установите Extended Protection на соответствующий параметр как для привязки канала, так и для привязки службы.
При необходимости, если несколько SPN знают сервер, на вкладке "Дополнительно" настройте поле Принятые NTLM SPN, как описано в разделе "Настройки".
Для привязки канала на вкладке Флаги установите параметр Принудительное шифрование в значение Вкл.
Перезапустите службу ядра СУБД.
Настройка других компонентов SQL Server
Дополнительные сведения о настройке Reporting Services см. в разделе Расширенная защита для проверки подлинности служб Reporting Services.
При использовании IIS для доступа к данным Analysis Services по подключению http или https, Analysis Services могут воспользоваться преимуществами расширенной защиты, предоставляемыми возможностями IIS. Дополнительные сведения о настройке IIS для использования расширенной защиты см. в разделе Настройка расширенной защиты в IIS 7.5.