
Zero-Trust Cellular Defense Sub-Service для Android (обнаружение IMSI-Catcher, 2G SMS Blaster и 4G aLTEr и безопасная маршрутизация)
RadioGuard — это открытое, готовое к промышленной эксплуатации и соответствующее требованиям Google Play приложение для безопасности Android и фоновая подслужба. Оно активно обнаруживает поддельные сотовые вышки (IMSI-перехватчики / симуляторы сотовых станций / SMS-бластеры), выявляет враждебные манипуляции с сотовой связью 2G/4G и развёртывает криптографический карантин безопасной маршрутизации для защиты мобильных устройств на недоверенных сотовых каналах.
Сотовые сети (2G, 3G и 4G LTE) страдают от фундаментальных слабостей протоколов:
Философия RadioGuard: Относиться к сотовому каналу как к недоверенной публичной сети (радио нулевого доверия). Вместо того чтобы надеяться на легитимность вышки, телефон автономно отслеживает сотовую телеметрию и инкапсулирует трафик в аутентифицированные криптографические туннели.
┌─────────────────────────────────────────────────────────────────────────────┐
│ RadioGuard Architecture Topology │
├─────────────────────────────────────────────────────────────────────────────┤
│ [ UI Layer (Jetpack Compose) ] │
│ • DashboardScreen: Real-time threat gauge, active telemetry, controls │
│ • Device Integrity Banner: Displays kernel/root compromise warnings │
│ • Forensic Incident Exporter: Generates JSON evidence dumps │
├─────────────────────────────────────────────────────────────────────────────┤
│ [ Core Service Layer ] │
│ • RadioGuardService: Foreground sentry monitoring TelephonyCallback │
│ • Telemetry Liveness Watchdog: Polls modem every 5s to defeat RIL freeze │
│ • Emergency 911/112 Fail-Safe: Auto-suspends killswitch during calls │
│ • SafeTunnelVpnService: Native VPN killswitch (TunnelCrack hardened) │
│ • ShizukuRadioBridge: Privileged non-root band locker & airplane pulse │
├─────────────────────────────────────────────────────────────────────────────┤
│ [ Analytical Engine ] │
│ • AnomalyEngine: Normalized Bayesian multi-factor anomaly scoring │
│ • Macro-Cell Shadow Clone Detector: Step-gradient Delta-RSRP tracking │
│ • Hysteresis Buffer: 2-sample window filters Carrier Aggregation flits │
│ • SmsFilterHelper: PDU inspector catching Type-0 Silent SMS pings │
├─────────────────────────────────────────────────────────────────────────────┤
│ [ Storage & Integrity Layer ] │
│ • TowerDatabase (Room SQLite): Local OpenCelliD / BeaconDB baseline │
│ • Circular Storage Pruning: Caps incident log to 1,000 to prevent DoS │
│ • AppIntegrityValidator: Runtime SHA-256 APK signing cert verification │
│ • RuntimeAntiHijackGuard: Anti-ptrace & /proc/self/maps hook scanner │
│ • DeviceIntegritySentry: Hardware TEE, SELinux, and rootkit auditor │
└─────────────────────────────────────────────────────────────────────────────┘
VpnService с setBlocking(true) в качестве аварийного выключателя, обеспечиваемого ОС./1: Противодействует TunnelCrack (CVE-2023-36672 / CVE-2023-35838), разделяя маршруты на 0.0.0.0/1 и 128.0.0.0/1, переопределяя любые вредоносные перенаправления локальной подсети.9.9.9.9, 1.1.1.1) с привязкой сертификатов SPKI для предотвращения aLTEr-перехвата DNS до установления туннеля.TelephonyCallback.CallStateListener.ByteBuffer.allocate(32768)) и байтовые массивы PDU строго проверяются на границы. Переполнения вызывают управляемое IndexOutOfBoundsException, а не повреждение памяти.pruneOldIncidents), сохраняющим последние 1 000 записей, что предотвращает заполнение флеш-памяти устройства вредоносными вышками.RadioGuard был усилен против опубликованных техник обхода:
Чтобы гарантировать, что RadioGuard не может быть скомпрометирован вредоносными приложениями или локальным вредоносным ПО:
AppIntegrityValidator.kt):
Process.killProcess()).RuntimeAntiHijackGuard.kt):
/proc/self/status каждые 3 секунды. Обнаруживает подключения ptrace, gdb и агенты Frida./proc/self/maps на предмет инъекций динамических библиотек (frida-agent.so, xposed.so, zygisk, ).Интерфейс построен на Jetpack Compose (Material 3) с тёмной темой киберзащиты:
Проект включает исполняемый набор верификационных тестов (test_suite.py), который проверяет все алгоритмы, переходы состояний и математические границы:
python test_suite.py
test_01_normal_macro_cell_passes ......................... [OK]
test_02_involuntary_2g_downgrade ......................... [OK]
test_03_macro_cell_shadow_clone_jump ..................... [OK]
test_04_hysteresis_filtering ............................. [OK]
test_05_spatial_drift_detection .......................... [OK]
test_06_tunnelcrack_dual_route_coverage .................. [OK]
test_07_storage_bounds_circular_pruning .................. [OK]
test_08_emergency_call_fail_safe_transitions ............. [OK]
Ran 8 tests in 0.001s - OK (100% Passing)
Кроме того, модульные тесты для сборок Android Studio / Gradle находятся по адресам:
При отправке RadioGuard в Google Play Developer Console объявляйте разрешения следующим образом:
# Clone or open workspace
cd C:\Users\pushk\.gemini\antigravity\scratch\radioguard
# Build debug APK
./gradlew assembleDebug
# Build release APK (configured with ProGuard & R8)
./gradlew assembleRelease
su, Magisk, SELinux в режиме Permissive, test-keys или отсутствие аппаратного KeyStore/TEE).| Вектор атаки | Источник / CVE | Усиленная контрмера |
|---|
| Теневое клонирование макросоты | USENIX Security (FBS-Radar) | Отслеживание ступенчатого градиента: Отмечает внезапные всплески $\Delta\text{RSRP} > 25\text{ dB}$ на идентичных Cell ID за $< 4\text{ секунды}$. |
| Обход VPN TunnelCrack | USENIX Security (CVE-2023-36672) | Двойное разделение маршрутов /1: 0.0.0.0/1 и 128.0.0.0/1 переопределяют любые вредоносные перенаправления локальной подсети. |
| Перехват начальной загрузки DNS aLTEr | IEEE S&P (CVE-2018-18544) | IP-литералы и привязка SPKI: Прямое подключение к жёстко заданным IP-адресам резолверов (9.9.9.9) устраняет открытый начальный DNS. |
| Заморозка RIL базового модуля | Black Hat / ACM CCS | Сторож живучести телеметрии: Активно опрашивает телеметрию модема каждые 5 секунд, если обратные вызовы останавливаются на $> 12\text{ секунд}$. |
| Дрожание агрегации несущих | Реальное развёртывание LTE | Буфер гистерезиса: Требует 2 последовательных цикла аномалий за 10 секунд перед объявлением критического карантина. |
sandhook/system/bin/cmd и удаляет LD_PRELOAD из окружений выполнения подпроцессов.| Разрешение | Обоснование политики Play Store |
|---|
ACCESS_FINE_LOCATION | Требуется ОС Android для запроса CellIdentity (Cell ID, TAC, PCI). Явно укажите в политике конфиденциальности приложения, что координаты оцениваются локально на устройстве по офлайн-базе SQLite и никогда не передаются на удалённый сервер. |
FOREGROUND_SERVICE & FOREGROUND_SERVICE_CONNECTED_DEVICE | Требуется для непрерывного мониторинга изменений состояния базового модуля и заманивания поддельными вышками в реальном времени в фоне. |
BIND_VPN_SERVICE | Требуется для обеспечения локального карантинного туннеля обратной петли и нативного аварийного выключателя ОС для изоляции недоверенных сотовых каналов. |