[Android] Proteger aplicacion frente ataques

willy_chaos

Hola a todos, estoy planificando una app para Android / iOS y me gustaría saber como enfrentarme a estos problemas.

  • Proteger la aplicación frente ataques MITM (evitando que se lleguen a ver las consultas al WS)
  • Proteger la aplicación frente a decompiladores (por ejemplo el otro dia hablando con un compañero, me dijo que si descompilabas el java, veias correctamente las strings)

Como solventais o lidiais vosotros con estos problemas.

Kalgator

Que yo sepa se puede ofuscar el codigo (por el tema de ver strings), de lo otro ni idea

zoeshadow
  • Usa HTTPS, con eso te vas a quitar un buen número de problemas...
  • Para ofuscar el código, en Android la mayoría de la gente utiliza Proguard, hoy en dia es muy fácil hacerlo funcionar con el plugin de Gradle, eso si, espera que te de problemas ya que muchas librerías ( cada vez más ) hacen uso de reflection y esto jode estas librerías ya que cambia el nombre de las variables.
1 respuesta
eZpit

Como ya te han comentado, https para ocultar el networking y Proguard para ofuscar. Si necesitas sesiones y users, utiliza oauth2 (sobre https).

Expandiendo a #3 si quieres ofuscar y utilizas librerías externas, para cada una de ellas tendrás que añadir pequeñas reglas al archivo de configuración de proguard. En la documentación de la mayoría de librerías puedes encontrar exactamente las lineas a añadir. Otra fuente util de reglas de proguard para diferentes librerias es este repo:
https://github.com/krschultz/android-proguard-snippets

Una lectura obligatoria en los docs oficiales, donde explican varios puntos débiles que se pueden explotar, como el almacenamiento y los content providers:
https://developer.android.com/intl/es/training/articles/security-tips.html