- LTESniffer adalah tool open source yang menangkap pesan radio downlink dan uplink antara base station LTE dan smartphone, terlebih dahulu memperoleh DCI dan RNTI dari PDCCH, lalu mendekode PDSCH dan PUSCH untuk menganalisis traffic data
- Tool ini tidak dapat mendekripsi pesan terenkripsi, dan hanya dapat menganalisis bagian yang tidak terenkripsi seperti header MAC dan physical layer, pesan broadcast base station, atau pesan plaintext pada tahap awal koneksi
- API untuk riset keamanan mendukung 3 hal: identity mapping, IMSI collecting, dan UE capability profiling; ini adalah implementasi yang mencoba melengkapi kebutuhan passive sniffer yang diasumsikan dalam riset keamanan LTE sebelumnya dengan decoding paket protokol PDSCH dan PUSCH
- Cakupan fiturnya mencakup LTE Advanced dan LTE Advanced Pro, uplink/downlink hingga 256QAM, FDD, base station hingga 20MHz, DCI formats 0/1A/1/1B/1C/2/2A/2B, serta transmission modes 1–4
- Decoding real-time membutuhkan CPU dengan beberapa physical core dan konfigurasi SDR; pengumpulan traffic uplink memiliki sinyal UE yang lemah sehingga sniffer perlu berada dekat smartphone atau memerlukan penguatan hardware seperti antena directional, RF front-end, atau amplifier
Apa yang dilakukan LTESniffer
- LTESniffer adalah penyadap open source yang menangkap downlink dan uplink LTE
- Alur kerjanya adalah terlebih dahulu mendekode PDCCH untuk memperoleh DCI dan RNTI dari pengguna aktif, lalu menggunakannya untuk mendekode PDSCH dan PUSCH lebih lanjut guna mengambil traffic data uplink dan downlink
- Dari sudut pandang pengguna umum, ini adalah tool yang menangkap pesan radio LTE dua arah yang lalu-lalang antara base station dan smartphone yang terhubung
- Pesan terenkripsi tidak dapat didekripsi
- Pada pesan terenkripsi, bagian yang tidak terenkripsi seperti header MAC dan physical layer dapat dianalisis
- Pesan broadcast base station atau pesan awal koneksi yang dikirim sebagai plaintext dapat dianalisis sepenuhnya
API riset keamanan dan tujuan riset
- LTESniffer menyediakan 3 fitur API untuk aplikasi dan riset keamanan
- identity mapping
- IMSI collecting
- UE capability profiling
- Banyak riset keamanan LTE mengasumsikan adanya passive sniffer yang dapat menangkap paket terkait privasi dari udara, tetapi mereka menyatakan bahwa sniffer open source yang ada belum memenuhi persyaratan karena tidak dapat mendekode paket protokol PDSCH dan PUSCH
- Detailnya dirangkum dalam makalah
- Tujuan utama LTESniffer adalah mendukung riset keamanan dan analisis jaringan seluler
- Karena mengumpulkan data pengguna uplink dan downlink, pengguna harus mematuhi regulasi setempat terkait sniffing traffic LTE
- Developer tidak bertanggung jawab atas penggunaan untuk tujuan ilegal, seperti secara sengaja mengumpulkan informasi terkait privasi pengguna
Fitur yang didukung dan basis implementasi
- LTESniffer diimplementasikan di atas FALCON dan menggunakan library srsRAN
- Cakupan dukungan utamanya adalah sebagai berikut
- Decoding uplink/downlink real-time untuk channel kontrol dan data PDCCH, PDSCH, PUSCH
- LTE Advanced dan LTE Advanced Pro
- Hingga 256QAM untuk uplink maupun downlink
- DCI formats 0, 1A, 1, 1B, 1C, 2, 2A, 2B
- transmission modes 1, 2, 3, 4
-
Hanya mendukung FDD
- Base station hingga 20MHz
- Deteksi otomatis skema modulasi UL/DL maksimum per smartphone
- Deteksi otomatis konfigurasi physical layer per UE
- RNTI-TMSI mapping, IMSI collecting, UE Capability Profiling
- Update v2.1.0 menambahkan pencatatan file IQ raw data subframe, decoding offline menggunakan file rekaman, dan aktivasi API untuk mode downlink
- API mode downlink hanya berlaku untuk identity collecting dan mapping API
- Informasi terkait tersedia di branch
LTESniffer-record-subframedan README - Update v2.0.0 mendukung penggunaan dua USRP B-series dalam mode sniffing uplink dan memperbaiki bug
- Informasi terkait tersedia di branch
LTESniffer-multi-usrpdan README
Kebutuhan hardware dan software
- OS untuk operasi stabil adalah Ubuntu 18.04/20.04/22.04
- Decoding traffic LTE real-time membutuhkan CPU berperforma tinggi dengan beberapa physical core saat jam sibuk ketika ada banyak pengguna aktif di base station
- Ada contoh decoding traffic base station dengan 150 pengguna aktif secara real-time pada PC Intel i7-9700K
- Spesifikasi yang direkomendasikan adalah CPU Intel i7 dengan 8 physical core atau lebih, RAM 16GB atau lebih, dan SSD 256GB
- Saat hanya melakukan sniffing downlink, sebagian besar SDR yang didukung srsRAN dapat digunakan
- Contohnya USRP atau BladeRF
- SDR harus terhubung ke PC melalui USB 3.0
- Untuk mendekode pesan downlink transmission modes 3 dan 4, diperlukan 2 antena RX
- Jika hanya ada 1 antena RX, hanya pesan downlink transmission mode 1 yang didekode
- GPSDO membantu meningkatkan sinkronisasi pada sniffing downlink, tetapi tidak wajib
- Sniffing uplink harus mendengarkan dua frekuensi, yaitu uplink dan downlink, secara bersamaan, sehingga dua konfigurasi didukung
- Satu USRP X310: 2 channel RX dapat disetel ke frekuensi uplink dan downlink yang berbeda, dan GPSDO bersifat opsional
- 2 unit USRP B-Series: B210/B200 digunakan masing-masing untuk uplink dan downlink, lalu GPSDO dipakai sebagai clock source dan time reference untuk menyinkronkan kedua USRP
- Pada konfigurasi 2 unit USRP B-Series, GPSDO wajib
Alur instalasi dan eksekusi
- Sebelum build dari source, perlu menginstal UHD 4.0 atau lebih baru, dan build dari source direkomendasikan
- Setelah menginstal dependensi srsRAN dan dependensi LTESniffer, clone repository lalu build dengan
cmakedanmake -j 4 - Setelah build, executable berada di
<build-dir>/src/LTESniffer - Ada 3 mode eksekusi utama
- Sniffing traffic downlink LTE dari base station
- Sniffing traffic uplink LTE dari smartphone ke base station
- API keamanan
- Sebelum digunakan di jaringan komersial, pengguna harus memeriksa regulasi setempat terkait sniffing traffic LTE
- Untuk memeriksa base station serta band uplink/downlink yang terhubung ke smartphone uji, pengguna dapat memakai Cellular-Z untuk Android
- LTESniffer juga harus terhubung ke cell dan frekuensi yang sama
Output dan analisis
- LTESniffer menyediakan file pcap sebagai output, yang dapat dianalisis lebih lanjut dan ditelusuri paketnya di Wireshark
- Nama file yang dibuat berbeda untuk tiap mode
- Downlink:
sniffer_dl_mode.pcap - Uplink:
sniffer_ul_mode.pcap - API:
api_collector.pcap
- Downlink:
- File pcap dibuat di direktori yang sama tempat LTESniffer dijalankan
- Agar Wireshark dapat menganalisis paket yang telah didekode dengan benar, lihat panduan konfigurasi di
pcap_file_example/README.md - File pcap uplink mencakup pesan uplink dan downlink
- Untuk melihat hanya uplink, gunakan filter
mac-lte.direction == 0 - Untuk melihat hanya downlink, gunakan filter
mac-lte.direction == 1
- Untuk melihat hanya uplink, gunakan filter
Batasan jarak pada sniffing uplink
- Jangkauan efektif uplink LTESniffer dibatasi oleh performa RF front-end seperti SDR
- UE adalah perangkat seluler yang mengoptimalkan penggunaan baterai, sehingga daya sinyal uplink jauh lebih lemah dibanding sinyal downlink base station
- Untuk berhasil menangkap traffic uplink, daya sinyal yang diterima dapat ditingkatkan dengan cara berikut
- Berada secara fisik dekat dengan UE
- Menggunakan hardware khusus seperti antena directional, RF front-end khusus, atau signal amplifier
Batasan dan alternatif yang disebutkan dalam FAQ
- GPSDO berguna untuk sinkronisasi yang lebih stabil, tetapi pada sniffing downlink LTESniffer dapat menyinkronkan diri dengan sinyal LTE dan mendekode paket tanpa GPSDO
- Pada sniffing uplink, GPSDO hanya diperlukan saat menggunakan 2 unit USRP B-series
- Konfigurasi satu USRP X310 tidak memerlukan GPSDO
- Traffic downlink secara teknis juga dapat dijalankan dengan SDR seperti BladeRF yang didukung library srsRAN
- Namun, pengujian fitur downlink LTESniffer hanya dilakukan dengan USRP B210 dan X310
- Legalitas penggunaan LTESniffer harus dipastikan dengan memeriksa regulasi setempat terkait sniffing traffic LTE yang tidak terenkripsi
- Sebagai metode pengujian lain, disebutkan cara membangun jaringan LTE privat berbasis srsRAN di dalam Faraday cage
- Isi pesan antara dua pengguna hanya dapat dilihat pada bagian yang tidak terenkripsi
- Sebagian besar traffic radio antara base station dan pengguna terenkripsi
- Dalam literatur, terdapat beberapa identifier yang terekspos sebagai plaintext di jaringan LTE, seperti TMSI, GUTI, IMSI, dan RNTI
- Sebagai contoh literatur, disebutkan Watching the Watchers: Practical Video Identification Attack in LTE Networks
1 komentar
Opini Hacker News
Standar jaringan seluler itu menyenangkan karena penuh dengan singkatan
Kalau belum tahu, Q dalam PHICH berarti "request"
"ARQ" di dalamnya kemungkinan bisa diperluas menjadi https://en.wikipedia.org/wiki/Automatic_repeat_request
Sebagian orang mungkin bilang bahwa "Q" dalam "ARQ" sebenarnya adalah "query", dan bahwa orang yang mengartikannya sebagai "request" meremehkan tingkat kosakata rata-rata
Secara pribadi, kalau dipikir-pikir, menurut saya kemungkinan besar Q itu bukan "request" atau "query", melainkan jejak lain dari kode Q konvensional yang maknanya opak seperti di https://en.wikipedia.org/wiki/Q_code
Ini Q di dalam PHICH: https://github.com/srsran/srsRAN_4G/blob/master/lib/src/phy/...
Seperti komentar saudara, q adalah Q dari reQuest
Terlihat bagus
Ada beberapa batasan karena hanya mendukung FDD, tidak ada TDD, dan dibatasi 20 MHz
Menarik karena tampaknya juga bisa melakukan decoding real-time sampai tingkat tertentu. Di base station, sebagian besar pemrosesan memang ditangani prosesor yang cukup serbaguna, tetapi tetap jauh lebih terintegrasi erat dengan hardware dibandingkan software ini
Sayang sekali hardware untuk menjalankan ini terlalu mahal :'(
Jadi kemungkinan akan berjalan juga di limesdr
Untuk opsi yang lebih murah, bisa mencoba antsdr atau adalm-pluto: https://github.com/srsran/zynq_timestamping
Ada banyak catatan bagus juga: https://www.quantulum.co.uk/blog/private-lte-with-analog-ada...
Beberapa fiturnya juga berjalan dengan dongle rtl-sdr murah. Ini fork dari proyek lama https://github.com/Evrytania/LTE-Cell-Scanner
Sedikit menyimpang, tapi saya penasaran apakah ada yang pernah mencoba menyadap DSL
DSL modern, terutama VDSL2, pada dasarnya adalah sinyal frekuensi tinggi yang berjalan di sepanjang twisted pair tanpa shielding, jadi kalau ada hal seperti cabang jalur, sinyalnya akan mudah bocor dan terpancar
Tampaknya memang begitu, sampai-sampai operator radio amatir di Inggris banyak mengeluhkannya[1]. Saya penasaran apakah sinyal itu masih bisa didemodulasi, atau hanya noise floor yang mengganggu di spektrum
[1]: https://rsgb.services/public/publications/vdsl/measuring_and...
Ada juga suara handshake Adsl2: https://www.youtube.com/watch?v=foPGdfsrskA
Saya ingat pernah melihat yang dibuat dengan modem kabel DOCSIS, tapi tidak bisa menemukannya :(
Fakta menarik yang kurang dikenal adalah bahwa generasi awal ponsel digital berada di titik abu-abu tingkat kesulitan untuk dipecahkan
Sama sekali tidak mudah, tetapi cukup mudah untuk dibobol. Enkripsinya benar-benar berhasil dipecahkan
Rainbow table-nya 2 TB dan butuh berbulan-bulan untuk dibuat: https://github.com/0xh4di/GSMDecryption?tab=readme-ov-file
Sekarang saya jadi penasaran apakah generasi yang lebih baru juga punya sedikit celah dekripsi karena berbagai alasan atau karena aktor negara tertentu
Pekerjaan yang menarik, dan senang melihat open source seperti ini masih dipakai
Sekitar 10 tahun lalu, saya pernah melakukan penyadapan downlink di lab riset keamanan jaringan kampus
Salah satu proyeknya mengukur seberapa besar aktivitas sel turun selama libur musim semi, dan proyek lainnya mencoba timing attack terhadap nomor telepon yang diketahui di lokasi yang diketahui untuk melihat apakah kami bisa mengekstrak temporary ID, lalu melakukan panggilan berulang untuk melihat apakah masih berada di area itu
Menurut saya temporary ID itu secara pribadi tidak cukup temporer. Jadi ingin mengutak-atiknya lagi
Ada juga dongle 4G yang diketahui punya mode debug rusak yang bisa dipakai untuk mengekstrak informasi
LTESniffer disebut open source, tetapi tampaknya tidak ada file LICENSE di level teratas dan tidak ada pengaturan lisensi di repositori GitHub
Menambahkan file LICENSE di level teratas memang tepat agar mencakup file build dan file pendukung lainnya