LTESniffer: Açık kaynaklı LTE downlink/uplink dinleme aracı
(github.com/SysSec-KAIST)- LTESniffer, LTE baz istasyonu ile akıllı telefon arasındaki downlink ve uplink kablosuz mesajlarını yakalayan; önce PDCCH üzerinden DCI ve RNTI bilgilerini elde edip ardından PDSCH ve PUSCH'u decode ederek veri trafiğini analiz eden açık kaynaklı bir araçtır
- Şifrelenmiş mesajların şifresini çözemaz; yalnızca MAC ve fiziksel katman başlıkları gibi şifrelenmemiş kısımları, baz istasyonunun broadcast mesajlarını ve bağlantının ilk aşamasındaki düz metin mesajlarını analiz edebilir
- Güvenlik araştırmaları için sunulan API, identity mapping, IMSI collecting ve UE capability profiling olmak üzere 3 özelliği destekler; mevcut LTE güvenlik araştırmalarının varsaydığı pasif sniffer gereksinimini PDSCH ve PUSCH protokol paketlerini decode ederek tamamlamayı amaçlayan bir uygulamadır
- Özellik kapsamı LTE Advanced ve LTE Advanced Pro, uplink ve downlink için en fazla 256QAM, FDD, en fazla 20MHz baz istasyonu, DCI formats 0/1A/1/1B/1C/2/2A/2B ve transmission modes 1~4 desteğini içerir
- Gerçek zamanlı decode için çoklu fiziksel çekirdeğe sahip CPU ve SDR kurulumu gerekir; uplink trafiği toplamada UE sinyali zayıf olduğundan sniffer'ın akıllı telefona yakın olması ya da yönlü anten, RF front-end ve amplifikatör gibi donanımlarla güçlendirilmesi gerekir
LTESniffer ne yapar
- LTESniffer, LTE downlink ve uplink'i birlikte yakalayan açık kaynaklı bir dinleme aracıdır
- Çalışma akışı önce PDCCH'u decode ederek aktif kullanıcıların DCI ve RNTI bilgilerini elde eder, ardından bunları kullanarak PDSCH ve PUSCH'u ek olarak decode edip uplink ve downlink veri trafiğini alır
- Genel kullanıcı açısından bakıldığında, baz istasyonu ile bağlı akıllı telefon arasında gidip gelen LTE kablosuz mesajlarını çift yönlü olarak yakalayan bir araçtır
- Şifrelenmiş mesajların şifresi çözülemez
- Şifrelenmiş mesajlarda MAC ve fiziksel katman başlıkları gibi şifrelenmemiş kısımlar analiz edilebilir
- Düz metin olarak iletilen baz istasyonu broadcast mesajları veya bağlantının ilk aşamasındaki mesajlar tamamen analiz edilebilir
Güvenlik araştırma API'si ve araştırma amacı
- LTESniffer, güvenlik uygulamaları ve araştırmaları için 3 API özelliği sunar
- identity mapping
- IMSI collecting
- UE capability profiling
- Birçok LTE güvenlik araştırması havadan gizlilikle ilgili paketleri yakalayabilen pasif bir sniffer varsayar; ancak mevcut açık kaynaklı sniffer'ların PDSCH ve PUSCH protokol paketlerini decode edemediği ve bu yüzden gereksinimleri karşılamadığı belirtilir
- Ayrıntılar makalede özetlenmiştir
- LTESniffer'ın temel amacı, hücresel ağ güvenlik ve analiz araştırmalarını desteklemektir
- Uplink ve downlink kullanıcı verisi topladığı için LTE trafik sniffing ile ilgili yerel düzenlemelere uyulmalıdır
- Kullanıcı mahremiyetiyle ilgili bilgileri kasıtlı olarak toplamak gibi yasa dışı amaçlarla kullanımda geliştirici sorumluluk kabul etmez
Desteklenen özellikler ve uygulama temeli
- LTESniffer, FALCON üzerine geliştirilmiştir ve srsRAN kütüphanesini kullanır
- Başlıca destek kapsamı şöyledir
- PDCCH, PDSCH, PUSCH kontrol ve veri kanallarının gerçek zamanlı uplink/downlink decode edilmesi
- LTE Advanced ve LTE Advanced Pro
- Hem uplink hem downlink için en fazla 256QAM
- DCI formats 0, 1A, 1, 1B, 1C, 2, 2A, 2B
- transmission modes 1, 2, 3, 4
-
Yalnızca FDD desteklenir
- En fazla 20MHz baz istasyonu
- Telefona göre en yüksek UL/DL modülasyon yönteminin otomatik algılanması
- UE bazında fiziksel katman yapılandırmasının otomatik algılanması
- RNTI-TMSI mapping, IMSI collecting, UE Capability Profiling
- v2.1.0 güncellemesi, alt çerçeve IQ raw data dosyası kaydetme, kaydedilmiş dosyalarla çevrimdışı decode ve downlink modunda API etkinleştirmeyi ekler
- Downlink modu API'si yalnızca identity collecting ve mapping API'si için geçerlidir
- İlgili içerik
LTESniffer-record-subframebranch'inde ve README dosyasında yer alır - v2.0.0 güncellemesi, uplink sniffing modunda iki adet USRP B-series kullanımını destekler ve hataları düzeltir
- İlgili içerik
LTESniffer-multi-usrpbranch'inde ve README dosyasında yer alır
Donanım ve yazılım gereksinimleri
- Kararlı çalışma için işletim sistemi Ubuntu 18.04/20.04/22.04'tür
- Gerçek zamanlı LTE trafik decode işlemi, baz istasyonunda etkin kullanıcı sayısının fazla olduğu yoğun saatlerde çok sayıda fiziksel çekirdeğe sahip yüksek performanslı bir CPU gerektirir
- Intel i7-9700K PC üzerinde 150 aktif kullanıcılı bir baz istasyonunun trafiğinin gerçek zamanlı decode edildiği bir örnek vardır
- Önerilen özellikler: en az 8 fiziksel çekirdekli Intel i7 CPU, en az 16GB RAM ve 256GB SSD
- Yalnızca downlink sniffing yapılacaksa srsRAN'ın desteklediği SDR'lerin çoğu kullanılabilir
- Örnekler: USRP veya BladeRF
- SDR, USB 3.0 üzerinden PC'ye bağlanmalıdır
- transmission modes 3 ve 4 downlink mesajlarını decode etmek için 2 RX anten gerekir
- Yalnızca 1 RX anten varsa sadece transmission mode 1 downlink mesajları decode edilir
- GPSDO, downlink sniffing'de senkronizasyonu iyileştirmede faydalıdır ancak zorunlu değildir
- Uplink sniffing, uplink ve downlink iki frekansını aynı anda dinlemeyi gerektirdiği için iki kurulum desteklenir
- Tek USRP X310: 2 RX kanalı farklı uplink/downlink frekanslarına ayarlanabilir; GPSDO isteğe bağlıdır
- 2 adet USRP B-Series: B210/B200, uplink ve downlink için ayrı ayrı kullanılır; iki USRP'yi senkronize etmek için GPSDO, clock source ve time reference olarak kullanılır
- 2 adet USRP B-Series kurulumunda GPSDO zorunludur
Kurulum ve çalıştırma akışı
- Kaynaktan derleme öncesinde UHD 4.0 veya üzeri kurulmalıdır ve kaynak derleme önerilir
- srsRAN bağımlılıkları ve LTESniffer bağımlılıkları kurulduktan sonra depo klonlanır ve
cmake,make -j 4ile derlenir - Derleme sonrasında çalıştırılabilir dosya
<build-dir>/src/LTESnifferkonumunda bulunur - Başlıca 3 çalışma modu vardır
- Baz istasyonundan gelen LTE downlink trafiğini sniffing
- Akıllı telefondan baz istasyonuna giden LTE uplink trafiğini sniffing
- Güvenlik API'si
- Ticari ağda kullanmadan önce LTE trafik sniffing ile ilgili yerel düzenlemeler kontrol edilmelidir
- Test akıllı telefonunun bağlı olduğu baz istasyonunu ve uplink/downlink bandını doğrulamak için Android için Cellular-Z kullanılabilir
- LTESniffer da aynı hücreye ve frekansa bağlanmalıdır
Çıktı ve analiz
- LTESniffer, çıktı olarak pcap dosyaları üretir; bunlar Wireshark ile ek analiz ve paket izleme için kullanılabilir
- Oluşturulan dosya adları moda göre değişir
- Downlink:
sniffer_dl_mode.pcap - Uplink:
sniffer_ul_mode.pcap - API:
api_collector.pcap
- Downlink:
- pcap dosyaları, LTESniffer'ın çalıştırıldığı aynı dizinde oluşturulur
- Wireshark'ın decode edilen paketleri doğru analiz edebilmesi için
pcap_file_example/README.mdiçindeki yapılandırma kılavuzuna bakılmalıdır - Uplink pcap dosyası hem uplink hem downlink mesajlarını içerir
- Yalnızca uplink görmek için
mac-lte.direction == 0filtresi kullanılır - Yalnızca downlink görmek için
mac-lte.direction == 1filtresi kullanılır
- Yalnızca uplink görmek için
Uplink sniffing'in mesafe kısıtları
- LTESniffer'ın uplink için etkili menzili, SDR gibi RF front-end performansı nedeniyle sınırlıdır
- UE, pil kullanımını optimize eden taşınabilir bir cihaz olduğu için uplink sinyal gücü baz istasyonunun downlink sinyalinden çok daha zayıftır
- Uplink trafiğini başarıyla yakalamak için alınan sinyal gücü şu yollarla artırılabilir
- UE'ye fiziksel olarak yakın konumlanmak
- Yönlü anten, özel RF front-end veya sinyal amplifikatörü gibi özel donanımlar kullanmak
FAQ'da belirtilen sınırlamalar ve alternatifler
- GPSDO, daha kararlı senkronizasyon için faydalıdır; ancak downlink sniffing'de GPSDO olmadan da LTE sinyaliyle senkronize olup paketler decode edilebilir
- Uplink sniffing'de GPSDO yalnızca 2 adet USRP B-series kullanıldığında gerekir
- Tek USRP X310 kurulumunda GPSDO gerekmez
- Downlink trafiği, srsRAN kütüphanesinin desteklediği BladeRF gibi SDR'lerle teknik olarak da çalıştırılabilir
- Ancak LTESniffer'ın downlink işlevi yalnızca USRP B210 ve X310 ile test edilmiştir
- LTESniffer kullanımının yasal olup olmadığı için şifrelenmemiş LTE trafik sniffing ile ilgili yerel düzenlemeler kontrol edilmelidir
- Başka bir test yöntemi olarak, Faraday cage içinde srsRAN tabanlı özel bir LTE ağı kurma yöntemi önerilir
- İki kullanıcı arasındaki mesaj içeriğinde yalnızca şifrelenmemiş kısımlar görülebilir
- Baz istasyonu ile kullanıcı arasındaki kablosuz trafik büyük ölçüde şifrelenmiştir
- LTE ağında TMSI, GUTI, IMSI ve RNTI gibi düz metin olarak açığa çıkan çeşitli tanımlayıcılar literatürde yer almaktadır
- Örnek kaynak olarak Watching the Watchers: Practical Video Identification Attack in LTE Networks gösterilir
1 yorum
Hacker News görüşleri
Mobil ağ standartları kısaltmalarla dolu olduğu için güzel
Eğer bilmiyorsanız, PHICH'teki Q "request" anlamına geliyor
İçindeki "ARQ" ise muhtemelen https://en.wikipedia.org/wiki/Automatic_repeat_request olarak açılabilir
Bazıları "ARQ" içindeki "Q"nun aslında "query" olduğunu, bunu "request" diye açanların ise ortalama kelime dağarcığı seviyesini düşük gördüğünü söyleyebilir
Benim kişisel görüşüm, düşününce Q'nun "request" ya da "query" değil, https://en.wikipedia.org/wiki/Q_code içindeki geleneksel opak Q kodunun bir başka kalıntısı olmasının daha muhtemel olduğu yönünde
PHICH içindeki Q burada: https://github.com/srsran/srsRAN_4G/blob/master/lib/src/phy/...
Kardeş yorumda dendiği gibi q, reQuest içindeki Q
Güzel görünüyor
Yalnızca FDD destekliyor, TDD yok ve 20MHz ile sınırlı; yani bazı kısıtları var
Bir ölçüde gerçek zamanlı çözümleme de yapabiliyor gibi görünmesi ilginç. Baz istasyonunda işlemenin büyük bir kısmını oldukça genel amaçlı işlemciler üstleniyor, ama yine de donanımla bu yazılımdan çok daha sıkı entegre durumdalar
Bunu çalıştıracak donanımın çok pahalı olması üzücü :'(
Bu yüzden limesdr'da da çalışacaktır
Daha ucuz seçenek olarak antsdr ya da adalm-pluto denenebilir: https://github.com/srsran/zynq_timestamping
Güzel notlar da var: https://www.quantulum.co.uk/blog/private-lte-with-analog-ada...
Bazı özellikler ucuz rtl-sdr dongle ile de çalışıyor. Eski https://github.com/Evrytania/LTE-Cell-Scanner projesinin bir fork'u
Biraz yan konu ama DSL dinleme denemiş olan var mı merak ediyorum
Modern DSL, özellikle VDSL2, özünde korumasız bükümlü çift hat boyunca ilerleyen yüksek frekanslı bir sinyal; hatta hatta branşmanlar gibi şeyler varsa kolayca sızıp etrafa yayılıyor olmalı
Nitekim Birleşik Krallık'taki amatör telsizcilerin bu konuda epey şikayet etmesi de bunu düşündürüyor[1]. Bu sinyalin hâlâ demodüle edilip edilemeyeceğini, yoksa spektrumda sadece can sıkıcı bir referans gürültüsü mü olduğunu merak ediyorum
[1]: https://rsgb.services/public/publications/vdsl/measuring_and...
Adsl2 handshake sesleri de var: https://www.youtube.com/watch?v=foPGdfsrskA
DOCSIS kablo modemle ilgili olanını da gördüğümü hatırlıyorum ama bulamıyorum :(
Daha az bilinen ilginç bir gerçek de, ilk nesil dijital cep telefonlarının çözme zorluğu açısından belirsiz bir noktada olması
Hiç kolay değil ama kırılabilecek kadar da kolay. Şifreleme gerçekten kırılıyor
Rainbow table 2TB ve üretmesi aylar sürmüş: https://github.com/0xh4di/GSMDecryption?tab=readme-ov-file
Şimdi merak ediyorum, sonraki nesillerde de çeşitli nedenlerle ya da belirli devlet aktörleri yüzünden buna benzer şifre çözme açıkları biraz var mı
Eğlenceli bir çalışma ve böyle açık kaynaklı şeylerin hâlâ kullanıldığını görmek sevindirici
Yaklaşık 10 yıl önce üniversitedeki ağ güvenliği laboratuvarında downlink dinleme denemiştim
Projelerden biri, bahar tatili sırasında hücre etkinliğinin ne kadar azaldığını ölçmekti; bir diğeri ise bilinen bir konumdaki bilinen bir telefon numarası için zamanlama saldırısı yaparak geçici kimliği çıkarıp çıkaramayacağımızı ve tekrar aramalarla kişinin hâlâ o bölgede olup olmadığını görmeyi amaçlıyordu
Bence o geçici kimlik yeterince geçici değildi. Yeniden kurcalayasım geldi
Bilgi çıkarmakta kullanılabilecek, bozuk debug modu bilinen 4G dongle'lar da var
LTESniffer açık kaynak deniyor ama ne üst düzey bir LICENSE dosyası ne de GitHub deposunda lisans ayarı var gibi görünüyor
Derleme dosyalarını ve diğer destek dosyalarını da kapsaması için üst düzey bir LICENSE dosyası eklemek doğru olur