
Sous-service de défense cellulaire Zero-Trust pour Android (détection et routage sécurisé IMSI-Catcher, 2G SMS Blaster et 4G aLTEr)
RadioGuard est une application de sécurité Android open-source, prête pour la production et conforme au Google Play Store, ainsi qu'un sous-service d'arrière-plan. Elle détecte activement les fausses stations de base (IMSI-catchers / Cell-Site Simulators / SMS Blasters), identifie les manipulations cellulaires hostiles 2G/4G, et déploie une quarantaine de routage sécurisé cryptographique pour protéger les appareils mobiles sur des liaisons cellulaires non fiables.
Les réseaux cellulaires (2G, 3G et 4G LTE) souffrent de faiblesses protocolaires fondamentales :
La philosophie RadioGuard : Traiter la liaison cellulaire comme un réseau public non fiable (Radio Zero-Trust). Au lieu d'espérer que la station soit légitime, le téléphone surveille de manière autonome la télémétrie cellulaire et encapsule le trafic dans des tunnels cryptographiques authentifiés.
┌─────────────────────────────────────────────────────────────────────────────┐
│ 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 natif d'Android avec setBlocking(true) comme killswitch imposé par l'OS./1 : Contre TunnelCrack (CVE-2023-36672 / CVE-2023-35838) en divisant les routes en 0.0.0.0/1 et 128.0.0.0/1, neutralisant toute redirection malveillante de sous-réseau local.9.9.9.9, 1.1.1.1) avec épinglage de certificat SPKI pour empêcher le détournement DNS aLTEr avant le tunnel.TelephonyCallback.CallStateListener.ByteBuffer.allocate(32768)) et tableaux d'octets PDU sont strictement vérifiés. Les dépassements lèvent une IndexOutOfBoundsException gérée plutôt que de corrompre la mémoire.pruneOldIncidents) conservant les 1 000 derniers enregistrements, empêchant les stations malveillantes de saturer la mémoire flash de l'appareil.RadioGuard a été durci contre les techniques de contournement publiées :
Pour garantir que RadioGuard ne puisse pas être compromis par des applications malveillantes ou des malwares locaux :
AppIntegrityValidator.kt) :
Process.killProcess()).RuntimeAntiHijackGuard.kt) :
/proc/self/status toutes les 3 secondes. Détecte les attachements ptrace, gdb et les agents Frida./proc/self/maps pour les injections de bibliothèques dynamiques (frida-agent.so, xposed.so, zygisk, ).L'UI est construite avec Jetpack Compose (Material 3) avec un thème sombre de cyber-défense :
Le projet inclut une suite de tests de vérification exécutable (test_suite.py) qui valide tous les algorithmes, transitions d'état et bornes mathématiques :
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)
De plus, les tests unitaires pour les builds Android Studio / Gradle se trouvent à :
Lors de la soumission de RadioGuard à la Google Play Developer Console, déclarez les permissions comme suit :
# 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 en mode Permissive, test-keys, ou KeyStore/TEE matériel manquant).| Vecteur d'attaque | Article source / CVE | Contre-mesure durcie |
|---|
| Macro-Cell Shadow Clone | USENIX Security (FBS-Radar) | Suivi par gradient d'étape : Signale les pics soudains de $\Delta\text{RSRP} > 25\text{ dB}$ sur des Cell IDs identiques en $< 4\text{ secondes}$. |
| Contournement VPN TunnelCrack | USENIX Security (CVE-2023-36672) | Double découpage de route /1 : 0.0.0.0/1 et 128.0.0.0/1 neutralisent toute redirection malveillante de sous-réseau local. |
| Détournement bootstrap DNS aLTEr | IEEE S&P (CVE-2018-18544) | Littéraux IP et épinglage SPKI : Connexion directe à des IP de résolveur codées en dur (9.9.9.9) élimine le DNS bootstrap en clair. |
| Gel RIL de la bande de base | Black Hat / ACM CCS | Watchdog de vivacité télémétrique : Interroge activement la télémétrie du modem toutes les 5 secondes si les callbacks sont bloqués pendant $> 12\text{ secondes}$. |
| Battement d'agrégation de porteuses | Déploiement LTE réel | Tampon d'hystérésis : Nécessite 2 cycles d'anomalie consécutifs sur 10 secondes avant de déclarer une quarantaine critique. |
sandhook/system/bin/cmd et supprime LD_PRELOAD des environnements d'exécution des sous-processus.| Permission | Justification de la politique Play Store |
|---|
ACCESS_FINE_LOCATION | Requis par l'OS Android pour interroger CellIdentity (Cell ID, TAC, PCI). Indiquez explicitement dans la politique de confidentialité de l'application que les coordonnées sont évaluées localement sur l'appareil par rapport à une base de données SQLite hors ligne et ne sont jamais transmises à un serveur distant. |
FOREGROUND_SERVICE & FOREGROUND_SERVICE_CONNECTED_DEVICE | Requis pour la surveillance continue en temps réel des changements d'état de la bande de base et du leurrage par fausses stations. |
BIND_VPN_SERVICE | Requis pour fournir le tunnel de quarantaine en boucle locale et le kill-switch natif de l'OS afin d'isoler les liaisons cellulaires non fiables. |