La mayoría de las aplicaciones móviles pueden verse comprometidas en 15 minutos …



En nombre de lanzar aplicaciones rápidamente y brindar una experiencia de usuario fluida, la seguridad de las aplicaciones móviles a menudo recibe poca atención.

El estado de la seguridad de las aplicaciones móviles no es sólido una gran mayoría de las aplicaciones de Android e iOS en todas las industrias y verticales carecen incluso de las protecciones de seguridad más básicas. Como resultado, pueden verse comprometidos con muy poco tiempo y esfuerzo. Índice de seguridad móvil de Verizon 2021, por ejemplo, descubrió que el 76% de los encuestados experimentaron presión para sacrificar la seguridad móvil en aras de la conveniencia.

En mi empresa, analizamos regularmente aplicaciones de empresas Fortune 500 para ayudar a evaluar sus debilidades de seguridad mediante pruebas de penetración de caja negra. Casi todas las aplicaciones que vemos pueden verse comprometidas en 15 minutos. No es que los desarrolladores no estén implementando ninguna medida de seguridad, lo están haciendo. Pero en la mayoría de los casos, las protecciones limitadas con las que nos encontramos se pueden eludir fácilmente utilizando herramientas disponibles de forma gratuita. En términos generales, las deficiencias de seguridad se pueden agrupar en tres categorías principales.

1. Endurecimiento de la aplicación débil o incompleto
La primera capa de defensa en cualquier estrategia de seguridad de aplicaciones móviles debe consistir en fortalecer o «proteger» la aplicación mediante la implementación de medidas básicas de autoprotección de aplicaciones en tiempo de ejecución (RASP) como anti-manipulación, anti-depuración, anti-reversión y jailbreak / prevención del enraizamiento. Es raro que nuestro equipo de seguridad se encuentre con aplicaciones que tengan más de una de estas protecciones en su lugar, y a menudo encontramos que las protecciones se implementan superficialmente (como anti-manipulación que solo verifica una vez en la inicialización de la aplicación) o codificadas en gran parte no -código fuente ofuscado.

2. Falta de ofuscación
La ofuscación del código dificulta que los atacantes comprendan el código fuente de una aplicación y los flujos de handle. Los piratas informáticos utilizan desensambladores, descompiladores y depuradores de código abierto disponibles gratuitamente para aplicar ingeniería inversa a las aplicaciones móviles y comprender el código fuente. Con esta información, pueden crear ataques más exitosos.

Incluso los ciberdelincuentes más hábiles pueden usar kits de herramientas de instrumentación dinámica como Frida para adjuntar a procesos en ejecución, conectarse a aplicaciones de forma remota e inyectar código dinámicamente en la memoria durante el tiempo de ejecución, lo que permite a los atacantes alterar el comportamiento, la funcionalidad, la lógica y el estado de una aplicación, todo mientras la aplicación se está ejecutando. Además, estas herramientas pueden ayudarlos a cubrir sus huellas para pasar desapercibidos.

Por ejemplo, Fb anunció recientemente que descubrió piratas informáticos chinos. malware incrustado en muchas aplicaciones populares de Android con temática uigur distribuidas en las tiendas de aplicaciones en línea que configuraron. Estas aplicaciones apuntaron, rastrearon y espiaron a activistas y periodistas del Etnia uigur viviendo en el extranjero.

3. Cifrado débil o insuficiente
La tercera área importante es la falta de protección de datos. La mayoría de las aplicaciones emplean un cifrado débil o insuficiente, y algunas ignoran por completo el cifrado de los datos almacenados en el código. Por ejemplo, en nuestras auditorías de seguridad, nuestros investigadores de seguridad casi siempre pueden acceder a claves de API altamente sensibles y secretos almacenados en claro como cadenas en la aplicación. También hemos podido interceptar nombres de usuario y contraseñas en claro mientras atraviesan una pink, como cuando un usuario inicia sesión en una aplicación de banca móvil. Otros lugares donde encontramos una gran cantidad de datos desprotegidos son las preferencias de la aplicación, las cadenas XML y los recursos de la aplicación.

Es de esperar que estos datos estén cifrados de forma predeterminada. En pocas palabras, no lo es. El cifrado de datos puede complicar el uso compartido de la autenticación y la autorización con servidores back again-end y otras aplicaciones, lo que degrada la experiencia del usuario si el cifrado la rompe. Además, hay una cantidad vertiginosa de elecciones que hacer en términos de tamaño / fuerza de clave, técnica de derivación de clave, fuerza de cifrado y algoritmos de cifrado. Todas y cada una de estas opciones pueden tener un efecto dramático en el rendimiento y la seguridad si son incorrectas.

Como resultado, en nombre de lanzar aplicaciones rápidamente y brindar una experiencia de usuario fluida, estas áreas críticas de la seguridad de las aplicaciones móviles a menudo reciben poca atención. Sin embargo, las consecuencias pueden ser nefastas. Estas deficiencias de seguridad permiten a los piratas informáticos hacerse cargo de las cuentas, comprometer las transacciones financieras, realizar superposiciones de pantalla y ataques de intermediario, inyectar código de forma remota y crear troyanos que se ven y se sienten como si fueran reales.

Asegurar estos exploits es difícil
Cerrar brechas de seguridad tan grandes requiere una defensa de aplicaciones de múltiples capas formada por características complementarias y autorreforzantes. Para lograr esto, los desarrolladores deben implementar múltiples técnicas de protección de aplicaciones como anti-manipulación, anti-depuración, anti-reversión, validación de suma de verificación y verificación de integridad de la aplicación, todas las cuales operan en diferentes capas de API nativas y no nativas en la aplicación. . Los datos en reposo deben cifrarse mediante métodos dinámicos de generación de claves para los datos almacenados en la zona de pruebas de la aplicación y en cualquier otro lugar donde los datos se encuentren en las aplicaciones. Los datos en tránsito deben protegerse contra ataques guy-in-the-center (MitM) mediante la implementación de la validación de certificados, la validación de la autoridad de certificación y la fijación segura de certificados. Los desarrolladores deben implementar la ofuscación para código nativo y no nativo, bibliotecas, marcos, clases y objetos, así como la lógica de la aplicación y la información de depuración.

El cifrado y la ofuscación son difíciles y complejos, pero implementarlos es mucho menos doloroso que sufrir un ataque importante, que podría causar un daño incalculable a la infraestructura de TI, las finanzas y la marca de una empresa. Vale la pena tomarse el tiempo para hacerlo bien.

Alan es vicepresidente de productos de seguridad en Appdome. Alan, ejecutivo de productos y emprendedor en serie desde hace mucho tiempo, se ha desempeñado anteriormente como jefe de producto para Palerra (adquirido por Oracle) y Arcsight (adquirido por HP). Ver biografía completa

Lectura recomendada:

Más información





Enlace a la noticia first