jueves, abril 18, 2019

Hacking Windows 10: Escalada de privilegios con CVE-2019-0841

Recientemente se ha liberado una PoC (Prueba de concepto) que implementa la escalada de privilegio descrita en el expediente CVE-2019-0841. Esta escalada de privilegio permite que un usuario pueda ejecutar código arbitrario, por ejemplo, a través de DLL Hijacking y ejecutar en el nivel de integridad de SYSTEM.

Figura 1: Hacking Windows 10: Escalada de privilegios con CVE-2019-0841

La vulnerabilidad se ha conocido por el nombre de “DACL Permissions Overwrite Privilege Escalation” y, si quieres saber más, la implementación de la prueba de concepto puede estudiarse y descargarse desde el siguiente Github.

Figura 2: GitHub con la PoC para estudiar

Con la vulnerabilidad un usuario sin privilegios o privilegios ‘bajos’ puede secuestrar archivos que son propiedad de NTAuthority\SYSTEM. Esto se realiza sobrescribiendo los permisos en el archivo destino, el que se quiere secuestrar. Cuando la escalada tiene éxito se obtiene un “Control Total” de los permisos para el usuario sin privilegio.

¿Dónde radica la magia?

En esta ocasión hay que hablar de que todas las aplicaciones de los sistemas Windows disponen de un archivo settings.dat. Este archivo es el que tiene la configuración de la aplicación. En otras palabras, es un registro que se puede cargar y modificar desde el propio registro.

Figura 3: Máxima Seguridad en Windows: Secretos Técnicos [4ª Edición]

Si eres de los que te preocupa por la tener fortificado al máximo tu sistema Windows, seguro que es un viejo amigo. En el libro de "Máxima Seguridad Windows: Secretos Técnicos [4ª Edición]" de nuestro compañero Sergio de los Santos (@ssantosV) sale en varios capítulos.

Este archivo del que hablamos es muy importante, y hay que tener en cuenta que en el momento en el que arranca una aplicación en Windows, el archivo settings.dat es utilizado por NTAuthority\SYSTEM. Esto es algo interesante, sin duda. En este punto al investigador que descubrió la vulnerabilidad le surge una nueva pregunta, ¿cómo se puede hacer un abuso de este acceso privilegiado a archivos?

Figura 4: Paquetes instalados en un Windows 10

El investigador se centró en el archivo settings.dat de Microsoft Edge. Cada paquete tiene un archivo settings.dat. Una vez que arranca dicho paquete o aplicación en Windows, el sistema realizará una operación OpLock o bloqueo exclusivo, con el objetivo de evitar que otros procesos utilicen o accedan a la información de ese archivo mientras se está ejecutando la aplicación.

Figura 5: Settings.dat de Microsoft Edge

En el caso de la PoC (Prueba de Concepto), cuando se arranca Microsoft Edge, el archivo settings.dat se abre como NTAuthority\SYSTEM. Una vez la aplicación es ejecutada y el archivo es abierto, se realizan algunas verificaciones de integridad:
1. Se comprueban los permisos de los archivos
2. Si los permisos son incorrectos, se corrigen los permisos de los archivos
3. Se lee el contenido
4. Si el contenido está corrupto o dañado se borra el archivo
5. Se restablece la configuración copiando el archivo, el cual sirve de plantilla, que se encuentra en C:\Windows\System32\settings.dat.
6. Se obtiene el bloqueo exclusivo en el archivo recién copiado
7. Se continua con la ejecución de la aplicación de Windows.
En resumen, si el fichero settings.dat no es considerado válido, Windows lo elimina y copia la plantilla que está almacenada en una ubicación protegida. De esta forma se evita el abuso, a priori. Pero no estamos aquí con un post que busca ampliar nuestros conocimientos de Hacking Windows para dejarlo aquí. Y vamos a verlo.

Figura 6: Libro en 0xWord de Hacking Windows:
Ataques a sistemas y redes Microsoft

El investigador se dio cuenta que se puede utilizar este comportamiento para establecer los permisos en ‘cualquier’ archivo mediante el uso de enlaces físicos. El objetivo ahora será crear enlaces duros a archivos dónde queremos tener un “Control Total” como usuario no privilegiado o usuario regular.

Explotándolo

Se sabe que los permisos de archivos establecidos en un enlace duro darán como resultado cambios en el archivo original. A continuación, se va a mostrar un ejemplo de cómo secuestrar un archivo. Para el ejemplo, el investigador optó por utilizar el fichero HOSTS. Un usuario normal no tiene acceso de modificación a este archivo, tal y como se puede ver en la imagen.

Figura 7: Modificación no disponible para usuarios no privilegiados

El investigador Nabeel Ahmed ha escrito un exploit que automatiza el proceso de creación de un enlace físico y provocar que la vulnerabilidad se desencadene. No es más que llevar a cabo lo que se ha ido explicando en los pasos anteriores. A continuación, se muestra el paso a paso del proceso.

¿Cómo funciona el exploit?

El exploit tiene el siguiente funcionamiento:
1. Primero verificará si el archivo settings.dat existe o no. Además, si éste existe, verificará los permisos. Si se utiliza la aplicación Microsoft Edge se parará la ejecución del proceso, en el caso de que esté en ejecución. Con cualquier otra aplicación ocurriría igual. Lo interesante es asegurarse de que se utiliza una herramienta que esté por defecto en el sistema, lógicamente.
2. Se buscará el archivo settings.dat y se eliminará para crear un enlace físico al archivo específico. En este caso al archivo HOSTS. En este paso es dónde se puede hacer el vínculo con cualquier archivo, por lo que, pensemos en un DLL Hijacking de una DLL que tenga nuestro código con un Meterpreter o con lo que sea.
3. Re-arrancar la aplicación. Una vez es creado el enlace físico, se vuelve a arrancar la aplicación, en este caso Microsoft Edge. Se desencadena la vulnerabilidad. Por último, hay que verificar si el fichero destino tiene permisos de “Control Total” para el usuario sin privilegio, lo que al principio no teníamos.
En la siguiente imagen publicada por Nabeel Ahmed se puede ver el resultado final después de lanzar el proceso que implementa el exploit de manera completa y con éxito en un sistema operativo Microsot Windows 10 vulnerable.

Figura 8: Exploit ejecutado con éxito

Además, se puede disfrutar de un video en el que se muestra la ejecución de una DLL, mediante técnica de DLL Hijacking y haciendo uso de la aplicación de actualización del navegador Google Chrome. Más que interesante.


Figura 9: DACL Permissions Overwrite Privilege Escalation
(CVE-2019-0841) PoC using Google Chrome

Interesante técnica que seguramente abrirá puertas en los Ethical Hacking, por lo que habrá que ver cómo se reacciona ante esta vulnerabilidad. Los equipos de IT tendrán trabajo.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

miércoles, abril 17, 2019

¿Cuándo me convertí en una "celebritie"? Ojo, ¡tú también lo serás! #AI #ArtificialVision

Hoy os quiero dejar este post un tanto curioso a razón de algo que yo había contado hace años en varias entrevistas sobre la pérdida de la privacidad. Esto fue un debate cuando en la red social Facebook se empezó a meter reconocimiento facial automático de las personas que aparecen en las fotografías que se suben.  Crear un sistema de Inteligencia Artificial capaz de reconocer a la gente es algo bastante fácil cuando eres la plataforma que tiene todas las fotografías que la gente voluntariamente te ha estado subiendo, además de entrenarte durante años con el etiquetado de quién es quién.

Figura 1: ¿Cuándo me convertí en una "celebritie"? Ojo, ¡tú también lo serás!

En aquellos años, calculo que sería el año 2009 o 2010, la preocupación era sobre qué pasaría si alguien fuera capaz de procesar todas las fotografías y buscar la gente que aparecía en el fondo de las mismas. No el primer plano, sino en cualquier punto de la fotografía.

APIs de Visión Artificial para reconocer "Celebrities"

Hoy en día, cuando todo el mundo tiene un smartphone con una cámara súper potente en las manos, es todavía peor. La imagen cuando estás en la calle puede acabar en cualquier teléfono y ser subido a cualquier servicio en la red y sin que lo sepas analizadas todas las caras que salen en la foto - sabiéndolo o sin saberlo - para hacer un seguimiento de dónde ha estado cada persona en cada momento. Y esto ya existe hoy en día, pero solo para las "celebrities".
Viendo las filtraciones de los documentos que hizo Edward Snowden, no me extrañaría para nada que no se estuviera haciendo ya en la NSA, y después de ver los sistemas de vigilancia que se quieren poner en espacios públicos, esto es algo a lo que deberíamos empezar a acostumbrarnos. Y sin hablar del enriquecimiento de los metadatos que ayuden a saber dónde se tiró la foto y a qué hora.

Probando APIS de Visión Artificial

En el caso de gente que tiene una vida pública - además de una vida privada - esto es todavía más divertido, puesto que el sistema está más que bien entrenado para que una persona pueda ser reconocida sin mucho margen de error. Y esto es lo que más me ha llamado la atención.

Figura 3: José Parada, Chema Alonso (sin gorro) y Luciano Bello [Año 2008] en DefCON 16

Hoy en día los sistemas de visión artificial están más que desarrollados, y podéis probar el API de Google Cloud Vision para ver cómo reconoce las caras y los gestos. Yo he subido esta foto de mi primera conferencia en DefCON 16  (año 2008) donde en la sala de speakers nos tiramos una foto José Parada, Luciano Bello y yo (sin gorro). Como podéis ver, en esa foto, Google es capaz de reconocer los gestos y expresiones de cada uno de nosotros.

Figura 4: API de Google reconociendo caras y expresiones

Pero no tiene por qué quedarse solo en eso, como os he contado con el caso que os he contado al principio del que hablaba en el año 2009 o 2010, ya hay servicios como Azure Artificial Vision que es capaz de reconocer a "Celebrities" y "Landmarks" con solo subir una foto, y en esa misma foto dice que estoy yo, ya que me reconoce como una "celebritie".

Figura 5: Artificial Vision en Azure para reconocer celebrities y landmarks

En aquel entonces yo estaba lejos de ser una "celebritie". Era mi primera DefCON, estaba empezando a salir de España para dar conferencias, y aún me quedaba mucho camino por andar por delante en mi vida, pero claro, tirando hacia atrás es fácil para el sistema - una vez entrenado con datos de hoy - y reconocerme de mucho más joven.

Figura 6: Me reconoce de una foto del 2008 con un 99,78 % de confianza

En esta otra foto, en la que estoy con el actor Paco Prieto y con Paco Lobatón, del año 2009 o así, de nuevo el sistema es capa de reconocerme, aunque sorprende que no reconozca al bueno de Paco Lobatón - aunque es verdad que su programa a lo mejor tuvo mucho impacto solo en España -. 

Figura 7: El sistema reconoce a Paco Prieto y a Chema Alonso (con un 99,43 % de confianza)

Aún así, he seleccionado una foto de hace 10 años en la que salgo medio-regular, sin afeitar y con poca calidad la foto, y salgo como "Persona" y no es capaz de identificarme. Pero estoy seguro que solo hay que darle tiempo.

Figura 8: Chema Alonso no reconocido. ¿Poca calidad? ¿Barba?

De hecho, la primera prueba que tuve de esto fue con la foto de Chuck Norris, donde el sistema era capaz de reconocerme a mí, pero no al bueno de Chuck - os juro que no era un muñeco de cera como habéis dicho algunos -.


Pensé que era fácil, ya que tenía mi gorro de rayas azules y marrones que uso tantas veces, así que probé la foto en la que Kevin Mitnick se lo puso, y yo me puse sus gafas. A ver si el sistema se confundía con un disfraz tan sencillo como ese. Pero no, no se confundió y nos reconoció a los dos perfectamente.


El asunto es que esto va a continuar. Y la cantidad de dispositivos que van a poder hacer fotos de gran calidad desde distancias imposibles, se va a poder vigilar a todo el mundo - y saber quién es quién - de manera muy sencilla. Así que, no te preocupes, a pesar de que ahora no seas una celebritie y te quedes en "person" ya avanzará esto para que cualquier persona que tenga una foto en la red pueda ser reconocida.

Figura 11: El sistema reconoce con un 85,87 a Chema Alonso

He buscado una de las primeras fotos que hay mías del año 2007 en la red, que me hicieron para una entrevista en mi primera visita a Argentina, y me reconoce igualmente. Dale tiempo a que se haga con todo el mundo esto. ¿Debemos?

Figura 12: Proyecto Face Recognition en GitHub

Por si quieres jugar con estas cosas, tienes este proyecto de Face Recognition que tienes en GitHub escrito en Python que usaron nuestros compañeros en el último Equinox para uno de los proyectos finalistas de OSINT. Esta librería permite buscar caras contenidas en una fotografía a partir de otra imagen con una cara. Es decir, se le pueden pasar fotos públicas y buscar personas en ellas si se tiene una captura de su rostro en otra foto.

Saludos Malignos!

martes, abril 16, 2019

Jugando al Mario Kart con los coches Tesla. ¡Mamma Mia! (Parte 2 de 2)

Como vimos en la primera parte de este artículo, hasta el momento hemos descrito varios ataques con éxito, pero ahora hay que ver como se podía conseguir atacar a la red neuronal para manipular el sistema de visión artificial del sistema Autopilot de Tesla que detecta la línea de tráfico.

Figura 11: Jugando al Mario Kart con los coches Tesla.
¡Mamma Mia! (Parte 2 de 2)

Para ello, como hemos dicho al final del primer artículo, se utilizaron dos tipos de ataques distintos al sistema de detección de carril en el Autopilot de Tesla que vamos a ver a continuación.

Ataques a la detección de carril en Tesla Autopilor

El primero de ellos llamado Eliminate Lane Attack (Ataque de Eliminación de Carril) tiene como objetivo que el reconocimiento de carril se desactive utilizando algún tipo de marca en el mundo físico. Los ataques que se generaron en el mundo digital se basaban en la distorsión de los pixeles, algo que es complicado de realizar en el mundo físico sin tener realmente comprometido todo el sistema de control de Tesla.

La aproximación principal para lograrlo se basaba en una premisa: la mayoría de la información recogida por la cámara no es útil para el reconocimiento del carril. Es decir, el proceso de la red neuronal que detecta la línea se centra exclusivamente en el carril y una porción del área que le rodea.


Figura 12: Enseña a tu AI a jugar con OpenAI y Deep Learning

La reducción de la complejidad de la imagen es una técnica habitual en el proceso de imágenes utilizando Machine Learning, mi colega Enrique Blanco Henríquez y yo la utilizamos en su día en el blog de LUCA para enseñar a una IA a jugar a Breakout.

Figura 13: La imagen de la izquierda muestra cómo se añadieron algunos
parches en la línea izquierda de la calzada y en la parte derecha se muestra
cómo el vehículo no detectó el retro de la línea.

Así que, y ahora viene la magia, después de varios experimentos se dieron cuenta que agregando recuadros de pixeles de diferentes tamaños en ciertos puntos de dicha imagen del carril y además alterando los bordes de las líneas es posible desactivar el APE (recordemos que es el Tesla Autopilot). De todas formas, este ataque demostró que el sistema APE es bastante robusto y, además, los cambios que hay que realizar en la calzada son demasiado llamativos, por lo que tanto el conductor como el APE podrían detectarlos fácilmente.

El segundo ataque se llamó Fake Lane Attack o Ataque de la Carril Falso y éste tuvo más éxito. Esta vez el objetivo no era desactivar el piloto automático, sino llevar el vehículo hasta donde queramos, como, por ejemplo, cambiar de carril utilizando marcas simples en la calzada. En el modelo digital se dieron cuenta previamente que añadiendo pequeños pixeles uno detrás de otro separados por una cierta distancia en forma lineal, el sistema de visión los detectaba como una línea de carril (ver Figura 14).

Figura 14: Colocando marcas blancas en la calzada se aprecia en la imagen
de la derecha como el vehículo detecta una línea completa donde no existe.

Este modelo digital de ataque adversario es más sencillo de implementar en el mundo real ya que sólo necesitaron colocar pequeñas pegatinas blancas de la misma forma de distribución que en el modelo digital. De esta forma consiguieron que el vehículo siguiera la trayectoria que ellos marcaron en el suelo.

Controlando el Tesla con un mando de videojuegos

Este ataque es más un problema de seguridad de acceso y explotación de vulnerabilidades a los sistemas de los vehículos Tesla. El equipo encontró que después de conseguir acceso root a la ECU (Engine Control Unit) era posible controlar el coche con un mando de juegos Bluetooth. Pero ¿cómo lo consiguieron?

Pues como muchos otros tipos de ataques, haciendo que el navegador principal del Tesla (basado en WebKit) abriera una página maliciosa. Para entender el ataque primero tenemos que ver cómo funciona y como está interconectada la CAN (Controller Area Network) bus del sistema APE, tal y como hemos explicado que hacían otros ataques en la primera parte de este artículo.

Figura 15: Esquema del sistema CAN bus de Tesla.

El sistema APE tiene dos buses principales: CAN1, el cual interconecta los radares del vehículo y CAN0, el cual junto a LB, un dispositivo que actúa a modo de gateway o pasarela de red, el cual soporta protocolos Ethernet y CAN, actúa como sistema de seguridad redundante principalmente.

También existe un bus lógico llamado APE2LB_CAN que interconecta APE con LB, el cual sirve para interconectar APE con dos canales interesantes, PT (PowerTrain) y CH (Chasis). Este último, CH, es la clave de todo el sistema, ya que desde este bus es posible controlar la dirección del vehículo. Pero observando el esquema, es obvio que antes de acceder a él hay romper algunas barreras del mecanismo de seguridad.

Para ello se centraron en un servicio llamado cantx el cual recibe señales intermedias desde el sistema de visión artificial que después las transforma en señales de control del vehículo. En canal de recepción de estos mensajes es el bus lógico APE2LB_CAN y luego son enviados directamente a los buses antes mencionados, PT y CH, siempre a través de la unidad LB (utilizando el protocolo UDP). Aquí es donde entra DSCM o DasSteeringControlMessage, mensaje encargado de controlar el sistema de dirección del vehículo. Este es su formato:

Figura 16: Definición de la estructura DSCM.

El ángulo de giro se define con 2 bytes en angle, counter es un contador de 6 bits que se incrementa cada vez que entra un mensaje, control_type (2 bits) indica el tipo de mensaje enviado por el CAN y finalmente checksum (1 byte) que se autodefine por si mismo. Ahora que ya conocemos un poco más cómo funciona el sistema CAN bus de APE, vamos a ver cómo consiguieron el control de la dirección del vehículo.

Control de dirección de Tesla

Para lograr controlar la dirección de los autos Tesla, inyectar directamente mensajes maliciosos tipo DSCM desde el APE al LB no funciona, ya que DSCM está protegido con una marca temporal o timestamp, el contador y un sistema de redundancia CAN llamado PARTY CAN-bus. Finalmente, el método que funcionaría sería inyectar de forma dinámica código malicioso en el servicio cantx y engancharlo con una función llamada:
DasSteeringControlMessageEmitter::finalize_message()
la cual permitiría rehusar el timestamp y el valor del contador. De todas formas, la clave final se encuentra en el valor del control_type del DSCM. Si se asigna el valor 0x01 y el APE2LB_CAN también se pone a 0x01 indicará que el destino final será el bus CH.

Figura 17: Esquema completo de la implementación final del ataque.

Finalmente utilizaron un mando de juegos conectado a un teléfono móvil, el cual se encargaba a su vez de recibir la señal para luego convertirlas, utilizando el procedimiento que se ha descrito anteriormente, a señales DSCM maliciosas a través de WiFi o 3G. De esta forma es posible controlar la dirección del coche con un simple mando de consola, igual que Mario Kart ;)

¿Qué futuro nos espera respecto a la seguridad de los vehículos autónomos?

Este paper es un gran trabajo que mezcla seguridad informática y técnicas de Machine Learning utilizando DNN, no podemos pedir más. Recomendamos su lectura en profundidad para aprender cómo realizar una ingeniería inversa completa a un vehículo Tesla, tanto de su parte de control como de su cerebro artificial. Tenemos que recordar de nuevo que Tesla corrigió estas vulnerabilidades en dos parches de seguridad que sacaron en 2017 y 2018, sobre todo el que permitía el control remoto del vehículo. El resumen lo tienes en este vídeo que publicaron en Youtube.


Figura 18: Vídeo del trabajo de Tencet Security Research sobre Tesla Autopilot

El otro ataque de las pegatinas en el asfalto no queda del todo claro si fue resuelto ya que Tesla lo tacha de ataque “no realista”. Y en parte tienen razón, ya que el piloto automático se puede desconectar en cualquier momento y fundamentan que el conductor puede tomar el control del vehículo simplemente pisando el freno o agarrando el volante en cuanto detecte la situación de riesgo.

O sea, que parece que funciona, lo que no queda claro es qué pasará cuando no haya conductores humanos en frente del volante para reaccionar a tiempo y seamos simples pasajeros …


Una cosa es segura, Kevin Mitnick y Chema Alonso se lo pensarán dos veces antes de activar el Autopilot de Tesla la próxima vez que se encuentren en EEUU ;)

Autor: Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

lunes, abril 15, 2019

Jugando al Mario Kart con los coches Tesla. ¡Mamma Mia! (Parte 1 de 2)

Todos hemos jugado alguna vez al fantástico juego Mario Kart de Nintendo. En él, controlamos un vehículo utilizando un mando de juegos en una carrera dentro de un circuito el cual también encontramos repartidos diferentes objetos que nos permiten obtener ventajas (como, por ejemplo, más velocidad) algunos de ellos impresos en la misma carretera.

Figura 1: Jugando al Mario Kart con los coches Tesla.
¡Mamma Mia!(Parte 1 de 2)

Bueno pues parece que ahora controlar un vehículo Tesla con un mando de juegos al más estilo Mario Kart y además añadir marcas en la carretera para engañar al piloto automático (Autopilot) ya es posible, al menos es lo que cuenta este paper titulado "Experimental Security Research of Tesla Autopilot".

Figura 2: "Experimental Security Research of Tesla Autopilot"

Vamos analizar en detalle este interesante documento, mezcla de ingeniería inversa, exploits, vulnerabilidades y Machine Learning. Recuerda, si quieres conocer algunos conceptos y técnicas relacionados con la seguridad y Machine Learning, nada mejor que nuestro libro, "Machine Learning aplicado a la Ciberseguridad: Técnicas y ejemplos en la detección de amenazas"

Figura 3: "Machine Learning aplicado a Ciberseguridad" de 0xWord

Hacking de Autos

Ya hablamos en su día de diferentes formas de hackear autos. Nuestros compañeros hablaron de cómo hackear un BMW i8 - mira que es difícil de encontrar uno de estos, y les dio por este modelo concreto - utilizando un software inyectado para tomar control del CANBus, y hoy en día hemos hablado de herramientas como CANAlyzat0r para buscar vulnerabilidades en CAN Bus.


Figura 4: Hackeando CANBus en automóviles

Centrados en Autopilot, hablamos de cómo los vehículos autónomos podían ser hackeados utilizando falsas señales de tráfico que confundieran a gusto del atacante su sistema de Artificial Vision. Ahora un equipo de investigadores de la empresa china Tencent Keen Security Lab han contado en el paper que hemos mencionado antes, varios hacks un vehículo Tesla.

El primer hack explica cómo es posible engañar a las redes neuronales de los coches Tesla utilizando pegatinas en la carretera, muy similar a la técnica de las señales falsas. El segundo hack explica cómo han conseguido infiltrarse en el piloto automático (APE) donde además han llegado a controlar el ECU (Engine Control Unit), es decir, la unidad que controla el motor, lo que se traduce en llegar a tener acceso total de forma remota a los mandos de control del vehículo.

Antes de continuar, tenemos que destacar que estos problemas (los cuales algunos son de 2017 y 2018) ya han sido parcheados y solucionados por la empresa del gran Elon Musk (ahora es cuando se ha hecho público todo el resultado de la investigación, la cual antes fue reportada a Tesla para que solucionara). Es más, el mismísimo Elon ha felicitado a los investigadores en una actitud que no todas las empresas tienen hacia aquellos que encuentran vulnerabilidades en sus productos.

Figura 5: Tesla Model S

En principio, esta investigación sólo afectaba (al menos este ha sido el único modelo donde se ha realizado la investigación) al Tesla Model S 75, con un hardware de piloto automático versión 2.5 y una versión de software 2018.6.1.

Cambiando la trayectoria del Tesla usando pegatinas en el suelo

El sistema de reconocimiento visual de Tesla con el piloto automático funciona realmente bien en casi cualquier condición (aunque no está recomendado en casos intensos de nieve, lluvia, niebla, etcétera). Existen cientos de vídeos que lo demuestran, pero al ser un sistema de visión puro, la información recibida requiere ser analizada y procesada antes de pasar a las complejas redes neuronales del Tesla.

Es decir, la cámara (o mejor dicho, las cámaras) HDR de 12bits (posiblemente una RCCB) obtiene las imágenes en RAW, lo que significa no se procesa la información durante su captura. Por lo tanto, necesita de un pre-procesado antes de llegar a la red neuronal correspondiente. Esas imágenes se copian directamente en una memoria compartida desde una función llamada tesla:TslaOctopusDetector::unit_process_per_camera la cual se encarga de procesar cada imagen ajustando algunos parámetros como son el tono, nivel de detalle, etcétera.

Todas esas imágenes ya procesadas se asignan su red neuronal correspondiente las cuales se encargarán de diversas funciones, como por ejemplo controlar el coche, analizar objetos, las líneas en la carretera, crear mapas de los alrededores, etcétera. Los investigadores se centraron las DNN (Deep Neural Networks) que se encargan del reconocimiento de las líneas de la carretera y el algoritmo que mantiene el vehículo siguiendo dichas líneas (Autosteer).

Figura 6: Esquema de las conexiones entre el APE (Tesla Autopilot)
y el resto de componentes del vehículo tal y como aparece en el paper.

Para esta función de reconocimiento de líneas y Autosteering, Tesla utiliza una sola gran red neuronal con varias salidas diferentes, en vez de usar una específica para cada acción concreta. La detección de las líneas de la carretera es una de estas acciones que utilizan una gran única red neuronal con múltiples salidas.

Una vez la imagen se ha procesado, se introduce en dicha red neuronal y una vez obtenido el output (salida), esta se envía a una función llamada detect_and_track la cual llamará a diferentes kernels CUDA para realizar diferentes funciones como comprobar los bordes de la línea para ver si están borrosos, añadir máscaras a los bordes de las líneas, ajustar las líneas a una rejilla virtual (generada a partir de la red neuronal que se encarga de mapear el entorno en un mapa virtual), añadir puntos de control en las líneas, etcétera. El siguiente cuadro resume todo el proceso de reconocimiento:

Figura 7: Ejemplo del procedimiento de reconocimiento de imagen,
en este caso de una línea en la calzada.

Antes de poder aplicar cualquier tipo de ataque basado en las imágenes recibidas, es necesario probar el rendimiento y estudiar el funcionamiento de los algoritmos en un entorno digital (antes de pasar al mundo real). Para ello utilizaron algoritmos “adversarios”, una técnica de Machine Learning cuyo objetivo principal es engañar un modelo concreto y su salida correspondiente a través de cambios y manipulaciones en la entrada de la información.

Figura 8: Paper que explica los ataques de Zeroth Order Optimization

Comenzaron con el sistema que detecta la lluvia (el cual utiliza una cámara en vez de un sensor) inyectando diferentes modelos de “ruido” y en concreto un tipo de ataque llamado “Zeroth Order Optimization” (ZOO) o también usando ataques de sustitución. Ambos algoritmos tienen que común que modifican la estimación del gradiente, dicho simplificando mucho el término, es algo parecido modificar el vector el cual ofrece la dirección que ofrece la solución óptima.

Figura 9: En este paper se explican los ataques de sustitución

Estos dos métodos tienen el problema de necesitar grandes cálculos lo que finalmente lleva a una tarea computacional demasiado compleja, casi imposible de implementar con resultados satisfactorios. Finalmente optaron por otro método de ejemplo de ataque adversario utilizando DNN con el algoritmo PSO (Particle Swarm Optimization). Este tipo de ataque se basa en generar un enjambre (swarm) de ruido e inyectarlo dentro de las imágenes obtenidas.

Utilizando esta técnica repetidamente contra las diferentes redes neuronales, es posible ir ajustando la puntuación obtenida en la salida de cada una de ellas hasta conseguir el resultado deseado. Además con la ventaja añadida de que dicha distorsión sólo puede ser detectada por una red neuronal y no por el ojo humano.

Figura 10: Ejemplo de inyección adversaria donde confunde a la IA al
Panda con una Llama sin que los cambios sean detectados por el ojo humano.

Por lo tanto, el objetivo final de la investigación es llevar este ataque en el mundo digital con resultado satisfactoria al mundo físico. En el caso de los parabrisas, lo consiguieron simplemente colocando una televisión justo en frente de la cámara que detecta la lluvia en el cristal e ir proyectando diferentes imágenes PSO (este ataque es poco factible implementarlo en el mundo físico en un escenario real). En pocos intentos consiguieron engañar la red neuronal.

En el caso de la detección de la línea, hay que usar un enfoque diferente. De hecho, realizaron dos tipos de ataques distintos que veremos en la siguiente parte.

Autor: Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

domingo, abril 14, 2019

La presencia de “Chema Alonso” en redes sociales actualizada. (Me acabé Google Plus)

Debido a unos incidentes serios de  seguridad en Google Plus - y al poco uso en el mundo de Internet - Google decidió cerrar su servicio Google Plus el pasado 2 de Abril, como estaba previsto desde hacía mucho tiempo. Google Plus se llevo por delante un servicio que muchos amábamos, como era el famoso Google Reader, pero al igual que le sucedió a Google Wave - el anticipado a Slack o Teams -, tuvo que irse. 

Figura 1: La presencia de “Chema Alonso” en redes sociales actualizada.
(Me acabé Google Plus)
Yo gestionaba los canales de Google Plus para El lado del Mal y el mío particular, y como un campeón estuve allí hasta el último momento. Hasta que el servicio se cerró, estuve publicando todo lo que salía por El lado del Mal, y en el mío personal lo que salía de nuestro trabajo en todo el resto de los medios.

Figura 2: Mi canal de Goole Plus antes de cerrar

Los que me conocen saben que soy un poco como Sheldon, no soy capaz de empezar algo sin dejarlo acabado - ya os contaré como hago los álbumes de cromos con Mi Hacker y Mi Survivor, que es para estudiar -, así que hasta el último día estuve publicando todo por ellos. Pero ahora hay que cambiar, así que os voy a dejar por aquí mi presencia en redes sociales e Internet, por si os interesa a alguno.


Este sitio va a seguir siendo mi principal refugio. Aquí sigo escribiendo, leyendo los comentarios - aunque no comento por falta de tiempo - y expresándome sobre los temas que considero que tengo que hacerlo. Publico los artículos de amigos, compañeros y colaboradores, pero sigo gestionando yo únicamente este sitio.

Figura 3: Feed RSS de El lado del mal en FeedBurner

Para seguir el blog, lo mejor es suscribirse al Canal RSS que tengo en Feedburner desde casi el principio utilizando el cliente RSS que más te guste. Una buena alternativa al extinto Google Reader es Feedly, así que que puedes probarlo si no tienes lector que utilizar. También te puedes suscribir vía e-mail para recibir en tu bandeja de entrada los posts todos los días.

Linkedin (ChemaAlonso)

Es donde mantengo mi perfil profesional. No lo cambio mucho porque tampoco es que cambie mucho mi vida profesional a nivel macro (aunque sea muy activa a nivel micro). Por aquí comparto también lo que comparto por Telegram o Twitter. Como sabéis, Linkedin tiene un límite de 30.000 contactos que yo hace mucho que alcancé, así que no puedo añadir mucha gente nueva.

Figura 4: Linkedin de Chema Alonso

De vez en cuando tengo algún hueco entre los 30.000 contactos que tengo y añado alguno de los que tengo en lista de peticiones. Me encantaría añadir a más gente, pero la lista de peticiones que tengo pendientes de atender es de casi cuatro mil. Eso sí, puedes seguir mis publicaciones y comentar en ellas. 

No soy muy fan de que me envíen correos electrónicos por Linkedin, ya que tenemos canales oficiales para ello en las webs corporativas, así que no suelo contestar mucho por los mensajes privados cuando tienen que ver con trabajo.

Twitter (@ChemaAlonso)

Mi cuenta de Twitter la sigo utilizando, aunque no para debatir ni comentar muchas cosas. Es un canal por el que saco los trabajos que hago yo y lo que sacamos desde Telefónica, ElevenPaths, LUCA, 0xWord, AURA, Movistar Home, Talentum o Blog Think Big. Es decir, es un canal para estar atento en Twitter a la parte más profesional nuestra.

Figura 5: Cuenta de Chema Alonso en Twitter

No suelo debatir y tengo una política que os conté en el artículo de "Colaboradores pasivos de abusones en redes sociales". La verdad, no soy muy fan de Twitter, así que hablo poco de Chema Alonso en primera persona.

Instagram (ChemaAlonso)

Es a la red social donde más tiempo invierto. Publico stories y feed de fotos con cosas totalmente distintas. Más personal público que profesional. Mantengo la misma política de comentarios que la de Twitter, que ya os he dicho que describí en "Colaboradores pasivos de abusones en redes sociales". Como he dicho, no pongo demasiado de trabajo, y sí mucho más social en vida pública.




A post shared by Chema Alonso (@chemaalonso) on

No contesto a los mensajes porque me llegan demasiados y físicamente no me da tiempo a responderlos. Entended, que muchas de las cosas que me preguntáis ya las he contestado por el blog o en vídeos durante muchos años, así que si veo alguna cosa puntual nueva o interesante, lo contestaré cuando tenga algo de tiempo.


Solo como recordatorio para los nuevos navegantes del mundo del Instagram. No hackeo el WhatsApp, el Instagram, el LOL, el Facebook, o el Fortnite a nadie. Eso lo hacen los cibercriminales y no los hackers. Lo más probable es que acabe publicando tu mensajes - suerte que no me da la vida para publicar todos -.

YouTube (Chemai64)

En el canal de Youtube publico todos los vídeos de las conferencias, entrevistas, productos y PoCs organizados por temas y años. Están las conferencias que he sido capaz de recuperar desde el año 2008 o así, más las charlas de ElevenPaths Talks o LUCA Talks, demos de los posts de "El lado del mal", etcétera.

Figura 8: Última entrevista publicada en el Canal Youtube

Tiene más de 230.000 suscritos y debe tener unos mil vídeos, para que hinches y aburras de ver conferencias, entrevistas, podcasts, demos, webinars, etcétera. Y seguiré subiendo todo el material que se va generando.

Telegram (ElLadoDelMal)

Desde hace unos cuatro años tengo abierto un Canal Telegram de El Lado del Mal donde no solo salen los posts de este blog, sino que también salen los de Seguridad Apple, los del Blog de ElevenPaths, LUCA, Blog Think Big y otros medios con temas que tienen que ver con seguridad y tecnología. Intento que sea más cercano al contenido de este blog, así que no sale todo lo que generamos. Si eres usuario de Telegram, es una buena forma de saber qué hacemos.

Figura 9: Canal Telegram de El lado del Mal

Mi cuenta de Telegram no tiene un uso personal, así que no la uso para prácticamente nada. No contesto ningún mensaje por Telegram, solo tengo conectado la publicación de contenidos al canal de ElLadoDelMal y listo.


No es una página personal. Hace mucho tiempo que deje de usar Facebook como canal de comunicación personal. Es un canal en el que saco los contenidos de mis blogs. Al igual, más o menos, que hago en Telegram o Twitter. Si eres un fan de Facebook, también puedes seguir lo que comparto por allí.

Figura 10: Cuenta de Chema Alonso en Facebook 

Periódico: (No Hack, No Fun)

Si eres un amante de la navegación web que disfruta como yo leyendo cada mañana las páginas principales de los periódicos de actualidad y de deportes que me gustan, entonces No Hack, No Fun es tu sitio. Cada sábado creo el periódico semanal, cada domingo saco el e-mailing (al que te puedes suscribir desde la web de No Hack, No Fun) con las noticias que he dado de alta desde el día anterior. Y día a día actualizo la lista de noticias - que solo puedes ver si vienes a visitar la web.

Como ya os he dicho, los viernes antes de que comience la nueva versión semanal tienes la lista de todas las noticias por secciones de lo que he publicado esa semana. Para que no te falte de nada.

Correo Electrónico y Web

Si tienes mi dirección de correo electrónico - alguna de ellas - y me envías un mensaje, probablemente se pierda en la maraña de correos que recibo diariamente. La forma de comunicarse conmigo - si es para un tema profesional - es a través de las  zonas de contacto en las webs de Telefónica, ElevenPaths, LUCA o 0xWord. Ellos me filtran los mensajes, pero si hay alguno importante me lo hacen llegar siempre. Como ya dije, hay unas pequeñas recomendaciones que os dejé para escribirme.

Otros canales

Si hay otros canales que dicen que soy yo, o este blog, o usuarios en sitios que dicen que soy yo, probablemente no sea yo. No soy de participar en nada más que esto. Sí que tengo mi canal en Whakoon donde gestiono mi lista de cómics (y los que me faltan), mi Canal de SlideShare donde publico documentos y presentaciones o Spotify, pero he visto gente que se ha hecho pasar por mí en páginas de Facebook, foros de hacking, etcétera. No soy yo. Si soy yo, aviso por aquí antes.

Saludos Malignos!

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares