viernes, 18 de agosto de 2017

¿Coche autónomo o red distribuida motorizada...y vulnerable?

No tenemos la fuente, pero había un dicho que decía que para reparar un SEAT 600 solo se necesitaba llevar un destornillador, una llave inglesa y una percha. Sí, una percha. Su mecánica era tan sencilla que supuestamente bastaban esos tres aparejos para devolver al pequeño utilitario a la carretera si se daba un imponderable en medio de una travesía.
Varias décadas después los coches ya no existen como tales, ahora son ordenadores con ruedas, un motor y de momento un volante. Del mismo modo que el teléfono ha desaparecido para convertirse en una aplicación más de un computador móvil, al que llamamos cariñosamente: “teléfono inteligente”, el futuro de la automoción pasará por eliminar ese reducto del pasado que seremos los conductores.
Sin embargo, sería impreciso decir “un solo ordenador”. El coche está yendo más allá y podríamos hablar incluso de una compleja red distribuida de computadores conectados y trabajando en armonía, orquestados por un protocolo denominado CAN (Controller Area Network). Diseñado por Bosch en 1983, CAN se convirtió en el estándar de una industria que comenzaba a aventurarse en la fusión de tecnología digital con la de combustión de gases (otra paleotecnología con los días contados).
CAN es un protocolo interesante. Se basa en la topología bus, es multiplexado y su implementación no requiere de excesivo cableado para que todas las terminaciones puedan participar de la red. Su modelo de seguridad no está pensado más allá de la tolerancia a fallos, latencia garantizada o retransmisión de…tramas corruptas. Es decir, en 1983, en plena época de cardados y hombreras, lo último que se pensaba es en que treinta años después alguien iba a acceder al coche para implantar un chip que se hiciera con el control de los frenos; pura ciencia ficción entonces.

Hace un par de años, ya hablamos del hackeo que Charlie Miller y Chris Valasek llevaron a cabo sobre un vehículo de la marca Jeep, del que tomaban el control de algunos elementos. Para hacer que estos componentes del coche obedecieran a sus órdenes era necesario enviar mensajes a través de CAN con contenido malicioso (básicamente órdenes malintencionadas). Ese es el principal problema, que este protocolo obvia la autenticación del origen y la integridad y autoría de los mensajes.
Es posible inyectar paquetes en el bus CAN dirigidos a un componente en particular y cuando este vea el contenido lo procesará, ya que pensará que esa orden o solicitud proviene de otro componente e iba dirigida hacia él. Sin duda, un exceso de confianza fruto de un diseño en el que la seguridad no tuvo protagonismo alguno.
Para evitar estos ataques se han desarrollado medidas paliativas, tales como la incorporación de controladores que actúan a modo de IDS, examinando el bus y filtrando paquetes que contienen una orden considerada como peligrosa. Por ejemplo, retraer la capota cuando vas a 160 Km/h o activar toda la potencia de frenado.


Un error en la especificación
Ahora, un grupo conjunto de investigadores de Trend Micro y el Politécnico de Milán se ha dedicado a retorcer un poco más las posibilidades de CAN, haciendo que incluso con la presencia de un sistema de detección adicional, se puedan manipular paquetes con contenido malicioso. No en vano, la debilidad encontrada no solo se basa en una técnica particular, sino que requeriría una actualización de todo el protocolo, debido a que no es posible hacer nada desde las implementaciones conocidas; un fallo de diseño transversal.



El ataque se basa no en una inyección de paquetes que permitiría alertar a un IDS, sino en la manipulación mínima de los ya existentes para generar condiciones de error. Esto último, es un abuso de una funcionalidad que posee el protocolo CAN para permitir que partes defectuosas se desactiven o desenganchen del bus y no introduzcan datos erróneos. Es decir, mejor que algo esté ausente que pervierta el sistema.
Si se considera que un dispositivo está generando mensajes erróneos este es desconectado del bus sistema. Esta es la base de los ataques, técnicamente una denegación de servicio, que inducen la desconexión eventual de cierto grupo de componentes de forma discrecional. Cabe decir que de momento el ataque parece precisar de aproximación física (no es remoto) y manipulación de elementos (implantación), pero abre la puerta a ataques más avanzados o encadenamiento de vulnerabilidades. El US-CERT ha liberado un boletín de aviso.
CAN parece estar pidiendo una revisión a gritos. Los nuevos ataques ponen más en entredicho que la industria debe esforzarse aún más en la siempre pendiente asignatura de seguridad. El hecho de que, de momento, un coche siga pareciéndose más a un coche que a un ordenador no le exime del principio más fundamental de la seguridad informática: si produce, almacena, transmite o procesa bits, es hackeable.


David García
dgarcia@hispasec.com

Más información:

The Crisis of Connected Cars: When Vulnerabilities Affect the CAN Standard
http://blog.trendmicro.com/trendlabs-security-intelligence/connected-car-hack/

Investigadores consiguen vulnerar y controlar los sistemas de un coche
http://unaaldia.hispasec.com/2013/07/investigadores-consiguen-vulnerar-y.html