Industrial OT & Automotive Cybersecurity
CAN Bus · SCADA · Modbus/TCP · Automotive Hacking · SecOC · ISO/SAE 21434 · IEC 62443
Capítulo 1 · Ciberseguridad OT & Modelo Purdue Industrial
A diferencia de la tecnología de información tradicional (IT) enfocada en la Confidencialidad, la Tecnología de Operación (OT) prioriza la Disponibilidad y Seguridad Física (Safety). Un ciberataque en una planta química o sistema de frenado automotriz tiene consecuencias en el mundo físico.
Principales Casos de Amenazas Históricas en OT
- Stuxnet (2010): El primer ciberarma cibernético diseñado para manipular PLCs Siemens S7-300 y destruir centrifugadoras físicas en Natanz.
- Industroyer / CrashOverride (2016): Malware diseñado para subestaciones eléctricas utilizando protocolos ICS crudos (IEC 60870-5-104, IEC 61850).
- Jeep Hack by Miller & Valasek (2015): Explotación remota a través del sistema de Infotenimiento conectándose al CAN Bus para deshabilitar frenos en carretera.
Capítulo 2 · Protocolo CAN Bus & Arquitectura In-Vehicle
El bus CAN (Controller Area Network) fue desarrollado por Bosch en 1986 y es el estándar de comunicación en todos los vehículos modernos y maquinaria pesada industrial.
Estructura Interna de un Frame CAN 2.0B (Standard & Extended)
| Campo Frame CAN | Función | Relevancia en Ciberseguridad |
|---|---|---|
| Arbitration ID | Identificador del mensaje y prioridad (menor ID = mayor prioridad). | Permite ataques Bus-Off DoS enviando paquetes con ID 0x000. |
| DLC (Data Length) | Indica el número de bytes de datos (0 a 8 bytes en CAN 2.0). | Se usa para validar estructuras de paquetes esperadas. |
| Data Payload | Valores físicos de sensores (RPM, Ángulo de Dirección, Presión). | Inyección de comandos maliciosos para modificar actuadores físicos. |
Capítulo 3 · Automotive Hacking & Auditoría CLI (SocketCAN & Python)
Para auditar la seguridad de un vehículo o banco de pruebas industrial en Linux, utilizamos la interfaz de kernel **SocketCAN** y la suite **can-utils**.
# 1. Levantar interfaz CAN virtual (vcan0) para prácticas de auditoría
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
# 2. Iniciar sniffer de tráfico en tiempo real
candump -c -t a vcan0
# 3. Inyectar trama de prueba (ID: 0x1A0 | DLC: 4 | Data: DE AD BE EF)
cansend vcan0 1A0#DEADBEEF
Script en Python de Inyección y Fuzzing de ECUs
import can
import time
# Conectar al bus CAN local
bus = can.interface.Bus(channel='vcan0', bustype='socketcan')
def inject_spoofed_speed(target_id=0x2B0):
# Simular inyección de velocidad engañosa (180 km/h) a la pantalla del cluster
data = [0x00, 0xB4, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x12]
msg = can.Message(arbitration_id=target_id, data=data, is_extended_id=False)
for _ in range(100):
bus.send(msg)
time.sleep(0.01) # Inyección de alta frecuencia a 100 Hz
print("[+] Inyección de Spoofing completada exitosamente.")
inject_spoofed_speed()
Capítulo 4 · Hardening de IIoT, Modbus/TCP & SCADA Defense
Los entornos de fabricación e Internet de las Cosas Industrial (IIoT) operan frecuentemente con protocolos heredados como **Modbus/TCP** sobre el puerto 502. Modbus carece de autenticación nativa, permitiendo a atacantes manipular registros de PLCs mediante comandos como `Write Single Register (Function Code 06)`.
Capítulo 5 · Estándares ISO/SAE 21434, IEC 62443 & AUTOSAR SecOC
Para cumplir con las regulaciones internacionales (UNECE R155 / R156), los fabricantes automotrices e industriales deben certificar sus arquitecturas mediante marcos de ciberseguridad estrictos.
Capítulo 6 · Simulador Interactivo Live CAN Bus & Sistema IDS
Experimenta en tiempo real con la inyección de vectores de ataque en un bus CAN automotriz virtual y observa cómo el módulo **IDS (Intrusion Detection System)** mitiga los ciberataques.