Publicidad

Trucos y Consejos

Cómo probar la seguridad de una aplicación para Android

Cómo probar la seguridad de una aplicación para Android
Leri Koen

Leri Koen

  • Actualizado:

Antes de probar la seguridad de tus aplicaciones para Android, es importante entender el carácter global de este popular sistema operativo. Esta información ayudará a subrayar la importancia de probar tus aplicaciones antes de lanzarlas al mercado.

Cuando comprendas mejor cómo funciona el sistema operativo Android, podrás realizar las pruebas de seguridad adecuadas para tu dispositivo. También haremos una lista de algunas herramientas que pueden ayudarte.

Comprender el sistema operativo Android

Android es un sistema operativo de código abierto que se puso en marcha en 2007. Es, con diferencia, el sistema operativo móvil más popular del planeta: en enero de 2022 tenía una cuota de mercado de alrededor del 75 % con unos 2800 millones de usuarios activos. Está presente en diversos dispositivos además de en los teléfonos móviles. Está en tu oficina en los Chromebooks, en tu casa, accionando tu smart TV, e incluso te acompaña en tu día a día bajo la forma de wearables.

Por supuesto, con una base de usuarios tan grande, es obvio que las empresas se aseguran de tener presencia en tu bolsillo, en tu salón y en tu muñeca mediante sus propias aplicaciones. Desafortunadamente, esto convierte a las aplicaciones de Android en un gran objetivo para los ciberdelincuentes . Si pueden explotar las vulnerabilidades de tu aplicación, existen enormes riesgos comerciales, de reputación e incluso legales para tu organización y tus usuarios. Todas ellas son buenas razones para seguir leyendo y obtener más información sobre las pruebas de seguridad de tus aplicaciones para Android antes de ejecutarlas.

Cómo probar la seguridad de una aplicación para Android

Sandbox de Android

De forma predeterminada, las aplicaciones de Android se ejecutan en un entorno sandbox. Eso simplemente significa que no pueden acceder a ningún recurso en el dispositivo de un usuario sin obtener permiso explícito.

Cuando un usuario descarga una aplicación, esta muestra mensajes en la pantalla del dispositivo solicitando autorización para acceder a cosas como la cámara, el micrófono y los contactos para maximizar su funcionalidad.

Desafortunadamente, no se garantiza que el sandbox evite todas las amenazas. A veces, los componentes maliciosos dentro de una aplicación pueden pasar desapercibidos durante el proceso de instalación, solo para activarse más tarde y causar problemas graves. Por eso tienes que protegerte a ti y a tus usuarios finales mediante la realización de pruebas de penetración antes de lanzar tu aplicación de Android.

Amenazas comunes

A continuación podemos ver cuatro de las amenazas más comunes para el sistema operativo Android. Esta no es una lista exhaustiva. Es simplemente un vistazo rápido a algunas de las principales vulnerabilidades del sistema operativo y cómo evitarlas.

Protección binaria

Si permites que tu aplicación se ejecute en un dispositivo rooteado o con jailbreak, cualquier tipo de código malicioso puede ejecutarse en él. Como mínimo, en tu aplicación debes incorporar detección de jailbreak o de root.

Protección insuficiente de la capa de transporte

Para garantizar que todos los datos confidenciales intercambiados entre el cliente y el servidor estén encriptados, es fudamental que tu aplicación tenga normas de confidencialidad y de integridad bien definidas.

Autorización/autenticación insuficiente

Asegúrate de que tu aplicación completa una autorización suficiente utilizando archivos de configuración basados en políticas en lugar de comprobaciones de codificación fija.

Fuga de información

Usa modelos de amenazas para asegurarte de que los datos no se filtran accidentalmente a través de cosas como registro de URL y de pulsaciones de teclado.

Cómo probar la seguridad de una aplicación para Android

Pruebas de penetración

La prueba de penetración, o pentest, es el proceso de verificación de la integridad de tus aplicaciones de Android. Te permite identificar las vulnerabilidades dentro de ellas e indica la gravedad de cada una.

Sigue leyendo para saber qué herramientas necesitas, cómo prepararte y qué pasos seguir.

Herramientas

Necesitas muchas herramientas para probar los diversos aspectos de tu seguridad de la aplicación para Android. Si quieres, puedes descargarlas y ejecutarlas individualmente (prueba manual), o puedes descargar una aplicación que contiene todo lo que necesitas y que realizará todas las pruebas pertinentes de manera automática.

Si deseas seguir el proceso manual, debes buscar aplicaciones que prueben cosas como errores de configuración (por ejemplo, QARK: Quick Android Review Kit) y vulnerabilidades MITM (man in the middle) (por ejemplo, Mitproxy).

De cualquier manera, necesitas programas que puedas usar para diversas pruebas, incluidas pruebas de penetración, pruebas móviles, modificación de ROM y más. Para ahorrar tiempo sin sacrificar la fiabilidad, programas como App-Use, Android Debug Bridge (ADB) y Mobile Security Framework (MobSF) contienen todas las herramientas que necesitas.

También necesitarás un emulador de telefono Android (SDK de Android). Esto es esencial para simular tu teléfono Android en la pantalla de tu ordenador. Lo usas para ver cómo se comporta tu aplicación en evolución sin arriesgar tu teléfono y datos reales.

Si estás probando la seguridad de las aplicaciones de Android en nombre de un tercero, también necesitarás un proxy de aplicación web (WAP). Esto te permite obtener autenticación para trabajar con aplicaciones en la red privada de una empresa.

Finalmente, debes configurar una máquina virtual (VM) para que puedas probar tu aplicación para múltiples plataformas en un solo lugar. Esto te ayudará a asegurarte de que tu aplicación funcionará de manera segura en diversas variaciones del sistema operativo Android o en otro tipo de dispositivos.

Preparación

Antes de comenzar la prueba, asegúrate de que tu ordenador tiene al menos 1 GB de RAM (para que la máquina virtual no se retrase durante la prueba), y descarga el SDK de Android y las herramientas de prueba elegidas.

Evaluación de vulnerabilidad

Cuando estés listo para comenzar el proceso de prueba, lo primero que debes hacer es verificar el estado de seguridad actual de tu aplicación para Android.

Esto producirá una lista variada de vulnerabilidades que debe abordarse más adelante cuando prepares tu estrategia de seguridad.

Prueba de seguridad

Ejecutar la prueba de penetración te dará información más detallada como la gravedad de cada vulnerabilidad detectada en tu evaluación anterior.

Es esencial que puedas encontrar el equilibrio adecuado en tu aplicación entre la seguridad del servidor y del cliente, y la usabilidad. Recomendamos probar tu aplicación en cada iteración para garantizar que tienes el equilibrio correcto.

Atenuación

Tu emulador de Android es tu mejor amigo cuando se trata de resolver cualquier vulnerabilidad. Investíga y pruébalas activando los exploits, convirtiéndote en la «víctima». Esto te ayudará a comprender lo que sucede durante un ataque activo desde la perspectiva de un usuario.

Ya te hemos dado algunos consejos sobre las amenazas más comunes asociadas con las aplicaciones para Android, y vamos a resumir los tres aspectos principales para reforzar la seguridad.

  • Identificación: Si pasas por alto esta vulnerabilidad, puedes permitir que una aplicación malintencionada se presente como una aprobada. Hace que el usuario permita sin darse cuenta que el malware se ejecute en su dispositivo, creyendo que es la aplicación original que ha aprobado.
  • Autorización: para proporcionar una funcionalidad completa, tu aplicación puede requerir acceso a otros componentes en el dispositivo del usuario. Por ejemplo, una aplicación que te permite subir fotografías necesitará acceso a la cámara. Durante el proceso de instalación, tu aplicación debería obtener permiso explícito del usuario para acceder a otras aplicaciones o a la información almacenada en ellas.
  • Autenticación: Además de proteger tu aplicación en el lado del servidor, asegúrate de no dejar la puerta abierta en el lado del cliente. La forma más segura de proteger tu aplicación en el lado del cliente es habilitar la autenticación biométrica. Según el hardware en el que se ejecute tu aplicación, el usuario puede usar el escaneo del iris o la autenticación de huellas dactilares para abrir aplicaciones en su dispositivo y para autorizar transacciones y cambios.
Cómo probar la seguridad de una aplicación para Android

Asegúrate de que la aplicación para Android es segura

La conclusión principal es que al probar constantemente la seguridad de tu aplicación para Android durante su desarrollo, estás creando un entorno seguro y sin estrés para todos.

En última instancia, proteger tu aplicación al máximo produce una situación en la que todos ganan. No solo proteges tu propio servidor y tus sistemas, sino que también haces que para tus usuarios sea muy fácil seguir estando protegidos mientras usan tu aplicación.

Este articulo es una traducción del post publicado por Pete Woodward.

Leri Koen

Leri Koen

Lo último de Leri Koen