
Sotto-servizio di Difesa Cellulare Zero-Trust per Android (Rilevamento e Routing Sicuro di IMSI-Catcher, 2G SMS Blaster e 4G aLTEr)
RadioGuard è un'applicazione di sicurezza Android open-source, pronta per la produzione e conforme al Google Play Store, con un sottoservizio in background. Rileva attivamente torri cellulari rogue (IMSI-catcher / Cell-Site Simulator / SMS Blaster), identifica manipolazioni ostili delle reti cellulari 2G/4G e implementa una quarantena crittografica di safe-routing per proteggere i dispositivi mobili su collegamenti cellulari non attendibili.
Le reti cellulari (2G, 3G e 4G LTE) soffrono di debolezze protocollari fondamentali:
La Filosofia di RadioGuard: Trattare il collegamento cellulare come una rete pubblica non attendibile (Radio Zero-Trust). Invece di sperare che la torre sia legittima, il telefono monitora autonomamente la telemetria cellulare e incapsula il traffico all'interno di tunnel crittografici autenticati.
┌─────────────────────────────────────────────────────────────────────────────┐
│ 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 nativo di Android con setBlocking(true) come killswitch imposto dal sistema operativo./1: Contrasta TunnelCrack (CVE-2023-36672 / CVE-2023-35838) suddividendo le rotte in 0.0.0.0/1 e 128.0.0.0/1, annullando qualsiasi reindirizzamento malevolo della sottorete locale.9.9.9.9, 1.1.1.1) con pinning del certificato SPKI per prevenire il dirottamento DNS aLTEr pre-tunnel.TelephonyCallback.CallStateListener.ByteBuffer.allocate(32768)) e gli array di byte PDU sono rigorosamente controllati nei limiti. Gli overflow generano una IndexOutOfBoundsException gestita invece di corrompere la memoria.pruneOldIncidents) che mantiene gli ultimi 1.000 record, impedendo a torri malevole di riempire la memoria flash del dispositivo.RadioGuard è stato rafforzato contro tecniche di bypass pubblicate:
Per garantire che RadioGuard non possa essere compromesso da app malevole o malware locale:
AppIntegrityValidator.kt):
Process.killProcess()).RuntimeAntiHijackGuard.kt):
/proc/self/status ogni 3 secondi. Rileva agganci ptrace, gdb e agenti Frida./proc/self/maps per iniezioni di librerie dinamiche (frida-agent.so, xposed.so, zygisk, sandhook).L'interfaccia è costruita con Jetpack Compose (Material 3) con un tema dark cyber-defense:
Il progetto include una suite di test di verifica eseguibile (test_suite.py) che convalida tutti gli algoritmi, le transizioni di stato e i limiti matematici:
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)
Inoltre, i test unitari per le build di Android Studio / Gradle si trovano in:
Quando si invia RadioGuard alla Google Play Developer Console, dichiarare i permessi come segue:
# 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 in modalità Permissive, test-keys o KeyStore/TEE hardware mancanti).| Vettore di Attacco | Paper di Riferimento / CVE | Contromisura Rafforzata |
|---|
| Macro-Cell Shadow Clone | USENIX Security (FBS-Radar) | Step-Gradient Tracking: Segnala improvvisi aumenti di $\Delta\text{RSRP} > 25\text{ dB}$ su Cell ID identici in $< 4\text{ secondi}$. |
| Bypass VPN TunnelCrack | USENIX Security (CVE-2023-36672) | Suddivisione Doppia della Rotta /1: 0.0.0.0/1 e 128.0.0.0/1 annullano qualsiasi reindirizzamento rogue della sottorete locale. |
| Dirottamento Bootstrap DNS aLTEr | IEEE S&P (CVE-2018-18544) | IP Literal e SPKI Pinning: La connessione diretta a IP resolver hardcoded (9.9.9.9) elimina il DNS bootstrap in chiaro. |
| Freeze del RIL del Baseband | Black Hat / ACM CCS | Watchdog di Vitalità della Telemetria: Interroga attivamente la telemetria del modem ogni 5 secondi se le callback si bloccano per $> 12\text{ secondi}$. |
| Flapping della Carrier Aggregation | Deployment LTE nel Mondo Reale | Buffer di Isteresi: Richiede 2 cicli di anomalia consecutivi su 10 secondi prima di dichiarare la quarantena critica. |
/system/bin/cmd e rimuove LD_PRELOAD dagli ambienti di esecuzione dei sottoprocessi.| Permesso | Giustificazione per la Policy del Play Store |
|---|
ACCESS_FINE_LOCATION | Richiesto dal sistema operativo Android per interrogare CellIdentity (Cell ID, TAC, PCI). Dichiarare esplicitamente nella privacy policy dell'app che le coordinate vengono valutate localmente sul dispositivo rispetto a un database SQLite offline e non vengono mai trasmesse a nessun server remoto. |
FOREGROUND_SERVICE & FOREGROUND_SERVICE_CONNECTED_DEVICE | Richiesto per il monitoraggio continuo in tempo reale dei cambiamenti di stato del baseband e dell'attrazione verso torri rogue. |
BIND_VPN_SERVICE | Richiesto per fornire il tunnel di quarantena loopback locale e il kill-switch nativo del sistema operativo per isolare i collegamenti cellulari non attendibili. |