Hablando como un antiguo consultor de seguridad que realizaba regularmente pruebas de penetración de aplicaciones móviles de terceros, tiene sentido. En la práctica, las aplicaciones para dispositivos móviles son un poco menos susceptibles al control de la caja negra que otros tipos de aplicaciones (como las aplicaciones web o los controladores en modo kernel), pero hay muchas cosas que puede hacer incluso la caja negra (y más con blanco). Aunque la aplicación de ingeniería inversa para la mayoría de las aplicaciones de Android es tan fácil, casi siempre son de caja blanca.
Se encontraron algunos problemas de seguridad comunes:
- Las aplicaciones no realizan la validación de TLS correctamente (por ejemplo, permiten certificados autofirmados o incluso certificados no válidos arbitrarios).
- Las aplicaciones que tenían puntos de entrada vulnerables (asociaciones de archivos, esquemas URI, contratos compartidos u otras formas de invocarlos mediante programación y luego hacer que hagan algo que no deberían).
- Aplicaciones que utilizaron bibliotecas o SDK obsoletos con vulnerabilidades conocidas.
- Aplicaciones que usaban vistas web con puentes JavaScript inseguros.
- Las aplicaciones que usaban HTTP en lugar de HTTPS a veces.
- Las aplicaciones que usaban vistas web pero no bloquearon sus rutas o ejecución de JS, y eran vulnerables a las vulnerabilidades de la aplicación web y / o al phishing.
- Aplicaciones que almacenan secretos (credenciales, tokens, datos privados, etc.) en texto sin formato y / o en ubicaciones legibles.
- Las aplicaciones que almacenaron claves u otros secretos (por ejemplo, una clave de API para un servicio web) en sus archivos binarios, como si un atacante no pudiera aplicar ingeniería inversa a la aplicación para encontrarla.
- Las aplicaciones que usaban el código nativo de forma insegura y tenían errores de corrupción de memoria.
- Aplicaciones que utilizaron la criptografía de forma incorrecta y, por lo tanto, insegura.
Hay muchos más que pueden surgir, aunque esos son algunos de los más comunes y / o severos. Las aplicaciones móviles son definitivamente capaces de tener errores de seguridad y deben someterse a revisiones de seguridad, incluidas las pruebas de penetración.