La transformación digital está afectando a todas las industrias y la rutina de prácticamente todas las personas que cuentan con un Smartphone. Para muchas empresas, su aplicación móvil se ha vuelto el canal principal de comunicación con sus clientes.
Por ejemplo, los bancos, prácticamente todos los servicios se ofrecen ahora vía la aplicación móvil y las FinTech, empresas más pequeñas que están desarrollando aplicaciones muy eficientes, de muy buena calidad, están compitiendo con bancos que llevan mucho tiempo establecidos brindando servicios que cubren nichos no cubiertos anteriormente por estas grandes instituciones.
Para otras industrias donde tradicionalmente tener una aplicación móvil no era prioritario, como los restaurantes o las cadenas comerciales, el COVID ha puesto a la aplicación móvil como ese único canal de comunicación, por algunos meses ya, donde tener o no este canal ha permitido que algunos de estos negocios sobrevivan, mientras otros no tendrán el tiempo suficiente para ajustar su modelo de negocio.
Siendo este canal ahora el más importante para los negocios, se ha vuelto un objetivo importante para los hackers también. La realidad es que la seguridad dentro de la aplicación, no era una prioridad para muchos negocios, la inversión se estaba haciendo principalmente en la funcionalidad de la aplicación. Los desarrolladores en base a su conocimiento, protegen lo mejor que pueden su aplicación, pero la prioridad real es otorgar funcionalidades al negocio, no tener una aplicación suficientemente blindada para desanimar a los atacantes, esto implica un esfuerzo mayor que toma mucho tiempo lograr.
Hay muchas formas de atacar una aplicación, para hackers expertos que cuentan con muchas herramientas, resulta muy ahora fácil tomar el control de una aplicación móvil, como ya lo hemos leído en tantos artículos ó historias recientes. Con estas herramientas, los hackers pueden ver lo que está haciendo la aplicación, desensamblarla y decompilarla ó simplemente posicionarse entre la aplicación y los servicios externos que utiliza. En ocasiones, utilizan vulnerabilidades conocidas de iOS ó Android.
¿Cuáles son las principales vulnerabilidades de una aplicación móvil que explotan los atacantes y que debería mi empresa preocuparse en limitar?
- Los datos son el objetivo principal para el atacante: Datos almacenados en tu dispositivo o los que la aplicación te trae desde la infraestructura central. Ellos podrán usar posteriormente esta información para su ataque.
- Aprovechar las vulnerabilidades conocidas del sistema operativo del dispositivo (conocido como Jailbreak or Rooting), porque por defecto todas las aplicaciones confían en la seguridad del sistema operativo. Si el sistema operativo está comprometido, extraer la información de la aplicación o del lugar donde la aplicación guarda los datos resulta sencillo.
- La comunicación Móvil. Suponiendo que la aplicación está bien protegida a nivel dispositivo y el ataque 1 y 2 no funcionaron. ¿Qué pasa con las comunicaciones que salen y entran al dispositivo móvil? Uno de los ataques más comunes es el conocido como MiTM (Man in the Middle) o “intermediario entre las comunicaciones”, que se da en conexiones que no están debidamente protegidas. El hacker “escucha y manipula” la conversación entre el dispositivo móvil y la aplicación central.
- Cuando las primeras 3 alternativas parecen estar cubiertas, pero la aplicación o empresa siguen siendo muy atractivas para los atacantes, ataques más sofisticados se están dando donde los hackers “imitan” el comportamiento de una aplicación. El usuario descarga una aplicación cuya interfaz y comportamiento es idéntico a la original, pero el objetivo es obtener esos datos con los que el usuario trabaja con esa aplicación y lograr infiltrarse en la infraestructura que da servicio a esta aplicación de manera más permanente. Para lograr esto, los atacantes analizan la aplicación, interfaz, flujos, procesos, ingeniería reversa, etc.
Afortunadamente las empresas comienzan a tomar conciencia de la magnitud de este problema ahora, hay tendencias en las que se están modificando los procesos de desarrollo donde ya se comienza a involucrar más al departamento de seguridad en etapas tempranas del proceso de desarrollo (conocido como DevSecOps), primero identificando y limitando los riesgos más importantes y después implementando soluciones existentes que ayudan a blindar la aplicación, el código, las comunicaciones y los datos. Para implementar algunas de estas soluciones no es necesario hacer toda una revisión exhaustiva de código, ni cambios drásticos en el código fuente, por lo que el tiempo de implementación y el retorno en la inversión es sumamente rápido.