🛡️ Sentinels v3.5
Defensa activa, almacenamiento criptográfico y detección de vectores de espionaje avanzado (Pegasus / Cellebrite) en dispositivos móviles.
¿Qué problema soluciona?
Los dispositivos móviles son el blanco principal de herramientas forenses comerciales (Cellebrite, GrayKey) e implantes gubernamentales de espionaje teledirigido (como Pegasus de NSO Group). La seguridad estándar de Android (bloqueo por PIN y cifrado en reposo) resulta insuficiente ante extracciones físicas de memoria o degradaciones de red forzadas.
Sentinels implementa un paradigma donde la clave maestra nunca existe en disco, los buffers de memoria están blindados contra lecturas forenses, y el sistema reacciona activamente ante anomalías físicas o de entorno.
🎭 Camuflaje Total
Disfrazado semánticamente como Manual de Usuario. Excluido de aplicaciones recientes y con FLAG_SECURE global anti-capturas.
📡 Anti-Stingray
Detecta degradaciones forzadas de conectividad a 2G (típico de IMSI-Catchers en protestas o vigilancia) y bloquea el acceso.
💥 Purga Irreversible
Ante detección de depuración ADB o intentos de fuerza bruta, borra el alias del Android KeyStore haciendo irrecuperable el contenido.
Arquitectura Criptográfica: Ensamblaje XOR Triple Factor
A diferencia de los gestores convencionales, la clave simétrica maestra no se almacena en ninguna base de datos ni archivo de configuración. Se ensambla en memoria volátil únicamente durante la sesión activa:
| Factor | Naturaleza | Mecanismo Técnico |
|---|---|---|
| Factor 1: Usuario | Conocimiento | PIN o patrón derivado con SHA-256. |
| Factor 2: Entorno | Geofencing Lógico | Hash del BSSID (MAC física) del router Wi-Fi de confianza. Fuera de esa zona, la clave no ensambla. |
| Factor 3: Hardware | Criptoprocesador | Secreto de 256 bits resguardado en el chip TEE (Trusted Execution Environment) vía Android KeyStore RSA-2048. |
Blindaje de Memoria Nativa (C++ / JNI)
Para evitar ataques de volcado de memoria (RAM dumping) mediante equipos como Cellebrite:
-
Páginas Fuera del Heap de la JVM: Asignación directa con
mmap(MAP_ANONYMOUS)para que el recolector de basura de Java no deje copias residuales en RAM. -
Anti-Swap (
mlock): Prohíbe al kernel de Linux paginar o volcar la memoria de las llaves en disco de intercambio (ZRAM/Swap). -
Zeroización Irreversible: Al cerrar sesión o disparar el modo pánico, se invoca
explicit_bzeroreforzado con barreras de ensamblador (inline ASM) para evitar que el compilador optimice la limpieza.
Guía de Compilación y Puesta en Marcha
Sentinel está estructurado como un proyecto nativo en Kotlin y C++ (NDK). Para compilar el binario release firmado de forma anónima:
# 1. Clonar el repositorio y acceder a Sentimel
cd d:\Sitio\Sentimel
# 2. Compilar paquete APK con ofuscación R8 / ProGuard
./gradlew assembleRelease
# 3. El binario generado se ubica en:
# app/build/outputs/apk/release/Sentinel_Service.apk
Nota: En dispositivos no rooteados funciona transparentemente como app de sistema con almacenamiento seguro en espacio aislado.