
एक ओपन-सोर्स LTE डाउनलिंक/अपलिंक ईव्सड्रॉपर
LTESniffer एक ओपन-सोर्स LTE डाउनलिंक/अपलिंक एव्सड्रॉपर है
यह पहले फिजिकल डाउनलिंक कंट्रोल चैनल (PDCCH) को डिकोड करता है ताकि सभी सक्रिय उपयोगकर्ताओं के डाउनलिंक कंट्रोल इंफॉर्मेशन (DCIs) और रेडियो नेटवर्क टेम्पोररी आइडेंटिफायर (RNTIs) प्राप्त किए जा सकें। डिकोड किए गए DCIs और RNTIs का उपयोग करते हुए, LTESniffer आगे फिजिकल डाउनलिंक शेयर्ड चैनल (PDSCH) और फिजिकल अपलिंक शेयर्ड चैनल (PUSCH) को डिकोड करता है ताकि अपलिंक और डाउनलिंक डेटा ट्रैफ़िक प्राप्त किया जा सके।
LTESniffer सुरक्षा अनुप्रयोगों और शोध के लिए तीन कार्यों वाला एक API समर्थन करता है। कई LTE सुरक्षा शोध एक निष्क्रिय स्निफर मानते हैं जो हवा में गोपनीयता-संबंधी पैकेटों को कैप्चर कर सकता है। हालाँकि, वर्तमान ओपन-सोर्स स्निफरों में से कोई भी उनकी आवश्यकताओं को पूरा नहीं करता क्योंकि वे PDSCH और PUSCH में प्रोटोकॉल पैकेटों को डिकोड नहीं कर सकते। हमने एक प्रूफ-ऑफ-कॉन्सेप्ट सुरक्षा API विकसित किया है जो पिछले कार्यों द्वारा प्रस्तावित तीन कार्यों का समर्थन करता है: 1) आइडेंटिटी मैपिंग, 2) IMSI संग्रह, और 3) क्षमता प्रोफाइलिंग।
अधिक विवरण के लिए कृपया हमारे [पेपर][paper] को देखें।
LTESniffer एक ऐसा उपकरण है जो सेल टावर और उससे जुड़े स्मार्टफोनों के बीच भेजे जाने वाले LTE वायरलेस संदेशों को कैप्चर कर सकता है। LTESniffer दोनों दिशाओं में संदेशों को कैप्चर करने का समर्थन करता है—टावर से स्मार्टफोनों तक, और स्मार्टफोनों से वापस सेल टावर तक।
LTESniffer सेल टावर और स्मार्टफोनों के बीच के एन्क्रिप्टेड संदेशों को डिक्रिप्ट नहीं कर सकता। इसका उपयोग सेल टावर और स्मार्टफोनों के बीच संचार के गैर-एन्क्रिप्टेड हिस्सों का विश्लेषण करने के लिए किया जा सकता है। उदाहरण के लिए, एन्क्रिप्टेड संदेशों के लिए, यह उपयोगकर्ता को गैर-एन्क्रिप्टेड हिस्सों, जैसे MAC और भौतिक परतों में हेडर, का विश्लेषण करने की अनुमति देता है। हालाँकि, जो संदेश प्लेनटेक्स्ट में भेजे जाते हैं, वे पूरी तरह से विश्लेषण योग्य होते हैं। उदाहरण के लिए, सेल टावर द्वारा भेजे गए ब्रॉडकास्ट संदेश, या कनेक्शन की शुरुआत में भेजे गए संदेश, पूरी तरह से दृश्यमान होते हैं।
LTESniffer का मुख्य उद्देश्य सेलुलर नेटवर्क पर सुरक्षा और विश्लेषण अनुसंधान का समर्थन करना है। अपलिंक-डाउनलिंक उपयोगकर्ता डेटा के संग्रह के कारण, LTESniffer के किसी भी उपयोग को LTE ट्रैफ़िक स्निफिंग पर स्थानीय नियमों का पालन करना होगा। हम किसी भी अवैध उद्देश्य, जैसे जानबूझकर उपयोगकर्ता की गोपनीयता-संबंधी जानकारी एकत्र करना, के लिए ज़िम्मेदार नहीं हैं।
LTESniffer-record-subframe ब्रांच और उसके [README][capture-readme] को देखें।LTESniffer-multi-usrp ब्रांच और उसके [README][multi-readme] को देखें।LTESniffer को [srsRAN][srsran] लाइब्रेरी की सहायता से [FALCON][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][multi-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