Bốn ứng dụng máy tính từ xa mã nguồn mở phổ biến của VNC đã được tìm thấy dễ bị tổn thương với tổng số 37 lỗ hổng bảo mật, nhiều trong số đó không được chú ý trong 20 năm qua và nghiêm trọng nhất có thể cho phép kẻ tấn công từ xa xâm phạm hệ thống được nhắm mục tiêu.
VNC (điện toán mạng ảo) là một giao thức chia sẻ máy tính để bàn đồ họa nguồn mở dựa trên RFB (Remote FrameBuffer) cho phép người dùng điều khiển từ xa một máy tính khác, tương tự như dịch vụ RDP của Microsoft.
Việc triển khai hệ thống VNC bao gồm “thành phần máy chủ” chạy trên máy tính dùng chung máy tính để bàn và “thành phần máy khách” chạy trên máy tính sẽ truy cập vào máy tính để bàn dùng chung.
Nói cách khác,
Có rất nhiều ứng dụng VNC, cả miễn phí và thương mại, tương thích với các hệ điều hành được sử dụng rộng rãi như Linux, macOS, Windows và Android.
Xem xét rằng hiện có hơn 600.000 máy chủ VNC có thể truy cập từ xa qua Internet và gần 32% trong số đó được kết nối với các hệ thống tự động hóa công nghiệp, các nhà nghiên cứu an ninh mạng tại Kaspersky đã kiểm tra bốn triển khai mã nguồn mở của VNC, bao gồm:
- LibVNC
- UltraVNC
- TightVNC 1.x
- TurboVNC
Sau khi phân tích các phần mềm VNC này, các nhà nghiên cứu đã tìm thấy tổng cộng 37 lỗ hổng hỏng bộ nhớ mới trong phần mềm máy khách và máy chủ: 22 trong số đó được tìm thấy ở UltraVNC, 10 ở LibVNC, 4 ở TightVNC, chỉ 1 ở TurboVNC.
“Tất cả các lỗi được liên kết với việc sử dụng bộ nhớ không chính xác. Việc khai thác chúng chỉ dẫn đến trục trặc và từ chối dịch vụ – một kết quả tương đối thuận lợi”, Kaspersky nói. “Trong những trường hợp nghiêm trọng hơn, những kẻ tấn công có thể có quyền truy cập trái phép vào thông tin trên thiết bị hoặc giải phóng phần mềm độc hại vào hệ thống của nạn nhân.
Một số lỗ hổng bảo mật được phát hiện cũng có thể dẫn đến các cuộc tấn công thực thi mã từ xa (RCE), có nghĩa là kẻ tấn công có thể khai thác các lỗ hổng này để chạy mã tùy ý trên hệ thống được nhắm mục tiêu và giành quyền kiểm soát nó.
Vì ứng dụng phía máy khách nhận được nhiều dữ liệu hơn và chứa các thành phần giải mã dữ liệu nơi các nhà phát triển thường mắc lỗi trong khi lập trình, nên hầu hết các lỗ hổng đều ảnh hưởng đến phiên bản phía máy khách của các phần mềm này.
Mặt khác, phía máy chủ tương đối chứa một cơ sở mã nhỏ gần như không có chức năng phức tạp, làm giảm khả năng xảy ra lỗ hổng bộ nhớ.
Tuy nhiên, nhóm đã phát hiện ra một số lỗi phía máy chủ có thể khai thác, bao gồm lỗ hổng bộ đệm ngăn xếp trong máy chủ TurboVNC giúp có thể thực hiện mã từ xa trên máy chủ.
Nhưng, việc khai thác lỗ hổng này đòi hỏi thông tin xác thực để kết nối với máy chủ VNC hoặc kiểm soát máy khách trước khi kết nối được thiết lập.
Do đó, để bảo vệ chống lại các cuộc tấn công khai thác lỗ hổng phía máy chủ, khách hàng không nên kết nối với các máy chủ VNC không tin cậy hoặc chưa được kiểm tra và các quản trị viên được yêu cầu bảo vệ máy chủ VNC của họ bằng mật khẩu mạnh, duy nhất.
Kaspersky đã báo cáo các lỗ hổng cho các nhà phát triển bị ảnh hưởng, tất cả đều đã phát hành các bản vá cho các sản phẩm được hỗ trợ của họ, ngoại trừ TightVNC 1.x không còn được hỗ trợ bởi những người tạo ra nó. Vì vậy, người dùng được khuyến nghị chuyển sang phiên bản 2.x.