Một nhóm các nhà nghiên cứu từ một số trường đại học Mỹ và các công ty Cloudflare và Microsoft đã phát triển một kỹ thuật tấn công mới trên giao thức RADIUS được các nhà khai thác viễn thông, dịch vụ đám mây và nhà cung cấp VPN sử dụng để xác thực, ủy quyền và tính toán người dùng. Cuộc tấn công có tên mã Blast-RADIUS, có thể giả mạo phản hồi của máy chủ RADIUS trong quá trình xác thực và tổ chức kết nối thuê bao mà không cần biết mật khẩu truy cập.
Để khai thác lỗ hổng (CVE-2024-3596), kẻ tấn công phải có khả năng chặn lưu lượng chuyển tiếp và thực hiện một cuộc tấn công MITM chính thức cho phép chúng đọc, chặn, chặn và sửa đổi các gói UDP chuyển tiếp đến và đi được gửi bởi quyền truy cập trỏ tới yêu cầu xác thực ứng dụng khách (Access-Request) và được máy chủ RADIUS trả về xác nhận hoặc từ chối thao tác. Sau khi chặn yêu cầu xác thực, kẻ tấn công có thể gửi phản hồi giả, chỉ ra trong phản hồi này một loại kết quả khác (ví dụ: Access-Accept thay vì Access-Reject). Kẻ tấn công cũng có thể chặn phản hồi Access-Challenge được sử dụng để xác thực hai yếu tố và thay thế nó bằng phản hồi Access-Accept để bỏ qua bước xác minh bổ sung.

Cuộc tấn công dựa trên thực tế rằng giao thức RADIUS sử dụng UDP làm phương tiện truyền tải và xác minh tính toàn vẹn của các thông điệp được truyền bằng thuật toán MD5. Để xác minh các thông điệp được truyền giữa các máy khách, cần sử dụng thuật toán MD5. người phục vụ Khi quá trình xác thực được thực hiện giữa điểm truy cập và máy chủ RADIUS, một khóa bí mật được sử dụng, khóa này chỉ điểm truy cập và máy chủ RADIUS biết nhưng kẻ tấn công không biết. Để đáp lại yêu cầu xác thực, máy chủ RADIUS tạo ra một mã băm MD5, mà máy chủ truy cập sử dụng để xác minh rằng thông báo được gửi bởi một máy chủ được ủy quyền. Mã băm MD5 bao gồm giá trị ngẫu nhiên được gửi trong yêu cầu, mã định danh yêu cầu, các thuộc tính được trả về và khóa bí mật.
Kẻ tấn công trong cuộc tấn công MITM có thể chặn mã định danh và giá trị ngẫu nhiên được gửi trong yêu cầu, đồng thời cũng có thể dự đoán opcode, kích thước và thuộc tính. Nhiệm vụ bao gồm việc tạo ra hàm băm xác minh chính xác tương ứng với kết quả đã thay đổi của thao tác và sẽ được xác minh thông qua hàm băm bằng khóa bí mật. Thuật toán MD5 không chống lại việc lựa chọn xung đột, điều này cho phép kẻ tấn công, bằng cách thao tác với phần đệm không liên quan, chọn kết hợp dữ liệu với các tham số bắt buộc, hàm băm MD5 của nó sẽ trùng với hàm băm MD5 của phản hồi ban đầu và gửi một phản hồi hư cấu với mã xác thực thành công (Access-Accept) thay vì thông báo lỗi.

Do quá trình xác thực và kiểm tra tính toàn vẹn không được áp dụng khi xử lý các gói tin Access-Request, nên trong cuộc tấn công, yêu cầu gốc từ... người phục vụ Để giành quyền truy cập, kẻ tấn công có thể chèn thêm thuộc tính "Proxy-State", thuộc tính này sẽ được máy chủ RADIUS phản hồi lại. Nội dung của "Proxy-State" được lựa chọn dựa trên các xung đột, sao cho giá trị băm xác thực MD5 trong phản hồi thật và phản hồi giả mạo là giống nhau. Trong quá trình thử nghiệm, việc tìm kiếm xung đột MD5 để thực hiện cuộc tấn công mất từ 3 đến 6 phút, lâu hơn thời gian chờ điển hình là 30-60 giây. Tuy nhiên, thời gian tìm kiếm xung đột có thể được giảm bớt bằng cách sử dụng phần cứng mạnh hơn, sử dụng GPU và song song hóa các thao tác.
Là biện pháp chính để bảo vệ khỏi lỗ hổng bảo mật, chúng tôi đề xuất sử dụng giao thức EAP (Giao thức xác thực mở rộng, RFC 3579), sử dụng thuộc tính Message-Authenticator để xác minh tin nhắn bổ sung. Để bảo vệ khỏi các cuộc tấn công, bạn cũng có thể sử dụng tiện ích mở rộng giao thức (RadSec), cho phép truyền tin nhắn RADIUS qua các kênh được mã hóa dựa trên TLS hoặc DTLS. Ngoài ra, bạn có thể giảm giá trị thời gian chờ phản hồi xuống mức tối thiểu và chặn phản hồi bằng thuộc tính Proxy-State. Việc truyền các thông báo RADIUS qua TCP làm cho cuộc tấn công trở nên khó khăn hơn nhưng không ngăn được nó xảy ra.
Mã thực hiện cuộc tấn công vẫn chưa được công bố công khai, nhưng dự án hashclash đã nhận được những thay đổi nhằm cải thiện việc lựa chọn các xung đột trong MD5, có tính đến các chi tiết cụ thể của cuộc tấn công. Máy chủ RADIUS FreeRADIUS đã giải quyết vấn đề trong các bản phát hành 3.0.27 và 3.2.5 bằng cách bắt buộc thuộc tính Message-Authenticator và thêm cài đặt để hạn chế việc xử lý các gói có thuộc tính Proxy-State.
Nguồn: opennet.ru
