Первый опенсорсный LTE-сниффер с полной функциональностью
Базовая станция LTE
В интернете много инструкций, как оборудовать собственную станцию LTE. Сети 4G становятся массовой и доступной инфраструктурой для передачи данных. И важно понимать, какие угрозы безопасности существуют в этой области, как перехватывать и анализировать трафик.
Устройства для прослушивания трафика LTE до недавнего времени имели ограниченную функциональность и не могли анализировать все служебные данные. Однако в прошлом году инженеры из Корейского института передовых технологий (KAIST) опубликовали исходный код первого в мире опенсорсного сниффера LTESniffer с полным набором функциональных возможностей, включая декодирование трафика PDCCH и PDSCH.
История LTE-снифферов и способы их применения
Сниффер LTE пассивно перехватывает беспроводной трафик абонентов базовой станции 4G. Из-за особенностей передачи трафика LTE любой человек с соответствующим оборудованием может перехватывать эти сигналы. Имитируя поведение пользовательского оборудования (типа смартфона) и базовой станции, сниффер декодирует трассировку нисходящего и восходящего каналов. В отличие от обычных смартфонов, которые декодируют только свою трассировку, сниффер декодирует всю доступную трассировку в эфире, включая открытый текст и некоторые служебные пакеты. Конечно, он не способен расшифровать зашифрованный трафик с клиентского устройства, но кое-какую информацию всё-таки может оттуда извлечь.
Физический уровень LTE
Область использования снифферов LTE со стороны злоумышленников и специалистов по безопасности подробно описана в литературе:
Последняя задача (сетевая аналитика) — основная причина, по которой инженеры разрабатывают и используют снифферы.
В предыдущие годы было реализовано несколько снифферов, но почти все они ограничены декодированием лишь канала управления нисходящей линии связи (PDCCH). Они не прослушивают пакеты IP и пакеты протокола управления соединением между устройством и сотовой сетью (например, RRC и NAS). Первой попыткой декодирования канала DL стала программа LTEye с базовыми функциями мониторинга сети. Позже вышли OWL и FALCON. Существуют также три коммерческих сниффера Wavejudge, ThinkRF и AirScope, которые могут декодировать каналы данных. Первые два декодируют как DL, так и UL, но их трудно использовать из-за высокой цены (от $25 000 за Wavejudge). Наиболее популярным коммерческим сниффером в научных кругах является AirScope, но он не декодирует трафик UL, а его производительность оставляет желать лучшего (см. ниже). Кроме того, у коммерческих программ закрытый код, поэтому их нелегко модифицировать и добавлять новые функции.
Вышеупомянутый LTESniffer от корейских специалистов — первый в мире опенсорсный сниффер LTE, который пассивно декодирует данные в восходящем и нисходящем каналах. Решающее значение для его работы — получение информации обо всех абонентских устройствах, чтобы повысить точность декодирования данных, особенно в сценариях с высокой пропускной способностью. Основные функции в программе реализованы с помощью опенсорсного пакета srsRAN. Статья «LTESniffer: прослушивающее устройство с открытым исходным кодом для LTE Downlink/Uplink» подготовлена для 16-й конференции ACM WiSec 2023.
Архитектура LTESniffer
Реализация LTESniffer не очень тривиальная, поскольку для успешного декодирования трафика каждого пользователя необходимо понимать детальные конфигурации и параметры. Используя различные методы, авторы нашли способ улучшить производительность декодирования. На следующей диаграмме видно, что LTESniffer кардинально превосходит AirScope по скорости декодирования:
Скорость декодирования субкадров во время пиковой нагрузки, сравнение с AirScope
LTESniffer выгодно отличается от других снифферов LTE. Как уже упоминалось, это по сути единственная опенсорсная система, которая отслеживает оба канала данных (DL/UL) и управляет передачей:
Программа декодирует физический канал управления нисходящим каналом (PDCCH) для получения информации управления нисходящим каналом (DCIs) и временных идентификаторов радиосети (RNTIs) всех активных пользователей. Используя декодированные DCI и RNTI, LTESniffer далее декодирует физический общий канал нисходящего канала (PDSCH) и физический общий канал восходящего канала (PUSCH) для получения трафика данных восходящего и нисходящего каналов.
LTESniffer поддерживает API с тремя функциями: сопоставление ID, сбор IMSI и профилирование.
Системные требования
В настоящее время LTESniffer стабильно работает на Ubuntu 18.04/20.04/22.04.
Для декодирования трафика в реальном времени требуется высокопроизводительный CPU с несколькими ядрами, особенно во время пиковой нагрузки, когда на базовой станции много активных пользователей.
LTESniffer успешно справился с декодированием трафика базовой станции со 150 активными пользователями в реальном времени на Intel i7–9700K.
Рекомендуемая конфигурация:
- CPU Intel i7 с не менее чем 8 физическими ядрами
- Не менее 16 ГБ RAM
- SSD-накопитель 256 ГБ
- Программно определяемая радиосистема SDR
LTESniffer совместим с разными SDR для восходящего и нисходящего каналов.
Для одного нисходящего трафика с базовой станции можно использовать большинство SDR, поддерживаемых библиотекой srsRAN (например, USRP или BladeRF). SDR должен быть подключён к ПК через порт USB 3.0. Кроме того, для декодирования нисходящих сообщений в режимах передачи 3 и 4 требуется GPSDO и две антенны RX.
В режиме прослушивания UL+DL нужно обрабатывать две частоты одновременно, что можно реализовать с помощью более профессионального USRP X310 (стоит около $9100) или двух USRP B-Series.
Таким образом, для эффективного мониторинга сотовой сети, отслеживания пользователей и анализа сетевого трафика теперь необязательно покупать дорогую лицензию на коммерческий софт. Всё это доступно в опенсорсном пакете.