Un grupo de investigadores descubrió recientemente vulnerabilidades en una aplicación que permite la inserción de publicidades, InMobi, y que es utilizada por más de 2000 aplicaciones en el mercado Google Play. Se trata de un SDK (Kit de Desarrollo) legítimo con ciertas características de acceso a información sensible que, de ser explotadas, podrían amenazar la seguridad y privacidad del usuario. Así, un atacante podría enviar mensajes SMS, tomar fotos o compartir contenidos en redes sociales, entre otras cosas, sin el consentimiento explícito del usuario.
Actualmente muchas aplicaciones de diversos tipos vienen empaquetadas con algún SDK de publicidad: los desarrolladores usualmente no programan sus propios clientes, sino que contratan aplicaciones desarrolladas a tales efectos. En este caso, ante la explotación de una vulnerabilidad en la aplicación de publicidad, todas las aplicaciones que la incluyan se verán afectadas. El problema de este enfoque desde el punto de vista de la seguridad es que, aún cuando la vulnerabilidad sea corregida, muchas de las aplicaciones verán pasar un periodo de tiempo hasta la actualización, en el que sus usuarios estarán afectados. Y para este caso en particular, de esas 2000 aplicaciones en Google Play afectadas, se estima que ellas han sido descargadas 100 mil veces cada una en promedio, lo que representa más de 2 mil millones de aplicaciones descargadas en peligro.
Los investigadores de FireEye describen estas vulnerabilidades en su reporte bajo el nombre de JavaScript Sidedoors; es decir, lograr el acceso y control del smartphone a través de una puerta o entrada "al costado", mediante la ejecución de código JavaScript. En particular, la aplicación de InMobi ofrece una interfaz para que código en JavaScript pueda acceder a determinadas funciones. Sin embargo, estas funciones pueden ser en cierta forma intrusivas y podrían ser utilizadas con fines maliciosos. Por lo tanto, un cibercriminal podría llevar a cabo un ataque del tipo man-in-the-middle, no solamente interceptando los datos HTTP, sino también inyectando código malicioso en JavaScript, de tal modo que sea ejecutado por InMobi, bajo los permisos de la aplicación que la contiene. A continuación se muestra una lista con algunas de las funciones ofrecidas por la interfaz de InMobi, y la acción maliciosa relacionada, que un criminal podría llevar a cabo:
- createCalendarEvent ==> creación de eventos en el calendario del smartphone
- sendSMS ==> envío de mensajes de texto para suscripción a números premium
- postToSocial ==> compartir contenidos en redes sociales desde el smartphone
- takeCameraPicture ==> tomar fotos con la cámara del dispositivo
- getGalleryImage ==> acceso a las fotos e imágenes en el dispositivo
Si bien es necesario que el usuario brinde su consentimiento en algún punto, para que la realización de estas acciones maliciosas sea concretada, también es cierto que los cibercriminales utilizan diversas técnicas de Ingeniería Social para engañar al usuario. Por ello, resulta fundamental no aceptar las peticiones sin antes observar qué se está solicitando, denegando el acceso a todo aquello que no sea realmente necesario. Además, dado que la vulnerabilidad descripta es un problema de los desarrolladores de aplicaciones, los usuarios podrían inclinarse a pensar que no hay nada que hacer. Esto es erróneo: como usuarios debemos protegernos con las acciones descriptas y con una solución de seguridad que detecte y bloquee en forma proactiva cualquier tipo de comportamiento malicioso en el dispositivo.
Finalmente, recomendamos a todos aquellos desarrolladores de aplicaciones de Android que usen este SDK, que realicen la actualización pertinente a la versión 4.0.4 de InMobi. Dentro de los cambios anunciados, a partir de esta versión, se impidió la función de llamada telefónica sin la previa autorización del usuario. De esta forma, se puede mitigar el impacto de los posibles ataques mencionados anteriormente.
Matías Porolli
Especialista de Awareness & Research