Собираем пассивный IMSI Catcher



Дата публикации: 2020-05-01
Автор: Перевод: @N3M351DA
Теги: , ,

Источник: https://harrisonsand.com/imsi-catcher/

В этой статье рассматривается процесс создания пассивного IMSI Catcher’a. Данный пост – образовательный, он создан чтобы подчеркнуть простоту, с которой подобные утилиты могут быть развернуты и показать, как легко поставить под угрозу конфиденциальность.

Building a Passive IMSI Catcher

IMSI catcher – это устройство, которое обычно используется правоохранительными и разведывательными органами для отслеживания мобильных телефонов. Такие устройства предназначены для сбора и регистрации номеров IMSI, которые являются уникальными идентификаторами, ассоциированными с каждым пользователем мобильной связи стандарта GSM, UMTS или CDMA. При определенных обстоятельствах номера IMSI могут быть связаны с личными идентификационными данными, что вызывает ряд проблем с конфиденциальностью. В этом нет ничего нового, и злоумышленники, наверняка уже используют эти (или подобные) устройства.

В этом посте рассматриваются процессы создания пассивного IMSI catcher’a, который отличается от традиционных IMSI catcher’ов, тем что не передает информации и не оказывает влияния на сотовые сети.

Традиционные IMSI catcher’ы являются незаконными в большинстве юрисдикций из-за того, что они передают данные на сотовых частотах (что требует лицензии), и что они выполняют атаку «человек посередине» между телефоном и мобильной базовой станцией. Пассивный IMSI catcher не делает ни того, ни другого.

Следует отметить, что на личные данные, собираемые устройством (номера IMSI), могут распространяться законы о конфиденциальности, поэтому следует помнить о хранении / обработке / обмене данными, которые собирает это устройство. И, конечно же, я никоим образом не являюсь экспертом по правовым вопросам – проводите собственные исследования.

Как это работает

Пассивный IMSI catcher работает путем перехвата номеров IMSI, в момент, когда телефон инициализирует соединение с базовой станцией. IMSI передается только во время этого начального соединения. В целях защиты конфиденциальности вся последующая связь с этой базовой станцией осуществляется с использованием случайного номера Временного идентификатора мобильного абонента (Temporary Mobile Subscriber Identity – TMSI).

Это означает, что вы можете перехватывать номера IMSI только в тот момент, когда устройства перемещаются между базовыми станциями. Традиционные IMSI catcher’ы работают по-другому, подделывая легитимную базовую станцию и заставляя абонентов подключаться к себе. Они имеют дополнительную возможность собирать данные о стационарных устройствах и потенциально могут иметь больший целевой диапазон.

Аппаратное обеспечение

Все необходимое оборудование – это ПК и SDR-приемник, поддерживающий частоты GSM – 850/900/1800/1900 МГц. Большинство недорогих приемников на основе RTL2832U имеют верхний частотный диапазон около 1700 МГц. Вы можете обойтись одним из них, но, не сможете захватывать сигналы станций на 1800 или 1900 МГц.

Я рекомендую Nooelec NESDR SMArt XTR с расширенным частотным диапазоном или HackRF One.

Программное обеспечение

Проект основывается на нескольких основных компонентах:

GNU Radio – фрейворк для обработки сигналов

gr-gsm – блоки и инструменты для обработки GSM с помощью GNU Radio

IMSI-catcher – Python-скрипт, который обрабатывает данные из gr-gsm и извлекает номера IMSI

Wireshark – может использоваться для просмотра пакетов GSM из gr-gsm

Я успешно использую виртуальную машину Ubuntu 18.04 LTS с данным софтом, работающую на Windows 10.

Уствновка gr-gsm

Официальные инструкции по установке gr-gsm можно найти здесь. В Ubuntu 18.04 вы можете использовать следующие команды для установки необходимых зависимостей, сборки и установки gr-gsm:

 

Установка Wireshark и IMSI Cather’a

 

Захват трафика GSM и номеров IMSI

В первую очередь, чтобы проверить, что все работает – необходимо выполнить sudo grgsm_scanner. Скрипт должен начать будет сканировать и обнаруживать все близлежащие базовые станции. Сканирование может занять около минуты, прежде чем вы увидите список станций.

https://harrisonsand.com/content/images/2019/04/grgsm_scanner.png

Для перехвата трафика необходимо выбрать базовую станцию и ее частоту. Мощность сигнала указана в крайнем правом столбце. Числа ближе к нулю указывают на более сильный сигнал. Для этого примера я буду использовать станцию на 949,8 МГц.

Вы можете указать gr-gsm на какой частоте перехватывать трафик с помощью sudo grgsm_livemon -f 949.8M.

https://harrisonsand.com/content/images/2019/04/grgsm_livemon.png

Захваченный трафик GSM передается по интерфейсу loopback и его можно просматривать в Wireshark. Используя фильтр e212.imsi можно выбрать пакеты, содержащие номера IMSI.

https://harrisonsand.com/content/images/2019/04/wireshark-1.png

Команда python simple_IMSI-catcher.py –sniff может использоваться для анализа номеров IMSI в потоке данных. Такую информацию будет читать проще, чем в случае с Wireshark. Дополнительно, данный скрипт сопоставляет IMSI с конкретным оператором сети, брендом и страной.

https://harrisonsand.com/content/images/2019/04/simple_IMSI-catcher.png

Заключение

У вас есть несколько номеров IMSI. Что дальше? В идеале, вы не можете ничего сделать, имея данные номера IMSI. Проблемы безопасности возникают только тогда, когда вы можете связать номер IMSI с конкретным человеком. Операторы сетей и правоохранительные органы обычно имеют доступ к этим данным в массовом порядке. Надеюсь, со всеми необходимыми разрешениями и ордерами …

Тем не менее, для частных лиц и корпораций существуют различные способы связи номера IMSI с конкретным абонентом. Подумайте, например, о корреляции с другими известными наборами данных.

Один из часто используемых методов – получение IMSI номера через мобильные приложения. Приложения (на Android) могут получить доступ к номеру IMSI устройства, так как IMSI иногда собираются и используется в качестве уникального идентификатора пользователя. IMSI могут храниться вместе с именами, номерами телефонов и адресами электронной почты в базах данных клиентов. Клиентские базы данных обычно продаются третьим сторонам в маркетинговых целях и, конечно, могут быть украдены. И сейчас можно найти базы данных с номерами IMSI и именами в Интернете, что является крупной проблемой конфиденциальности данных.