Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Trong lịch sử, hầu hết nhân viên đều sử dụng bàn phím và chuột không dây của Logitech. Nhập lại mật khẩu của chúng tôi một lần nữa, chúng tôi, các chuyên gia của nhóm Bảo mật Raccoon, đã tự hỏi: việc vượt qua cơ chế bảo mật của bàn phím không dây khó đến mức nào? Nghiên cứu đã tiết lộ những sai sót về kiến ​​trúc và lỗi phần mềm cho phép truy cập vào dữ liệu đầu vào. Dưới đây là những gì chúng tôi có.

Tại sao là Logitech?

Theo chúng tôi, thiết bị đầu vào của Logitech nằm trong số những thiết bị có chất lượng cao nhất và tiện lợi nhất. Hầu hết các thiết bị chúng tôi có đều dựa trên giải pháp Logitech Thống nhất là một bộ thu dongle đa năng cho phép bạn kết nối tối đa 6 thiết bị. Tất cả các thiết bị tương thích với công nghệ Logitech Unifying đều được đánh dấu bằng logo công nghệ Logitech Unifying. Dễ dàng sử dụng ứng dụng Cho phép bạn quản lý kết nối bàn phím không dây với máy tính của mình. Ví dụ, quá trình kết nối bàn phím với dongle thu Logitech, cũng như bản thân công nghệ, được đề cập: đây.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Bộ thu Dongle có hỗ trợ Logitech Unifying

Bàn phím có thể trở thành nguồn cung cấp thông tin cho kẻ tấn công. Logitech, tính đến mối đe dọa có thể xảy ra, đã quan tâm đến vấn đề bảo mật - đã sử dụng thuật toán mã hóa AES128 trong kênh vô tuyến của bàn phím không dây. Suy nghĩ đầu tiên mà kẻ tấn công có thể có trong tình huống này là chặn thông tin quan trọng khi nó được truyền qua kênh vô tuyến trong quá trình liên kết. Rốt cuộc, nếu có chìa khóa, bạn có thể chặn tín hiệu vô tuyến của bàn phím và giải mã chúng. Tuy nhiên, người dùng hiếm khi (hoặc thậm chí không bao giờ) phải thống nhất bàn phím và hacker có radio quét sẽ phải chờ rất lâu. Ngoài ra, không phải mọi thứ đều đơn giản như vậy với chính quá trình đánh chặn. Trong nghiên cứu mới nhất vào tháng 2019 năm XNUMX, chuyên gia bảo mật Markus Mengs công bố trực tuyến tin nhắn về việc phát hiện ra lỗ hổng trong firmware cũ của USB dongle của Logitech. Nó cho phép kẻ tấn công có quyền truy cập vật lý vào thiết bị để lấy khóa mã hóa kênh vô tuyến và tiêm tổ hợp phím (CVE-2019-13054).

Chúng tôi sẽ nói về nghiên cứu bảo mật của chúng tôi về dongle Logitech dựa trên SoC NRF24 của Nordic Semiconductor. Có lẽ chúng ta hãy bắt đầu với chính kênh radio.

Cách dữ liệu “bay” trong kênh radio

Để phân tích tần số thời gian của tín hiệu vô tuyến, chúng tôi đã sử dụng bộ thu SDR dựa trên thiết bị Blade-RF ở chế độ phân tích phổ (bạn cũng có thể đọc về điều này đây).

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Thiết bị SDR Blade-RF

Chúng tôi cũng đã xem xét khả năng ghi lại hình cầu phương của tín hiệu vô tuyến ở tần số trung gian, sau đó có thể phân tích bằng kỹ thuật xử lý tín hiệu số.

Ủy ban Nhà nước về Tần số Vô tuyến ở Liên bang Nga cho phép để sử dụng cho các thiết bị tầm ngắn, dải tần là 2400–2483,5 MHz. Đây là một phạm vi rất “đông dân”, trong đó bạn sẽ không tìm thấy bất cứ thứ gì: Wi-Fi, Bluetooth, tất cả các loại điều khiển từ xa, hệ thống an ninh, máy dò không dây, chuột có bàn phím và các thiết bị kỹ thuật số không dây khác.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Phổ tần của băng tần 2,4 GHz

Môi trường nhiễu trong phạm vi khá phức tạp. Mặc dù vậy, Logitech vẫn có thể cung cấp khả năng thu sóng ổn định và đáng tin cậy thông qua việc sử dụng giao thức ShockBurst nâng cao trong bộ thu phát NRF24 kết hợp với các thuật toán thích ứng tần số.

Các kênh trong băng tần được đặt ở các vị trí nguyên MHz như được xác định trong thông số kỹ thuật Chất bán dẫn Bắc Âu NRF24 - tổng cộng 84 kênh trong lưới tần số. Tất nhiên, số lượng kênh tần số được Logitech sử dụng đồng thời là ít hơn. Chúng tôi xác định việc sử dụng ít nhất bốn. Do băng thông hạn chế của máy phân tích phổ tín hiệu được sử dụng nên không thể xác định được danh sách chính xác các vị trí tần số được sử dụng, nhưng điều này là không cần thiết. Thông tin từ bàn phím đến dongle thu được truyền ở chế độ Burst (bật ngắn máy phát) sử dụng điều chế tần số hai vị trí GFSK ở tốc độ ký hiệu 1 Mbaud:

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Tín hiệu vô tuyến bàn phím biểu diễn thời gian

Người nhận sử dụng nguyên tắc tương quan của việc tiếp nhận, do đó gói được truyền có chứa phần mở đầu và phần địa chỉ. Mã hóa chống ồn không được sử dụng; phần thân dữ liệu được mã hóa bằng thuật toán AES128.

Nhìn chung, giao diện vô tuyến của bàn phím không dây Logitech có thể được mô tả là hoàn toàn không đồng bộ với tính năng ghép kênh thống kê và thích ứng tần số. Điều này có nghĩa là bộ phát bàn phím sẽ chuyển kênh để truyền từng gói mới. Máy thu không biết trước thời gian truyền hoặc kênh tần số mà chỉ biết danh sách của chúng. Bộ thu và bộ phát gặp nhau trong kênh nhờ các thuật toán nghe và bỏ qua tần số phối hợp, cũng như các cơ chế xác nhận ShockBurst nâng cao. Chúng tôi chưa điều tra xem danh sách kênh có tĩnh hay không. Có lẽ sự thay đổi của nó là do thuật toán thích ứng tần số. Có thể thấy điều gì đó gần giống với phương pháp nhảy tần (điều chỉnh giả ngẫu nhiên tần số hoạt động) trong việc sử dụng tài nguyên tần số của dải.

Do đó, trong điều kiện không chắc chắn về tần số thời gian, để đảm bảo thu được tất cả tín hiệu bàn phím, kẻ tấn công sẽ cần phải liên tục giám sát toàn bộ lưới tần số gồm 84 vị trí, việc này đòi hỏi một lượng thời gian đáng kể. Ở đây, rõ ràng lý do tại sao lỗ hổng trích xuất khóa USB (CVE-2019-13054) trong các nguồn được định vị là khả năng thực hiện các thao tác nhấn phím, thay vì giành quyền truy cập của kẻ tấn công vào dữ liệu được nhập từ bàn phím. Rõ ràng, giao diện vô tuyến của bàn phím không dây khá phức tạp và cung cấp khả năng liên lạc vô tuyến đáng tin cậy giữa các thiết bị Logitech trong điều kiện nhiễu khó khăn ở băng tần 2,4 GHz.

Nhìn vào vấn đề từ bên trong

Đối với nghiên cứu của mình, chúng tôi đã chọn một trong những bàn phím Logitech K330 hiện có và một dongle Logitech Unifying.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Logitech K330

Chúng ta hãy nhìn vào bên trong bàn phím. Một yếu tố thú vị trên bo mạch để nghiên cứu là chip SoC NRF24 của Nordic Semiconductor.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

SoC NRF24 trên bo mạch bàn phím không dây Logitech K330

Phần sụn nằm trong bộ nhớ trong, cơ chế đọc và gỡ lỗi bị tắt. Thật không may, phần sụn chưa được xuất bản dưới dạng nguồn mở. Do đó, chúng tôi quyết định tiếp cận vấn đề từ phía bên kia - nghiên cứu nội dung bên trong của bộ thu dongle Logitech.

“Thế giới nội tâm” của dongle nhận khá thú vị. Dongle có thể tháo rời dễ dàng, mang trên bản phát hành NRF24 quen thuộc với bộ điều khiển USB tích hợp và có thể được lập trình lại cả từ phía USB và trực tiếp từ bộ lập trình.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Logitech dongle không có vỏ

Vì có một cơ chế tiêu chuẩn để cập nhật chương trình cơ sở bằng cách sử dụng Ứng dụng Công cụ cập nhật chương trình cơ sở (từ đó bạn có thể trích xuất phiên bản phần sụn đã cập nhật), không cần phải tìm phần sụn bên trong dongle.

Điều đã được thực hiện: firmware RQR_012_005_00028.bin đã được trích xuất từ ​​phần nội dung của ứng dụng Công cụ cập nhật chương trình cơ sở. Để kiểm tra tính toàn vẹn của nó, bộ điều khiển dongle được kết nối bằng cáp tới lập trình viên ChipProg-48:

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Cáp kết nối dongle Logitech với lập trình viên ChipProg 48

Để kiểm soát tính toàn vẹn của phần sụn, nó đã được đặt thành công vào bộ nhớ của bộ điều khiển và hoạt động chính xác, bàn phím và chuột được kết nối với dongle thông qua Logitech Unifying. Có thể tải lên chương trình cơ sở đã sửa đổi bằng cơ chế cập nhật tiêu chuẩn vì không có cơ chế bảo vệ bằng mật mã cho chương trình cơ sở. Vì mục đích nghiên cứu, chúng tôi đã sử dụng kết nối vật lý với lập trình viên vì cách gỡ lỗi này nhanh hơn nhiều.

Nghiên cứu phần sụn và tấn công vào đầu vào của người dùng

Chip NRF24 được thiết kế dựa trên lõi điện toán Intel 8051 theo kiến ​​trúc Harvard truyền thống. Đối với lõi, bộ thu phát hoạt động như một thiết bị ngoại vi và được đặt trong không gian địa chỉ dưới dạng một tập hợp các thanh ghi. Tài liệu về các ví dụ về chip và mã nguồn có thể tìm thấy trên Internet nên việc tháo rời phần sụn không khó. Trong quá trình thiết kế ngược, chúng tôi đã bản địa hóa các chức năng nhận dữ liệu gõ phím từ kênh radio và chuyển đổi nó sang định dạng HID để truyền đến máy chủ qua giao diện USB. Mã tiêm được đặt trong các địa chỉ bộ nhớ trống, bao gồm các công cụ để chặn kiểm soát, lưu và khôi phục bối cảnh thực thi ban đầu cũng như mã chức năng.

Gói nhấn hoặc nhả phím mà dongle nhận được từ kênh radio sẽ được giải mã, chuyển đổi thành báo cáo HID tiêu chuẩn và gửi đến giao diện USB như từ bàn phím thông thường. Là một phần của nghiên cứu, phần báo cáo HID mà chúng tôi quan tâm nhất là phần báo cáo HID chứa một byte cờ sửa đổi và một mảng 6 byte với mã gõ phím (để tham khảo, thông tin về HID đây).

Cấu trúc báo cáo HID:

// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
    uint8_t Modifiers;
    uint8_t Reserved;
    uint8_t KeyCode[6];
}HidKbdReport_t;

Ngay trước khi truyền cấu trúc HID đến máy chủ, mã được chèn sẽ kiểm soát, sao chép 8 byte dữ liệu HID gốc trong bộ nhớ và gửi nó đến kênh bên radio ở dạng văn bản rõ ràng. Trong mã nó trông như thế này:

//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState();                  // save transceiver state
RfInitForTransmition(TransmitRfAddress);        // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE();                 // Toggle radio CE signal to start transmission
RestoreRfState();               // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<

Kênh bên được tổ chức ở tần số chúng tôi đặt với các đặc điểm nhất định về tốc độ thao tác và cấu trúc gói.

Hoạt động của bộ thu phát trong chip NRF24 dựa trên biểu đồ trạng thái trong đó giao thức ShockBurst nâng cao được tích hợp một cách tự nhiên. Chúng tôi nhận thấy rằng ngay trước khi truyền dữ liệu HID đến giao diện USB máy chủ, bộ thu phát đã ở trạng thái IDLE. Điều này giúp có thể cấu hình lại nó một cách an toàn để hoạt động ở kênh phụ. Mã được chèn sẽ chặn điều khiển, bảo toàn toàn bộ cấu hình bộ thu phát ban đầu và chuyển nó sang chế độ truyền mới trên kênh bên. Cơ chế xác nhận ShockBurst nâng cao bị tắt ở chế độ này; dữ liệu HID được truyền ở dạng rõ ràng qua mạng. Cấu trúc của gói trong kênh bên được thể hiện trong hình bên dưới, sơ đồ tín hiệu thu được sau khi giải điều chế và trước khi khôi phục đồng bộ hóa đồng hồ dữ liệu. Giá trị địa chỉ được chọn để dễ dàng nhận dạng trực quan gói hàng.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Tín hiệu truyền liên tục được giải điều chế ở kênh bên

Sau khi gói được truyền đến kênh bên, mã được tiêm sẽ khôi phục trạng thái của bộ thu phát. Bây giờ nó đã sẵn sàng hoạt động trở lại bình thường trong bối cảnh của phần sụn gốc.

Trong miền tần số và miền tần số thời gian, kênh bên trông như thế này:

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Biểu diễn phổ và tần số thời gian của kênh bên

Để kiểm tra hoạt động của chip NRF24 với phần sụn đã được sửa đổi, chúng tôi đã lắp ráp một giá đỡ bao gồm khóa Logitech với phần sụn đã được sửa đổi, bàn phím không dây và bộ thu được lắp ráp trên cơ sở mô-đun Trung Quốc với chip NRF24.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Mạch chặn tín hiệu vô tuyến bàn phím không dây Logitech

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Mô-đun dựa trên NRF24

Trên băng ghế, với bàn phím hoạt động bình thường, sau khi kết nối với dongle Logitech, chúng tôi quan sát thấy việc truyền dữ liệu rõ ràng về các lần gõ phím trong kênh radio bên cạnh và việc truyền dữ liệu được mã hóa bình thường trong giao diện radio chính. Do đó, chúng tôi có thể cung cấp tính năng chặn trực tiếp hoạt động nhập bằng bàn phím của người dùng:

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Kết quả của việc chặn đầu vào bàn phím

Mã được chèn gây ra sự chậm trễ nhỏ trong hoạt động của phần sụn dongle. Tuy nhiên, chúng quá nhỏ để người dùng có thể nhận thấy.

Như bạn có thể tưởng tượng, bất kỳ bàn phím Logitech nào tương thích với công nghệ Unifying đều có thể được sử dụng cho vectơ tấn công này. Vì cuộc tấn công nhắm vào bộ thu Unifying đi kèm với hầu hết các bàn phím Logitech nên nó độc lập với kiểu bàn phím cụ thể.

Kết luận

Kết quả của nghiên cứu cho thấy những kẻ tấn công có thể sử dụng kịch bản được xem xét: nếu tin tặc thay thế nạn nhân bằng bộ thu dongle cho bàn phím không dây Logitech, thì hắn sẽ có thể tìm ra mật khẩu tài khoản của nạn nhân với tất cả các bước tiếp theo. hậu quả. Đừng quên rằng cũng có thể thực hiện thao tác gõ phím, điều đó có nghĩa là việc thực thi mã tùy ý trên máy tính của nạn nhân không khó.

Điều gì sẽ xảy ra nếu đột nhiên kẻ tấn công có thể sửa đổi từ xa chương trình cơ sở của bất kỳ dongle Logitech nào qua USB? Sau đó, từ các dongle có khoảng cách gần nhau, bạn có thể tạo một mạng lưới các bộ lặp và tăng khoảng cách rò rỉ. Mặc dù kẻ tấn công “giàu có về tài chính” sẽ có thể “nghe” đầu vào bàn phím và nhấn phím ngay cả từ một tòa nhà lân cận, nhưng thiết bị thu sóng vô tuyến hiện đại với hệ thống có tính chọn lọc cao, máy thu sóng vô tuyến nhạy với thời gian điều chỉnh tần số ngắn và ăng-ten định hướng cao sẽ cho phép chúng để “nghe” đầu vào bàn phím và nhấn phím ngay cả từ tòa nhà lân cận.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Thiết bị vô tuyến chuyên nghiệp

Do kênh truyền dữ liệu không dây của bàn phím Logitech được bảo vệ khá tốt nên vectơ tấn công được tìm thấy yêu cầu quyền truy cập vật lý vào bộ thu, điều này hạn chế đáng kể kẻ tấn công. Tùy chọn bảo vệ duy nhất trong trường hợp này là sử dụng các cơ chế bảo vệ bằng mật mã cho phần sụn của máy thu, ví dụ: kiểm tra chữ ký của phần sụn đã tải ở phía máy thu. Tuy nhiên, thật không may, NRF24 không hỗ trợ điều này và không thể triển khai tính năng bảo vệ trong kiến ​​trúc thiết bị hiện tại. Vì vậy, hãy cẩn thận với dongle của bạn, vì tùy chọn tấn công được mô tả yêu cầu quyền truy cập vật lý vào chúng.

Bảo quản dongle của bạn: Nghiên cứu về an toàn của bộ thu bàn phím Logitech

Raccoon Security là một nhóm chuyên gia đặc biệt của Trung tâm Nghiên cứu và Phát triển Vulcan trong lĩnh vực bảo mật thông tin thực tế, mật mã, thiết kế mạch, kỹ thuật đảo ngược và tạo phần mềm cấp thấp.

Nguồn: www.habr.com

Thêm một lời nhận xét