El hardening de apps (también conocido como fortificación o endurecimiento de aplicaciones) es un proceso de seguridad que tiene como objetivo mejorar la resistencia de una aplicación a posibles ataques informáticos. Este proceso implica la implementación de medidas de seguridad específicas en una aplicación para reducir su superficie de ataque y minimizar las vulnerabilidades.
Algunas de las técnicas comunes de hardening de apps incluyen:
Los 3 pilares de la seguridad de las apps
Predicción
e basa en el conocimiento de los factores que desencadenan los incidentes de seguridad y en el análisis de patrones anteriores para calcular los niveles de riesgo. Por ejemplo, si se detecta un patrón de uso inusual o una actividad sospechosa en la cuenta de un usuario, como intentos repetidos de inicio de sesión fallidos, podría indicar un intento de intrusión o un ataque de fuerza bruta.
Detección
Se basa en la alerta de actividad sospechosa en base a datos y patrones de fraude. Por ejemplo, en el caso del hardening de aplicaciones móviles, la detección de la escalada de privilegios alerta sobre el acceso no autorizado a datos protegidos o redes restringidas.
Prevención
Es el objetivo principal del hardening de aplicaciones móviles, y utiliza una serie de técnicas para ralentizar o impedir los intentos maliciosos de un atacante. Estas técnicas incluyen la ofuscación de código, la anti-manipulación, el emulador y la detección de jailbreak. El uso de estas técnicas puede prevenir ataques y proteger la seguridad de las aplicaciones móviles.
Técnicas de hardening
Ofuscación del código
Es eficaz para hacer que el código sea difícil de interpretar para el actor malicioso. Esto hace que sea más difícil para el atacante entender la lógica del código y volver a empaquetar su aplicación móvil mediante ingeniería inversa.
Ofuscación de datos
Se centra en ofuscar partes del código que contienen datos confidenciales. Así, si un hacker accede a una base de datos, la información sensible, como los datos financieros, aparecerá como una cadena de caracteres aleatorios.
Cifrado de recursos
Se utiliza para cifrar componentes de la aplicación, normalmente cadenas y clases.
Anti-depuración
Son una herramienta muy útil para los desarrolladores, los hackers los utilizan para realizar ingeniería inversa. Detecta y bloquea el uso malintencionado de depuradores.
Hardening activo
Cierra la sesión del usuario tras un periodo determinado de inactividad en la aplicación móvil. Se utiliza habitualmente en aplicaciones de banca móvil y otras aplicaciones que contienen datos confidenciales
Detección en emulador
Al ejecutar una aplicación en un emulador, el atacante puede comprender fácilmente la lógica del código de la aplicación y utilizarla para realizar ingeniería inversa. Detectan y evitan los intentos fraudulentos.
Teclados independientes
Ayuda a prevenir los ataques de keylogging. El keylogging es una técnica que se utiliza para rastrear y registrar cada pulsación de tecla realizada por el usuario en el otro extremo.
Hardening activo
Cuando existe autenticación mutua, el anclaje de certificados se utiliza para evitar ataques de intermediario. De este modo, se crea una capa de seguridad adicional que hace más difícil para el atacante comprometer el certificado anclado.
Detección de rooting y jailbreaking
Si un dispositivo está rooteado o tiene jailbreak, significa que todas las limitaciones de seguridad establecidas por el fabricante del dispositivo ya no están activas. Esta técnica garantiza que el usuario reciba una alerta en caso de que la seguridad del dispositivo se vea comprometida y tome medidas de seguridad adicionales.