Windows Remote Desktop cho phép đăng nhập bằng mật khẩu đã bị thu hồi, Microsoft bảo: “Không phải lỗi, đó là tính năng”
Microsoft cho biết họ không có kế hoạch thay đổi giao thức đăng nhập từ xa trên Windows, vốn cho phép người dùng đăng nhập vào máy bằng mật khẩu đã bị thu hồi.
Việc thay đổi mật khẩu là một trong những bước đầu tiên cần thực hiện khi xảy ra rò rỉ mật khẩu hoặc tài khoản bị xâm phạm. Người dùng kỳ vọng rằng sau khi thay đổi mật khẩu, không thiết bị nào từng dựa vào mật khẩu cũ có thể tiếp tục truy cập được nữa.
Remote Desktop Protocol (RDP) – cơ chế độc quyền được tích hợp trong Windows cho phép người dùng điều khiển máy từ xa – trong nhiều trường hợp vẫn tiếp tục chấp nhận mật khẩu cũ, ngay cả sau khi người dùng đã đổi mật khẩu. Microsoft cho biết đây là một quyết định thiết kế có chủ đích, nhằm đảm bảo người dùng không bị khóa hoàn toàn khỏi hệ thống.
Nhà nghiên cứu bảo mật độc lập Daniel Wade đã báo cáo hành vi này tới Trung tâm Phản hồi Bảo mật của Microsoft (MSRC) hồi đầu tháng. Trong báo cáo, anh cung cấp hướng dẫn từng bước để tái hiện hành vi trên. Anh cũng cảnh báo rằng thiết kế này đi ngược lại niềm tin phổ biến rằng một khi mật khẩu đã được thay đổi, thì mật khẩu cũ không thể tiếp tục mở khóa bất kỳ thiết bị hoặc tài khoản nào liên quan.
"Đây không chỉ là một lỗi. Đây là sự sụp đổ của niềm tin," Wade viết trong báo cáo của mình. "Người ta tin rằng việc đổi mật khẩu sẽ cắt đứt quyền truy cập trái phép." Anh tiếp tục:
Việc đầu tiên mà bất kỳ ai cũng làm sau khi nghi ngờ bị xâm phạm là thay đổi mật khẩu. Thế nhưng:
- Thông tin đăng nhập cũ vẫn hoạt động với RDP – ngay cả từ những máy mới toanh.
- Defender, Entra ID và Azure hoàn toàn không cảnh báo gì.
- Người dùng cuối không có cách rõ ràng nào để phát hiện hoặc khắc phục vấn đề này.
- Không có tài liệu hay hướng dẫn nào từ Microsoft trực tiếp đề cập đến việc này.
- Ngay cả mật khẩu mới cũng có thể bị bỏ qua, trong khi mật khẩu cũ vẫn tiếp tục hoạt động.
Kết quả? Hàng triệu người dùng – từ cá nhân, doanh nghiệp nhỏ đến mô hình làm việc kết hợp – đang gặp rủi ro mà không hề hay biết, Wade kết luận.
Ảnh chụp màn hình cửa sổ cấu hình RDP cho thấy một tài khoản Microsoft (Hotmail) đang được cấp quyền truy cập từ xa.
Đáp lại, Microsoft cho biết hành vi này là "một quyết định thiết kế nhằm đảm bảo rằng luôn có ít nhất một tài khoản người dùng có thể đăng nhập, bất kể hệ thống đã ngoại tuyến trong bao lâu." Do đó, Microsoft khẳng định điều này không được xem là một lỗ hổng bảo mật, và các kỹ sư của hãng không có kế hoạch thay đổi nó.
Khả năng đăng nhập RDP bằng mật khẩu đã bị thu hồi xảy ra khi một máy Windows được đăng nhập bằng tài khoản Microsoft hoặc Azure và được cấu hình để cho phép truy cập từ xa. Trong trường hợp này, người dùng có thể đăng nhập qua RDP bằng một mật khẩu chuyên biệt, được xác thực dựa trên thông tin đăng nhập lưu trữ cục bộ. Ngoài ra, người dùng cũng có thể đăng nhập bằng thông tin tài khoản trực tuyến đã dùng để đăng nhập vào máy.
Tuy nhiên, ngay cả sau khi người dùng đổi mật khẩu tài khoản của mình, mật khẩu cũ vẫn hợp lệ để đăng nhập qua RDP vô thời hạn. Trong một số trường hợp, Wade cho biết, nhiều mật khẩu cũ vẫn hoạt động trong khi mật khẩu mới lại không. Hệ quả là: quyền truy cập RDP liên tục được duy trì, bỏ qua xác thực trên nền tảng đám mây, xác thực đa yếu tố và cả các chính sách Conditional Access.
Wade và một chuyên gia bảo mật Windows khác cho biết hành vi ít người biết đến này có thể gây hậu quả nghiêm trọng trong những tình huống mà tài khoản Microsoft hoặc Azure bị xâm phạm — chẳng hạn khi mật khẩu bị rò rỉ công khai. Trong trường hợp đó, hành động đầu tiên cần làm là thay đổi mật khẩu để ngăn đối tượng xấu sử dụng nó nhằm truy cập vào các tài nguyên nhạy cảm.
Dù việc thay đổi mật khẩu có thể ngăn kẻ tấn công đăng nhập vào tài khoản Microsoft hoặc Azure, nhưng mật khẩu cũ vẫn có thể được sử dụng để truy cập từ xa vào máy của người dùng qua RDP một cách vô thời hạn.
"Điều này tạo ra một cửa hậu từ xa, âm thầm trên bất kỳ hệ thống nào từng lưu mật khẩu đó," Wade viết trong báo cáo của mình.
Will Dormann, chuyên gia phân tích lỗ hổng cấp cao tại công ty bảo mật Analygence, đồng tình với nhận định trên.
"Điều này không hợp lý chút nào xét từ góc độ bảo mật," ông viết trong một cuộc phỏng vấn trực tuyến. "Nếu tôi là quản trị viên hệ thống, tôi sẽ kỳ vọng rằng ngay khi tôi đổi mật khẩu của một tài khoản, thông tin đăng nhập cũ sẽ không thể được sử dụng ở bất kỳ đâu. Nhưng thực tế lại không phải vậy."
Bộ nhớ đệm thông tin đăng nhập là một vấn đề
Cơ chế khiến mọi điều này trở nên khả thi là do Windows lưu trữ thông tin đăng nhập (credential caching) trên ổ cứng của máy cục bộ. Khi người dùng đăng nhập lần đầu tiên bằng tài khoản Microsoft hoặc Azure, RDP sẽ xác nhận tính hợp lệ của mật khẩu thông qua kết nối internet. Sau đó, Windows sẽ lưu thông tin đăng nhập đó dưới dạng được mã hóa bảo mật trên máy cục bộ. Từ thời điểm đó trở đi, mỗi lần đăng nhập qua RDP, Windows sẽ xác minh mật khẩu bằng cách so sánh với thông tin đã lưu, mà không kiểm tra lại trực tuyến. Vì vậy, mật khẩu đã bị thu hồi vẫn có thể tiếp tục dùng để đăng nhập từ xa qua RDP.
Giao diện Remote Desktop
Trong phản hồi gửi tới báo cáo của Wade, Microsoft cho biết họ đã cập nhật tài liệu trực tuyến nhằm giúp người dùng hiểu rõ hơn về hành vi này. Tuy nhiên, Dormann cho biết bản cập nhật này không dễ để quản trị viên phát hiện và cũng không đủ rõ ràng. Ngoài ra, bản cập nhật không hướng dẫn người dùng nên thực hiện các bước nào để bảo vệ Remote Desktop Protocol (RDP) nếu tài khoản Microsoft hoặc Azure của họ bị xâm nhập. Dormann nói rằng cách duy nhất là cấu hình RDP để chỉ xác thực bằng thông tin lưu trữ cục bộ.
Người phát ngôn của Microsoft cho biết công ty sẽ "liên hệ nếu có điều gì cần chia sẻ." Nhưng sau đó không có hồi âm nào.
Microsoft nói với Wade rằng anh không phải là người đầu tiên báo cáo hành vi này như một lỗ hổng bảo mật, cho thấy các kỹ sư bảo mật của công ty đã biết về vấn đề này ít nhất gần hai năm qua.
" Chúng tôi xác định đây là vấn đề đã được một nhà nghiên cứu khác báo cáo từ tháng 8 năm 2023, vì vậy trường hợp này không đủ điều kiện nhận thưởng phát hiện lỗi (bug bounty)," nhân viên Microsoft trả lời Wade. "Chúng tôi ban đầu đã cân nhắc thay đổi mã để xử lý vấn đề này, nhưng sau khi xem xét lại tài liệu thiết kế, chúng tôi nhận thấy thay đổi mã có thể gây mất tương thích với một số tính năng mà nhiều ứng dụng vẫn đang sử dụng."
Theo Tuấn Nguyễn