
Ein Open-Source LTE Downlink/Uplink Abhörer
LTESniffer ist ein Open-Source-LTE-Downlink/Uplink-Abhörgerät.
Es dekodiert zunächst den Physical Downlink Control Channel (PDCCH), um die Downlink Control Information (DCIs) und Radio Network Temporary Identifiers (RNTIs) aller aktiven Nutzer zu erhalten. Mithilfe der dekodierten DCIs und RNTIs dekodiert LTESniffer weiter den Physical Downlink Shared Channel (PDSCH) und den Physical Uplink Shared Channel (PUSCH), um Uplink- und Downlink-Datenverkehr zu erfassen.
LTESniffer unterstützt eine API mit drei Funktionen für Sicherheitsanwendungen und Forschung. Viele LTE-Sicherheitsforschungen gehen von einem passiven Sniffer aus, der datenschutzrelevante Pakete aus der Luft erfassen kann. Allerdings erfüllt keiner der derzeitigen Open-Source-Sniffer ihre Anforderungen, da sie keine Protokollpakete in PDSCH und PUSCH dekodieren können. Wir haben eine Proof-of-Concept-Sicherheits-API entwickelt, die drei Aufgaben unterstützt, die in früheren Arbeiten vorgeschlagen wurden: 1) Identitätszuordnung, 2) IMSI-Sammlung und 3) Fähigkeitsprofilierung.
Weitere Informationen finden Sie in unserem [Paper][paper].
LTESniffer ist ein Werkzeug, das die drahtlosen LTE-Nachrichten erfassen kann, die zwischen einer Basisstation und den damit verbundenen Smartphones gesendet werden. LTESniffer unterstützt das Erfassen der Nachrichten in beide Richtungen: von der Basisstation zu den Smartphones und von den Smartphones zurück zur Basisstation.
LTESniffer KANN KEINE verschlüsselten Nachrichten zwischen der Basisstation und den Smartphones entschlüsseln. Es kann zur Analyse unverschlüsselter Teile der Kommunikation zwischen Basisstation und Smartphones verwendet werden. Beispielsweise erlaubt es bei verschlüsselten Nachrichten die Analyse unverschlüsselter Teile wie Header in der MAC- und der Bitübertragungsschicht. Nachrichten, die im Klartext gesendet werden, können jedoch vollständig analysiert werden. Beispielsweise sind die von der Basisstation gesendeten Broadcast-Nachrichten oder die Nachrichten zu Beginn der Verbindung vollständig sichtbar.
Der Hauptzweck von LTESniffer ist die Unterstützung von Sicherheits- und Analyseforschung im Mobilfunknetz. Aufgrund der Erfassung von Uplink-Downlink-Nutzerdaten muss jede Nutzung von LTESniffer die örtlichen Vorschriften zum Abhören von LTE-Datenverkehr einhalten. Wir übernehmen keine Verantwortung für illegale Zwecke wie das absichtliche Sammeln von datenschutzrelevanten Informationen der Nutzer.
LTESniffer-record-subframe-Branch und in dessen [README][capture-readme].LTESniffer-multi-usrp-Branch und in dessen [README][multi-readme].LTESniffer ist auf Basis von [FALCON][falcon] unter Verwendung der [srsRAN][srsran]-Bibliothek implementiert. LTESniffer unterstützt:
Derzeit läuft LTESniffer stabil auf Ubuntu 18.04/20.04/22.04.
Um eine Echtzeit-Dekodierung des LTE-Datenverkehrs zu erreichen, ist eine leistungsstarke CPU mit mehreren physischen Kernen erforderlich, insbesondere während Spitzenzeiten, wenn die Basisstation viele aktive Nutzer hat. LTESniffer erreichte erfolgreich die Echtzeit-Dekodierung, als es auf einem Intel i7-9700K-PC eingesetzt wurde und Datenverkehr einer Basisstation mit 150 aktiven Nutzern dekodierte.
Die folgende Hardware wird empfohlen
LTESniffer benötigt unterschiedliche SDRs für den Uplink- und Downlink-Sniffing-Modus.
Zum reinen Abhören des Downlink-Datenverkehrs von der Basisstation ist LTESniffer mit den meisten SDRs kompatibel, die von der srsRAN-Bibliothek unterstützt werden (z. B. USRP oder BladeRF). Das SDR sollte über einen USB-3.0-Anschluss mit dem PC verbunden sein. Zudem sollte es über zwei RX-Antennen verfügen, um Downlink-Nachrichten in den Übertragungsmodi 3 und 4 zu dekodieren. Wenn Ihr SDR nur eine RX-Antenne hat, dekodiert LTESniffer nur Downlink-Nachrichten im Übertragungsmodus 1. Beachten Sie, dass GPSDO für das Downlink-Sniffing optional ist; es verbessert die Synchronisation, ist aber nicht zwingend erforderlich.
Andererseits muss LTESniffer zum Abhören des Uplink-Datenverkehrs von Smartphones zur Basisstation gleichzeitig zwei verschiedene Frequenzen (Uplink und Downlink) überwachen. Um dieses Problem zu lösen, unterstützt LTESniffer zwei Optionen:
main-Branch von LTESniffer.LTESniffer-multi-usrp-Branch von LTESniffer und in dessen [README][multi-readme].Wichtiger Hinweis: Um unerwartete Fehler zu vermeiden, befolgen Sie bitte die folgenden Schritte auf Ubuntu 18.04/20.04/22.04.
Abhängigkeiten
UHD-Abhängigkeiten:
sudo apt update
sudo apt-get install autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool \
g++ git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev \
libusb-dev python3-dev python3-mako python3-numpy python3-requests python3-scipy python3-setuptools \
python3-ruamel.yaml
UHD aus dem Quellcode klonen und bauen (stellen Sie sicher, dass der aktuelle Branch höher als 4.0 ist):
git clone https://github.com/EttusResearch/uhd.git
cd <uhd-repo-path>/host
mkdir build
cd build
cmake ../
make -j 4
make test
sudo make install
sudo ldconfig
Firmware für USRPs herunterladen:
sudo uhd_images_downloader
Wir verwenden eine 10-Gb-Karte, um den USRP X310 mit dem PC zu verbinden. Informationen zur Konfiguration des USRP X310 und der 10-Gb-Kartenschnittstelle finden Sie im UHD-Handbuch [1], [2]. Für USRP B210 sollte dieser über einen USB-3.0-Anschluss mit dem PC verbunden werden.