miércoles, febrero 13, 2019

CANalyzat0r: Cómo analizar protocolos en el CAN BUS para hackear coches

En algunas conferencias hemos estado viendo estudios sobre los coches y la seguridad de éstos. Entre ellas las de nuestros compañeros de ElevenPaths en Argentina que se publicó en el artículo "Nosotros también hackeamos un auto". Y hace poco, sin ir más lejos que a la pasada Hackron de este año, un compañero llamado Agustín mostró una charla sobre el coche eléctrico y la seguridad de éste desde el punto de vista de la energía y de la arquitectura. Una charla diferente, pero muy interesante.

Figura 1: CANalyzat0r: Cómo analizar protocolos en el CAN BUS para hackear coches

Es un tema que me llama mucho la atención. Mi amigo Amador Aparicio - co-autor de libro de "Hacking Web Technologies"  también ha estado trabajando el tema, junto a mi otro amigo Jordi Serra - autor del libro de "Esteganografía y Estegoanálisis" -, así lo mostraron en Navaja Negra, con una maqueta muy real. Es un tema que interesa y es que la seguridad en el coche es un punto vital para la sociedad y es un tema bastante serio, como se ha ido viendo en las noticias que hemos ido viendo en los últimos años.


Figura 2: Backdooring CAN Bus en autos

Volviendo a lo que quiero contar hoy, tengo una “bendita” manía y es estar conectado a Kitploit para ver qué herramientas salen, son nuevas, y ver un poco qué hay de nuevo en lo que a herramientas y temáticas se refiere. A veces, hay herramientas que me llaman la atención y decido probarlas, aunque me gustaría probar más de las que puedo, ya que el tiempo siempre escasea. Sin ir más lejos, nuestra querida iBombShell fue publicada en Kitploit.

CANalyzat0r

Esta semana vi una herramienta que llamó mi atención. La palabra CAN aparecía en su nombre y, digamos, tenía un nombre “original”: CANalyzat0r. Me paré a revisar y quise saber más. La herramienta tiene un Github donde se puede descargar la última versión. El proyecto es el resultado de la tesis del investigador Philipp Schmied. Si os interesa el tema debéis echar un ojo a este artículo redactado por el autor donde muestra todos los entresijos de la herramienta escrita en Python.

Figura 3: CANalyzat0r

Ante todo, hay que decir que la idea de crear este tipo de herramienta no es del todo original, pero, ¿qué tiene de nuevo? ¿Por qué crear una nueva herramienta de esta temática? ¿Qué mejora? Son varias las posibles respuestas, pero el autor comenta que incorpora nuevas ideas para analizar los protocolos.

Al final es una herramienta que permite agrupar diferentes funcionalidades en una sola, algo que siempre llama la atención y gusta. Es modular y extensible, es decir, se dispone de documentación para implementar tus propios mecanismos de análisis. Se dispone de una interfaz gráfica que ayuda a manejar la herramienta de manera sencilla y cómoda. Como se puede ver, existen diferentes razones para utilizar este tipo de herramientas.

¿Dónde probar CANalyzat0r?

Se puede probar en el campo de batalla, pero quizá no es lo recomendable para empezar. Existen mecanismos para simular un CAN Bus, como, por ejemplo, el proyecto Instrument Cluster Simulator. Este proyecto genera un SocketCAN virtual, el cual te permitirá hacer uso de la herramienta CANalyzat0r sin necesidad de utilizar en un coche real. Lo mejor es manejar un poco la herramienta en un entorno controlado como es Instrument Cluster Simulator y no jugársela con las pruebas.

Figura 4: Instrument Cluster Simulator

Y una vez que lo tengas configurado, la lista de cosas que se pueden hacer con CANAlyzat0r son bastantes. Estas son algunas de las características que podemos disfrutar:
• Gestión de interfaces.
• Soporta múltiple interfaz.
• Dispone de la capacidad de generar las sesiones como proyectos, lo cual permite almacenarlo en formato JSON y poder reanudar el trabajo más adelante.
• Registro de información y de acciones de forma transparente.
• Sniffing con interfaz gráfico.
• Fuzzing y sniffing.
Figura 5: Sniffer en CANalyzat0r
• Filtros por paquetes para mejorar las posibilidades de representación de la información que nos interesa.
• Funcionalidad para comparar dumps obtenidos previamente.
• Filtrado avanzado de paquetes.
• Búsqueda por acciones concretas en paquetes específicos.
• Soporte de SQLite.
• Generación de archivos PDF y HTML.
Para el análisis de funcionalidades de componentes de los coches, el fuzzing aparece como una técnica potente, sobre todo como punto de entrada. Utilizando esta aproximación, los nodos de tipo CAN puede ser observados como un riesgo potencial. En la imagen siguiente, se puede ver un ejemplo del fuzzing utilizado en la herramienta y su configuración.

Figura 6: Fuzzer en CANalyzat0r

Se puede integrar el fuzzer con el sniffer. Conectar el CANalyzat0r al CAN BUS vía SocketCAN no es complejo. Desde la pestaña fuzzer se puede llevar a cabo esto. Es posible definir una máscara de fuzzing y configurar un tamaño de paquete el cual será aplicado de forma ‘random’. Mientras los paquetes ‘random’ están siendo generados y enviados sobre el CAN bus, es posible utilizar la pestaña de sniffer para ver los paquetes de respuesta. Estos paquetes pueden ser almacenados, reenviados o filtrados.

El ataque de replay puede ser utilizado. Para ello, es necesario capturar paquetes y hacer un dump mientras se está ejecutando en el coche ciertas tareas. Por ejemplo, el desbloqueo de puertas utilizando un control remoto. Una vez este evento o tarea ocurre, se puede conseguir mediante el sniffer. Una vez capturado dicho paquete, se puede reutilizar en un momento determinado. En el siguiente video se clasifica un evento como “Unlock

Figura 7: Demo de CANalyzat0r

Sin duda, una herramienta interesante. Como comenté anteriormente, interesante para probar a través del simulador del CAN. Seguiré analizando más cosas sobre la herramienta. La seguridad en el mundo del coche puede avanzar y, seguramente, veamos más investigaciones que ayuden a mejorar la seguridad de todos cuando montemos en los coches.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance 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.

No hay comentarios:

Publicar un comentario