Vá lỗi Reverse RDP thất bại, Microsoft khiến các máy khách RDP có nguy cơ bị tấn công

Nhằm hỗ trợ và đồng hành cùng doanh nghiệp đẩy lùi hậu quả của đại dịch Covid-19, CyStack hỗ trợ: miễn phí 3 tháng bảo mật website & server với phần mềm Cloud Security. > Đăng ký ngay.

Reverse RDP Attack là một hình thức tấn công trong đó một hệ thống máy khách bị tấn công qua đường dẫn có lỗ hổng khi truy cập từ xa vào máy chủ qua RDP (Remote Desktop Protocol – giao thức truy cập máy tính từ xa của Windows)

Microsoft đã vá lỗ hổng (CVE-2019-0887) trong bản cập nhật Patch Tuesday của tháng 7/2019. Tuy nhiên, các nhà nghiên cứu có thể đã bỏ qua một vài chi tiết trong bản vá như chỉ thay thế các dấu gạch chéo trong đường dẫn bằng dấu gạch chéo về phía trước.

Microsoft thừa nhận việc bản vá có lỗi sai và đã vá lại lỗ hổng trong bản Patch Tuesday của tháng 2 vừa rồi. Bản cập nhật này được đặt tên là CVE-2020-0655.

Trong báo cáo mới nhất, các nhà nghiên cứu của Check Point tiết lộ rằng Microsoft đã giải quyết vấn đề bằng cách thêm một bản “sửa chữa tạm thời” vào Windows trong khi gốc của vấn đề là một hàm API “PathCchCanonicalize” vẫn không được thay đổi.

Bản sửa chữa tạm thời tỏ ra hiệu quả trên máy khách RDP tích hợp trong các hệ điều hành Windows, nhưng bản vá chưa đủ tốt để có thể bảo vệ các máy khách RDP của bên thứ ba trước cuộc tấn công tương tự như trên chức năng chống tấn công do Microsoft phát triển.

Nhà nghiên cứu Eyal Itkin của Check Point cho biết “Chúng tôi thấy rằng kẻ tấn công không chỉ có thể vượt qua bản vá của Microsoft mà còn có thể vượt qua mọi kiểm tra chuẩn hóa tốt nhất của Microsoft”.

Các cuộc tấn công truyền qua đường dẫn xảy ra khi một chương trình chấp nhận tệp vào chưa được xác minh. Nó cho phép kẻ tấn công lưu tệp ở bất kỳ vị trí nào trên hệ thống đích và tiết lộ nội dung của tệp bên ngoài thư mục gốc của ứng dụng.

Itkin mô tả “Một máy tính bị nhiễm phần mềm độc hại từ xa có thể chiếm quyền bất kỳ máy khách nào cố gắng kết nối với nó. Ví dụ: nếu một nhân viên CNTT cố gắng kết nối với máy tính bị nhiễm malware từ xa, malware sẽ có thể tấn công các máy tính của nhân viên đó”.

Lỗ hổng này đã được tìm ra vào năm ngoái và một nghiên cứu tiếp theo vào tháng 8 đã phát hiện ra rằng nó cũng ảnh hưởng đến nền tảng ảo hóa phần cứng Hyper-V của Microsoft.

Đây là một video trình diễn về lỗ hổng ban đầu từ năm ngoái:

Một lỗ hổng đường dẫn chưa được vá đúng cách

Theo các nhà nghiên cứu, bản vá tháng 7 có thể có lỗi do một vấn đề nằm ở chức năng chuẩn hóa đường dẫn PathCchCanonicalize. Chức năng này được sử dụng để “làm sạch” đường dẫn tệp, từ đó cho phép kẻ xấu khai thác đồng bộ hóa clipboard giữa máy khách và máy chủ để thả các tệp tùy ý vào các đường dẫn tùy ý trên máy khách.

Nói cách khác, sử dụng tính năng chuyển hướng clipboard cùng lúc với kết nối với máy chủ RDP có lỗi sẽ khiến máy chủ có thể sử dụng RDP clipboard để gửi tệp đến máy tính của khách hàng và thực thi mã từ xa.

Mặc dù ban đầu các nhà nghiên cứu của Check Point xác nhận “bản sửa lỗi phù hợp với mong đợi ban đầu của chúng tôi” nhưng có vẻ như nó có vấn đề hơn là sự hiệu quả. Bản vá có thể bị bỏ qua dễ dàng bằng cách thay thế các dấu gạch chéo (ví dụ: file\to\location) trong các đường dẫn bằng chuyển tiếp dấu gạch phải (ví dụ: file\to\location). Dấu gạch như trên đóng vai trò là dấu phân cách đường dẫn trong các hệ thống Unix.

Nhà nghiên cứu cho biết thêm “Có vẻ như PathCchCanonicalize, chức năng được đề cập trong bản hướng dẫn thực hành Windows về cách chuẩn hóa đường dẫn nguy hiểm, bỏ qua các ký tự gạch chéo về phía trước. Chúng tôi đã xác định hành vi này bằng cách triển khai chức năng đảo ngược của Microsoft và thấy rằng nó phân chia đường dẫn đến các bộ phận bằng cách chỉ tìm kiếm theo \ và bỏ qua dấu /”

Check Point cho biết họ đã tìm thấy lỗ hổng khi thử kiểm tra Microsoft Remote Desktop trên máy khách của cho Mac. Máy Mac này là một máy khách RDP bị loại khỏi phân tích ban đầu vào năm ngoái. Điểm thú vị là, bản thân máy khách macOS RDP không dễ bị CVE-2019-0887 tấn công.

Vì lỗ hổng chính vẫn chưa được khắc phục nên những việc như bỏ qua chức năng làm sạch của Windows có thể gây nguy hại đến các phần mềm khác.

Ông Omri Herscovici của Check Point nói rằng “Microsoft đã bỏ qua việc khắc phục lỗ hổng trong API chính thức của họ và vì vậy tất cả các chương trình được viết theo kinh nghiệm Microsoft và nó có thể vẫn sẽ bị tấn công bằng Path-Traversal. “Chúng tôi muốn các nhà phát triển nhận thức được mối đe dọa này để họ có thể xem qua các chương trình của họ và tự áp dụng một bản vá nhằm vào nó.”