Resistencia a la manipulación de Android: ¿BuildConfig.DEBUG spoofing?

1

Nuestro equipo está tratando de asegurar una aplicación móvil nativa para Android.

Entre otras cosas, estamos utilizando Dexguard para algunas comprobaciones como tamper , root y detector de emuladores .

Larga historia corta: algunas de estas comprobaciones fallan en nuestras versiones de depuración, principalmente porque queremos mantener los tiempos de construcción cortos para los desarrolladores, y necesitamos alguna forma de omitirlas [1].

La sugerencia del soporte oficial de Dexguard fue usar algo como esto:

if(!BuildConfig.DEBUG){
    // do actual check if app has been tampered with
}

Ahora me preocupo:

¿Este condicional no hace que los controles de manipulación sean muy fáciles de eludir para un atacante?

Mi temor es que si un atacante intenta manipular la aplicación, puede hacerlo fácilmente si también es capaz de hacer que piense que se trata de una versión DEBUG. Así, con poco esfuerzo, todos los (costosos) controles de manipulación de Dexguard son eludidos ...

¿Están justificadas mis preocupaciones? ¿Incluir un condicional como el de arriba hace que la manipulación de la aplicación sea más fácil para los atacantes?

[1]: El fondo aquí es: Dexguard hace que las construcciones tomen mucho tiempo. Por ejemplo, 50 segundos en lugar de 5 segundos para volver a ejecutar una prueba unitaria simple. Debido a esto, inhabilitamos Dexguard para nuestra compilación de depuración, que a su vez hace que algunas de las comprobaciones (como la detección de sabotaje) fallen, ya que dependen de que el Dexguard procesa la APK.     

pregunta fgysin 16.05.2017 - 10:47
fuente

1 respuesta

2

Como su código de muestra muestra que si el atacante usa una versión de depuración, puede omitir fácilmente las comprobaciones de seguridad. En realidad necesitas las directivas del compilador para hacer eso.

Al usar las directivas de compilación, la parte de los códigos marcados como DEBUG nunca se compila para la aplicación final y, por lo tanto, estás seguro usando ese método.

    
respondido por el Xaqron 16.05.2017 - 13:31
fuente

Lea otras preguntas en las etiquetas