Sobes.tech
Middle+

¿Cuál es su opinión sobre la ofuscación de código y qué métodos de protección de código considera que son los más efectivos?

sobes.tech AI

Respuesta de la IA

Positivo. La ofuscación aumenta la dificultad del ingeniería inversa, dificultando el análisis del código por parte de los atacantes.

Los métodos de protección más efectivos:

  • Ofuscación: Confusión de la lógica del código, cambio de nombres de clases, métodos y campos. Herramientas como R8/ProGuard.
  • Cifrado: Cifrado de datos sensibles y partes críticas del código.
  • Integridad del código: Verificaciones de integridad del código durante la ejecución para detectar modificaciones.
  • Ocultación de claves y secretos: Almacenamiento de datos sensibles en lugares seguros, por ejemplo, usando Android Keystore.
  • Protección contra depuradores: Detección y contramedidas contra intentos de conectar depuradores JDWP.
  • Detección de root/jailbreak: Desactivar funciones o salir de la aplicación al detectar un dispositivo comprometido.

Un enfoque integral que combina varios métodos proporciona la mejor protección.

Ejemplo de ofuscación básica con R8:

# Mantener todas las clases que extienden de Activity
-keep public class * extends android.app.Activity

# Prevenir que la optimización elimine anotaciones.
-keepattributes *Annotation*

# Mantener todos los métodos y campos en clases que son devueltas por este método.
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Eliminar explícitamente el archivo R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*