-
09/04/2020
-
122
-
1.297 bài viết
Lỗ hổng mới trong Ray: DNS Rebinding biến môi trường dev AI thành đích ngắm hấp dẫn
Một lỗ hổng thực thi mã từ xa RCE vừa được phát hiện trong Ray, framework mã nguồn mở quen thuộc trong cộng đồng phát triển AI và học máy. Khi lỗ hổng bị khai thác, kẻ tấn công có thể chiếm quyền điều khiển hệ thống của nhà phát triển chỉ bằng một cú click vào trang web hoặc quảng cáo độc hại.
Hiện tại, người dùng Safari và Firefox là nhóm có nguy cơ bị ảnh hưởng nhiều nhất. Ngược lại, người dùng Google Chrome tạm thời ít bị tác động hơn, không phải nhờ khả năng phòng vệ vượt trội mà chỉ do chính Chrome đang tồn tại một lỗi vô tình khiến kỹ thuật khai thác thất bại.
Ray thường được khởi chạy trực tiếp trên máy của nhà phát triển và mở các cổng như 8265 để nhận lệnh từ dashboard hoặc API. Các endpoint nhạy cảm như /api/jobs chưa có cơ chế xác thực nên Ray tạm thời dựa vào việc kiểm tra chuỗi User‑Agent. Khi phát hiện truy cập từ trình duyệt, framework sẽ cố gắng chặn lại với mục tiêu ngăn các tấn công qua web cục bộ. Thực tế cho thấy lớp bảo vệ này lại khá mong manh. Trình duyệt Safari và Firefox cho phép mã JavaScript chỉnh sửa User‑Agent nên hacker có thể dễ dàng gửi yêu cầu giả mạo và vượt qua kiểm tra. Một khi cơ chế nhận diện bị đánh lừa, các endpoint nhạy cảm lập tức lộ diện, mở đường cho lệnh độc hại được thực thi ngay trên máy của nhà phát triển.
Mối nguy trở nên nghiêm trọng hơn khi kỹ thuật DNS rebinding được đưa vào. Trình duyệt bị đánh lừa rằng máy chủ của kẻ tấn công và Ray cục bộ cùng nằm trong một nguồn truy cập duy nhất. Chính sự nhầm lẫn này biến trình duyệt thành “trợ thủ bất đắc dĩ”, tự động chuyển lệnh hợp lệ tới hệ thống của nhà phát triển mà họ không hề hay biết.
Điểm yếu thiết kế trong Ray được phát hiện bởi @avilum từ Oligo và sau đó được @JLLeitschuh của Socket phân tích chi tiết kèm bằng chứng khai thác. Kẻ tấn công chỉ cần dụ nhà phát triển truy cập một trang web có cài mã độc. Kỹ thuật DNS rebinding khi đó sẽ đánh lừa trình duyệt rằng máy chủ tấn công và Ray đang chạy trên localhost là cùng một nguồn. Để hoàn tất, mã JavaScript điều chỉnh User‑Agent khiến Ray tin rằng yêu cầu không đến từ trình duyệt và chấp nhận thực thi lệnh qua endpoint /api/jobs. Trong bài thử nghiệm, payload chỉ mở ứng dụng máy tính. Tuy nhiên nếu áp dụng trong tình huống thật, hacker hoàn toàn có thể giành quyền kiểm soát thiết bị và từ đó di chuyển sâu hơn vào hệ thống nội bộ doanh nghiệp.
Ngay sau khi lỗ hổng được tiết lộ, Ray đã phát hành bản vá ở phiên bản 2.52.0 và khuyến nghị người dùng cập nhật càng sớm càng tốt.
Đi kèm bản vá, Ray bổ sung cơ chế xác thực bằng token cho các endpoint nhạy cảm. Khi được kích hoạt, tính năng này tạo thêm một lớp phòng vệ quan trọng cho môi trường phát triển cục bộ. Trong khi đó, một số trình duyệt cũng đang triển khai các biện pháp bảo vệ trước DNS rebinding như Local Network Access trên Chrome. Mặc dù vậy, các tính năng này chưa thực sự ổn định và có thể thay đổi trong tương lai. Vì thế, cập nhật Ray vẫn là biện pháp an toàn và bền vững nhất vào thời điểm hiện tại.
Theo Security Online
Hiện tại, người dùng Safari và Firefox là nhóm có nguy cơ bị ảnh hưởng nhiều nhất. Ngược lại, người dùng Google Chrome tạm thời ít bị tác động hơn, không phải nhờ khả năng phòng vệ vượt trội mà chỉ do chính Chrome đang tồn tại một lỗi vô tình khiến kỹ thuật khai thác thất bại.
Ray thường được khởi chạy trực tiếp trên máy của nhà phát triển và mở các cổng như 8265 để nhận lệnh từ dashboard hoặc API. Các endpoint nhạy cảm như /api/jobs chưa có cơ chế xác thực nên Ray tạm thời dựa vào việc kiểm tra chuỗi User‑Agent. Khi phát hiện truy cập từ trình duyệt, framework sẽ cố gắng chặn lại với mục tiêu ngăn các tấn công qua web cục bộ. Thực tế cho thấy lớp bảo vệ này lại khá mong manh. Trình duyệt Safari và Firefox cho phép mã JavaScript chỉnh sửa User‑Agent nên hacker có thể dễ dàng gửi yêu cầu giả mạo và vượt qua kiểm tra. Một khi cơ chế nhận diện bị đánh lừa, các endpoint nhạy cảm lập tức lộ diện, mở đường cho lệnh độc hại được thực thi ngay trên máy của nhà phát triển.
Mối nguy trở nên nghiêm trọng hơn khi kỹ thuật DNS rebinding được đưa vào. Trình duyệt bị đánh lừa rằng máy chủ của kẻ tấn công và Ray cục bộ cùng nằm trong một nguồn truy cập duy nhất. Chính sự nhầm lẫn này biến trình duyệt thành “trợ thủ bất đắc dĩ”, tự động chuyển lệnh hợp lệ tới hệ thống của nhà phát triển mà họ không hề hay biết.
Điểm yếu thiết kế trong Ray được phát hiện bởi @avilum từ Oligo và sau đó được @JLLeitschuh của Socket phân tích chi tiết kèm bằng chứng khai thác. Kẻ tấn công chỉ cần dụ nhà phát triển truy cập một trang web có cài mã độc. Kỹ thuật DNS rebinding khi đó sẽ đánh lừa trình duyệt rằng máy chủ tấn công và Ray đang chạy trên localhost là cùng một nguồn. Để hoàn tất, mã JavaScript điều chỉnh User‑Agent khiến Ray tin rằng yêu cầu không đến từ trình duyệt và chấp nhận thực thi lệnh qua endpoint /api/jobs. Trong bài thử nghiệm, payload chỉ mở ứng dụng máy tính. Tuy nhiên nếu áp dụng trong tình huống thật, hacker hoàn toàn có thể giành quyền kiểm soát thiết bị và từ đó di chuyển sâu hơn vào hệ thống nội bộ doanh nghiệp.
Ngay sau khi lỗ hổng được tiết lộ, Ray đã phát hành bản vá ở phiên bản 2.52.0 và khuyến nghị người dùng cập nhật càng sớm càng tốt.
Đi kèm bản vá, Ray bổ sung cơ chế xác thực bằng token cho các endpoint nhạy cảm. Khi được kích hoạt, tính năng này tạo thêm một lớp phòng vệ quan trọng cho môi trường phát triển cục bộ. Trong khi đó, một số trình duyệt cũng đang triển khai các biện pháp bảo vệ trước DNS rebinding như Local Network Access trên Chrome. Mặc dù vậy, các tính năng này chưa thực sự ổn định và có thể thay đổi trong tương lai. Vì thế, cập nhật Ray vẫn là biện pháp an toàn và bền vững nhất vào thời điểm hiện tại.
Theo Security Online