Podsumowanie
Firma Microsoft wie o nowych publicznie ujawnionych klasach usterek, które wpływają na wiele nowoczesnych procesorów i systemów operacyjnych. Dotyczy to zarówno procesorów Intel, AMD, jak i ARM. Uwaga Ten problem dotyczy również innych systemów, takich jak Android, Chrome, iOS i MacOS. Dlatego radzimy klientom zasięgnąć wskazówek od tych dostawców.
Firma Microsoft opublikowała kilka aktualizacji, które pomagają w ograniczeniu tych luk. Firma Microsoft podejmie także działania w celu zabezpieczenia naszych usług w chmurze. Aby uzyskać więcej informacji, zobacz następujące sekcje.
Firma Microsoft nie otrzymała żadnych informacji wskazujących na to, że luki w zabezpieczeniach zostały wykorzystane do ataku na klientów. Firma Microsoft ściśle współpracuje z partnerami branżowymi, w tym producentami sprzętu, producentami OEM i dostawcami aplikacji w celu ochrony klientów. Aby uzyskać dostęp do wszystkich dostępnych zabezpieczeń, należy podać sprzęt lub oprogramowanie sprzętowe oraz aktualizacje oprogramowania. Obejmuje to mikrokod od producentów urządzeń OEM oraz, w niektórych przypadkach, aktualizacje oprogramowania antywirusowego. Aby uzyskać więcej informacji na temat luk, zobacz artykuł Microsoft Security Advisory ADV180002. Aby uzyskać ogólne wytyczne dotyczące łagodzenia tego rodzaju usterki, zobacz wskazówki dotyczące łagodzenia luk spekulacyjnych w kanale bocznym
Firma Microsoft opublikowała ADV190013 — wskazówki dotyczące rozwiązania problemu z próbką mikroarchitektury w maju 2019. Program SQL Server nie ma żadnych określonych poprawek zabezpieczeń dotyczących problemu opisanego w ADV190013. Wskazówki dotyczące środowisk, na które mają wpływ ADV190013, można znaleźć w sekcji rekomendacje w tym artykule. Uwaga: Niniejszy poradnik dotyczy tylko procesorów firmy Intel.
Jak uzyskać i zainstalować aktualizację
Ta aktualizacja jest również dostępna za pośrednictwem usług Windows Server Update Services (WSUS) lub witryny sieci Webwykazu usługi Microsoft Update.Uwaga: Ta aktualizacja nie zostanie pobrana i zainstalowana automatycznie za pośrednictwem witryny Windows Update.
Dostępne poprawki SQL
W czasie publikowania następujące zaktualizowane kompilacje programu SQL Server są dostępne do pobrania:
Obsługa wersji
4057122 Opis aktualizacji zabezpieczeń dla programu SQL Server 2017 GDR: 3 stycznia 2018 r. Opis aktualizacji zabezpieczeń dla programu sql Server 2017 4058562 RTM CU3:3 stycznia 20184058561 Opis aktualizacji zabezpieczeń dla programu SQL Server 2016 sp1 CU7:3 stycznia 20184057118 Opis aktualizacji zabezpieczeń dla programu SQL Server 2016 GDR z dodatkiem SP1:3 stycznia2018 4058559 Opis aktualizacji zabezpieczeń dla programu SQL Server 2016 cu: 6 stycznia 2018 r. Opis aktualizacji zabezpieczeń programu SQL Server 2016 GDR: 6 stycznia 2018 4057117Opis aktualizacji zabezpieczeń dla programu SQL Server 2014 SP2 CU10:16 stycznia2018 4057120 Opis aktualizacji zabezpieczeń dla programu SQL Server 2014 z dodatkiem SP2 GDR: 16 stycznia 20184057116 Opis aktualizacji zabezpieczeń dla programu SQL Server 2012 zdodatkiem SP4 GDR 4058560 : 12 stycznia 20184057115 Opis aktualizacji zabezpieczeń dla programu sql Server 2012 SP3 GDR: styczeń, 20184057121 Opis aktualizacji zabezpieczeń dla programu SQL Server 2012zdodatkiem SP3:styczeń,2018 4057114 Opis aktualizacji zabezpieczeń dla programu SQL Server 2008 z dodatkiem SP3 GDR: 6 stycznia 2018
Ten dokument zostanie zaktualizowany, gdy zostaną udostępnione dodatkowe zaktualizowane kompilacje.
Uwagi
-
Wszystkie wymagane aktualizacje dla programu SQL Server zostały opublikowane w celu ograniczenia zagrożenia ze strony "Spectre" i "Meltdown". Firma Microsoft nie wie o żadnych dodatkowych zagrożeniach dotyczących kanału "Spectre" i "Meltdown", które dotyczą luk w zabezpieczeniach, dotyczących składników, których nie wymieniono w sekcji "dostępne poprawki SQL".
-
Wszystkie kolejne Dodatki Service Pack dla programu SQL Server 2014, SQL Server 2016 i SQL Server 2017 oraz aktualizacje zbiorcze będą zawierać poprawki. Na przykład program SQL Server 2016 z dodatkiem SP2 zawiera już poprawki Spectre i Meltdown.
-
W przypadku kompilacji systemu Windows Zapoznaj się z poniższymi wskazówkami, aby uzyskać najnowsze informacje o dostępnych kompilacjach systemu Windows:
Wskazówki dotyczące systemu Windows Server dotyczące Spectre/Meltdown kanałów bocznych
Wskazówki dotyczące systemu Windows Server dotyczące usterek mikroarchitektury dotyczących próbkowania danych
W przypadku kompilacji Linux należy skontaktować się z dostawcą systemu Linux w celu znalezienia najnowszych zaktualizowanych kompilacji dla konkretnej dystrybucji w systemie Linux.
-
Aby jak najszybciej rozwiązać usterki Spectre i Meltdown, dostarczenie tych aktualizacji programu SQL Server zostało początkowo przeprowadzone w centrum pobierania Microsoft jako podstawowy model dostarczania. Chociaż te aktualizacje zostaną dostarczone za pośrednictwem usługi Microsoft Update w marcu, zalecamy, aby klienci, których dotyczy problem, instalował aktualizację teraz, nie czekając na udostępnienie jej za pośrednictwem usługi Microsoft Update.
Obsługiwane wersje programu SQL Server, których dotyczy problem
Firma Microsoft zaleca, aby wszyscy klienci zainstalowali aktualizacje programu SQL Server (wymienione poniżej) w ramach regularnego cyklu poprawek. Klienci, którzy korzystają z programu SQL Server w bezpiecznym środowisku, w którym punkty rozszerzeń są blokowane, a żaden kod innej firmy uruchomiony na tym samym serwerze jest zaufany i zatwierdził ten problem.
Następujące wersje programu SQL Server mają dostępne aktualizacje, gdy działają w systemach procesor x86 i x64:
-
Program SQL Server 2008
-
SQL Server 2008R2
-
Program SQL Server 2012
-
Program SQL Server 2014
-
Program SQL Server 2016
-
Program SQL Server 2017
Nie jesteśmy przekonani, że problem dotyczy oprogramowania IA64 (Microsoft SQL Server 2008). Usługa Microsoft analityczn platform Service (APS) jest oparta na programie Microsoft SQL Server 2014 lub Microsoft SQL Server 2016, ale nie jest to szczególnie narażone. Niektóre ogólne wskazówki dotyczące APS są wymienione w dalszej części tego artykułu.
Przygotowanie
W poniższej tabeli przedstawiono klientów, których należy robić, w zależności od środowiska, w którym działa program SQL Server i jaka funkcja jest używana. Firma Microsoft zaleca wdrożenie poprawek przy użyciu zwykłych procedur testowania nowych plików binarnych przed wdrożeniem ich w środowiskach produkcyjnych.
Numer scenariusza |
Opis scenariusza |
Rekomendacje priorytetowe |
1 |
Baza danych SQL Azure i magazyn danych |
Nie jest wymagana żadna akcja (Zobacz, Aby uzyskać szczegółowe informacje). |
2 |
Program SQL Server jest uruchomiony na komputerze fizycznym lub na maszynie wirtualnej Nie są spełnione następujące warunki:
|
Firma Microsoft zaleca zainstalowanie wszystkich aktualizacji systemu operacyjnego to ochronie przed aktualizacją 2017-5753. Firma Microsoft zaleca zainstalowanie wszystkich aktualizacji systemu operacyjnego w celu ochrony przed lukami w zabezpieczeniach dotyczącej próbkowania danych w mikroarchitekturze (CVE-2018-12126, CVE-2018-12130, CVE-2018-12127 i CVE-2018-11091). Włączanie funkcji przesłaniania adresów wirtualnych jądra (KVAS) i ograniczania ryzyka związanego z ograniczeniami (IBP) nie jest wymagane (Zobacz niżej). Poprawki programu SQL Server powinny być instalowane w ramach zwykłych zasad poprawek w następnym zaplanowanym oknie aktualizacji. Możesz nadal korzystać z wątków na takich hostach. |
3,2 |
Program SQL Server jest uruchomiony na komputerze fizycznym lub na maszynie wirtualnej Inne aplikacje, które obsługują potencjalnie niebezpieczny kod, są wspólnie obsługiwane na tym samym komputerze I/lub interfejsy rozszerzeń programu SQL Server są używane z niezaufanym kodem (zobacz poniżej dla listy)
|
Firma Microsoft zaleca zainstalowanie wszystkich aktualizacji systemu operacyjnego w celu ochrony przed aktualizacją 2017-5753. Firma Microsoft zaleca zainstalowanie wszystkich aktualizacji systemu operacyjnego w celu ochrony przed lukami w zabezpieczeniach dotyczącej próbkowania danych w mikroarchitekturze (CVE-2018-12126, CVE-2018-12130, CVE-2018-12127 i CVE-2018-11091). Stosowanie poprawek programu SQL Server (Zobacz niżej). Chroni to przed CVE 2017-5753. Zdecydowanie zalecane jest włączenie funkcji przesłania adresów wirtualnych jądra (KVAS) (zobacz poniżej). Chroni to przed CVE 2017-5754. Zdecydowanie zalecane jest włączenie obsługi sprzętu do ograniczania pośredniego przewidywania odgałęzień (IBP). Chroni to przed CVE 2017-5715 Zalecamy wyłączenie tworzenia wątków na hoście, jeśli korzystasz z procesorów firmy Intel. |
r.[4 |
Program SQL Server jest uruchomiony na komputerze fizycznym A inna aplikacja, która wykonuje potencjalnie niebezpieczny kod, nie jest udostępniana na tym samym komputerze W celu wykonania kodu ZAUFANEgo są używane interfejsy rozszerzeń programu SQL Server. Przykłady:
Przykłady:
|
Firma Microsoft zaleca zainstalowanie wszystkich aktualizacji systemu operacyjnego to ochronie przed aktualizacją 2017-5753. Firma Microsoft zaleca zainstalowanie wszystkich aktualizacji systemu operacyjnego w celu ochrony przed lukami w zabezpieczeniach dotyczącej próbkowania danych (CVE-2018-12126, CVE-2018-12130, Cve-2018-12127 i CVE-2018-11091). Zdecydowanie zalecane jest włączenie funkcji przesłania adresów wirtualnych jądra (KVAS) (zobacz poniżej). Chroni to przed CVE 2017-5754. Zdecydowanie zalecane jest włączenie obsługi sprzętu do ograniczania pośredniego przewidywania odgałęzień (IBP). Chroni to przed CVE 2017-5715 Zalecamy wyłączenie tworzenia wątków w takim środowisku, jeśli korzystasz z procesorów firmy Intel. Poprawki programu SQL Server powinny być instalowane w ramach zwykłych zasad poprawek w następnym zaplanowanym oknie aktualizacji. |
art |
Program SQL Server działa w systemie operacyjnym Linux. |
Zastosuj aktualizacje systemu operacyjnego Linux od dostawcy dystrybucji. Zastosuj poprawki programu SQL Server dla systemu Linux (Zobacz niżej). Chroni to przed CVE 2017-5753. Poniżej znajdziesz wskazówki dotyczące włączania izolacji tabeli stron jądra systemu Linux (KPTI) i IBP (CVEs CVE 2017-5754 i CVE 2017-5715). Zalecamy wyłączenie tworzenia wątków w takim środowisku, jeśli procesory firmy Intel są używane do #3 scenariuszy i #4 wymienionych powyżej. |
2,6 |
System platform Analytics (APS) |
Chociaż punkty dostępowe nie obsługują funkcji rozszerzeń programu SQL Server wymienionych w niniejszym biuletynie, zaleca się zainstalowanie poprawek systemu Windows na urządzeniu APS. Włączanie KVAS/IBP nie jest wymagane. |
Klasyfikator wydajności
Klienci są informowani o obliczeniu wydajności określonej aplikacji podczas stosowania aktualizacji.
Firma Microsoft doradza wszystkim klientom zainstalowanie zaktualizowanych wersji programu SQL Server i systemu Windows. Może to mieć nieznaczny wpływ na wydajność istniejących aplikacji na podstawie testów obciążenia pracą programu SQL. Zaleca się jednak przetestowanie wszystkich aktualizacji przed wdrożeniem ich w środowisku produkcyjnym.
Firma Microsoft podzieliła wpływ cieniowania adresów wirtualnych jądra (KVAS), tabeli stron jądra (KPTI) i ograniczania przewidywania gałęzi pośredniej (IBP) na różne obciążenia SQL w różnych środowiskach i wykryto niektóre obciążenia ze znaczną degradacją. Zalecamy przetestowanie efektów wydajności Włącz te funkcje przed wdrożeniem ich w środowisku produkcyjnym. Jeśli efektem wydajności włączenia tych funkcji jest zbyt wysoka dla istniejącej aplikacji, można ustalić, czy wyizolowany serwer SQL z niezaufanego kodu uruchomionego na tym samym komputerze jest lepszym rozwiązaniem dla aplikacji.
Więcej informacji na temat wpływu na wydajność z pomocy technicznej dotyczącej ograniczania ryzyka związanego z przeprognozowaeniem rozgałęzienia (IBP) opisano tutaj.
Firma Microsoft zaktualizuje tę sekcję o więcej informacji, gdy będzie dostępna.
Włączanie funkcji przesłaniania wirtualnego adresu jądra (KVAS w systemie Windows) i w tabeli stron jądra (KPTI w systemie Linux)
KVAS i KPTI, które nie są zgodne z CVE 2017-5754, znane także jako "Meltdown" lub "wariant 3" w celu ujawnienia GPZ.
Program SQL Server działa w wielu środowiskach: komputery fizyczne, maszyny wirtualne w środowiskach publicznych i prywatnych, w systemach Linux i Windows. Niezależnie od środowiska program jest uruchomiony na komputerze lub w maszynie wirtualnej. Zadzwoń do tej granicyzabezpieczeń.
Jeśli cały kod w granicach ma dostęp do wszystkich danych w tej granicze, nie jest konieczne żadne działanie. Jeśli tak nie jest, zostanie wykorzystana granica z przedziałem wielu dzierżawców. Wykryte usterki umożliwiają odczytanie wszystkich innych danych w ramach dowolnego kodu, nawet w przypadku ograniczonych uprawnień, działających w dowolnym procesie w tej granicy. Jeśli na granicy z uruchomionym kodem niezaufanym występuje jakiś proces, może on wykorzystać te luki do odczytania danych z innych procesów. Ten niezaufany kod może być niezaufanym kodem przy użyciu mechanizmów rozszerzeń programu SQL Server lub innych procesów w granicach, w których jest uruchomiony niezaufany kod.
Aby chronić się przed niezaufanym kodem w granicach wielu dzierżawców, użyj jednej z następujących metod
-
Usuń kod niezaufany. Aby uzyskać więcej informacji o tym, jak to zrobić w przypadku mechanizmów rozszerzeń SQL Server, zobacz poniżej. Aby usunąć niezaufany kod z innych aplikacji w tej samej granicze, zwykle wymagane są zmiany specyficzne dla aplikacji. Na przykład rozdzielanie na dwie maszyny wirtualne.
-
Włącz funkcję KVAS lub KPTI. Będzie to miało wpływ na wydajność. Więcej informacji na ten temat opisano we wcześniejszej części tego artykułu.
Aby uzyskać więcej informacji na temat włączania KVAS dla systemu Windows, zobacz KB4072698. Aby uzyskać więcej informacji na temat włączania KPTI w systemie Linux, skontaktuj się z dystrybutorem systemu operacyjnego.
Przykład scenariusza, w którym stanowczo zaleca się KVAS lub KPTI
Lokalny komputer fizyczny, który obsługuje program SQL Server jako konto administratora niesystemowego, umożliwia klientom przesyłanie dowolnych skryptów języka R w celu uruchomienia go za pośrednictwem programu SQL Server (w ramach procesów pomocniczych, aby uruchomić te skrypty poza programem sqlservr. exe). W celu ochrony przed ujawnieniem danych w ramach procesu SqlServer. exe należy włączyć zarówno KVAS, jak i KPTI, a w celu ochrony przed ujawnieniem danych znajdujących się w pamięci jądra systemu. Uwaga Mechanizm rozszerzania w programie SQL Server nie jest automatycznie uważany za niebezpieczny, ponieważ jest używany. Te mechanizmy mogą być używane bezpiecznie w programie SQL Server, o ile poszczególne zależności są zrozumiałe i zaufane przez klienta. Ponadto istnieją inne produkty zbudowane na pierwszym planie SQL, które mogą wymagać obsługi mechanizmów rozszerzania. Na przykład spakowana aplikacja utworzona na początku programu SQL Server może wymagać serwera połączonego lub procedury składowanej CLR, aby działała poprawnie. Firma Microsoft nie zaleca usunięcia tych danych w ramach ograniczenia zagrożenia. Zamiast tego przejrzyj poszczególne zastosowania, aby ustalić, czy ten kod jest zrozumiały, czy zaufany jako akcję początkową. Poniższe wskazówki pozwolą klientom ustalić, czy są w sytuacji, w której muszą włączać KVAS. Wynika to z tego, że działanie tej akcji ma znaczny wpływ na wydajność.
Włączanie obsługi sprzętowej funkcji ograniczania odgałęzień pośredniej (IBP)
2017-5715 IBP, że w celu ujawnienia GPZ jest znana w połowie Spectre lub "wariant 2".
Instrukcje zawarte w tym artykule dotyczące włączenia KVAS w systemie Windows również umożliwiają IBP. Jednak IBP wymaga również aktualizacji oprogramowania układowego od producenta sprzętu. Oprócz instrukcji w KB4072698 , aby włączyć ochronę w systemie Windows, klienci muszą uzyskiwać i instalować aktualizacje u producenta sprzętu.
Przykład scenariusza, w którym stanowczo zaleca się IBP
Lokalny komputer fizyczny obsługuje program SQL Server obok aplikacji, która umożliwia niezaufanym użytkownikom przekazywanie i wykonywanie dowolnego kodu JavaScript. Zakładając, że istnieją dane poufne w bazie danych SQL, stanowczo zaleca się IBP, aby chronić przed procesem ujawnienie informacji.
W sytuacjach, w których nie jest dostępna pomoc techniczna IBP, firma Microsoft zaleca oddzielenie niezaufanych procesów i zaufanego procesu na różne komputery fizyczne lub maszyny wirtualne.
Użytkownicy Linux: skontaktuj się z dystrybutorem systemu operacyjnego, aby uzyskać informacje na temat ochrony przed wariantem 2 (CVE 2017-5715).
Przykład scenariusza, w którym zdecydowanie zalecane jest rozwiązanie łagodzenia usterek mikroarchitektury dotyczących próbkowania danych
Zastanów się, jak serwer lokalny korzysta z dwóch wystąpień programu SQL Server obsługujących dwie różne aplikacje biznesowe na dwóch różnych maszynach wirtualnych na tym samym fizycznym hoście. Załóżmy, że te dwa aplikacje biznesowe nie mogą czytać danych przechowywanych w wystąpieniach programu SQL Server. Osoba atakująca, której uda się wykorzystać te luki, może odczytać dane uprzywilejowane między granicami zaufania, korzystając z niezaufanego kodu uruchomionego na komputerze jako oddzielnego procesu lub niezaufanego kodu wykonywanego przy użyciu mechanizmu rozszerzalności programu SQL Server (zobacz sekcję poniżej dla opcji rozszerzeń w programie SQL Server). W środowiskach zasobów udostępnionych (takich jak w przypadku niektórych konfiguracji usług w chmurze) te luki w zabezpieczeniach mogą pozwolić jednej maszynie wirtualnej na niewłaściwie uzyskać dostęp do informacji z innej lokalizacji. W scenariuszach niezwiązanych z przeglądaniem w systemach autonomicznych osoba atakująca musiałaby uzyskać wcześniejszy dostęp do systemu lub możliwość uruchomienia specjalnie spreparowanej aplikacji w systemie docelowym, aby wykorzystać te luki.
Niezaufane mechanizmy rozszerzeń SQL Server
Program SQL Server zawiera wiele funkcji i mechanizmów rozszerzeń. Większość tych mechanizmów jest domyślnie wyłączona. Jednak zaleca się klientom zapoznanie się z każdym wystąpieniem produkcji w celu użycia funkcji rozszerzeń. Zalecamy, aby wszystkie te funkcje były ograniczone do minimalnego zestawu plików binarnych, a klienci ograniczali dostęp, aby uniemożliwić uruchamianie dowolnego kodu na tym samym komputerze co program SQL Server. Doradzamy klientom określenie, czy każdy plik binarny ma być zaufany, oraz wyłączanie lub usuwanie niezaufanych plików binarnych.
-
Zestawy SQL CLR
-
Pakiety języka r i Python uruchomione za pośrednictwem mechanizmu skryptów zewnętrznych lub uruchamiane z autonomicznej wersji języka R/Machine Learning Studio na tym samym komputerze fizycznym co program SQL Server
-
Punkty rozszerzeń agenta SQL uruchomione na tym samym komputerze fizycznym co program SQL Server (skrypty ActiveX)
-
Dostawcy Microsoft OLE DB używane na serwerach połączonych
-
Rozszerzone procedury składowane innych niż Microsoft
-
Obiekty COM wykonywane na serwerze (dostępne za pośrednictwem sp_OACreate)
-
Programy wykonywane za pośrednictwem xp_cmdshell
Ograniczenia w przypadku używania niezaufanego kodu w programie SQL Server:
Scenariusz/przypadek użycia |
Ograniczenia lub sugerowane kroki |
Uruchamianie programu SQL Server z włączonym środowiskiem CLR (sp_configure "CLR Enabled", 1) |
|
Uruchamianie skryptów zewnętrznych języka Java/R/Python w programie SQL Server (sp_configure "skrypty zewnętrzne włączone", 1) |
|
Korzystanie z serwerów połączonych (sp_addlinkedserver) |
|
Korzystanie z rozszerzonych procedur składowanych (sp_addextendedproc) |
Ponieważ procedury składowane rozszerzone są przestarzałe, usuń je wszystkie z nich i nie używaj ich w systemach produkcyjnych. |
Wywoływanie plików binarnych z programu SQL Server przy użyciu xp_cmdshell |
Ta funkcja jest domyślnie wyłączona. Przejrzyj i Ogranicz użycie xp_cmdshell, aby wywołać niezaufane pliki binarne. Dostęp do tego punktu końcowego można kontrolować za pomocą sp_configure, zgodnie z opisem w tym artykule: Opcja konfiguracji serwera xp_cmdshell
|
Używanie obiektów COM za pośrednictwem sp_OACreate |
Ta funkcja jest domyślnie wyłączona. Obiekty COM wywoływane za pomocą sp_OACreate wykonywania kodu zainstalowanego na serwerze. Przejrzyj wszelkie takie rozmowy dotyczące niezaufanych plików binarnych. Ustawienia można sprawdzić za pośrednictwem sp_configure, ponieważ decribed tutaj: Opcje konfiguracji serwera procedur automatyzacji OLE
|