Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Secara historis, sebagian besar karyawan menggunakan keyboard dan mouse nirkabel dari Logitech. Memasukkan kata sandi kami sekali lagi, kami, spesialis tim Keamanan Raccoon, bertanya pada diri sendiri: seberapa sulitkah untuk melewati mekanisme keamanan keyboard nirkabel? Studi ini mengungkapkan kelemahan arsitektur dan kesalahan perangkat lunak yang memungkinkan akses ke data masukan. Di bawah potongan itulah yang kami dapatkan.

Mengapa Logitech?

Menurut kami, perangkat input Logitech termasuk yang memiliki kualitas terbaik dan paling nyaman. Sebagian besar perangkat yang kami miliki didasarkan pada solusi Logitech unifying adalah penerima dongle universal yang memungkinkan Anda menghubungkan hingga 6 perangkat. Semua perangkat yang kompatibel dengan teknologi Logitech Unifying ditandai dengan logo teknologi Logitech Unifying. Mudah digunakan aplikasi Memungkinkan Anda mengelola koneksi keyboard nirkabel ke komputer Anda. Proses menghubungkan keyboard ke dongle receiver Logitech, serta teknologinya sendiri, tercakup, misalnya, di sini.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Penerima dongle dengan dukungan Logitech Unifying

Keyboard dapat menjadi sumber informasi bagi penyerang. Logitech, dengan mempertimbangkan kemungkinan ancaman, menjaga keamanan - menggunakan algoritma enkripsi AES128 di saluran radio keyboard nirkabel. Pikiran pertama yang mungkin dimiliki penyerang dalam situasi ini adalah mencegat informasi penting ketika dikirimkan melalui saluran radio selama prosedur pengikatan. Lagi pula, jika Anda memiliki kunci, Anda dapat mencegat sinyal radio keyboard dan mendekripsinya. Namun, pengguna jarang (atau bahkan tidak pernah) harus menyatukan keyboard, dan peretas dengan radio pemindai harus menunggu lama. Selain itu, tidak semuanya sesederhana proses intersepsi itu sendiri. Dalam studi terbaru pada Juni 2019, pakar keamanan Markus Mengs mempublikasikannya secara online Сообщение tentang penemuan kerentanan pada firmware lama dongle USB Logitech. Hal ini memungkinkan penyerang dengan akses fisik ke perangkat untuk mendapatkan kunci enkripsi saluran radio dan memasukkan penekanan tombol (CVE-2019-13054).

Kami akan berbicara tentang studi keamanan dongle Logitech berdasarkan SoC NRF24 dari Nordic Semiconductor. Mari kita mulai dengan saluran radio itu sendiri.

Bagaimana data “terbang” di saluran radio

Untuk analisis frekuensi waktu sinyal radio, kami menggunakan penerima SDR berdasarkan perangkat Blade-RF dalam mode penganalisis spektrum (Anda juga dapat membaca tentang ini di sini).

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Perangkat SDR Blade-RF

Kami juga mempertimbangkan kemungkinan merekam kuadratur sinyal radio pada frekuensi menengah, yang kemudian dapat dianalisis menggunakan teknik pemrosesan sinyal digital.

Komisi Negara untuk Frekuensi Radio di Federasi Rusia diizinkan untuk digunakan oleh perangkat jarak pendek, rentang frekuensinya adalah 2400–2483,5 MHz. Ini adalah rentang yang sangat “padat”, di mana Anda tidak akan menemukan apa pun: Wi-Fi, Bluetooth, semua jenis kendali jarak jauh, sistem keamanan, detektor nirkabel, mouse dengan keyboard, dan perangkat digital nirkabel lainnya.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Spektrum pita 2,4 GHz

Lingkungan interferensi dalam jangkauannya cukup kompleks. Meskipun demikian, Logitech mampu memberikan penerimaan yang andal dan stabil melalui penggunaan protokol Enhanced ShockBurst di transceiver NRF24 yang dikombinasikan dengan algoritma adaptasi frekuensi.

Saluran dalam suatu pita ditempatkan pada posisi bilangan bulat MHz seperti yang ditentukan dalam spesifikasi NRF24 Nordic Semiconductor - total 84 saluran di jaringan frekuensi. Jumlah saluran frekuensi yang digunakan secara bersamaan oleh Logitech tentu saja lebih sedikit. Kami mengidentifikasi penggunaan setidaknya empat. Karena keterbatasan bandwidth dari penganalisis spektrum sinyal yang digunakan, daftar pasti posisi frekuensi yang digunakan tidak dapat ditentukan, tetapi hal ini tidak diperlukan. Informasi dari keyboard ke dongle penerima ditransmisikan dalam mode Burst (pengaktifan singkat pada pemancar) menggunakan modulasi frekuensi dua posisi GFSK pada kecepatan simbol 1 Mbaud:

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Sinyal radio keyboard dalam representasi waktu

Penerima menggunakan prinsip korelasi penerimaan, sehingga paket yang dikirimkan berisi pembukaan dan bagian alamat. Pengkodean tahan kebisingan tidak digunakan; badan data dienkripsi dengan algoritma AES128.

Secara umum, antarmuka radio pada keyboard nirkabel Logitech dapat dikategorikan sepenuhnya asinkron dengan multiplexing statistik dan adaptasi frekuensi. Ini berarti pemancar keyboard mengganti saluran untuk mengirimkan setiap paket baru. Penerima tidak mengetahui sebelumnya waktu transmisi atau saluran frekuensi, tetapi hanya daftarnya yang diketahui. Penerima dan pemancar bertemu di saluran berkat algoritma bypass frekuensi dan pendengaran yang terkoordinasi, serta mekanisme pengakuan ShockBurst yang Ditingkatkan. Kami belum menyelidiki apakah daftar saluran itu statis. Mungkin perubahannya disebabkan oleh algoritma adaptasi frekuensi. Sesuatu yang mirip dengan metode frekuensi hopping (penyetelan frekuensi operasi acak semu) dapat dilihat dalam penggunaan sumber daya frekuensi rentang tersebut.

Jadi, dalam kondisi ketidakpastian frekuensi waktu, untuk menjamin penerimaan semua sinyal keyboard, penyerang perlu terus memantau seluruh jaringan frekuensi dari 84 posisi, yang memerlukan banyak waktu. Di sini menjadi jelas mengapa kerentanan ekstraksi kunci USB (CVE-2019-13054) dalam sumber diposisikan sebagai kemampuan untuk memasukkan penekanan tombol, daripada mendapatkan akses penyerang ke data yang dimasukkan dari keyboard. Jelas sekali, antarmuka radio pada keyboard nirkabel cukup kompleks dan menyediakan komunikasi radio yang andal antar perangkat Logitech dalam kondisi interferensi sulit di pita 2,4 GHz.

Melihat masalahnya dari dalam

Untuk penelitian kami, kami memilih salah satu keyboard Logitech K330 dan dongle Logitech Unifying yang ada.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Logitech K330

Mari kita lihat bagian dalam keyboard. Elemen yang menarik untuk dipelajari adalah chip SoC NRF24 dari Nordic Semiconductor.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

SoC NRF24 pada papan keyboard nirkabel Logitech K330

Firmware terletak di memori internal, mekanisme membaca dan debugging dinonaktifkan. Sayangnya, firmware tersebut belum dipublikasikan di sumber terbuka. Oleh karena itu, kami memutuskan untuk mendekati masalah ini dari sisi lain - untuk mempelajari konten internal penerima dongle Logitech.

“Dunia batin” penerima dongle cukup menarik. Dongle ini mudah dibongkar, membawa rilis NRF24 yang sudah dikenal dengan pengontrol USB internal dan dapat diprogram ulang baik dari sisi USB maupun langsung dari pemrogram.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Dongle Logitech tanpa housing

Karena ada mekanisme standar untuk mengupdate firmware menggunakan Aplikasi Alat Pembaruan Firmware (dari mana Anda dapat mengekstrak versi firmware yang diperbarui), tidak perlu mencari firmware di dalam dongle.

Apa yang dilakukan: firmware RQR_012_005_00028.bin diekstraksi dari badan aplikasi Alat Pembaruan Firmware. Untuk memeriksa integritasnya, pengontrol dongle dihubungkan dengan kabel ke pemrogram ChipProg-48:

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Kabel untuk menghubungkan dongle Logitech ke programmer ChipProg 48

Untuk mengontrol integritas firmware, berhasil ditempatkan di memori pengontrol dan berfungsi dengan benar, keyboard dan mouse dihubungkan ke dongle melalui Logitech Unifying. Dimungkinkan untuk mengunggah firmware yang dimodifikasi menggunakan mekanisme pembaruan standar, karena tidak ada mekanisme perlindungan kriptografi untuk firmware tersebut. Untuk tujuan penelitian, kami menggunakan koneksi fisik ke pemrogram, karena proses debug jauh lebih cepat dengan cara ini.

Penelitian firmware dan serangan terhadap input pengguna

Chip NRF24 dirancang berdasarkan inti komputasi Intel 8051 dalam arsitektur tradisional Harvard. Untuk inti, transceiver bertindak sebagai perangkat periferal dan ditempatkan di ruang alamat sebagai satu set register. Dokumentasi contoh chip dan kode sumber dapat ditemukan di Internet, sehingga membongkar firmware tidaklah sulit. Selama rekayasa balik, kami melokalisasi fungsi untuk menerima data penekanan tombol dari saluran radio dan mengubahnya menjadi format HID untuk dikirim ke host melalui antarmuka USB. Kode injeksi ditempatkan di alamat memori bebas, yang mencakup alat untuk mencegat kontrol, menyimpan dan memulihkan konteks eksekusi asli, serta kode fungsional.

Paket penekanan atau pelepasan kunci yang diterima oleh dongle dari saluran radio didekripsi, diubah menjadi laporan HID standar dan dikirim ke antarmuka USB seperti dari keyboard biasa. Sebagai bagian dari penelitian, bagian laporan HID yang paling menarik bagi kami adalah bagian laporan HID yang berisi satu byte flag pengubah dan array 6 byte dengan kode penekanan tombol (untuk referensi, informasi tentang HID di sini).

Struktur laporan 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;

Segera sebelum transmisi struktur HID ke host, kode yang disuntikkan mengambil kendali, menyalin 8 byte data HID asli ke dalam memori dan mengirimkannya ke saluran samping radio dalam bentuk teks yang jelas. Dalam kodenya terlihat seperti ini:

//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<

Saluran samping diatur pada frekuensi yang kami tetapkan dengan karakteristik tertentu dari kecepatan manipulasi dan struktur paket.

Pengoperasian transceiver dalam chip NRF24 didasarkan pada grafik keadaan di mana protokol Enhanced ShockBurst terintegrasi secara organik. Kami menemukan bahwa sesaat sebelum transmisi data HID ke antarmuka USB host, transceiver berada dalam status IDLE. Hal ini memungkinkan untuk mengkonfigurasi ulang dengan aman agar beroperasi di saluran samping. Kode yang disuntikkan memotong kontrol, mempertahankan konfigurasi transceiver asli secara penuh dan mengalihkannya ke mode transmisi baru di saluran samping. Mekanisme konfirmasi Enhanced ShockBurst dinonaktifkan dalam mode ini; data HID dikirimkan dalam bentuk yang jelas melalui udara. Struktur paket di saluran samping ditunjukkan pada gambar di bawah ini, diagram sinyal diperoleh setelah demodulasi dan sebelum pemulihan sinkronisasi jam data. Nilai alamat dipilih untuk kemudahan identifikasi visual paket.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Sinyal Burst Burst yang Didemodulasi di Saluran Samping

Setelah paket ditransmisikan ke saluran samping, kode yang disuntikkan mengembalikan keadaan transceiver. Sekarang sudah siap lagi untuk bekerja secara normal dalam konteks firmware asli.

Dalam domain frekuensi dan frekuensi waktu, saluran samping terlihat seperti ini:

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Representasi spektral dan frekuensi waktu dari saluran samping

Untuk menguji pengoperasian chip NRF24 dengan firmware yang dimodifikasi, kami memasang dudukan yang menyertakan dongle Logitech dengan firmware yang dimodifikasi, keyboard nirkabel, dan receiver yang dirakit berdasarkan modul Cina dengan chip NRF24.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Sirkuit intersepsi sinyal radio keyboard nirkabel Logitech

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Modul berbasis NRF24

Di bangku cadangan, dengan keyboard yang beroperasi secara normal, setelah menghubungkannya ke dongle Logitech, kami mengamati transmisi data yang jelas tentang penekanan tombol di saluran radio samping dan transmisi normal data terenkripsi di antarmuka radio utama. Dengan demikian, kami dapat memberikan intersepsi langsung terhadap input keyboard pengguna:

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Hasil mencegat input keyboard

Kode yang dimasukkan menyebabkan sedikit penundaan dalam pengoperasian firmware dongle. Namun, ukurannya terlalu kecil untuk diperhatikan oleh pengguna.

Seperti yang dapat Anda bayangkan, keyboard Logitech apa pun yang kompatibel dengan teknologi Unifying dapat digunakan untuk vektor serangan ini. Karena serangan ini menargetkan penerima Unifying yang disertakan dengan sebagian besar keyboard Logitech, serangan ini tidak bergantung pada model keyboard tertentu.

Kesimpulan

Hasil penelitian menunjukkan kemungkinan penggunaan skenario yang dipertimbangkan oleh penyerang: jika seorang peretas mengganti korbannya dengan penerima dongle untuk keyboard nirkabel Logitech, maka ia akan dapat mengetahui kata sandi akun korban dengan semua konsekuensi berikutnya. konsekuensi. Jangan lupa juga dimungkinkan untuk menyuntikkan penekanan tombol, yang berarti tidak sulit untuk mengeksekusi kode arbitrer di komputer korban.

Bagaimana jika tiba-tiba penyerang dapat mengubah firmware dongle Logitech mana pun melalui USB dari jarak jauh? Kemudian, dari dongle yang berjarak dekat, Anda dapat membuat jaringan repeater dan meningkatkan jarak kebocoran. Meskipun penyerang yang “kaya secara finansial” akan dapat “mendengarkan” input keyboard dan menekan tombol bahkan dari gedung tetangga, peralatan penerimaan radio modern dengan sistem yang sangat selektif, penerima radio sensitif dengan waktu penyetelan frekuensi pendek, dan antena yang sangat terarah akan memungkinkan mereka untuk “mendengarkan” input keyboard dan menekan tombol bahkan dari gedung tetangga.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Peralatan radio profesional

Karena saluran transmisi data nirkabel pada keyboard Logitech terlindungi dengan cukup baik, vektor serangan yang ditemukan memerlukan akses fisik ke penerima, yang sangat membatasi penyerang. Satu-satunya pilihan perlindungan dalam hal ini adalah dengan menggunakan mekanisme perlindungan kriptografi untuk firmware receiver, misalnya, memeriksa tanda tangan firmware yang dimuat di sisi penerima. Namun sayangnya, NRF24 tidak mendukung hal ini dan tidak mungkin menerapkan perlindungan dalam arsitektur perangkat saat ini. Jadi jagalah dongle Anda, karena opsi serangan yang dijelaskan memerlukan akses fisik ke dongle tersebut.

Jaga dongle Anda: Studi keamanan receiver keyboard Logitech

Raccoon Security adalah tim ahli khusus dari Pusat Penelitian dan Pengembangan Vulcan di bidang keamanan informasi praktis, kriptografi, desain sirkuit, rekayasa balik, dan pembuatan perangkat lunak tingkat rendah.

Sumber: www.habr.com

Tambah komentar