Parte: 13 — Seguridad móvil, IoT e inalámbrica · Fuente: The Car Hacker's Handbook (Craig Smith) y documentación de can-utils ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Entender la arquitectura de seguridad de un vehículo moderno y auditar su red interna a través del bus CAN. El alumno aprenderá cómo se comunican las ECUs, cómo interceptar y analizar tramas con can-utils sobre una interfaz SocketCAN, cómo hacer ingeniería inversa de mensajes para identificar funciones, y cuáles son las superficies de ataque remotas (telemática, infoentretenimiento, TPMS), practicando exclusivamente en simuladores o vehículos propios.
⚠️ Nota ética y de seguridad física: experimenta solo con tu propio vehículo (con el motor apagado y en lugar seguro) o con simuladores (ICSim, virtual CAN). Inyectar tramas en un vehículo en marcha o ajeno es extremadamente peligroso e ilegal.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Arquitectura del vehículo | Contexto de ECUs y buses |
| 2 | Bus CAN y trama | Protocolo base sin autenticación |
| 3 | OBD-II y acceso físico | Punto de entrada estándar |
| 4 | SocketCAN y can-utils | Herramientas de captura/inyección |
| 5 | Ingeniería inversa de tramas | Mapear IDs a funciones |
| 6 | UDS y diagnóstico | Servicios y su abuso |
| 7 | Superficies remotas y defensa | Telemática, TPMS, gateway seguro |
En CAN clásico, los nodos comparten bus y arbitran mediante identificador; los valores más dominantes ganan prioridad. El identificador describe prioridad y significado esperado, no autentica qué ECU transmitió. El protocolo detecta errores de transmisión, pero no aporta por sí solo confidencialidad ni autorización de comandos.
La seguridad moderna depende de arquitectura: gateway, separación de dominios, arranque y actualización seguros, diagnóstico autenticado, protección de claves, detección y respuesta. Añadir criptografía a cada frame puede enfrentar latencia y compatibilidad; el diseño se decide por función y riesgo de seguridad física.
Analizar tráfico busca periodicidad, contador, checksum y relación con una acción en simulador. Correlación no identifica semántica definitiva. Inyectar en un vehículo real puede accionar sistemas, distraer al conductor o dañar componentes; todo laboratorio usa vcan e ICSim, vehículo fuera de vía en banco autorizado o equipos aislados por profesionales.
Un byte aumenta al mover el control de velocidad en ICSim. Puede representar velocidad, valor escalado o parte de un contador. El alumno modifica una variable por vez, repite, prueba límites y documenta hipótesis. No traslada el ID a otro modelo: DBC y diseño cambian entre vehículos.
| Término | Definición útil |
|---|---|
| ECU | Unidad electrónica que controla una función vehicular. |
| Arbitration ID | Identificador usado para prioridad y significado, no identidad segura. |
| DBC | Descripción de señales y codificación de mensajes CAN. |
| Gateway | Componente que media tráfico entre dominios de red. |
| vcan | Interfaz CAN virtual de Linux sin bus físico. |
Existe dominio cuando el alumno explica arbitraje y falta de identidad, infiere una señal con experimentos repetibles en vcan, evita generalizar IDs y propone controles de ciclo de vida alineados con seguridad vehicular.
candump, cansend).candump, cansend, cansniffer, cangen), SavvyCAN para análisis gráfico.# CAN virtual + simulador (sin hardware, seguro)
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan && sudo ip link set up vcan0
./setup_vcan.sh # de ICSim
./icsim vcan0 & # tablero simulado
./controls vcan0 & # mando para generar tráfico
# Capturar, filtrar e inyectar
candump vcan0 # ver todo el tráfico
cansniffer vcan0 # ver cambios por ID
cansend vcan0 244#01 # enviar una trama (simulador)
vcan0 para trabajar sin riesgo físico.candump y cansniffer identifica el flujo de IDs mientras el mando genera actividad.cansniffer para ver qué ID/bytes cambian.cansend reproduce la trama para reproducir la función en el simulador (replay).vcan0 y arranca ICSim.En el simulador ICSim, haz ingeniería inversa de una función (velocímetro, intermitentes o cerraduras) y reprodúcela mediante inyección de la trama correcta. Criterio de aceptación: identificas el arbitration ID y el/los byte(s) responsables, y demuestras con cansend que reproduces la función en el tablero simulado, documentando la trama exacta.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
vcan0 no aparece |
Falta modprobe vcan; cárgalo y crea la interfaz |
candump no muestra nada |
Interfaz caída o simulador parado; ip link set up y arranca ICSim |
| Replay no reproduce la función | ID/byte equivocado o el simulador reescribe el valor; reidentifica con cansniffer |
| Demasiado tráfico para analizar | Usa cansniffer y filtros por ID en lugar de candump crudo |
| Bitrate incorrecto (hardware real) | Configura el bitrate del bus (500k típico) al levantar la interfaz |
❓ ¿Puedo practicar sin un coche? Sí y es lo recomendable para empezar: ICSim sobre CAN virtual reproduce un tablero y su tráfico sin ningún riesgo físico.
❓ ¿Por qué el bus CAN es tan inseguro? CAN clásico es un bus compartido sin autenticación criptográfica de origen ni confidencialidad incorporadas. Un nodo con acceso al segmento puede observar y transmitir, pero gateways, topología, validaciones y estado de las ECU condicionan qué tramas llegan y qué efecto tienen.
❓ ¿Cómo llega un atacante remoto al CAN? A través de superficies conectadas (telemática celular, WiFi/Bluetooth del infoentretenimiento, TPMS) que, si no están bien segmentadas por un gateway, permiten pivotar hacia buses críticos.
Clase 273 — Seguridad de sistemas de control industrial (ICS/SCADA)