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 |
Otra de las características que
tiene el malware es la del vídeo en tiempo real. Esto le da vistosidad a la
grabación del reportaje, así que estuvimos realizando algunas pruebas en el Laboratorio y vimos que técnicamente era posible, pero la conexión 3G (el móvil
no soportaba 4G) hacía que la calidad del vídeo fuese muy baja y no lo
suficientemente llamativa para ser mostrada en un reportaje televisivo.
Finalmente decidimos simularlo grabando vídeos off-line y posteriormente
insertándolos en la interfaz. Es decir, es posible grabar video y extraerlo,
pero en el reportaje quedaba mejor ilustrar este concepto con videos de alta
calidad.
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 ;)