sábado, 30 de marzo de 2019

Crónica RootedCon 2019: Día 3

Hoy he empezado el día con el despiste de pensar que llegaba tarde pensando que llegaba tarde por el cambio de hora. Ese cambio de hora que se hace entre el sábado y el domingo, y no hoy sábado.

Al llegar he visto a Alberto (@albert0r) y a Chencho (@chencho) de la organización con los que nos hemos hecho un selfie.



Además, me tenían una sorpresa preparada antes de empezar las charlas: subir al escenario para decirme que voy a hacer las crónicas oficiales de RootedCon. Una vez más: ¡¡Muchisimas gracias!! Además, hoy he participado haciendo más preguntas que los otros días (y saliendo de voluntario).

La primera charla la han dado Pablo González (@pablogonzalezpe) y Enrique Blanco (@eblanco_h).

RootedCon 2019 - Pablo González y Enrique Blanco - Autoencoders, GANS y otros chicos del montón
RootedCon 2019 - Pablo González y Enrique Blanco - Autoencoders, GANS y otros chicos del montón
Después de la introducción y de enumerar las cosas con las que hacen pruebas en Telefónica han empezado hablando de las noticias falsas. Si bien han explicado que muchas veces se habla de ellas cuando son escritas, también existen técnicas que permiten poner palabras en boca de otros a través de vídeos. Y para ello se utiliza la IA y el machine learning. Aunque también permiten detectar anomalías en la red o phising. Han descrito los distintos tipos de aprendizaje (inductivo: supervisado, no supervisado y semi-supervisado; reforzado). El módulo de machine learning hace falta entrenarlo y alimentarlo llegando a durar varios días. Además han explicado las redes neuronales, qué son los autoencoders y los GANs (entre dos imágenes, una indubitada se mira si la otra es real o falsa). Con los autoencoders Han hecho una demo con dos vídeos. Con GANs han permitido capturar con una webcam la cara de una persona (¡la mía!) haciendo que parezca que Chema Alonso estaba delante de ella.


También han mostrado una demo en la que se permitiría hacer algo parecido con audio, pero a día de hoy sólo es eficiente cuando se está hablando en inglés o en chino. También han explicado las contramedidas para detectar estas manipulaciones y las fake news. Entre otras, algunos recursos que permiten analizar urls, patrones biométricos, cambios de colores en los píxeles, patrones en el parpadeo de los ojos, etc.

Al final esta charla, Miguel Ángel de Castro Simón (@madecastrosimon) y Pablo San Emeterio (@psaneme) en la que han hablado de los disclousures que se hacen al mandar los e-mails a sistemas de análisis. 

RootedCon 2019 - Pablo San Emeterio y Miguel Ángel de Castro - Another bad e-mail
RootedCon 2019 - Pablo San Emeterio y Miguel Ángel de Castro - Another bad e-mail
Han empezado diciendo que los e-mails deberían de haberse llamado postales porque como se puede ver el contenido sin problema... La charla viene de un análisis que tuvieron que hacer como consecuencia de un malware a un banco pakistaní al les robaron una gran cantidad. En la investigación se encuentran con un e-mail que contiene un adjunto que es un malware y que éste se conecta a una dirección que todavía responde. Nos han nombrado varias herramientas: mail mincer para automatizar la investigación y ésta a su vez se vale de otras. Wildfire, Virustotal, Diario (suya propia a la que nos han dado la opción de poder pedir acceso: diario.e-paths.com). Al almacenar todas herramientas los ficheros se mandan pudieron obtener muchas estadísticas de los e-mails pudiendo analizar todos los datos posibles: asunto, cuerpo, adjuntos, pié (junto con los disclaimers de no lo leas si no es para tí pero ya lo has leído), destinatarios, dominios involucrados... Los distintos sectores a los que afectan los e-mails: gobiernos, industria... Interesante encontrase cómo se subían a estos sitios de búsqueda de malware ficheros confidenciales. Encontraron un malware que atacaba a Vietnam con una forma de ofuscación que generaba un fichero en memoria de una forma bastante peculiar y muy bien ideada. Además, la dirección IP donde se conectaba también estaba activa. Entre otras conclusiones están que los e-mails siguen siendo grandes fuentes de infección y de fuga de datos.

Después del descanso, Gonzalo José Carracedo (@BatchDrake) nos cuenta cómo ha hecho ingeniería inversa para poder contactar con un satélite.

RootedCon 2019 - Gonzalo José Carracedo - Introducción a la ingeniería inversa de señales de radio
RootedCon 2019 - Gonzalo José Carracedo - Introducción a la ingeniería inversa de señales de radio
Una de las motivaciones de la charla es que Irán consiguió capturar un dron militar de EE.UU manipulando las señales de radio que lo controlaban haciéndolo aterrizar limpiamente para, posteriormente, hacerle ingeniería inversa. Antes de empezar en materia ha recordado el código penal para que no se nos olvide que las señales que no estén destinadas al público en general no se pueden escuchar aunque estén ahí bajo pena de una cuantiosa multa. El objetivo es el intentar ver cómo se podría escuchar un satélite meteorológico ruso (Meteor-M nº 2) teniendo tan sólo dos fotos del mismo (si bien él tenía los datos, la idea es encontrarlos como si no se tuviesen). Sabe que está a una órbita determinada (heliosíncrona) y en España la mejor hora de intentar escucharlo sería por la noche. A partir de una de las fotos donde se ve alguien trabajando con el satélite en tierra estima las alturas de los elementos, entre otros las antenas. Sabiendo qué tipo de antenas eran y su altura pudo estimar la frecuencia y construirse una (no sin algunos problemas). Tuvo que usar una herramienta que calcula señales, suscan, a partir de la cual consiguió recuperar tres o cuatro datos más, entre otros los baudios con los que trabajar. Poco a poco consiguió sacar la codificación y los patrones que también hacía falta para poder comunicarse. Con todo, consiguió mostrar y obtener fotos del satélite. Otras herramientas o datos que nos dijo: Irptchop, por un lado. Y el vídeo "iridium" por otro (que tendré que verlo).

Al finalizar la exposición sobre satélites Rafa Sánchez Gómez (@R_a_ff_a_e_ll_o) y Fran Gómez (@ffranz) nos han hablado de IoCs en IPv6.

RootedCon 2019 - Rafa Sánchez Gómez y Fran Gómez - IoCker: When IPv6 met malware
RootedCon 2019 - Rafa Sánchez Gómez y Fran Gómez - IoCker: When IPv6 met malware
El estudio que nos han mostrado está relacionado con el hecho de que los IDSs obvian la revisión de las amenazas relacionadas con IPv6. Se preguntan por qué, dado que ya hay muchos bichos que utilizan las dos versiones de IP. A partir de datos que han ido recopilando han publicado el primer feed de amenazas dual stack: Mr. Looquer IOCFeed. Éste permite estudiar datos de interés para poder crear las normas de filtrado que mejor interesen, todas ellas relacionadas con IPv6. De los datos más importantes están el prefijo con el que estén configuradas las direcciones dado que se han encontrado con prefijos enteros que según los datos recuperados se podrían bloquear directamente. Han recordado la RFC: usar /48 y /64 bits para el prefijo de red. También se ha enseñado un resumen de análisis de ASNs, prefijos y tipos de amenazas encontradas. Herramienta que me parece imprescindible: Hurricane Electric. También han nombrado MrLooquer IPLake con el que harán scoring por ASN y prefijo (en el momento de escribir este artículo no está activo).

Después de comer, Daniel Kachakil (@kachakil) nos ha hablado de funciones del código de Android bastate... Sorprendentes.

RootedCon 2019 - Daniel Kachakil - Android's Download Provider
RootedCon 2019 - Daniel Kachakil - Android's Download Provider
En su ponencia nos cuenta varios CVEs que descubrió analizando el framework de Android. Ha descrito qué son los content providers, los cuales permiten acceder a bases de datos (por ejemplo, SQLite), ficheros... Además de mostrar algunas clases, tanto del propio framework como suyas y ficheros AndroidManifest.xml los cuales permitirían acceder a los datos de otras aplicaciones acorde a los permisos que el sistema tenga definidos, si es que están definidos. Así, definiendo un proveedor de datos estarás dando permiso para que otra aplicación acceda a esos datos en concreto. Ha mostrado cómo implementar tanto el proveedor de datos como el consumidor de los mismos, el cual puede tirar de consultas para lanzar queries, actualizar y eliminar, además del comando adb. Por lo que recomienda ir siempre al respositorio oficial en vez de a los mirrors. Ha puesto un ejemplo de dos códigos (uno actualización, otro delete) que primero ejecuta la acción y después se pregunta si se puede lanzar o no. Nos ha mostrado un código en varios trozos donde están los 3 CVEs: 2018-9468, 2018-9493 y 2018-9543. Aparecen métodos que hacen una llamada a "public download" que no requiere permisos pudiendo obtener y manipular todas las descargas que se deseen. Con estas vulnerabilidades también se podía ejecutar SQL injection en el terminal, pudiendo obtener los datos de la base de datos. También había acceso de un espacio, "my_downloads". Una cabecera que se encontró: QueryRequestHeaders.

Después de esta charla, el equipo de Everis que tenía un stand en el evento para buscar talento nos mostró cómo montó un fake AP. 

RootedCon 2019 - Everis - Fake AP: ingeniería social
RootedCon 2019 - Everis - Fake AP: ingeniería social
Nos mostraron las estadísticas de personas que accedieron a este AP, el cual no tenía ni siquiera salida a internet. Se vio cómo "sólo" cayeron 22 personas conectándose a un punto de acceso público en un evento de hacking. Había un portal cautivo con un e-mail como usuario y una password (la que fuera) al cual algunos cautos mandaron mensajes al que lo hubiera instalado para mostrar que ya sabían que se trataba de una trampa. 

Después ese paréntesis Jaime Peñalba Estébanez (@nighterman) ha empezado con su charla: Kernel exploitation, ¿el octavo arte?

RootedCon 2019 - Jaime Peñalba Estébanez - Kernel exploitation, ¿el octavo arte?
RootedCon 2019 - Jaime Peñalba Estébanez - Kernel exploitation, ¿el octavo arte?
Como ya sabréis, este área en concreto me cuesta mucho. Ha intentado explicar una explotación básica. Ha contado muy por encima qué es el kernel, la memoria virtual y la paginación. Ha hablado de un tipo de vulnerabilidad, "null pointer dereference", relacionada con punteros, y también ha explicado algunas mitigaciones. Las hay hardware, SMAP y SMEP, que están implementadas en el microprocesador, y las hay software, KPTI (kaiser) y SLAB-Allocator. Nos ha enseñado cómo funciona su exploit. Nos ha mostrado mucho código fuente. Ha aplicado un "ataque" de abuso de use after free (UAF) y otro abuso de "race condition" (que esa parte ya me estaba costando sobremanera). Además, ha explicado otros problemas con los que nos podemos encontrar. Entre otros convertir algo no-determinístico en determinístico. Ha hecho una demo en la que aplicando lo expuesto en la charla ha elevado privilegios de un usuario normal a root. También ha recomendado limpiar las cosas para dejarlas como estaban.

La última charla de la temporada 2019 ha sido por parte de David Pérez y José Picó, de Layakk (@layakk) en la que nos han desgranado cómo funciona las comunicaciones (por no usar el término telefonía) 5G.

RootedCon 2019 - David Pérez y José Picó - Seguridad 5G
RootedCon 2019 - David Pérez y José Picó - Seguridad 5G

Han hecho una pequeña introducción hablando de seguridad y de algunos ataques teóricos. Han recordado un poco la historia de las distintas generaciones (incluyendo, aunque fuese entre comillas, la 1G). Para las especificaciones de la 5G han estudiado la release 15, y por lo tanto cualquier actualización posterior podría corregir algunos de los aspectos hoy explicados. 5G busca que todos los dispositivos, sean cuales sean, estén conectados (además de teléfonos, electrodomésticos, coches... lo que sea). Han explicado la arquitectura de 5G, en la que los elementos desaparecen para convertirse en servicios. Además, se ha creado una pila de protocolos, en la que existe autenticación y cifrado. Además de hacerse tunneling en las comunicaciones. La norma establece que se soporte como mínimo tres tipos de redes virtuales (networking slicing o rebanadas): móviles, latencia baja y bajo consumo (IoT), que podrían estar disponibles o no. Es posible estar conectado a dos rebanadas distintas a la vez. Han mostrado algunos ataques que funcionaban en 4G que en ciertos casos muy concretos se podrían llegar a aplicar en 5G. El IMSI ha cambiado de nombre, ahora se le llama SUPI, el cual en la UE está permitido mandarlo en claro en tres casos determinados, entre otros para llamadas de emergencias. También han explicado qué hace falta para que un dispositivo se autentique en la red y los métodos que podría usar para hacerlo. Algunos ataques que han nombrado son el IMSI-Catching (que funcionaba antes del 5G), ToRPEDO, Piercer (para 4G resuelto en 5G) y de trazabilidad. Han nombrado la herramienta Tamarin Prover. Han mostrado un ejemplo en el que la propia red llegue a descartar un nodo suyo (forzando así un DoS sobre ese nodo). Y hay ataques que dada la libertad que da la especificación para su implementación depende de cómo la haya configurado el operador de la red que se puedan aplicar los ataques que nos han descrito.

Y esta ha sido la última jornada de RootedCon 2019. Como siempre, ha sido placer enorme haber venido. Como ya he dicho antes, muchas gracias a la organización por todo. ¡Ah! ¡También a los voluntarios! Espero que la hayáis disfrutado tanto como yo y espero, como todos los años, veros en la siguiente edición. ¡Nos vemos!

No hay comentarios:

Publicar un comentario