
Um espião open-source de downlink/uplink LTE
LTESniffer é um espião open-source de Downlink/Uplink LTE
Primeiro, ele decodifica o Physical Downlink Control Channel (PDCCH) para obter as Downlink Control Informations (DCIs) e os Radio Network Temporary Identifiers (RNTIs) de todos os usuários ativos. Usando as DCIs e RNTIs decodificados, o LTESniffer decodifica ainda o Physical Downlink Shared Channel (PDSCH) e o Physical Uplink Shared Channel (PUSCH) para recuperar o tráfego de dados de uplink e downlink.
O LTESniffer suporta uma API com três funções para aplicações e pesquisas de segurança. Muitas pesquisas de segurança em LTE assumem um sniffer passivo que possa capturar pacotes relacionados à privacidade no ar. No entanto, nenhum dos sniffers open-source atuais atende a esses requisitos, pois não conseguem decodificar pacotes de protocolo em PDSCH e PUSCH. Desenvolvemos uma API de segurança de prova de conceito que suporta três tarefas propostas por trabalhos anteriores: 1) Mapeamento de identidade, 2) Coleta de IMSI e 3) Perfil de capacidade.
Consulte nosso [artigo][paper] para mais detalhes.
O LTESniffer é uma ferramenta que pode capturar as mensagens sem fio LTE enviadas entre uma torre de celular e os smartphones conectados a ela. O LTESniffer suporta a captura de mensagens em ambas as direções, da torre para os smartphones e dos smartphones de volta para a torre de celular.
O LTESniffer NÃO PODE DESCRIPTOGRAFAR mensagens criptografadas entre a torre de celular e os smartphones. Ele pode ser usado para analisar partes não criptografadas da comunicação entre a torre de celular e os smartphones. Por exemplo, para mensagens criptografadas, ele pode permitir que o usuário analise partes não criptografadas, como cabeçalhos nas camadas MAC e física. No entanto, as mensagens enviadas em texto puro podem ser completamente analisáveis. Por exemplo, as mensagens de broadcast enviadas pela torre de celular, ou as mensagens no início da conexão, são completamente visíveis.
O principal propósito do LTESniffer é apoiar pesquisas de segurança e análise na rede celular. Devido à coleta de dados de usuário de uplink-downlink, qualquer uso do LTESniffer deve seguir as regulamentações locais sobre sniffing de tráfego LTE. Não somos responsáveis por quaisquer propósitos ilegais, como a coleta intencional de informações relacionadas à privacidade dos usuários.
LTESniffer-record-subframe e seu [README][capture-readme] para mais detalhes.LTESniffer-multi-usrp e seu [README][multi-readme] para mais detalhes.O LTESniffer é implementado sobre o [FALCON][falcon] com a ajuda da biblioteca [srsRAN][srsran]. O LTESniffer suporta:
Atualmente, o LTESniffer funciona de forma estável no Ubuntu 18.04/20.04/22.04.
Alcançar a decodificação em tempo real do tráfego LTE exige uma CPU de alto desempenho com múltiplos núcleos físicos, especialmente durante horários de pico, quando a estação base tem muitos usuários ativos. O LTESniffer alcançou com sucesso a decodificação em tempo real quando implantado em um PC Intel i7-9700K, decodificando tráfego de uma estação base com 150 usuários ativos.
O seguinte hardware é recomendado
O LTESniffer exige SDRs diferentes para seus modos de sniffing de uplink e downlink.
Para snifar apenas o tráfego de downlink da estação base, o LTESniffer é compatível com a maioria dos SDRs suportados pela biblioteca srsRAN (por exemplo, USRP ou BladeRF). O SDR deve ser conectado ao PC por meio de uma porta USB 3.0. Além disso, ele deve estar equipado com duas antenas RX para decodificar mensagens de downlink nos modos de transmissão 3 e 4. Se o seu SDR tiver apenas uma antena RX, o LTESniffer só decodificará mensagens de downlink no modo de transmissão 1. Observe que o GPSDO é opcional para o sniffing de downlink; ele ajuda a melhorar a sincronização, mas não é obrigatório.
Por outro lado, para snifar o tráfego de uplink dos smartphones para as estações base, o LTESniffer precisa ouvir duas frequências diferentes (Uplink e Downlink) simultaneamente. Para resolver esse problema, o LTESniffer oferece duas opções:
main do LTESniffer.LTESniffer-multi-usrp do LTESniffer e seu [README][multi-readme].Nota importante: Para evitar erros inesperados, siga os passos abaixo no Ubuntu 18.04/20.04/22.04.
Dependências
Dependências do 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
Clone e compile o UHD a partir do código-fonte (certifique-se de que o branch atual seja superior a 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
Baixe os firmwares para USRPs:
sudo uhd_images_downloader
Usamos uma placa de 10Gb para conectar o USRP X310 ao PC; consulte o Manual do UHD [1], [2] para configurar o USRP X310 e a interface da placa de 10Gb. Para o USRP B210, ele deve ser conectado ao PC por meio de uma porta USB 3.0.
Teste a conexão e o firmware (somente para 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