Udostępnij za pośrednictwem


Połącz się z silnikiem bazy danych z użyciem rozszerzonej ochrony

Dotyczy:programu SQL Server

SQL Server obsługuje Rozszerzoną Ochronę począwszy od SQL Server 2008 R2 (10.50.x).

Rozszerzona ochrona pomaga zapobiegać atakom przekazywania uwierzytelniania, upewniając się, że klient zna usługę, z którą nawiązuje połączenie.

Rozszerzona Ochrona to funkcja składników sieci wdrożonych przez system operacyjny. Rozszerzona Ochrona jest obsługiwana w systemach Windows 7 i Windows Server 2008 R2. Rozszerzona Ochrona jest zawarta w dodatkach Service Pack dla starszych systemów operacyjnych firmy Microsoft.

Program SQL Server jest bezpieczniejszy, gdy połączenia są tworzone przy użyciu rozszerzonej ochrony.

Opis rozszerzonej ochrony

Rozszerzona Ochrona używa wiązania usług oraz wiązania kanałów, aby zapobiec atakowi przekazywania uwierzytelniania. W przypadku ataku przekazywania uwierzytelniania klient, który może przeprowadzić uwierzytelnianie NTLM (na przykład Eksplorator Windows, Microsoft Outlook, aplikacja .NET SqlClient itp.), nawiązuje połączenie z atakującym (na przykład ze złośliwym serwerem plików CIFS). Osoba atakująca używa poświadczeń klienta do podszywania się pod klienta i uwierzytelniania w usłudze (na przykład instancji silnika bazy danych).

Istnieją dwie odmiany tego ataku:

  • W przypadku ataku zwabiającego klient jest zwabiony, aby dobrowolnie nawiązać połączenie z atakującym.

  • W przypadku ataku fałszowania klient zamierza nawiązać połączenie z prawidłową usługą, ale nie jest świadomy, że routing DNS lub IP jest zatruty w celu przekierowania połączenia do atakującego.

Program SQL Server obsługuje powiązanie usługi i powiązanie kanału, aby zmniejszyć te ataki na wystąpienia programu SQL Server.

Powiązanie usługi

Powiązanie usługi przeciwdziała atakom polegającym na przechwyceniu, wymagając od klienta wysłania podpisanej głównej nazwy usługi (SPN) usługi SQL Server, z którą klient zamierza nawiązać połączenie. W ramach odpowiedzi uwierzytelniania usługa sprawdza, czy nazwa SPN odebrana w pakiecie jest zgodna z własną nazwą SPN. Jeśli klient zostanie zwabiony do połączenia z atakującym, klient zawiera podpisane przez atakującego dane SPN. Osoba atakująca nie może przekazać pakietu w celu uwierzytelnienia się w rzeczywistej usłudze programu SQL Server jako klienta, ponieważ zawierałaby nazwę SPN osoby atakującej. Powiązanie usługi wiąże się z jednorazowym, niewielkim kosztem, ale nie zapobiega atakom fałszującym. Powiązanie usługi występuje, gdy aplikacja kliencka nie używa szyfrowania w celu nawiązania połączenia z programem SQL Server.

Wiązanie kanału

Powiązanie kanałów ustanawia bezpieczne połączenie (Schannel) między klientem a instancją usługi SQL Server. Usługa weryfikuje autentyczność klienta, porównując token powiązania kanału klienta (CBT) specyficzny dla tego kanału z własnym CBT. Powiązanie kanału dotyczy zarówno ataków zwabiających, jak i fałszujących. Jednak wiąże się to z większym kosztem środowiska uruchomieniowego, ponieważ wymaga szyfrowania protokołu Transport Layer Security (TLS) całego ruchu sesji. Powiązanie kanału występuje, gdy aplikacja kliencka używa szyfrowania w celu nawiązania połączenia z programem SQL Server, niezależnie od tego, czy szyfrowanie jest wymuszane przez klienta, czy przez serwer.

Ostrzeżenie

Dostawcy danych programu SQL Server i firmy Microsoft dla programu SQL Server obsługują protokoły TLS 1.0 i SSL 3.0. Jeśli wymusisz inny protokół (np. TLS 1.1 lub TLS 1.2), wprowadzając zmiany w warstwie SChannel systemu operacyjnego, połączenia z programem SQL Server mogą zakończyć się niepowodzeniem. Upewnij się, że masz najnowszą kompilację programu SQL Server do obsługi protokołu TLS 1.1 lub TLS 1.2. Aby uzyskać więcej informacji, zobacz https://support.microsoft.com/topic/kb3135244-tls-1-2-support-for-microsoft-sql-server-e4472ef8-90a9-13c1-e4d8-44aad198cdbe.

Obsługa systemu operacyjnego

Poniższe linki zawierają więcej informacji o tym, jak system Windows obsługuje rozszerzoną ochronę:

Ustawienia

Istnieją trzy ustawienia połączenia programu SQL Server, które mają wpływ na powiązanie usługi i powiązanie kanału. Ustawienia można skonfigurować przy użyciu Menedżera konfiguracji programu SQL Server lub usługi WMI i wyświetlić przy użyciu aspektu Ustawienia protokołu serwera zarządzania zasadami.

Wymuszanie szyfrowania

Możliwe wartości to Włączony i Wyłączony. Aby użyć powiązania kanału, Wymuszanie szyfrowania musi być ustawiona na wartość On, a wszyscy klienci muszą szyfrować. Jeśli jest wyłączone, gwarantowane jest tylko powiązanie usługi. Wymuszanie szyfrowania znajduje się w Protokoły we właściwościach MSSQLSERVER (zakładka Flags) w SQL Server Configuration Manager.

Rozszerzona ochrona

Możliwe wartości to Wyłączony, Dozwolonyi Wymagany. Zmienna Extended Protection umożliwia użytkownikom skonfigurowanie poziomu rozszerzonej ochrony dla każdego wystąpienia programu SQL Server. Rozszerzona Ochrona znajduje się w Protocols for MSSQLSERVER Properties (Advanced Tab) w programie SQL Server Configuration Manager.

Po ustawieniu na Wyłączone, rozszerzona ochrona jest wyłączona. Wystąpienie programu SQL Server akceptuje połączenia od dowolnego klienta niezależnie od tego, czy klient jest chroniony, czy nie. Off jest zgodne ze starszymi i nienaprawionymi systemami operacyjnymi, ale jest mniej bezpieczne. Użyj tego ustawienia, gdy systemy operacyjne klienta nie obsługują rozszerzonej ochrony.

Jeśli ustawiono na Dozwolone, wymagana jest Rozszerzona Ochrona dla połączeń z systemów operacyjnych obsługujących Rozszerzoną Ochronę. Funkcja Rozszerzonej Ochrony jest ignorowana w przypadku połączeń z systemów operacyjnych, które nie obsługują Rozszerzonej Ochrony. Połączenia z niechronionych aplikacji klienckich uruchomionych w chronionych systemach operacyjnych klienta są odrzucane. To ustawienie jest bezpieczniejsze niż Wyłączone, ale nie jest najbezpieczniejsze. Użyj tego ustawienia w środowiskach mieszanych; niektóre systemy operacyjne obsługują Extended Protection, a inne nie.

Po ustawieniu na wymagane, akceptowane są tylko połączenia z chronionych aplikacji działających na chronionych systemach operacyjnych. To ustawienie jest najbezpieczniejsze, ale połączenia z systemów operacyjnych lub aplikacji, które nie obsługują rozszerzonej ochrony nie będą mogły łączyć się z programem SQL Server.

Zaakceptowane nazwy SPN NTLM

Zmienna zaakceptowanych SPN NTLM jest wymagana, gdy więcej niż jeden SPN zna serwer. Gdy klient próbuje połączyć się z serwerem przy użyciu prawidłowego SPN, którego serwer nie rozpoznaje, powiązanie usługi kończy się niepowodzeniem. Aby uniknąć tego problemu, użytkownicy mogą określić kilka nazw SPN reprezentujących serwer przy użyciu zaakceptowanych nazw SPN NTLM. zaakceptowane nazwy SPN NTLM to seria nazw SPN oddzielonych średnikami. Aby na przykład zezwolić na nazwy SPN MSSQLSvc/HostName1.Contoso.com i MSSQLSvc/HostName2.Contoso.com, wpisz MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com w polu Zaakceptowane nazwy SPN NTLM. Zmienna ma maksymalną długość 2048 znaków. Zaakceptowane SPN-y NTLM znajdują się w Protocols for MSSQLSERVER Properties (Advanced Tab) w narzędziu SQL Server Configuration Manager.

Włączanie rozszerzonej ochrony silnika bazy danych

Aby używać rozszerzonej ochrony, zarówno serwer, jak i klient muszą mieć system operacyjny obsługujący rozszerzoną ochronę i musi ona być włączona w systemie operacyjnym. Aby uzyskać więcej informacji na temat włączania Rozszerzonej Ochrony dla systemu operacyjnego, zobacz Rozszerzoną Ochronę dla Uwierzytelniania.

Chociaż rozszerzonej ochrony i NTLMv2 są domyślnie włączone we wszystkich obsługiwanych wersjach systemu Windows, rozszerzonej ochrony nie jest domyślnie włączona dla połączeń programu SQL Server. Użytkownicy muszą ręcznie włączyć go w programie SQL Server Configuration Manager.

Aby włączyć Rozszerzonej Ochrony dla połączeń programu SQL Server, administratorzy muszą skonfigurować ustawienia w programie SQL Server Configuration Manager. Obejmuje to opcje powiązania usługi i powiązania kanału w celu ograniczenia różnych typów ataków przekazywania uwierzytelniania. Aby uzyskać szczegółowe instrukcje, zapoznaj się z dokumentacją programu SQL Server dotyczącą konfigurowania rozszerzonej ochrony.

Po włączeniu rozszerzonej ochrony na komputerze serwera wykonaj następujące kroki, aby włączyć rozszerzoną ochronę:

  1. W menu Start Start wybierz Wszystkie programy, wskaż Microsoft SQL Server, a następnie wybierz SQL Server Configuration Manager.

  2. Rozwiń konfigurację sieci programu SQL Server, a następnie kliknij prawym przyciskiem myszy Protokoły dla _<_InstanceName*>*, i wybierz Właściwości.

  3. na karcie Zaawansowane ustaw Rozszerzoną Ochronę na odpowiednie ustawienie dla powiązania kanału i powiązania usługi.

  4. Opcjonalnie, gdy więcej niż jedno SPN zna serwer, na karcie Zaawansowane konfiguruje się pole zaakceptowane SPN NTLM zgodnie z opisem w sekcji "Ustawienia".

  5. W przypadku powiązania kanału na karcie flagi ustaw Wymuszanie szyfrowania na wartość W.

  6. Uruchom ponownie usługę aparatu bazy danych.

Konfigurowanie innych składników programu SQL Server

Aby uzyskać więcej informacji na temat konfigurowania usług Reporting Services, zobacz rozszerzoną ochronę na potrzeby uwierzytelniania za pomocą usług Reporting Services.

W przypadku uzyskiwania dostępu do danych usług Analysis Services przy użyciu połączenia HTTP lub HTTPS usługi Analysis Services mogą korzystać z rozszerzonej ochrony udostępnianej przez usługi IIS. Aby uzyskać więcej informacji na temat konfigurowania usług IIS do korzystania z rozszerzonej ochrony, zobacz Konfigurowanie rozszerzonej ochrony w usługach IIS 7.5.