LTESniffer是一款功能强大的LTE上下行链路安全监控工具,该工具是一款针对LTE的安全开源工具。
该工具首先可以解码物理下行控制信道(PDCCH)并获取所有活动用户的下行链路控制信息(DCI)和无线网络临时标识符(RNTI)。获取到解码后的DCI和RNTI信息之后,LTESniffer将进一步解码物理下行链路共享信道(PDSCH)和物理上行链路共享信道(PUSCH),以检索上行链路和下行链路数据业务。
LTESniffer还提供了API接口,该API提供了三种用于安全应用程序和安全研究的相关功能。很多LTE安全研究都会涉及到通过被动嗅探工具来捕捉与安全隐私相关的无线数据包,但目前所有的开源工具都无法百分之百满足这一需求,主要原因就是它们无法解码PDSCH和PUSCH中的协议包。为此,LTESniffer便应运而生。
当前版本的LTESniffer基于FALCON项目实现其功能,并使用到了srsRAN代码库的部分功能,可以给广大研究人员提供下列安全功能:
1、实时解码LTE上下行控制数据信道:PDCCH、PDSCH、PUSCH;
2、LTE Advanced和LTE Advanced Pro,上行链路和下行链路最高可达256QAM;
3、支持的DCI格式:0、1A、1、1B、1C、2、2A、2B;
4、支持的传输模式:1、2、3、4;
5、FDD(频分双工);
6、基站最大20MHz;
7、自动检测智能手机的最大UL/DL调制方案(DL上64QAM/256QAM,UL上16QAM/64QAM/256 QAM);
8、自动检测每个UE的物理层配置;
9、LTE Security API:RNTI-TMSI映射、IMSI收集、UE功能分析;
当前版本的LTESniffer可以在Ubuntu 18.04/20.04/22.04上稳定运行。
推荐硬件配置如下:
Intel i7 CPU(至少8个物理核心);
至少16GB RAM
256GB SSD存储
srsRAN库支持的SDR,例如USRP或BladeRF;
SDR支持通过USB 3.0端口与PC连接;
配备GPSDO和两个RX天线;
USRP B-Series(B210/B200);
首先,我们需要确保Ubuntu操作系统上的UHD库版本>= 4.0。
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:
git clone https://github.com/EttusResearch/uhd.git
cd /host
mkdir build
cd build
cmake ../
make -j 4
make test
sudo make install
sudo ldconfig
为USRP下载固件:
sudo uhd_images_downloader
我们这里选择使用USRP X310,并将其连接至PC,测试连接和固件:
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
srsRAN依赖安装部署:
sudo apt-get install build-essential git cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev
LTESniffer依赖安装部署:
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)
sudo .//src/LTESniffer -A 2 -W -f -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
如需使用USPR B210并以下行链路模式运行LTESniffer,需要在命令行添加-a "num_recv_frames=512"选项:
sudo .//src/LTESniffer -A 2 -W -f -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"
sudo .//src/LTESniffer -A 2 -W -f -u -C -m 1
example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1
-u: uplink frequency
sudo .//src/LTESniffer -A 2 -W -f -u -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
sudo .//src/LTESniffer -A 2 -W -f -I -p -m 0
sudo .//src/LTESniffer -A 2 -W -f -u -I -p -m 1
example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -I 379 -p 100 -m 1
LTESniffer:【GitHub传送门】
https://syssec.kaist.ac.kr/pub/2023/wisec2023_tuan.pdf
GitHub - falkenber9/falcon: FALCON - Fast Analysis of LTE Control channels
GitHub - srsran/srsRAN_4G: Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g
10 Gigabit Ethernet Card for Desktop | Ettus Research, a National Instruments Brand | The leader in Software Defined Radio (SDR)