Исследовательский проект · GPL-3.0 · Kotlin

SpamMagnit — активатор спам-звонков как индикатор утечки номера

Android-приложение, которое иллюстрирует проблему передачи номера телефона через AdTech-интеграции мобильных операторов. Проект показывает, как без звонка, формы и прямого согласия номер может попадать в рекламные системы — и как это можно использовать для тестирования спам-защиты.

🛡 Приложение не собирает и не передаёт никакую информацию о пользователе
Disclaimer: Проект предназначен исключительно для образовательных и исследовательских целей. Автор не несёт ответственности за использование в противоправных целях.

О проекте

Мобильный оператор в момент выхода в интернет через LTE передаёт ваш публичный IP-адрес. Сайт (или установленный на нём скрипт аналитики) отправляет этот IP в AdTech-платформу, имеющую договор с оператором. Платформа запрашивает у оператора номер телефона, соответствующий IP, — и получает ответ. Без звонка. Без формы. Без прямого согласия.

Проблема

Утечка номера через AdTech-интеграции операторов нарушает законодательство о персональных данных.

Иллюстрация

Приложение не выявляет конкретные механизмы утечки, а активирует их простым перебором доменов.

Результат

Активация спам-звонков до ~300 в первые сутки с постепенным снижением активности.

Применение

Тестирование спам-защиты, сбор номеров спам-центров, формирование жалоб в компетентные органы.

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

Три этапа: сбор доменов, очистка, посещение.

1

Сбор доменов

Для каждого из 33 IP-адресов запрашиваются связанные домены с разных хостингов.

1.5

Сортировка и фильтрация

Приведение к нижнему регистру, удаление дубликатов, отбрасывание IP, фильтр по российским зонам, группировка по apex.

2

Посещение домена

Около 100k доменов: сначала HTTPS, при неудаче — HTTP. Успех — любой HTTP-код и несколько прочитанных байт (до 16 КБ).

Возможности

Асинхронная архитектура, кэш, foreground service и адаптивная фильтрация.

✔ Асинхронный сбор доменов: 2 IP параллельно, до 12 проверок одновременно
✔ Кэш ответов на 24 часа — ускоряет повторные запуски
✔ Foreground Service с уведомлением и кнопкой «Стоп»
✔ WakeLock с продлением каждые 10 минут
✔ Лог в реальном времени: последние 20 проверок с цветовой индикацией
✔ Корректная обработка отмены без потери прогресса
✔ Адаптивная фильтрация: исключение поддоменов, ограничение на apex

Приватность

Приложение создано для исследования проблемы утечки данных — и само по себе не создаёт новую. Ниже — что именно не делает SpamMagnit.

🛡 Приложение не собирает и не отправляет никакую информацию о пользователе

SpamMagnit — локальный инструмент. Всё, что он делает, происходит на вашем устройстве: он перебирает домены и проверяет их доступность. Никакие ваши данные при этом никуда не уходят.

✔ Нет сбора персональных данных

  • Не собирает ваше имя, номер телефона, e-mail, IMEI, IMSI, MSISDN, MAC-адрес, геолокацию, список контактов, SMS, журнал звонков, установленные приложения, фото, файлы и т. п.
  • Не отправляет никакую статистику, аналитику, телеметрию, crash-репорты или «обезличенные» данные на серверы автора или третьих лиц.
  • Не использует сторонние SDK для аналитики, рекламы, трекинга или атрибуции (Google Analytics, Firebase, Facebook SDK, Adjust, AppsFlyer и подобные отсутствуют).
  • Не требует регистрации, аккаунта, входа по номеру телефона или e-mail.
  • Не запрашивает разрешения на доступ к контактам, SMS, журналу звонков, геолокации, камере, микрофону или хранилищу.
  • Не передаёт ваш IP-адрес, идентификаторы устройства или какие-либо метаданные на серверы проекта.

Что приложение действительно делает: устанавливает сетевые соединения с публичными доменами (HTTPS/HTTP) для проверки их доступности — это и есть суть исследовательского сценария. Список доменов и результаты проверок остаются на устройстве и не покидают его.

Исходный код полностью открыт (лицензия GPL-3.0) — вы можете убедиться в отсутствии сбора данных самостоятельно: github.com/d010b/SpamMagnit.

Требования и установка

Приложение работает на Android 7.0+ (целевая — Android 14).

Android 7.0+ (API 24) Целевая: Android 14 (API 34) Мобильный трафик ≥ 1.3 ГБ Время работы 2–5 часов Зарядное устройство подключено

Установка

1. Скачайте последний APK из раздела Releases
2. Разрешите установку из неизвестных источников
3. Установите APK
4. Выдайте разрешения: Интернет, уведомления, фоновый сервис
Перейти к Releases README на GitHub

Поддержите проект

Поставьте звезду на GitHub, сообщите об issue или предложите улучшение — это помогает проекту развиваться.

⭐ Поставить звезду Сообщить об issue