Theo một bản tin vừa được vào tuần trước từ NCC Group - công ty bảo hiểm thông tin có trụ sở chính tại Anh, giao thức phổ biến dành cho máy bay được điều khiển bằng sóng radio (RC) có tên là ExpressLRS có thể bị tấn công chỉ với vài bước.
Theo các tác giả của ExpressLRS viết trên github.com: "ExpressLRS được thiết kế để trở thành liên kết FPV Racing tốt nhất. Cấu trúc gói tin qua mạng được tối ưu hóa cao, mang lại lợi thế về phạm vi và độ trễ".
Lỗ hổng trong giao thức vừa được phát hiện trên thực tế là một số thông tin được gửi qua các gói tin vô tuyến là dữ liệu liên kết mà bên thứ ba có thể dùng để chiếm đoạt kết nối giữa người điều khiển và máy bay không người lái.
Bất kỳ ai có khả năng giám sát lưu lượng giữa bộ phát ExpressLRS và bộ thu đều có thể chiếm quyền liên lạc, điều này "có thể dẫn đến việc ai đó có thể toàn quyền kiểm soát drone mục tiêu. Khi một máy bay đã ở trên không, nó có khả năng gặp sự cố kiểm soát và gây ra một vụ tai nạn".
Điểm yếu trong giao thức
Tiến trình công bố thông tin của NCC Group:
Ngày 1/12/2021: Liên hệ ban đầu với chủ sở hữu kho lưu trữ Github ExpressLRS
Ngày 3/2/2022: Bản thảo tư vấn kỹ thuật được gửi cho chủ sở hữu kho lưu trữ
Ngày 8/2/2022: Gửi bản vá được gửi đến kho lưu trữ: https://github.com/ExpressLRS/ExpressLRS/pull/1411
Ngày 9/2/2022: Các thảo luận về quy mô và tính hiệu quả giữa nhà phát triển ExpressLRS và NCC Group
Ngày 30/6/2022: Công bố thông tin.
Giao thức ExpressLRS sử dụng cái được gọi là "cụm từ ràng buộc", một loại định danh đảm bảo máy phát duy nhất đang "nói chuyện" với máy thu duy nhất. Cụm từ này được mã hóa bằng MD5 - một thuật toán băm bảo mật được coi là đã bị hỏng (PDF) trong gần một thập kỷ qua.
Theo lưu ý trong bản tin của NCC Group: "cụm từ ràng buộc không phải để bảo mật, nó dùng cho mục đích chống va chạm" và các điểm yếu bảo mật liên quan đến cụm từ này có thể cho phép kẻ tấn công "trích xuất một phần của số nhận dạng được chia sẻ giữa máy nhận và máy phát."
Cốt lõi của vấn đề được gắn với "gói tin đồng bộ" - dữ liệu được truyền giữa máy phát và máy thu theo các khoảng thời gian đều đặn để đảm bảo chúng được đồng bộ hóa. Các gói này làm rò rỉ phần lớn mã định danh duy nhất (UID) của cụm từ ràng buộc.
Tại thời điểm này, tác giả báo cáo giải thích, nếu kẻ tấn công có UID trong tay, chúng có thể kết nối với máy thu - máy bay mục tiêu - và kiểm soát ít nhất một phần đối với nó.
Thông tin chi tiết
Ba điểm yếu đã được xác định, cho phép phát hiện ra bốn byte của UID được yêu cầu để kiểm soát liên kết.
Hai trong số các vấn đề này liên quan đến nội dung của gói đồng bộ.
Gói đồng bộ chứa 3 byte cuối cùng của UID. Các byte này được sử dụng để xác minh rằng máy phát có cùng cụm từ ràng buộc với máy thu, để tránh va chạm. Việc quan sát một gói đồng bộ duy nhất từ đó cung cấp 75% số byte cần thiết để tiếp quản liên kết.
Trình khởi tạo CRC sử dụng 2 byte cuối cùng của UID được gửi cùng với gói đồng bộ hóa, giúp việc tạo trình kiểm tra CRC cực kỳ dễ dàng.
Sự kết hợp của 2 vấn đề này có nghĩa là chỉ có một byte không xác định từ UID được sử dụng để tạo chuỗi FHSS (tần số phổ hopping lây lan - một phương pháp truyền tín hiệu vô tuyến bằng cách chuyển các tàu sân bay qua nhiều kênh với chuỗi giả ngẫu nhiên mà đã được biết cho người gửi và người nhận). Để tìm byte cuối cùng, tất cả các giá trị byte có thể được sử dụng để tạo 256 chuỗi FHSS có thể có khác nhau. Điểm yếu thứ 3 xảy ra trong quá trình tạo chuỗi FHSS.
Do những điểm yếu trong bộ tạo số ngẫu nhiên, 128 giá trị thứ hai của byte cuối cùng của hạt giống 4 byte tạo ra cùng một chuỗi FHSS với 128 giá trị đầu tiên.
Bằng cách chọn một tần số từ chuỗi FHSS và quan sát thời gian liên quan đến gói đồng bộ đã nhận, có thể xác định mục nhập nào trong 128 chuỗi FHSS cưỡng bức tương quan với byte cuối cùng của UID.
Khi byte UID cuối cùng được phát hiện, UID có thể được thiết lập trong máy phát và nó sẽ kết nối với máy thu.
Người ta thừa nhận rằng trình tự FHSS cũng có thể được phát hiện bằng cách quan sát các gói tin qua không gian, nhưng điều này có thể tốn nhiều thời gian hơn và dễ xảy ra lỗi.
Khuyến nghị
Các chuyên gia từ NCC Group đã đưa ra các khuyến nghị, các hành động sau đây được thực hiện để vá các lỗ hổng trong ExpressLRS. Không gửi UID qua liên kết kiểm soát; Dữ liệu được sử dụng để tạo chuỗi FHSS không được gửi qua mạng; Cải thiện trình tạo số ngẫu nhiên. Điều này có thể liên quan đến việc sử dụng một thuật toán an toàn hơn hoặc điều chỉnh thuật toán hiện có để giải quyết các chuỗi lặp lại.