Tóm tắt
Các bảo vệ cho CVE-2022-21920 được tích hợp trong các bản cập nhật Windows 11/01/2022 và các bản cập nhật Windows hơn. Các bản cập nhật này chứa lô-gic cải tiến để phát hiện các cuộc tấn công giảm cấp đối với Tên Chính của Dịch vụ 3 phần khi sử dụng giao thức xác thực Đàm phán của Microsoft.
Bài viết này cung cấp hướng dẫn khi xác thực Kerberos không thành công.
Thông tin thêm
Việc cài đặt các bản cập nhật Windows 11/01/2022 và các bản cập nhật Windows sau đó có thể khiến quá trình xác thực bị lỗi đối với các SPN 3 phần khi xác thực Kerberos không thành công. Đối với các môi trường này, có thể xác thực Kerberos cho SPN 3 phần đã không hoạt động trong một khoảng thời gian. Bạn có thể thấy sự kiện sau đây trên Windows Client để giúp tìm hiểu.
Ảnh chụp màn hình LSA Event 40970 xác định dự phòng NTLM cho một SPN cụ thể từ môi trường thử nghiệm của Microsoft. |
Phiên bản Văn bản LSA Event 40970 |
|
Hệ thống Bảo mật đã phát hiện một lần thử giảm cấp khi liên hệ với SPN 3 phần <SPN và> với mã lỗi "Cơ sở dữ liệu SAM trên Windows Server không có tài khoản máy tính cho mối quan hệ tin cậy máy trạm (0x0000018b)" Xác thực đã bị từ chối. |
Hành động
Microsoft khuyên bạn nên phân loại tại sao việc xác thực Kerberos cho SPN 3 phần không thành công. Một số lý do phổ biến khiến xác thực Kerberos thất bại bao gồm:
-
SPN đang được sử dụng làm đích cho xác thực bị sai định dạng. Để biết thêm thông tin, hãy xem Định dạng Tên cho CÁC SPN Duy nhất.
Lưu ý: Các ứng dụng và API có thể có những định nghĩa nghiêm ngặt hơn hoặc khác nhau về những gì tạo thành một SPN hợp pháp cho dịch vụ của chúng.
Ví dụ về SPN hợp lệ
http/webserver
Host/machine2.contoso.com
Ldap/machine1.contoso.com/contoso.com
Dịch vụ/máy 1:10100
Ví dụ về các SPN có thể bị sai định dạngSPN
Lý do
Máy chủ/máy chủ/máy 1
Máy chủ/máy chủ nhiều khả năng là lỗi vì "máy chủ" thường là lớp dịch vụ chứ không phải tên máy. Có thể SPN hợp lệ là máy chủ/máy 1.
Ldap/machine/contoso.com:10100
Cổng có thể được xác định trên tên máy chủ ("máy tính") và không phải trên tên bản thể hiện dịch vụ. Có thể SPN hợp lệ là "ldap/machine:10100/contoso.com"
Ldap/dc-a/DC=CONTOSO,DC=COM
Một số API nhất định sẽ có tên DNS thay vì FQDN. Ví dụ: hàm DsBindA (NTdsapi.h) sẽ được truyền vào tên DNS. Nếu FQDN được truyền đi, nó có thể dẫn đến SPN bị sai định dạng.
SPN hợp lệ có thể là "ldap/dc-a/contoso.com"Để giải quyết những vấn đề này, hãy cân nhắc sử dụng SPN chính xác hoặc đăng ký SPN sai định dạng vào tài khoản dịch vụ chính xác.
-
SPN đang được sử dụng làm đích cho xác thực không tồn tại. Để giải quyết vấn đề này, hãy cân nhắc việc đăng ký SPN vào tài khoản dịch vụ chính xác.
-
Máy khách Windows nối của Windows không có Line of Sight đối với bộ điều khiển miền (chẳng hạn như DCs đang ngoại tuyến, không thể phát hiện được trong DNS hoặc không thể truy nhập vào cổng KDC bị chặn).
-
Bạn có thể đang sử dụng tên NetBIOS trong một kịch bản mà tên NetBIOS không hoạt động. Ví dụ là truy nhập tài nguyên miền từ máy không liên kết với miền và độ phân giải tên NetBIOS bị vô hiệu hóa hoặc không hoạt động.
Microsoft khuyên bạn nên sử dụng Tên Chính của Người dùng (UPN) hoặc Hệ thống Tên Miền (DNS) thay vì tên NetBIOS.
Đăng ký CÁC SPN
Tùy thuộc vào cấu hình của ứng dụng và môi trường của bạn, SPN có thể được cấu hình trên thuộc tính Tên Chính của Dịch vụ chính của tài khoản dịch vụ hoặc tài khoản máy tính nằm trong tên miền Active Directory mà máy khách Kerberos đang tìm cách thiết lập kết nối Kerberos. Để xác thực Kerberos hoạt động đúng cách, SPN đích phải hợp lệ.
Tham khảo tài liệu triển khai hoặc nhà cung cấp hỗ trợ cho từng ứng dụng cụ thể để biết hướng dẫn về cách bật xác thực Kerberos. Một số trình cài đặt hoặc ứng dụng ứng dụng đăng ký SPN tự động. Có các tùy chọn khác nhau cho cả nhà phát triển và người quản trị để đăng ký SPN:
-
Để đăng ký SPN theo cách thủ công cho một phiên bản dịch vụ, hãy xem Setspn.
-
Để đăng ký SPN theo chương trình cho một phiên bản dịch vụ, hãy xem Cách Dịch vụ Đăng ký SPN mô tả cách:
-
Gọi hàm DsGetSpn để tạo một hoặc nhiều SPN duy nhất cho phiên bản dịch vụ. Để biết thêm thông tin, hãy xem Định dạng Tên cho CÁC SPN Duy nhất.
-
Gọi cho hàm DsWriteAccountSpn để đăng ký tên trên tài khoản đăng nhập của dịch vụ.
-
Sự cố đã biết
Hiện tại, không có sự cố đã biết nào với bản cập nhật này.