- ADR móvil
- Proteger una aplicación
Proteger una aplicación
Protege un APK de Android o un IPA de iOS en pocos pasos: súbelo, elige las comprobaciones que ejecuta, protégelo y después descarga la copia protegida.
El ADR móvil (detección y respuesta de aplicaciones móviles) añade RASP, la autoprotección de aplicaciones en tiempo de ejecución, a una copia de tu aplicación Android o iOS. La aplicación protegida ejecuta comprobaciones de seguridad en el dispositivo, como root o jailbreak, un depurador o hooking con Frida, e informa de lo que detecta como eventos. Tú eliges qué comprobaciones ejecuta.
Antes de empezar
- La aplicación: un APK de Android o un IPA de iOS, compilado tal como lo publicarías, de 2 GB como máximo.
- iOS: sube el IPA que exportas desde Xcode o tu sistema de compilación. Un IPA descargado de la App Store está cifrado y no se puede proteger. El ejecutable de la aplicación debe estar compilado para arm64. La aplicación protegida es compatible con iOS 12 y posteriores.
- Android: la aplicación protegida necesita Android 12 (API 31) o posterior. Su versión mínima se sube a 31 si es más baja, así que ya no se instala en dispositivos más antiguos.
- Un archivo por versión: cada versión de una aplicación, su
android:versionNameo suCFBundleShortVersionString, solo se puede proteger a partir de un archivo. Cuando cambies la aplicación, da una versión nueva al nuevo build. - La aplicación original: sube la aplicación tal como la compilaste, no una copia ya protegida.
Abre el ADR móvil
Ve a report.ostorlab.co y después:
-
Abre el menú y haz clic en "ADR móvil", en "Proteger".

-
Haz clic en "Proteger una aplicación".

Elige la aplicación
-
Suelta el APK o el IPA en la zona de subida, o haz clic en ella para seleccionar el archivo. La plataforma se deduce de la extensión del archivo.

-
Comprueba el archivo y haz clic en "Continuar". El "Resumen de la protección" de la derecha muestra la plataforma, la aplicación y las comprobaciones que ejecutará.

Elige las comprobaciones
-
El paso lista las comprobaciones de la plataforma de la aplicación. Todas están activadas por defecto.

-
"Identidad de la aplicación" siempre está activada: distingue un build auténtico de una copia reempaquetada, por eso su interruptor no se puede desactivar.

-
Desactiva las comprobaciones que no encajen con tus usuarios. Aquí se desactivan "Hooking e instrumentación" e "Interceptación de red", y el "Resumen de la protección" las quita. Por ejemplo:
- Una VPN de empresa activa "Interceptación de red", y también un proxy en iOS: desactívala si tus usuarios trabajan detrás de uno.
- Tu equipo de QA prueba en emuladores: protege para él un build aparte con "Emulador" desactivado.

-
El contador junto a "Continuar" indica cuántas comprobaciones están activadas. Haz clic en "Continuar".

El ADR móvil tiene nueve comprobaciones, y una aplicación recibe las de su plataforma:
| Comprobación | Android | iOS | Qué detecta |
|---|---|---|---|
| Root | ✓ | Archivos de root, particiones del sistema con escritura, SELinux y propiedades de compilación. | |
| Jailbreak | ✓ | Archivos de jailbreak, salida del sandbox y creación de procesos. | |
| Depurador | ✓ | ✓ | Un depurador conectado a la aplicación. |
| Hooking e instrumentación | ✓ | ✓ | Frida y otras bibliotecas inyectadas en la aplicación. |
| Integridad del código | ✓ | El código de la aplicación se modificó después de protegerla. | |
| Interceptación de red | ✓ | ✓ | Túneles VPN y, en iOS, proxies. |
| Identidad de la aplicación | ✓ | ✓ | Distingue un build auténtico de una copia reempaquetada. |
| Emulador | ✓ | ✓ | La aplicación se ejecuta en un emulador o en el simulador de iOS. |
| Virtualización y clonación de aplicaciones | ✓ | La aplicación se ejecuta dentro del contenedor de otra aplicación. |
La aplicación protegida ejecuta las comprobaciones activadas al iniciarse y después cada minuto mientras está abierta. La página Eventos lista lo que informa cada comprobación.
Protégela
-
Revisa las "Comprobaciones" del "Resumen de la protección": solo aparecen las que están activadas.

-
Haz clic en "Proteger". Primero se sube la aplicación: quédate en la página hasta que termine la subida, o haz clic en "Cancelar la subida" para detenerla. Después se protege. Tarda alrededor de un minuto y puedes salir de la página: el build sigue y queda en la pestaña "Builds".

-
Cuando aparezca "La aplicación está protegida", haz clic en "Descargar" para obtener la copia protegida.

Cuando la aplicación protegida se ejecute en dispositivos, sus eventos aparecerán en la pestaña "Eventos". Cada build de la aplicación queda en "Aplicaciones" y "Builds", donde puedes volver a descargarlo.
Si la aplicación no se puede proteger
El motivo aparece en la página y bajo el estado del build en la pestaña "Builds". Haz clic en "Proteger otra aplicación" para empezar de nuevo. Los mensajes del servidor aparecen en inglés, y los de la consola en tu idioma.
| Mensaje | Qué hacer |
|---|---|
| Elige un archivo APK o IPA. | Sube un archivo cuyo nombre termine en .apk o .ipa. |
| El archivo es demasiado grande: el límite es 2 GB. | Sube un build más pequeño de la aplicación. |
| The file is not a valid APK. / The file is not a valid app archive. | Sube el APK o el IPA tal como lo generó tu compilación, sin renombrarlo ni volver a empaquetarlo. |
| The app's AndroidManifest.xml cannot be read. | Vuelve a compilar el APK y súbelo. |
| The app's executable cannot be protected: it must be an unencrypted arm64 binary. | Sube el IPA exportado desde Xcode o tu sistema de compilación, compilado para arm64, no uno descargado de la App Store. |
| The app's executable has no room for the runtime. | Vuelve a compilar la aplicación con la opción del enlazador -headerpad_max_install_names y súbela. |
| The app is already protected. | Sube la aplicación original, no una copia protegida. |
| Version … of … is already protected from another file. | Da una versión nueva al nuevo build y súbelo. |
| No se pudo solicitar el build | La aplicación ya está subida: haz clic en "Volver a solicitar". |
| The app could not be protected. Try again, or contact support if it fails again. | Vuelve a proteger la aplicación. Si vuelve a fallar, contacta con soporte. |