Los analistas de Positive Technologies han publicado un estudio de escenarios de ataques comunes en aplicaciones y dispositivos móviles. En
nuestro artículo, los puntos principales de este documento.
Cómo se atacan los dispositivos móviles y las aplicaciones
Hay cinco escenarios de ataque principales. Entre ellos:
- Acceso físico . Si el teléfono fue robado o perdido, el propietario lo entregó al servicio o lo conectó a un cargador USB falso, todo esto abre la posibilidad de un ataque.
- Aplicación maliciosa en el dispositivo . A veces, estas aplicaciones pueden acceder al dispositivo incluso desde fuentes oficiales, Google Play y App Store (para Android , para iOS ).
- Atacante en el canal de comunicación . Al conectarnos a una red Wi-Fi, un servidor proxy o una VPN que no sean de confianza, nos volvemos vulnerables a los ataques en el canal de comunicación.
- Ataques a distancia . Un atacante puede actuar de forma remota, utilizando servidores de aplicaciones móviles u otros servicios para entregar un exploit.
- Ataques del lado del servidor . Aparte de todo lo demás, podemos considerar ataques en el lado del servidor de aplicaciones móviles, ya que en este caso el atacante no necesita acceder al dispositivo.
Hablemos con más detalle sobre cada una de las opciones y analicemos las posibles formas de protegerse contra tales ataques.
Ataques físicos
Hay varios escenarios principales para los ataques de acceso físico. Como regla general, implican el acceso de una persona a un teléfono inteligente directamente: esto sucede si el dispositivo es robado, el propietario lo perdió o lo llevó al servicio. Sin embargo, también existe un método de ataque bastante inusual, para el cual se utiliza una estación de carga maliciosa. Vamos a considerarlo.
Es posible que la estación de carga a la que conecte su teléfono inteligente a través de USB no sea del todo segura. Para las versiones modernas de los sistemas operativos Android e iOS, cuando se conecta desde un teléfono inteligente a una PC a través de USB, se requiere permiso para acceder al dispositivo. Sin embargo, esto no era necesario en Android 4.0 y versiones posteriores. Como resultado, cuando dichos dispositivos están conectados a estaciones de carga comprometidas o instaladas por piratas informáticos, se abre una oportunidad para un ataque. Su guión podría verse así:
- La depuración de USB está disponible en su teléfono inteligente con Android 4.0 o inferior.
- Se conecta a la estación de carga a través de un cable USB.
- La estación de carga maliciosa ejecuta el comando adb install malware.apk para instalar malware en su dispositivo.
- La estación de carga maliciosa ejecuta el comando adb am start com.malware.app/.MainActivity para iniciar esta aplicación maliciosa.
- Cuando se inicia, el troyano prueba varias técnicas de escalada de privilegios, obtiene privilegios de root y se adjunta al sistema. Ahora tiene acceso a todos los datos almacenados, incluida la autenticación (inicios de sesión, contraseñas, tokens) de todas las aplicaciones instaladas, así como acceso ilimitado a cualquier aplicación en tiempo de ejecución.
Cómo protegerse
En primer lugar, tenga cuidado de no dejar su teléfono y tableta desatendidos en lugares públicos. Asegúrese de establecer una contraseña para desbloquear su dispositivo o habilitar la seguridad biométrica si es posible. No eleve los privilegios a administrativos (jailbreak o root), desactive la visualización de notificaciones en la pantalla bloqueada.
Ataques con aplicaciones maliciosas
Hay varias fuentes de tales aplicaciones:
- Tiendas de aplicaciones oficiales: Google Play y App Store. Rara vez, pero incluso en los mercados oficiales, puede encontrar una aplicación maliciosa que pueda dañarlo a usted y a sus datos. A menudo, estas aplicaciones intentan obtener más instalaciones con nombres de clickbait como "Super Battery", "Turbo Browser" o "Virus Cleaner 2019".
- Sitios no oficiales y tiendas de aplicaciones (tienda de aplicaciones de terceros). Para los dispositivos Android, es suficiente permitir la instalación desde fuentes no confiables y luego descargar el archivo apk de la aplicación desde el sitio. Para dispositivos iOS, simplemente siga el enlace en el navegador Safari, confirme la instalación del certificado en el dispositivo, después de lo cual cualquier aplicación en esta tienda no oficial estará disponible para su instalación directamente desde el navegador.
- El usuario puede instalar una aplicación descargada de Internet mediante una conexión USB.
- Para los dispositivos Android, es posible descargar una parte de la aplicación al hacer clic en un enlace: el mecanismo Google Play Instant.
Al instalarse en un smartphone, dependiendo de los permisos recibidos, las aplicaciones maliciosas tendrán acceso a algunos datos almacenados, micrófono, cámara, geolocalización, contactos, etc. También podrán interactuar con otras aplicaciones instaladas a través de mecanismos de comunicación entre procesos (IPC / XPC). Si las aplicaciones instaladas contienen vulnerabilidades que pueden explotarse a través de esta interacción, la aplicación maliciosa puede aprovechar esto. Esto es especialmente cierto para los dispositivos Android.
Además, una aplicación maliciosa puede intentar obtener privilegios elevados en el sistema mediante la explotación de vulnerabilidades que le permiten obtener privilegios de root o fuga.
Cómo protegerse
Para protegerse contra tales ataques, se recomienda que primero evite instalar aplicaciones de fuentes no confiables. Las aplicaciones con nombres sospechosos también deben instalarse con precaución, incluso en las tiendas de aplicaciones oficiales, ya que ninguna verificación funciona perfectamente. Mantenga su sistema operativo y aplicaciones actualizados para eliminar la posibilidad de ataques a través de vulnerabilidades conocidas.
Ataques de enlace
Para que un atacante pueda operar desde el canal de comunicación, necesita realizar un ataque man-in-the-middle, es decir, para que todo el tráfico transmitido entre la aplicación móvil del cliente y el lado del servidor pase por el dispositivo del atacante. A veces se encuentran vulnerabilidades en aplicaciones que permiten tales ataques.
Por ejemplo, normalmente al establecer una conexión segura, la aplicación cliente verifica la autenticidad del certificado del servidor y si sus parámetros coinciden con los del servidor. Sin embargo, a veces los desarrolladores, por conveniencia, cuando trabajan en una aplicación, deshabilitan tales comprobaciones, olvidándose de habilitarlas nuevamente en la versión de lanzamiento. Como resultado, la aplicación acepta cualquier certificado de servidor para establecer una conexión segura, incluido el certificado del atacante.
Incluso si los certificados se verifican correctamente, el atacante todavía tiene una laguna: con algún pretexto para obligar a la víctima a instalar el certificado del atacante como certificado de confianza en su dispositivo. Además, si la aplicación en sí funciona de forma segura con el servidor, pero contiene enlaces a recursos de terceros descargados a través de HTTP, esto aún constituye una oportunidad para ataques de phishing.
Si un atacante logra hacerse con el control del tráfico entre la aplicación cliente y el servidor, esto le dará una serie de posibilidades:
- falsificar las respuestas del servidor, por ejemplo, para falsificar información bancaria o phishing;
- sustituya las solicitudes de solicitud del cliente, por ejemplo, cambiando el monto de la transferencia y la cuenta del destinatario;
- interceptar datos, como inicios de sesión, contraseñas, contraseñas de un solo uso, datos de tarjetas bancarias, historial de transacciones.
Como resultado, aprende los nombres de usuario y las contraseñas de la víctima de varias cuentas y puede usarlos para robar datos y robar dinero.
Cómo protegerse
No se conecte a puntos de acceso cuestionables, no utilice servidores proxy y VPN en los que no confíe en su información personal y bancaria. No instale certificados de terceros en el dispositivo.
Como regla general, la mayoría de las aplicaciones populares de mensajería instantánea y redes sociales están bien protegidas contra estos ataques; Si, por ejemplo, alguna de estas aplicaciones de repente se niega a funcionar a través de la conexión Wi-Fi actual, esto puede significar que este punto de acceso no es seguro y es mejor desconectarse de él para no poner en peligro otras aplicaciones, incluido su banco móvil.
Ataques remotos
Algunas vulnerabilidades en las aplicaciones móviles se pueden explotar de forma remota, y esto ni siquiera requiere el control de la transferencia de datos entre la aplicación y el servidor. Muchas aplicaciones brindan funcionalidad para manejar enlaces especiales, como myapp: //. Estos enlaces se denominan enlaces profundos y funcionan tanto en Android como en iOS. Al hacer clic en dicho enlace en un navegador, aplicación de correo o mensajero, se puede activar la apertura de la aplicación que puede manejar dichos enlaces. El enlace completo, incluidos los parámetros, se pasará a la aplicación del controlador. Si el controlador de enlaces contiene vulnerabilidades, entonces para su explotación será suficiente para obligar a la víctima a seguir el enlace malicioso.
Del mismo modo, los enlaces http:// y https:// más familiares se pueden procesar en dispositivos móviles; se pueden enviar a la aplicación en lugar del navegador; en algunos casos, esto puede suceder sin la confirmación del usuario.
Para los dispositivos Android, hacer clic en el enlace puede activar la descarga de la aplicación instantánea, lo que permite explotar de forma remota las vulnerabilidades asociadas con la instalación de una aplicación maliciosa.
Cómo protegerse
En este caso, la instalación oportuna de aplicaciones y actualizaciones del sistema operativo es la única forma de protegerse. Si no puede instalar la actualización o aún no se ha lanzado, puede dejar de usar temporalmente la aplicación afectada: desinstálela de su dispositivo o simplemente cierre la sesión.
Ataques del lado del servidor
Para atacar un servidor de aplicaciones móviles, un atacante, por regla general, solo necesita estudiar cómo la aplicación cliente interactúa con el servidor y, en función de la información recopilada sobre los puntos de entrada, tratar de modificar las solicitudes para detectar y aprovechar las vulnerabilidades.
A menudo, el dispositivo del back-end de una aplicación móvil no es diferente de una aplicación web. Como regla general, los servidores de aplicaciones móviles son incluso más simples y, a menudo, representan json o xml-api, rara vez funcionan con marcado HTML y JavaScript, como suelen hacer los sitios web.
Si comparamos las vulnerabilidades de las aplicaciones web y las partes del servidor de las aplicaciones móviles, vemos que las siguientes vulnerabilidades prevalecen en las aplicaciones móviles:
- protección insuficiente contra las credenciales de fuerza bruta: el 24% de las aplicaciones web y el 58% de los servidores de aplicaciones móviles contienen tales vulnerabilidades,
- Errores de lógica empresarial: 2% de las aplicaciones web y 33% de los servidores de aplicaciones móviles.
Nuestra investigación muestra que a menudo los usuarios de la aplicación pueden acceder a datos de otros usuarios: a números de tarjeta, nombres y apellidos, números de teléfono, etc. Además, el acceso se puede proporcionar erróneamente tanto en nombre de otro usuario como sin autenticación alguna, lo que se debe a la presencia de debilidades en la autenticación y autorización.
Cómo protegerse
En este caso, es poco lo que puede hacer el usuario medio. Sin embargo, puede mitigar los riesgos de ataques al servidor mediante el uso de una contraseña segura y la configuración de la autenticación de dos factores mediante contraseñas de un solo uso en todas las aplicaciones de misión crítica que hacen esto.
Para minimizar la probabilidad de un ataque exitoso a una aplicación móvil, sus desarrolladores deben verificar la viabilidad de cada uno de los escenarios descritos. Al desarrollar, es necesario tener en cuenta varios modelos de intrusos, y se deben tomar algunas medidas de protección en la etapa de diseño.
Una buena recomendación para los desarrolladores es implementar un ciclo de vida de desarrollo de seguridad (SDL) y revisar periódicamente la seguridad de la aplicación. Tales medidas no solo ayudarán a identificar oportunamente las posibles amenazas, sino que también aumentarán el nivel de conocimiento de seguridad de los desarrolladores, lo que aumentará el nivel de seguridad de las aplicaciones desarrolladas a largo plazo.
Publicado por Nikolay Anisenya, director del grupo de investigación de seguridad de aplicaciones móviles en Positive Technologies
Comentarios