Резюме
Защитите за CVE-2022-21920 са включени в актуализациите на Windows 11 януари 2022 г. и по-Windows актуализации. Тези актуализации съдържат подобрена логика за откриване на атаки с по-стари функции за главни имена на услуги от 3 части, когато използвате протокола за удостоверяване Microsoft Negotiate.
Тази статия предоставя указания, когато удостоверяването на Kerberos не е успешно.
Още информация
Инсталирането на актуализациите на Windows 11 януари 2022 г. и по-новите актуализации на Windows може да доведе до неуспешно удостоверяване за 3-частно SPN, където удостоверяването на Kerberos не е успешно. За тези среди е вероятно удостоверяването на Kerberos за 3-частни SPN мрежи да не е работило известно време. Може да видите следното събитие в системите Windows клиенти, за да помогнете за триаж.
Екранна снимка на събитие 40970 на LSA, идентифицираща резервен NTLM за конкретен SPN от тестова среда на Microsoft. |
LSA Event 40970 Text version |
|
Системата за защита е открил опит за понижи при свързване с SPN от 3 части <име на SPN> с код на грешка "Базата данни SAM на Windows сървър няма акаунт за компютър за релация на сигурност на работна станция (0x0000018b)" Удостоверяването е отказано. |
„Действие“
Microsoft препоръчва да се отстранят защо удостоверяването на Kerberos за SPN от 3 части е неуспешно. Някои често срещани причини за неуспешно удостоверяване на Kerberos включват следното:
-
SPN, който се използва като цел за удостоверяване, е деформиран. За повече информация вижте Формати на имена за уникални SPN.
Забележка: Приложенията и API може да имат по-строги или различни дефиниции за това какво представлява легитимна SPN за тяхната услуга.
Примери за легитимна SPN
http/webserver
Host/machine2.contoso.com
Ldap/machine1.contoso.com/contoso.com
Service/machine1:10100
Примери за евентуално малформирани SPNSPN
Причина
Хост/хост/машина1
Хостът/хостът най-вероятно е грешка, тъй като "хост" обикновено е клас на обслужване, а не име на машина. Възможно е легитимната SPN да е хост/машина1.
Ldap/machine/contoso.com:10100
Портовете могат да бъдат зададени в името на хоста ("машина"), а не в името на екземпляра на услугата. Възможно е легитимната SPN да е "ldap/machine:10100/contoso.com"
Ldap/dc-a/DC=CONTOSO,DC=COM
Някои API очакват DNS име вместо FQDN. Например функцията DsBindA (ntdsapi.h) очаква да бъде предадена в DNS име. Ако се премине FQDN, това може да доведе до деформирана SPN.
Легитимната SPN може да бъде "ldap/dc-a/contoso.com"За да отстраните тези проблеми, помислете дали да не използвате правилната SPN, или да регистрирате малформираната SPN в правилния акаунт за услуга.
-
SPN, който се използва като цел за удостоверяване, не съществува. За да решите този проблем, обмислете регистрирането на SPN в правилния акаунт за услуга.
-
Компютърът Windows клиент няма "Линия на зрението" към домейнов контролер (като например домейнови контролери са офлайн, не може да бъде открит в DNS или достъпът до KDC порта е блокиран).
-
Може да използвате имена на NetBIOS в сценарий, в който имената на NetBIOS не работят. Пример за това е достъп до ресурси за домейни от компютър, който не е присъединен към домейн, и разделителната способност на имената на NetBIOS е забранена или не работи.
Microsoft препоръчва да използвате основно потребителско име (UPN) или система за имена на домейни (DNS) вместо името на NetBIOS.
Регистриране на SPN
В зависимост от конфигурацията на приложението и вашата среда SPN може да са конфигурирани в атрибута "Основно име на услугата" на акаунта за услугата или акаунта на компютъра, който се намира в домейна на Active Directory, с който клиентът на Kerberos се опитва да установи връзката с Kerberos. За да работи правилно удостоверяването на Kerberos, целевото SPN трябва да е валидно.
Консултирайте се с документацията за разполагане или доставчика на поддръжка за всяко конкретно приложение за указания как да разрешите удостоверяването на Kerberos. Някои инсталиращи програми на приложения или приложения регистрират SPN автоматично. Има различни опции както за разработчиците, така и за администраторите за регистриране на SPN:
-
За да регистрирате ръчно SPN за екземпляр на услуга, вижте Setspn.
-
За да регистрирате програмно SPN за екземпляр на услуга, вижте Как една услуга регистрира своите SPN мрежи, описващи как да:
-
Обадете се на функцията DsGetSpn, за да създадете една или повече уникални SPN за екземпляра на услугата. За повече информация вижте Формати на имена за уникални SPN.
-
Обадете се на функцията DsWriteAccountSpn, за да регистрирате имената в акаунта за влизане на услугата.
-
Известни проблеми
В момента няма известни проблеми с тази актуализация.