Hace
unos días, la cadena de televisión Cuatro emitió un reportaje sobre el "Espionaje en la Red" al cual
Hispasec fue invitado con la propuesta de ilustrar a la audiencia de los peligros que supone el uso,
irresponsable o al menos despreocupado, de la tecnología. Tras la emisión
del programa muchos de los lectores de Una-al-día y algunos clientes nos han
hecho llegar varias preguntas que giran en torno a "¿Cómo lo habéis hecho?". Vamos a haceros partícipes del "Cómo se hizo" en un plano técnico
que permita darle una perspectiva más profunda.
En primer lugar, para los que no
pudisteis ver el programa en su momento:
Los requisitos iniciales eran
claros: se quería demostrar el potencial de los dispositivos móviles para poder
ser espiados. Para ello nos pusimos a desarrollar una aplicación "ad-hoc" con las siguientes
características:
- Registro de credenciales bancarias
- Monitorización GPS
- Lectura de contactos del dispositivo
- Fotografías con la cámara frontal y trasera
- Extracción de las fotografías del dispositivo
- Lectura de los SMS enviados y recibidos
- Vídeos en tiempo real
La aplicación, que se puede
considerar un malware o troyano, fue realizada para Android ya que es el
sistema operativo móvil más usado junto a iOS y sobre todo debido a la
flexibilidad de crear aplicaciones para él.
Antes de nada, el estudio sobre
la vida social de Nacho Medina y el phishing donde se le pide que instale la
nueva versión de su aplicación de Banca Online fue igualmente efectuado bajo
estricta planificación y ejecución. El APK y la infraestructura del phishing fueron
alojados en un servidor controlado por Hispasec.
Interfaz
En primer lugar, para la
presentación de los datos recogidos del dispositivo se decidió crear una
interfaz de usuario para hacer más visual la información recopilada del
usuario. Algo necesario para mostrar al público en general la operativa de
manera gráfica. En ésta se mostraban los contactos de la agenda del teléfono,
los SMS enviados y recibidos, el mapa de posicionamiento de la víctima (en este
caso Nacho Medina, el presentador) y un pequeño visor de las imágenes del
dispositivo. La interfaz era completamente operacional. Agradecemos su diseño a
nuestro compañero Daniel Vaca (@Diviei), ninja experto en Javascript.
Registro de credenciales
bancarias
La primera característica que
debería tener el malware era poder robar las credenciales bancarias de la
víctima. Para ello copiamos la interfaz de usuario de su aplicación bancaria y
redirigimos el envío de datos hacia nuestro servidor. Así, cuando Nacho
introdujo sus credenciales las guardamos para posteriormente analizar todos sus
movimientos bancarios (visible en la parte final del reportaje). Un esquema
clásico del comportamiento del malware actual. Captura y "dropeo" de los datos robados.
Monitorización GPS
Otra de las características que
se mostró fue la monitorización de la víctima geográficamente, es decir, dónde
estaba en cada momento. Para esto utilizamos el GPS del teléfono móvil y una
rutina en "background"
en el dispositivo, que cada 5 segundos nos enviaba la ubicación GPS
(longitud y latitud) junto con la exactitud de la misma.
Con esta información se procedió
a mostrarla de forma interactiva en un mapa para ver en qué posición se
encontraba en cada momento. Como es lógico, la tecnología GPS no es totalmente
exacta, y menos cuando se trata de un móvil que puede perder la cobertura
cuando se encuentra en sitios cerrados, por eso en ciertas ocasiones durante el
reportaje aparecen fluctuaciones en el mapa visualizado. Aunque esto último
podríamos haberlo simulado parcialmente para evitar "rarezas", preferimos adherirnos a la realidad y mostrarlo con
sus virtudes y defectos.
Lectura de contactos del
dispositivo
Leer la agenda de la víctima es
otro de los puntos de este reportaje, así se podía mostrar la peligrosidad de
la aplicación en este aspecto, el robo de los contactos de cualquier víctima
potencial. Este mecanismo en Android, hablando de la parte programática, es
bastante simple, por lo que se recogió la agenda, con los números de teléfono y
se envió al servidor para posteriormente visualizarlos en la interfaz de
usuario, eso sí, con todos los datos alterados cuando se muestran en la
interfaz.
Fotografías con la cámara
frontal y trasera
Se quería enseñar cómo un malware
puede tomar el control de las cámaras de nuestro dispositivo sin que nosotros
seamos conscientes. Para ello se implementó un simple sistema que bajo demanda
tomaba fotografías con la cámara frontal o trasera sin mostrar ningún tipo de
aviso o pantalla al usuario. Estas fotografías, una vez tomadas, eran enviadas
hacia nuestro servidor y posteriormente visualizadas en la interfaz.
Extracción de las fotografías
del dispositivo
Muchas aplicaciones que tenemos
instaladas en nuestro dispositivo tienen los permisos y la capacidad para
acceder a nuestras fotos y vídeos, aunque no seamos conscientes. En este caso
con la ayuda del malware desarrollado, justo después de instalarse en el
dispositivo, se procedió a recorrer la galería de fotografías y enviarlas al
servidor que preparamos para el evento. Posteriormente a través de la interfaz
desarrollada se podía visualizar en un carrusel.
Lectura de SMS enviados y
recibidos
La mayoría del malware bancario para Android realiza este tipo de acción. La razón es muy simple, muchas entidades bancarias recurren al envío de SMS como segundo método de autenticación para la emisión de transferencias u otras operaciones. Para poder capturar estos SMS y poder completar las transferencias fraudulentas los atacantes realizan este tipo de malware. En nuestro caso, en primer lugar recogimos todos los SMS que el usuario tenía en el teléfono y cada vez que enviaba o recibía uno, se volvía a contactar con el servidor para registrarlo. Así David y Jorge podían ver los SMS que Nacho Medina estaba enviando.
Vídeos en tiempo real
El vídeo en tiempo real mejor con 4G |
Tanto el código de la
infraestructura como el de la aplicación móvil no van a ser liberados. Aunque
quien sabe, igual Nacho lo envió a Koodous y ahora descansa perdido entre los
ocho millones de muestras ;)
glup ¡¡¡¡
ResponderEliminar¡¡¡¡Dios mio.!!!!
ResponderEliminar