Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Resumen del discurso:

Para muchos de nosotros, un automóvil es una de las compras más caras que jamás realizaremos. En un mundo donde todo está conectado, es natural querer controlar nuestro coche de forma remota: recibir recordatorios de dónde lo estacionamos, comprobar que hemos olvidado cerrar las puertas o arrancar el motor de forma remota para precalentar o enfriar el interior. dependiendo de la época del año.

Hay muchos fabricantes que ofrecen sistemas de alarma opcionales que brindan esta comodidad y tranquilidad. Pero, ¿cuánto podemos confiar en los proveedores de estos sistemas para proteger el acceso a nuestros automóviles en el dominio digital? En esta charla, Jmaxxz hablará sobre lo que descubrió cuando examinó uno de estos sistemas.

Jmaxxz es conocido por su trabajo con los sistemas domésticos inteligentes August Smart Lock (presentación en DEFCON 24 “Backdooring The Frontdoor”). En los últimos años, su atención se ha centrado en los dispositivos IoT. Participó en las secciones "Día cero de la aldea IoT" de DEFCON 24 y DEFCON 25 y finalmente decidió que era hora de explorar un producto del mercado secundario de automóviles: un arrancador remoto (en adelante, RS).

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Entonces, mi nombre es J-Max, soy programador de profesión y hacker de vocación. Estoy involucrado en todo lo relacionado con las cerraduras y a lo largo de esta conversación escuchará muchas declaraciones que expresan únicamente mis opiniones y no tienen relación con las opiniones de mis empleadores pasados, presentes y futuros. Como probablemente habrás comprendido, hablaremos de coches, concretamente de arrancadores remotos y sistemas de alarma. Comencemos con algunos antecedentes, lo cual es importante en este contexto porque muchos consideran que estos sistemas son un lujo innecesario.
Donde vivo hace bastante frío y mi amigo sufre de una enfermedad llamada síndrome de Raynaud. El frío provoca espasmos de los vasos sanguíneos de las manos, el flujo sanguíneo a los dedos se reduce drásticamente y aparecen signos de congelación, incluida necrosis tisular. La diapositiva muestra cómo se ve normalmente.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

En noviembre pasado todavía no había decidido qué le regalaría por Navidad. Entonces regresa a casa desde el aeropuerto molesta porque su auto nunca se calentó en el camino a casa. En ese momento me di cuenta de que le regalaría un sistema de arranque remoto del motor y comencé a buscar la mejor opción. Resulta que el mercado de arrancadores remotos es bastante grande y muchos fabricantes no brindan suficiente información sobre su producto.

No le dicen cómo instalar el sistema ni qué herramientas utilizar para programar el dispositivo. Esto es un problema para mí porque este es mi auto, mi arranque remoto y necesito tener acceso a estas herramientas. Así que busqué un poco más y encontré una empresa de Canadá, Fortin, que produce este tipo de entrantes y me proporciona de buen grado toda la documentación necesaria. Me decidí por este producto y comencé a buscar un control remoto adecuado. El hecho es que si utiliza un control remoto estándar con un arrancador remoto, su rango de acción se limitará al alcance del control remoto estándar. Se ofrecen controles remotos del mercado de accesorios que funcionan dentro de un rango de media milla a una milla y media. Según las opiniones de los consumidores, se trata de un truco publicitario, porque en realidad la distancia es mucho más corta. Este es el problema, porque mi amiga necesita arrancar el motor de su auto en el estacionamiento del aeropuerto tan pronto como se baja del avión, que está aproximadamente a media milla.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Entonces, sería fantástico si pudiera sacar su teléfono, abrir la aplicación y presionar Iniciar. Encontré un producto de terceros llamado MyCar que es totalmente compatible con el motor de arranque Fortin. Se trata de un pequeño llavero con una tarjeta SIM y un receptor GPS que puedes poner en tu coche y conectarlo al arranque remoto. Luego, utilizando una aplicación móvil, puede arrancar el motor de forma remota, desbloquear las cerraduras y cosas por el estilo.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Pensé que esto sería fantástico: justo después de que el avión aterrice, mi amiga puede arrancar el motor y, cuando llegue al coche, la cabina ya estará caliente.

Entonces, hablemos un poco sobre cómo funcionan los arrancadores remotos. Para hacer esto, primero debe comprender cómo arranca el motor de un automóvil. Hasta mediados de los años noventa, el motor de arranque de un automóvil era una cerradura mecánica tradicional con una combinación de llave e interruptor. Había que introducir la llave y girarla para completar el circuito eléctrico. Luego, las cerraduras con la etiqueta "inmovilizador" se hicieron populares en los Estados Unidos. Suena complicado, pero es sólo una cerradura electrónica. Entonces, tienes una cerradura mecánica, que es la llave de una cerradura electrónica, que, a su vez, es un transpondedor y contiene información que se puede leer. Y hasta que no abras la cerradura electrónica, tu coche no arrancará. En el lado derecho de la diapositiva verás 2 llaves: la izquierda es para el inmovilizador y la derecha es para el interruptor de encendido normal. Simplemente acciona los componentes mecánicos de la cerradura, mientras que la llave izquierda abre la cerradura electrónica, que pondrá en marcha el motor del coche.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

¿Por qué te hablo de esto? El arranque remoto funciona a través del inmovilizador. En la siguiente diapositiva verá un diagrama de cómo conectar el dispositivo Fortin EVO One al inmovilizador; en la parte inferior izquierda verá un par de contactos designados como IMO. En la parte superior derecha del diagrama verá dos líneas: CAN LOW y CAN HIGH. Estos son contactos para conectarse al bus CAN del automóvil. La razón por la que los arrancadores remotos se conectan al bus CAN es para reducir los costos de instalación porque se utilizan menos conexiones durante la instalación. Si el arrancador remoto puede leer datos del bus CAN o enviar comandos a través del bus CAN, esto reduce el tiempo de instalación del sistema de arranque remoto del motor.

En la parte superior izquierda del diagrama hay una gran cantidad de GPIO asociados con el control o la lectura de información sobre la máquina. Por ejemplo, desea que las luces parpadeen o que suene una bocina cuando presione el botón de bloqueo. Cosas como esta se pueden controlar usando estos GPIO. En la parte inferior izquierda del diagrama se ve un conector grande y tosco: esta es la interfaz que evita el bloqueo mecánico. Es decir, no es necesario insertar y girar la llave en el encendido porque esta interfaz permite que el relé del sistema de arranque remoto se comunique directamente con la cerradura eléctrica.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Las siguientes diapositivas muestran las etapas de instalación de un arrancador remoto. Consiste principalmente en retirar la tapa de la columna de dirección, instalar y conectar la unidad DS. Parece bastante aterrador, pero es fácil de hacer.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Los propios controles remotos se conectan a lo que Fortin llama un enlace de datos. El sistema utiliza el protocolo patentado de transferencia de datos físicos UART, un transmisor asíncrono universal que intercambia datos a una velocidad de 9600 baudios. El arrancador remoto Fortin simplemente se conecta mediante un bus UART a los dos controles remotos que ve en la diapositiva.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Después de instalar el DS, pensé en cómo estos dispositivos podrían afectar la seguridad del coche. Obviamente, el DS debe pasar por alto el inmovilizador, entonces, ¿qué tan seguro es esto en términos de posibilidad de robo o interceptación del control del automóvil? Esto se aplica no solo a la transmisión de datos a través de la red celular, sino también a la propia señal de inicio remoto. Entonces comencé a buscar en Internet información del fabricante sobre el protocolo de transferencia de datos utilizado y terminé en foros donde la gente escribía que Fortin se negaba a proporcionar este protocolo. Una de las razones: “No distribuimos dicha información porque EVO no es un juguete para aficionados, sino que está destinado a profesionales.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Siendo algo así como un profesional, decidí construir mi propia máquina en el escritorio. Conseguí una segunda unidad del sistema EVO, monté una placa de circuito que representaba el automóvil, agregué interruptores para simular el encendido, un botón para el pedal del freno y un montón de LED para mostrar varios estados.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Juntando todo esto, conecté el dispositivo de monitoreo de enlace de datos FTI y comencé a recopilar estos datos. Al principio se parece a una diapositiva y no está del todo claro qué está pasando aquí. Pero si miras de cerca, puedes decir que definitivamente hay algún tipo de estructura aquí.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Tenga en cuenta que cada vez que presiono un botón en mi control remoto, el mensaje que envía la antena a mi DS siempre comienza con 0C y termina con 0D. Entonces, si simplemente dividimos lo que obtenemos, asumiendo que 0C es el comienzo y 0D es el final, terminaremos con algo como esto.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Aquí ya hay algún tipo de estructura claramente visible, por lo que puedes descubrir lo que está sucediendo. Al dedicar tiempo a rastrear qué mensaje aparecía después de presionar un botón específico, pude crear una tabla de comandos, cada uno de los cuales correspondía a una acción específica. Es decir, cuando presiona un botón en el control remoto, la antena envía un comando al módulo de inicio remoto que se ve así.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Así es como se ve una estructura de equipo típica.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Cuando presiona un botón en el control remoto, la antena envía dicho comando al arrancador remoto. Lo despierta el byte 0C, seguido de 2 bytes, que creo que representan la dirección de transmisión. Esto es interesante porque el UART ya tiene una dirección de señal, así que marqué estos bytes como "basura", simplemente los traté como una constante. A esto le sigue un solo byte que indica el comando que el usuario desea ejecutar. Esto podría ser cerrar puertas o abrirlas, apagar la alarma, etc. Por lo general, todo lo que quieras hacer de forma remota está asociado a este comando. La carga útil FF FF F1 es una dirección o identificador que identifica la antena remota de donde proviene el mensaje. Si la unidad DS no reconoce el identificador, el comando se ignora. Si el DS acepta el identificador, se inicia un procedimiento de varios pasos que incluye comprobar la presencia de la llave en el contacto, encender o apagar el motor, pisar el pedal del freno, etc. De hecho, este proceso no tiene mucha importancia, es sólo que el dispositivo está aprendiendo la identificación en este momento.

Al final del mensaje hay un byte con una suma de verificación y un byte que indica el final del comando. Ahora que entendemos cómo funciona el protocolo, ¿qué podemos hacer al respecto? Tengo un par de videos sobre el tema. Lamentablemente, por alguna razón el video se queda sin sonido, así que les contaré lo que sucede en la pantalla. A la izquierda de la columna de dirección en la carcasa del panel de instrumentos hay una caja blanca que contiene componentes electrónicos con firmware Particle.IO que comprende el protocolo Fortin. El cable con la punta azul es la antena. Esto me permite interactuar con la unidad de arranque remoto desde el interior del automóvil y ver lo que sucede en la pantalla del portátil.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Entonces envío el comando de desbloqueo de bloqueo al auto pero no funciona porque el DS no sabe acerca de esta antena. Como ya mencioné, esto es solo un UART, cuya propiedad es soportar la llamada comunicación bidireccional, gracias a la cual se puede obtener información de forma remota sobre el estado del automóvil. Por ejemplo, si el motor se arrancó o se paró físicamente, la unidad DS enviará el mensaje correspondiente a la antena del control remoto. En este caso, el mensaje contendrá la dirección de esta misma antena.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

El problema es que la comunicación se realiza mediante el protocolo UART, y cualquiera que se conecte al bus UART puede ver la dirección donde se envía un mensaje determinado, por lo que mi firmware tiene la capacidad de clonar la dirección de una antena existente, lo cual hago. con el comando correspondiente.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Para generar un mensaje, solo necesitas abrir la puerta del auto. Como puede ver, el DS envía un mensaje a la antena de que la puerta estaba abierta y la alarma se enciende inmediatamente.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Para apagar la alarma, envío el comando "desbloquear", después de lo cual se apaga el sonido de la alarma y se desbloquea el automóvil. Tendrás que confiar en mi palabra, ya que no pudimos reproducir este video con sonido. Intentemos reproducir el vídeo nuevamente.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Bueno, apareció el sonido (nota del traductor: en la pantalla se reproduce el mismo video con sonido). Entonces, viste cómo envié el comando DS y encendí la alarma, todo sin llave. Ahora intentemos arrancar el coche de la misma forma, para ello mira el siguiente vídeo.

Por lo general, si simplemente escribe "iniciar" e intenta arrancar el motor, no funcionará. La razón es que se trata de un coche con transmisión manual y los sistemas de arranque remoto tienen un procedimiento especial para este tipo de coches. En este caso, debe presionar el botón de arranque remoto mientras la llave está en el encendido y el motor en marcha. Luego puede sacar la llave, salir del automóvil, cerrar la puerta, después de lo cual el DS apagará el motor y cerrará la puerta. Esto se hace para evitar que el automóvil responda al arranque remoto del motor mientras conduce, porque esto es peligroso. Sin embargo, esta no es una característica de seguridad completa. Esto es bastante fácil de comprobar observando la unidad de arranque remoto EVO. Verá este cable de bucle amarillo que está diseñado para funcionar con una transmisión manual. Si se corta, este bloque se puede utilizar para un automóvil con transmisión automática. Este diseño de la unidad permite no utilizar ninguna configuración especial al instalar el DS en automóviles con diferentes tipos de transmisión.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

Entonces el sistema no respondió al comando "iniciar", así que voy a colocar este bloque nuevamente en su lugar y simplemente cortaré este cable para romper la conexión. Ahora, si repites el comando de “arranque”, sonará una señal sonora y los indicadores de estado de los sistemas del automóvil se encenderán en el panel de instrumentos, como sucede cuando se inserta una llave en la cerradura.

Conferencia DEFCON 27. Tu coche es mi coche. Parte 1

De momento tenemos un coche que podemos arrancar de forma remota sin llave en el contacto, pero el módulo DS no es todo lo que necesitamos. En circunstancias normales, todavía no podrás conducir un coche arrancado de forma remota, pero intentémoslo de todos modos.

Para desactivar el bloqueo del volante, es necesario insertar una llave normal en la cerradura de encendido, que no tiene ningún transpondedor. Como puede ver, basta con mover la llave a la posición antes de arrancar el motor, y el volante del Subaru Impreza comienza a girar con total libertad.

Sin embargo, si no tiene ninguna llave, cuando presione el pedal del freno el automóvil se detendrá. Es bastante fácil sortear esta limitación. Debe descubrir cómo el automóvil le dice al arrancador remoto que el freno está aplicado. Verá varios puertos multicolores en la parte posterior de la carcasa del módulo EVO; el cable del bus CAN se conectará aquí. Basta con quitar este cable de la unidad DS después de arrancar el automóvil de forma remota y no responderá al presionar el pedal del freno. Como esta unidad está ubicada debajo de la cubierta de la columna de dirección, doy la orden de "arranque" a través de mi computadora portátil, el auto arranca, abro la puerta, salgo del auto y quito el conector del bus CAN de la unidad EVO. Como puedes ver, el motor del coche está en marcha, pero todavía no tenemos ninguna llave en el contacto.

Ahora si presionas el pedal del freno no pasará nada porque el EVO no sabe que fue presionado. Después de eso, puedo ponerme al volante, pisar el freno, mover la palanca de cambios a la posición "Conducir" y el coche empieza a moverse. Todo esto se hace sin ninguna clave.

21:40

Conferencia DEFCON 27. Tu coche es mi coche. Parte 2

Algunos anuncios 🙂

Gracias por estar con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más contenido interesante? Apóyanos haciendo un pedido o recomendándonos a amigos, VPS en la nube para desarrolladores desde $4.99, un análogo único de servidores de nivel de entrada, que fue inventado por nosotros para usted: Toda la verdad sobre VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps desde $19 o como compartir servidor? (disponible con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

Dell R730xd 2 veces más barato en el centro de datos Equinix Tier IV en Amsterdam? Solo aqui 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV desde $199 ¡en los Paises Bajos! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ¡desde $99! Leer acerca de Cómo construir infraestructura corp. clase con el uso de servidores Dell R730xd E5-2650 v4 por valor de 9000 euros por un centavo?

Fuente: habr.com

Añadir un comentario