
एक ओपन-सोर्स LTE डाउनलिंक/अपलिंक ईव्सड्रॉपर
LTESniffer एक ओपन-सोर्स LTE डाउनलिंक/अपलिंक एव्सड्रॉपर है
यह पहले फिजिकल डाउनलिंक कंट्रोल चैनल (PDCCH) को डिकोड करता है ताकि सभी सक्रिय उपयोगकर्ताओं के डाउनलिंक कंट्रोल इंफॉर्मेशन (DCIs) और रेडियो नेटवर्क टेम्पोररी आइडेंटिफायर (RNTIs) प्राप्त किए जा सकें। डिकोड किए गए DCIs और RNTIs का उपयोग करते हुए, LTESniffer आगे फिजिकल डाउनलिंक शेयर्ड चैनल (PDSCH) और फिजिकल अपलिंक शेयर्ड चैनल (PUSCH) को डिकोड करता है ताकि अपलिंक और डाउनलिंक डेटा ट्रैफ़िक प्राप्त किया जा सके।
LTESniffer सुरक्षा अनुप्रयोगों और शोध के लिए तीन कार्यों वाला एक API समर्थन करता है। कई LTE सुरक्षा शोध एक निष्क्रिय स्निफर मानते हैं जो हवा में गोपनीयता-संबंधी पैकेटों को कैप्चर कर सकता है। हालाँकि, वर्तमान ओपन-सोर्स स्निफरों में से कोई भी उनकी आवश्यकताओं को पूरा नहीं करता क्योंकि वे PDSCH और PUSCH में प्रोटोकॉल पैकेटों को डिकोड नहीं कर सकते। हमने एक प्रूफ-ऑफ-कॉन्सेप्ट सुरक्षा API विकसित किया है जो पिछले कार्यों द्वारा प्रस्तावित तीन कार्यों का समर्थन करता है: 1) आइडेंटिटी मैपिंग, 2) IMSI संग्रह, और 3) क्षमता प्रोफाइलिंग।
अधिक विवरण के लिए कृपया हमारे पेपर को देखें।
LTESniffer एक ऐसा उपकरण है जो सेल टावर और उससे जुड़े स्मार्टफोनों के बीच भेजे जाने वाले LTE वायरलेस संदेशों को कैप्चर कर सकता है। LTESniffer दोनों दिशाओं में संदेशों को कैप्चर करने का समर्थन करता है—टावर से स्मार्टफोनों तक, और स्मार्टफोनों से वापस सेल टावर तक।
LTESniffer सेल टावर और स्मार्टफोनों के बीच के एन्क्रिप्टेड संदेशों को डिक्रिप्ट नहीं कर सकता। इसका उपयोग सेल टावर और स्मार्टफोनों के बीच संचार के गैर-एन्क्रिप्टेड हिस्सों का विश्लेषण करने के लिए किया जा सकता है। उदाहरण के लिए, एन्क्रिप्टेड संदेशों के लिए, यह उपयोगकर्ता को गैर-एन्क्रिप्टेड हिस्सों, जैसे MAC और भौतिक परतों में हेडर, का विश्लेषण करने की अनुमति देता है। हालाँकि, जो संदेश प्लेनटेक्स्ट में भेजे जाते हैं, वे पूरी तरह से विश्लेषण योग्य होते हैं। उदाहरण के लिए, सेल टावर द्वारा भेजे गए ब्रॉडकास्ट संदेश, या कनेक्शन की शुरुआत में भेजे गए संदेश, पूरी तरह से दृश्यमान होते हैं।
LTESniffer का मुख्य उद्देश्य सेलुलर नेटवर्क पर सुरक्षा और विश्लेषण अनुसंधान का समर्थन करना है। अपलिंक-डाउनलिंक उपयोगकर्ता डेटा के संग्रह के कारण, LTESniffer के किसी भी उपयोग को LTE ट्रैफ़िक स्निफिंग पर स्थानीय नियमों का पालन करना होगा। हम किसी भी अवैध उद्देश्य, जैसे जानबूझकर उपयोगकर्ता की गोपनीयता-संबंधी जानकारी एकत्र करना, के लिए ज़िम्मेदार नहीं हैं।
LTESniffer-record-subframe ब्रांच और उसके README को देखें।LTESniffer-multi-usrp ब्रांच और उसके README को देखें।LTESniffer को srsRAN लाइब्रेरी की सहायता से FALCON के ऊपर कार्यान्वित किया गया है। LTESniffer निम्न का समर्थन करता है:
वर्तमान में, LTESniffer Ubuntu 18.04/20.04/22.04 पर स्थिर रूप से काम करता है।
LTE ट्रैफ़िक की रीयल-टाइम डिकोडिंग प्राप्त करने के लिए कई भौतिक कोर वाले उच्च-प्रदर्शन CPU की आवश्यकता होती है, विशेष रूप से पीक घंटों के दौरान जब बेस स्टेशन पर कई सक्रिय उपयोगकर्ता होते हैं। LTESniffer ने Intel i7-9700K PC पर तैनात होने पर 150 सक्रिय उपयोगकर्ताओं वाले बेस स्टेशन से ट्रैफ़िक डिकोड करके सफलतापूर्वक रीयल-टाइम डिकोडिंग हासिल की।
निम्नलिखित हार्डवेयर की अनुशंसा की जाती है
LTESniffer को अपने अपलिंक और डाउनलिंक स्निफिंग मोड के लिए अलग-अलग SDR की आवश्यकता होती है।
बेस स्टेशन से केवल डाउनलिंक ट्रैफ़िक स्निफ करने के लिए, LTESniffer srsRAN लाइब्रेरी द्वारा समर्थित अधिकांश SDR के साथ संगत है (उदाहरण के लिए, USRP या BladeRF)। SDR को USB 3.0 पोर्ट के माध्यम से PC से जोड़ा जाना चाहिए। इसके अतिरिक्त, इसे ट्रांसमिशन मोड 3 और 4 में डाउनलिंक संदेशों को डिकोड करने के लिए दो RX एंटेना से सुसज्जित होना चाहिए। यदि आपके SDR में केवल एक RX एंटीना है, तो LTESniffer केवल ट्रांसमिशन मोड 1 में डाउनलिंक संदेशों को डिकोड करेगा। ध्यान दें कि GPSDO डाउनलिंक स्निफिंग के लिए वैकल्पिक है; यह सिंक्रोनाइज़ेशन को बेहतर बनाने में मदद करेगा लेकिन अनिवार्य नहीं है।
दूसरी ओर, स्मार्टफोनों से बेस स्टेशनों तक अपलिंक ट्रैफ़िक स्निफ करने के लिए, LTESniffer को एक साथ दो अलग-अलग आवृत्तियों (अपलिंक और डाउनलिंक) को सुनने की आवश्यकता होती है। इस समस्या को हल करने के लिए, LTESniffer दो विकल्पों का समर्थन करता है:
main ब्रांच को देखें।LTESniffer-multi-usrp ब्रांच और उसके README को देखें।महत्वपूर्ण नोट: अप्रत्याशित त्रुटियों से बचने के लिए, कृपया Ubuntu 18.04/20.04/22.04 पर निम्नलिखित चरणों का पालन करें।
निर्भरताएँ
UHD निर्भरताएँ:
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 को क्लोन और बिल्ड करें (सुनिश्चित करें कि वर्तमान ब्रांच 4.0 से अधिक है)
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
USRP के लिए फर्मवेयर डाउनलोड करें:
sudo uhd_images_downloader
हम USRP X310 को PC से जोड़ने के लिए एक 10Gb कार्ड का उपयोग करते हैं, USRP X310 और 10Gb कार्ड इंटरफ़ेस को कॉन्फ़िगर करने के लिए UHD मैनुअल [1], [2] देखें। USRP B210 के लिए, इसे USB 3.0 पोर्ट के माध्यम से PC से जोड़ा जाना चाहिए।
कनेक्शन और फर्मवेयर का परीक्षण करें (केवल USRP X310 के लिए):
sudo sysctl -w net.core.rmem_max=33554432
sudo sysctl -w net.core.wmem_max=33554432
sudo ifconfig <10Gb card interface> mtu 9000
sudo uhd_usrp_probe
sudo apt-get install build-essential git cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev
sudo apt-get install libglib2.0-dev libudev-dev libcurl4-gnutls-dev libboost-all-dev qtdeclarative5-dev libqt5charts5-dev
स्रोत से LTESniffer बिल्ड करें:
git clone https://github.com/SysSec-KAIST/LTESniffer.git
cd LTESniffer
mkdir build
cd build
cmake ../
make -j 4 (use 4 threads)
LTESniffer के 3 मुख्य कार्य हैं:
स्रोत से बिल्ड करने के बाद, LTESniffer <build-dir>/src/LTESniffer में स्थित होता है।
ध्यान दें कि व्यावसायिक रूप से LTESniffer का उपयोग करने से पहले, किसी को LTE ट्रैफ़िक स्निफिंग पर स्थानीय नियमों की जाँच करनी चाहिए, जैसा कि हमने नैतिक विचार में समझाया है।
यह पता लगाने के लिए कि परीक्षण स्मार्टफोन किस बेस स्टेशन और अपलिंक-डाउनलिंक बैंड से जुड़ा है, परीक्षण स्मार्टफोन पर Cellular-Z ऐप इंस्टॉल करें (ऐप केवल Android का समर्थन करता है)। यह उस सेल ID और अपलिंक-डाउनलिंक बैंड/आवृत्ति को दिखाएगा, जिससे परीक्षण स्मार्टफोन जुड़ा है। सुनिश्चित करें कि LTESniffer भी उसी सेल और आवृत्ति से जुड़ता है।
sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -C -m 0
example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -C -m 0
-A: number of antennas
-W: number of threads
-f: downlink frequency
-C: turn on cell search
-m: sniffer mode, 0 for downlink sniffing and 1 for uplink sniffing
नोट: डाउनलिंक मोड में USRP B210 के साथ LTESniffer चलाने के लिए, कमांड लाइन में -a "num_recv_frames=512" विकल्प जोड़ें। यह विकल्प USRP B210 के लिए रिसीविंग बफर को बढ़ाता है ताकि बेहतर सिंक्रोनाइज़ेशन प्राप्त हो सके।
sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -C -m 0 -a "num_recv_frames=512"
example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -C -m 0 -a "num_recv_frames=512"
नोट: अपलिंक स्निफिंग मोड में, परीक्षण स्मार्टफोन स्निफर के पास स्थित होने चाहिए, क्योंकि UE से अपलिंक सिग्नल पावर बेस स्टेशन के डाउनलिंक सिग्नल की तुलना में काफी कमजोर होती है।
sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -u <UL Freq> -C -m 1
example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1
-u: uplink frequency
sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -u <UL Freq> -C -m 1 -z 3
example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1 -z 3
-z: 3 for turnning on 3 functions of sniffer, which are identity mapping, IMSI collecting, and UECapability profiling.
2 for UECapability profiling
1 for IMSI collecting
0 for identity mapping
LTESniffer -I <फिजिकल सेल ID (PCI)> -p <फिजिकल रिसोर्स ब्लॉक (PRB) की संख्या> विकल्पों का उपयोग करके किसी विशिष्ट बेस स्टेशन पर स्निफ कर सकता है। इस मामले में, LTESniffer सेल खोज नहीं करता बल्कि सीधे निर्दिष्ट सेल से जुड़ता है।
sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -I <PCI> -p <PRB> -m 0
sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -u <UL Freq> -I <PCI> -p <PRB> -m 1
example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -I 379 -p 100 -m 1
-d विकल्प का उपयोग करके डिबग मोड सक्षम किया जा सकता है। इस स्थिति में, डिबग संदेश टर्मिनल पर मुद्रित होंगे।
LTESniffer आउटपुट में pcap फ़ाइलें प्रदान करता है। pcap फ़ाइल को आगे के विश्लेषण और पैकेट ट्रेस के लिए WireShark द्वारा खोला जा सकता है।
डाउनलिंक pcap फ़ाइल का नाम: sniffer_dl_mode.pcap, अपलिंक pcap फ़ाइल: sniffer_ul_mode.pcap, और API pcap फ़ाइल: api_collector.pcap।
pcap फ़ाइलें उसी निर्देशिका में स्थित होती हैं जहाँ से LTESniffer को निष्पादित किया गया है।
डिकोड किए गए पैकेटों का सही ढंग से विश्लेषण करने के लिए WireShark को सक्षम करने हेतु, कृपया WireShark कॉन्फ़िगरेशन गाइड यहाँ देखें। लिंक में pcap फ़ाइलों के कुछ उदाहरण भी हैं।
नोट: अपलिंक pcap फ़ाइल में अपलिंक और डाउनलिंक दोनों संदेश होते हैं। WireShark पर, केवल अपलिंक संदेशों की निगरानी के लिए इस फ़िल्टर का उपयोग करें: mac-lte.direction == 0; या केवल डाउनलिंक संदेशों की निगरानी के लिए इस फ़िल्टर का उपयोग करें: mac-lte.direction == 1।
अपलिंक स्निफिंग के लिए प्रभावी सीमा हार्डवेयर (यानी SDR) के RF फ्रंट-एंड की क्षमता के कारण LTESniffer में सीमित है। UE से अपलिंक सिग्नल पावर डाउनलिंक सिग्नल की तुलना में काफी कमजोर होती है क्योंकि UE एक हैंडहेल्ड डिवाइस है जो बैटरी उपयोग को अनुकूलित करता है, जबकि eNB एक बड़े क्षेत्र को कवर करने के लिए पर्याप्त शक्ति का उपयोग करता है। अपलिंक ट्रैफ़िक को सफलतापूर्वक कैप्चर करने के लिए, LTESniffer i) UE के भौतिक रूप से निकट होकर, या ii) विशेष हार्डवेयर जैसे दिशात्मक एंटीना, समर्पित RF फ्रंट-एंड, और सिग्नल एम्पलीफायर के साथ सिग्नल रिसेप्शन क्षमता में सुधार करके सिग्नल पावर की ताकत बढ़ा सकता है।
डाउनलिंक स्निफिंग मोड
Processed 1000/1000 subframes: पिछले 1 सेकंड में LTESniffer द्वारा संसाधित किए गए सबफ्रेमों की संख्या। डिज़ाइन के अनुसार प्रति सेकंड 1000 LTE सबफ्रेम होते हैं।
RNTI: UE का रेडियो नेटवर्क टेम्पोररी आइडेंटिफायर।
Table: डाउनलिंक में स्मार्टफोनों द्वारा उपयोग की जाने वाली अधिकतम मॉड्यूलेशन योजना। LTESniffer डाउनलिंक में 256QAM तक का समर्थन करता है। अधिक विवरण के लिए हमारे पेपर को देखें।
Active: RNTI के पहचाने गए संदेशों की संख्या।
Success: पहचाने गए संदेशों (Active) की संख्या के सापेक्ष सफलतापूर्वक डिकोड किए गए संदेशों की संख्या।
New TX, ReTX, HARQ, Normal: नए संदेशों और पुनः प्रेषित संदेशों के आँकड़े। यह फ़ंक्शन विकास में है।
W_MIMO, W_pinfor, Other: गलत रेडियो कॉन्फ़िगरेशन वाले संदेशों की संख्या, केवल डिबगिंग के लिए।
अपलिंक स्निफिंग मोड
Max Mod: अपलिंक में स्मार्टफोनों द्वारा उपयोग की जाने वाली अधिकतम मॉड्यूलेशन योजना। यह स्मार्टफोनों के समर्थन और नेटवर्क के कॉन्फ़िगरेशन के आधार पर 16/64/256QAM हो सकती है। अधिक विवरण के लिए हमारे पेपर को देखें।
SNR: सिग्नल-टू-नॉइज़ अनुपात (dB)। कम SNR का मतलब है कि स्मार्टफोन से अपलिंक सिग्नल गुणवत्ता खराब है। एक संभावित कारण यह है कि स्मार्टफोन स्निफर से दूर है।
DL-UL_delay: बेस स्टेशन से डाउनलिंक सिग्नल और स्मार्टफोन से अपलिंक सिग्नल के बीच समय विलंब का औसत।
Other Info: केवल डिबगिंग के लिए जानकारी।
API मोड
Detected Identity: पहचाने गए आइडेंटिटी का नाम।
Value: पहचाने गए आइडेंटिटी का मान।
From Message: उस संदेश का नाम जिसमें पहचाना गया आइडेंटिटी शामिल है।
हम FALCON और SRS टीम को उनके शानदार सॉफ्टवेयर उपलब्ध कराने के लिए हार्दिक सराहना करते हैं।
सभी योगदानकर्ताओं को विशेष धन्यवाद जिन्होंने बग ठीक करने और LTESniffer को बेहतर बनाने में हमारी मदद की।
अधिक विवरण के लिए कृपया हमारे पेपर को देखें।
@inproceedings{hoang:ltesniffer,
title = {{LTESniffer: An Open-source LTE Downlink/Uplink Eavesdropper}},
author = {Hoang, Dinh Tuan and Park, CheolJun and Son, Mincheol and Oh, Taekkyung and Bae, Sangwook and Ahn, Junho and Oh, BeomSeok and Kim, Yongdae},
booktitle = {16th ACM Conference on Security and Privacy in Wireless and Mobile Networks (WiSec '23)},
year = {2023}
}
प्रश्न: क्या LTESniffer चलाने के लिए USRP के साथ GPSDO का उपयोग अनिवार्य है?
उत्तर: GPSDO अधिक स्थिर सिंक्रोनाइज़ेशन के लिए उपयोगी है। हालाँकि, डाउनलिंक स्निफिंग मोड के लिए, LTESniffer बिना GPSDO के भी LTE सिग्नल के साथ सिंक्रोनाइज़ होकर पैकेट डिकोड कर सकता है। अपलिंक स्निफिंग मोड के लिए, GPSDO केवल 2 USRP B-सीरीज़ का उपयोग करते समय आवश्यक है, क्योंकि यह अपलिंक और डाउनलिंक चैनलों के बीच सिंक्रोनाइज़ेशन के लिए समय और क्लॉक संदर्भ स्रोत है। एक अन्य अपलिंक SDR विकल्प, एकल USRP X310 का उपयोग करना, GPSDO की आवश्यकता नहीं रखता।
प्रश्न: डाउनलिंक ट्रैफ़िक के लिए, क्या मैं सस्ता SDR उपयोग कर सकता हूँ?
उत्तर: तकनीकी रूप से, srsRAN लाइब्रेरी द्वारा समर्थित कोई भी SDR जैसे Blade RF, डाउनलिंक स्निफिंग मोड में LTESniffer चलाने के लिए उपयोग किया जा सकता है। हालाँकि, हमने LTESniffer के डाउनलिंक स्निफिंग फ़ंक्शन का परीक्षण केवल USRP B210 और X310 के साथ किया है।
प्रश्न: क्या LTE ट्रैफ़िक स्निफ करने के लिए LTESniffer का उपयोग करना अवैध है?
उत्तर: आपको (गैर-एन्क्रिप्टेड) LTE ट्रैफ़िक स्निफिंग पर स्थानीय नियमों की जाँच करनी चाहिए। LTESniffer का परीक्षण करने का एक और तरीका srsRAN - एक ओपन-सोर्स LTE कार्यान्वयन - का उपयोग करके फैराडे पिंजरे में एक व्यक्तिगत LTE नेटवर्क स्थापित करना है।
प्रश्न: क्या LTESniffer का उपयोग दो उपयोगकर्ताओं के बीच संदेशों की सामग्री देखने के लिए किया जा सकता है?
उत्तर: कोई केवल संदेशों का "गैर-एन्क्रिप्टेड" हिस्सा देख सकता है। ध्यान दें कि बेस स्टेशन और उपयोगकर्ताओं के बीच हवाई ट्रैफ़िक अधिकतर एन्क्रिप्टेड होता है।
प्रश्न: क्या LTE नेटवर्क में कोई डिवाइस आइडेंटिटी प्लेनटेक्स्ट में उजागर होती है?
उत्तर: हाँ, साहित्य दिखाता है कि कई आइडेंटिटियाँ उजागर होती हैं, जैसे TMSI, GUTI, IMSI, और RNTI। अधिक विवरण के लिए कृपया शैक्षणिक साहित्य देखें। उदा. Watching the Watchers: Practical Video Identification Attack in LTE Networks