Podsumowanie
Ochrona dla cve-2022-21920 jest zawarta w aktualizacjach z 11 stycznia 2022 r. Windows i nowszych Windows aktualizacjach. Te aktualizacje zawierają ulepszoną logikę do wykrywania ataków na starszą wersję 3-częściowych nazw głównych usługi w przypadku używania protokołu uwierzytelniania Microsoft Negotiate.
Ten artykuł zawiera wskazówki, które należy uzyskać, gdy uwierzytelnianie Kerberos nie powiedzie się.
Więcej informacji
Zainstalowanie aktualizacji pakietu Windows z 11 stycznia 2022 r. i nowszych aktualizacji usługi Windows może powodować niepowodzenie uwierzytelniania w przypadku 3-częściowych sieci SPN, w przypadku których uwierzytelnianie Kerberos nie zakończyło się pomyślnie. W tych środowiskach uwierzytelnianie Kerberos dla 3-częściowych sieci SPN prawdopodobnie nie działało przez pewien czas. W systemach klienckich usługi Windows może zostać wyświetlony następujące zdarzenie, aby ułatwić ich poszedzeniu.
LSA Event 40970 Screenshot identifying an NTLM fallback for a specific SPN from a Microsoft test environment. |
Wersja tekstowa zdarzenia LSA 40970 |
|
System zabezpieczeń wykrył próbę zmiany wersji na starszą podczas kontaktowania się z 3-częściową siecią SPN <nazwy spN> z kodem błędu "Baza danych SAM na serwerze Windows nie ma konta komputera do relacji zaufania stacji roboczej (0x0000018b)". Uwierzytelnianie zostało odrzucone. |
Akcja
Firma Microsoft zaleca, aby poszewierdzyć informacje o tym, dlaczego uwierzytelnianie Kerberos dla 3-częściowej sieci SPN nie powiodło się. Oto niektóre typowe przyczyny niepowodzenia uwierzytelniania protokołu Kerberos:
-
Za pomocą sieci SPN używanej jako element docelowy uwierzytelniania jest zniekształcony. Aby uzyskać więcej informacji, zobacz Formaty nazw unikatowych nazw SPN.
Uwaga: Aplikacje i interfejsy API mogą mieć bardziej restrykcyjne lub różne definicje, które nasycą wiarygodnego dodatku SPN dla swojej usługi.
Przykłady prawdziwej spn
http/webserver
Host/machine2.contoso.com
Ldap/machine1.contoso.com/contoso.com
Service/machine1:10100
Przykłady potencjalnie malformowanych sieci SPNSPN
Przyczyna
Host/host/machine1
Host/host to najprawdopodobniej błąd, ponieważ "host" jest zazwyczaj klasą usługi, a nie nazwą komputera. Możliwe, że legalna nazwy SPN to host/machine1.
Ldap/machine/contoso.com:10100
Porty można określić dla nazwy hosta ("komputera"), a nie dla nazwy wystąpienia usługi. Możliwe, że legalna spN to "ldap/machine:10100/contoso.com"
Ldap/dc-a/DC=CONTOSO,DC=COM
Niektóre interfejsy API oczekują nazwy DNS zamiast nazwy FQDN. Na przykład funkcja DsBindA (ntdsapi.h) oczekuje, że zostanie przekazana w nazwie DNS. Jeśli zostanie przekazana fQDN, może to spowodować malformowane słowo SPN.
Legalną nazwą SPN może być "ldap/dc-a/contoso.com"Aby rozwiązać te problemy, rozważ użycie poprawnej spn lub zarejestrowanie niewłaściwej spn do odpowiedniego konta usługi.
-
Nie istnieje z dodatkiem SPN używanym jako element docelowy uwierzytelniania. Aby rozwiązać ten problem, rozważ zarejestrowanie spn na odpowiednim koncie usługi.
-
Klient Windows nie ma funkcji line of sight do kontrolera domeny (na przykład kontroler domeny jest w trybie offline, nie można wykryć go w systemie DNS lub dostęp do portu usługi łączności danych klienta jest zablokowany).
-
Być może używasz nazw NetBIOS w scenariuszu, w którym nazwy systemu NetBIOS nie działają. Przykład: uzyskiwanie dostępu do zasobów domeny z komputera przyłączonego do domeny i rozpoznawania nazw systemu NetBIOS jest wyłączone lub nie działa.
Firma Microsoft zaleca używanie głównej nazwy użytkownika (UPN) lub systemu nazw domen (DNS) zamiast nazwy netBIOS.
Rejestrowanie sieci SPN
W zależności od konfiguracji aplikacji i środowiska nazwy SPN mogą zostać skonfigurowane na podstawie atrybutu Główna nazwa usługi dla konta usługi lub konta komputera znajdującego się w domenie usługi Active Directory, z którym klient Kerberos próbuje nawiązać połączenie Kerberos. Aby uwierzytelnianie Kerberos działało poprawnie, docelowa wartość SPN musi być prawidłowa.
Aby uzyskać wskazówki dotyczące włączania uwierzytelniania Kerberos, zapoznaj się z dokumentacją wdrażania lub dostawcą pomocy technicznej dla poszczególnych aplikacji. Niektóre instalatory lub aplikacje automatycznie rejestruje sieci SPN. Istnieje różne opcje zarejestrowania spN zarówno dla deweloperów, jak i administratorów:
-
Aby ręcznie zarejestrować sieci SPN dla wystąpienia usługi, zobacz Setspn.
-
Aby programowo rejestrować sieci SPN dla wystąpienia usługi, zobacz Jak usługa rejestruje swoje sieci SPN opisujące sposób:
-
Wywołaj funkcję DsGetSpn, aby utworzyć co najmniej jeden unikatowy numer SPN dla wystąpienia usługi. Aby uzyskać więcej informacji, zobacz Formaty nazw unikatowych nazw SPN.
-
Wywołaj funkcję DsWriteAccountSpn, aby zarejestrować nazwy na koncie logowania usługi.
-
Znane problemy
Obecnie nie ma żadnych znanych problemów dotyczących tej aktualizacji.