1 poin oleh GN⁺ 2024-10-23 | 1 komentar | Bagikan ke WhatsApp
  • 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-subframe dan 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-usrp dan 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 cmake dan make -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
  • 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

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

1 komentar

 
GN⁺ 2024-10-23
Opini Hacker News
  • Standar jaringan seluler itu menyenangkan karena penuh dengan singkatan
    Kalau belum tahu, Q dalam PHICH berarti "request"

    • Untuk yang penasaran apa maksud pembahasan di atas: PHICH memang tidak muncul di proyek yang dirujuk, tetapi merupakan contoh singkatan jaringan seluler yang aneh, kependekan dari "Physical channel HybridARQ Indicator Channel"
      "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
    • Saya kira ini bercanda
      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 :'(

  • 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...

  • 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