El objetivo del hardening de aplicaciones es aumentar el esfuerzo que normalmente necesitaría un hacker para manipular una aplicación móvil.
El hardening de aplicaciones móviles es un método dentro de la ciberseguridad que aplica diversas técnicas para salvaguardar las aplicaciones móviles del fraude. El hardening de aplicaciones está dirigido principalmente a encontrar y prevenir ataques de manipulación e ingeniería inversa. Las técnicas de hardening de aplicaciones móviles, cuyo objetivo es dificultar el avance de los hackers durante un ataque, forman parte de las mejores prácticas de seguridad de aplicaciones móviles que cualquier propietario de una aplicación debe tener en cuenta si maneja datos confidenciales de usuarios o empresas.
¿Qué es el hardening de aplicaciones móviles?
El hardening de aplicaciones móviles es un método para mejorar las medidas de seguridad de una aplicación con el fin de evitar intentos de manipulación e ingeniería inversa. El objetivo del hardening de aplicaciones es aumentar el esfuerzo que normalmente necesitaría un hacker para manipular una aplicación móvil. Como hay muchas formas de manipular una aplicación móvil, existen varias técnicas de hardening de aplicaciones móviles, cada una centrada en una amenaza específica para la seguridad de las aplicaciones móviles. Lo que hace grande al hardening de aplicaciones móviles es su capacidad para responder tanto al análisis estático como al dinámico.
El análisis estático consiste en descompilar o desensamblar la aplicación en una máquina local, es decir, fuera de línea. El objetivo del análisis estático es acceder al código fuente, comprender la lógica del código y, por último, aplicar ingeniería inversa a la aplicación. Además, el actor malicioso podría examinar el código para explotar posibles vulnerabilidades y extraer información sensible del usuario y de la empresa.
El análisis dinámico se lleva a cabo mediante la manipulación remota de la aplicación, normalmente a través de ataques de hooking y depuradores. El atacante observa la ejecución del código mientras la aplicación se ejecuta en un dispositivo de prueba. Esto permite al atacante obtener una clara comprensión de la lógica del código y manipular la aplicación, probándola a la vista. Un ejemplo de manipulación maliciosa de una aplicación sería saltarse por completo el proceso de autenticación.
Con las actuales políticas de seguridad de confianza cero, el hardening de aplicaciones móviles es una herramienta necesaria para mejorar la seguridad de su aplicación móvil. Las aplicaciones desprotegidas no sólo están sujetas a pérdidas financieras debido a una violación de datos, sino que también podrían sufrir daños en su reputación, así como tener que rendir cuentas por comprometer datos sensibles de los usuarios, siendo todo ello muy difícil de recuperar.
Los tres pilares de la seguridad de las aplicaciones móviles
La implementación de la seguridad de las aplicaciones móviles se basa en tres componentes principales que contribuyen a una aplicación móvil totalmente protegida. Los tres pilares son la predicción, la detección y la prevención. El hardening de aplicaciones móviles está demostrando ser eficaz tanto en la detección como en la prevención de ataques a aplicaciones móviles, lo que lo convierte en un método imprescindible dentro de su conjunto de herramientas de seguridad de aplicaciones móviles.
Predicción
Para saber el momento justo para reaccionar, hay que conocer los factores desencadenantes que hacen sonar las alarmas. Basándose en incidentes anteriores y en conclusiones fundamentadas, el software de supervisión de fraudes de ciberseguridad traza una imagen de los patrones de fraude anteriores y calcula los niveles de riesgo para diversos escenarios. Con la actividad cibercriminal actual, hay mucho terreno que cubrir, y el panorama de las amenazas no hace más que crecer. Esto pone de manifiesto la necesidad de invertir en una solución de supervisión del fraude que amplíe continuamente su base de datos de posibles amenazas, asegurándose de que la solución evoluciona a medida que surgen nuevos patrones de fraude.
Detección
Al disponer de datos y patrones de fraude, la solución de supervisión del fraude le alertará en caso de actividad sospechosa. En el caso del hardening de aplicaciones móviles, una de las técnicas de hardening es la escalada de privilegios: el sistema reconoce que un usuario no autorizado se ha concedido acceso a datos protegidos o redes restringidas. La forma más común de sobrepasar el control del sistema es mediante jailbreaking o rooting. Si la detección de escalada de privilegios está instalada, te avisará en caso de que el sistema se vea comprometido.
Prevención
Dicen que la prevención es la mejor cura, y cuando se trata de ciberseguridad, esto no puede ser más cierto. En términos de hardening de aplicaciones móviles, se menciona que su principal objetivo es exactamente ese: la prevención. Una serie de técnicas de hardening están dirigidas a ralentizar e, idealmente, impedir que un atacante ejecute su intención maliciosa. Algunas de las técnicas de aplicaciones móviles más utilizadas para prevenir ataques son la ofuscación de código, la anti-manipulación, el emulador y la detección de jailbreak, todas ellas explicadas en los siguientes capítulos.
¿Cómo previene el hardening de aplicaciones los ataques a aplicaciones móviles?
Para tener una mejor idea de cómo funciona el hardening de aplicaciones móviles en acción, tomaremos como ejemplo una de las técnicas de hardening más populares, la ofuscación de código. Tened en cuenta que el hardening de aplicaciones móviles no se limita a una única técnica. Es un conjunto de mecanismos de seguridad que funcionan mejor si se combinan.
La ofuscación de código es una técnica de hardening de aplicaciones móviles basada en impedir que el usuario lea sin esfuerzo el código fuente al que ha accedido. Se basa en numerosas subtécnicas como la ofuscación de renombre, el empaquetado, la inserción de código ficticio, etc. El objetivo principal de la ofuscación de código es alterar el código original de forma que no pueda ser interpretado por el atacante. Por supuesto, la alteración del código no afecta a ninguna función ni a las métricas de rendimiento final de la aplicación móvil.
La ofuscación del código puede ser parcial o completa. Por ejemplo, cifrar el código se considera un método de ofuscación de código. Limpiar el código de metadatos, evita que el atacante obtenga contexto adicional, y también es un método de ofuscación. Otra técnica comúnmente utilizada es la ofuscación del flujo de control: añadir código muerto y sentencias arbitrarias que, al final, no se ejecutan. Esto lleva al atacante en la dirección equivocada. Para saber más, lea un artículo dedicado y en profundidad sobre la ofuscación de código.
Tipos de hardening de aplicaciones móviles
Dado que los piratas informáticos utilizan análisis estáticos y dinámicos para manipular su aplicación, dispone de hardening pasivo y activo de aplicaciones móviles para protegerla. El hardening pasivo ofrece protección frente al análisis estático, mientras que el hardening activo protege su aplicación frente al análisis dinámico.
Hardening pasivo de aplicaciones móviles
El hardening pasivo se basa en métodos que impiden a los actores maliciosos leer el código de una aplicación a la que se accede localmente: la ofuscación. El objetivo es hacer que el código sea difícil de leer para el malhechor. Otra opción es guiarles en la dirección equivocada introduciendo fragmentos de código sin sentido o lógica redundante que no afecte al rendimiento de su aplicación móvil.
Hardening activo de las aplicaciones móviles
El hardening activo incluye mecanismos de seguridad que permiten a la aplicación protegerse en tiempo de ejecución. En caso de que el mecanismo de seguridad reconozca un patrón parecido a un ataque de enganche o a un dispositivo con jailbreak, responderá en consecuencia sin intervención humana. Las opciones de respuesta varían en función de la configuración; la aplicación terminará automáticamente la ejecución, notificará al propietario de la aplicación sobre una amenaza potencial o mostrará un valor falso que impida al atacante seguir avanzando.
Técnicas de hardening de aplicaciones móviles
Como ya se ha mencionado, las técnicas de hardening de aplicaciones móviles no se limitan a un único mecanismo de seguridad. Incluyen una amplia variedad de técnicas de hardening, cada una de las cuales previene una amenaza individual. Por eso, las mejores prácticas de seguridad para aplicaciones móviles siempre hacen hincapié en un enfoque por capas para proteger su aplicación móvil. Las siguientes secciones ofrecen una visión general de las técnicas de refuerzo de aplicaciones móviles más utilizadas.
Ofuscación del código
La ofuscación de 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. Mientras el código de la aplicación está ofuscado, esto no tiene ningún efecto sobre las funcionalidades de la aplicación móvil y las métricas de rendimiento.
Ofuscación de datos
Similar a la ofuscación de código, esta técnica de hardening de aplicaciones móviles 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
El cifrado de recursos es una técnica de hardening de aplicaciones móviles que se utiliza para cifrar componentes de la aplicación, normalmente cadenas y clases.
Anti-depuración
Aunque los depuradores son una herramienta muy útil para los desarrolladores, los hackers los utilizan para realizar ingeniería inversa. Esta técnica de hardening de aplicaciones móviles detecta y bloquea el uso malintencionado de depuradores.
Expiración automática
La caducidad automática 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 de usuarios y empresas.
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. La detección de emuladores es una de las técnicas fundamentales de hardening de aplicaciones móviles que detectan y evitan los intentos fraudulentos.
Teclados independientes
Incluir teclados independientes en su aplicación móvil ayuda a prevenir los ataques de keylogging. El keylogging es una técnica de hardening que se utiliza para rastrear y registrar cada pulsación de tecla realizada por el usuario en el otro extremo. En caso de que la herramienta de registro de pulsaciones registre la introducción de credenciales de usuario o información financiera, un teclado independiente ocultaría las acciones del usuario a la parte maliciosa.
Fijación de certificados
Cuando existe autenticación mutua, el anclaje de certificados se utiliza para evitar ataques de intermediario. Normalmente, los certificados anclados (o aprobados) se incrustan en la aplicación durante el proceso de desarrollo. 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. Si decidís hacer jailbreak/root a tu teléfono, tened en cuenta que los datos de tus aplicaciones y las claves de seguridad son extremadamente vulnerables a los ataques. Esta técnica de hardening de aplicaciones móviles garantiza que el usuario reciba una alerta en caso de que la seguridad del dispositivo se vea comprometida y tome medidas de seguridad adicionales.
Ventajas del hardening de aplicaciones móviles
Protección de la reputación de la empresa y de la imagen de marca
Una baja cobertura de seguridad de las aplicaciones móviles no sólo le afecta económicamente: está poniendo en riesgo la imagen y la reputación de su marca. La noticia de una violación de datos se extenderá rápidamente y los consumidores desinstalarán su aplicación aún más rápido. Al invertir en una solución de refuerzo de aplicaciones móviles, está ganando tanto una ventaja competitiva como la confianza de sus consumidores.
Protección de seguridad de confianza cero
En caso de que la aplicación se realice para fines empresariales, los smartphones son más difíciles de gestionar que otros dispositivos de la empresa. Los trabajadores remotos tampoco son ajenos al uso de teléfonos de empresa para fines privados. Garantice la seguridad de su aplicación mediante el hardening de aplicaciones móviles, independientemente del entorno en el que se ejecute.
Protección de información sensible
Si su aplicación maneja cualquier tipo de información sensible, ya sea relacionada con el usuario o con la empresa, implementar el hardening de aplicaciones móviles es una decisión inteligente. Una filtración de datos pone en peligro la información de su empresa y de toda su base de clientes.
Prevención de ingeniería inversa
Para realizar ingeniería inversa en una aplicación móvil, el atacante normalmente necesita acceder al código fuente de la aplicación. Si se aplican técnicas de hardening, como la ofuscación de código, se garantiza que no se realizará ingeniería inversa.
Mecanismos anti-manipulación
Los métodos anti-manipulación, como las comprobaciones de integridad, impiden al atacante manipular la aplicación y extraer datos confidenciales.
Cumplimiento de la normativa
Debido a los fraudes conocidos y emergentes en torno al móvil, existen requisitos normativos que exigen que las aplicaciones móviles dispongan de mecanismos de seguridad específicos. Por ejemplo, la norma PCI-DSS, destinada a proteger la información almacenada de tarjetas de crédito, establece lo siguiente:
«Las aplicaciones móviles de aceptación de pagos deben estar reforzadas para evitar el acceso lógico no intencionado o la manipulación de la aplicación».
Prevención de la pérdida de datos financieros
Las técnicas de hardening de aplicaciones móviles, como la ofuscación de datos, enmascaran la información sensible del usuario, incluidos los datos financieros; una técnica de hardening de aplicaciones móviles que debería incorporarse en todas las aplicaciones de banca móvil.
Protección de aplicaciones móviles y App Protector de ASEE
El hardening de aplicaciones móviles le da tranquilidad cuando su aplicación se ejecuta en entornos no fiables. Un enfoque por capas de la seguridad de las aplicaciones móviles es la forma de lograr la máxima protección. Al combinar varios métodos de refuerzo y mecanismos de seguridad de aplicaciones móviles, protegerá tanto a su empresa como a los usuarios de su aplicación.
App Protector, una solución diseñada pensando en la seguridad de las aplicaciones móviles, es un mecanismo de seguridad integrado en el entorno de ejecución de la aplicación móvil. Sus capacidades incluyen la detección de una intrusión en una fase temprana de fraude, la prevención de ataques en tiempo real, así como el control sobre la ejecución de la aplicación. App Protector está orientado a la protección de aplicaciones móviles frente a múltiples amenazas, como ataques de emulador, detección de jailbreak/root, depuración, grabación de pantalla y ataques de hooking.