En el reciente Chaos Communication Congress en Hamburgo, dos expertos, Felix Domke y Daniel Lange (ex jefe de estrategia de TI en BMW) dio una charla sobre lo que había ocurrido exactamente con el fraude en las pruebas de emisión de Volkswagen.
Durante los últimos meses hemos visto una gran cantidad de historias publicadas en los medios sobre el Dieselgate. Dicho esto, se explicó el funcionamiento de este engaño y quién es realmente el responsable de esta implementación. Por eso es interesante ver la investigación dirigida por expertos independientes que han intentado descubrir la verdad.
¿En primer lugar, por qué ha ocurrido todo este engaño?
El problema más grande de las pruebas de emisión es que siempre se llevan a cabo con un modelo estándar como el llamado NEDC (New European Driving Cycle, en español, ciclo de conducción). Este modelo consiste en ciclos de aceleración y frenado muy cortos y un ciclo largo con mayor velocidad, que representan el tráfico en la ciudad y en la autopista, respectivamente. En la vida real nadie conduce así, y definitivamente nadie conduce exactamente así.
Pero para la medición de emisiones, utilizan justo este mismo modelo, por lo tanto, los ingenieros de las compañías de coches, pueden hacer trucos para mejorar los resultados de las medidas. ¿Por qué lo hacen? Así de simple: es más barato que hacer las mejoras reales. Si una empresa pudiera hacer algo con menos presupuesto, definitivamente lo preferiría de esta forma, si el resultado es importante para el cumplimiento de la compañía.
“Los trucos en las pruebas son muy comunes”, dijo Lange. “¿Pero qué tretas se están llevando a cabo exactamente para modificar las emisiones? Por ejemplo, explotan los neumáticos a 3 barias, más de lo que realmente podrías utilizar por el camino. La parte inferior del neumático se ve así, esto significa que solo tienes esa pequeña porción de rueda que aún toca el suelo, tu resistencia se reduce”.
“Le ponen diésel al aceite, porque el diésel es más ligero que el aceite, así la fricción se reduce. Quitan el espejo del asiento del pasajero porque por ley no es obligatorio, así la resistencia se sale con la suya. Tapan con cinta todas las aperturas del vehículo. Obviamente, cuando el viento pasa por encima, una vez teniendo todo encintado, pasa más ligero. Todas estas cosas o están “bien”, o están al límite. Así es como se hacen las pruebas de emisión”.
Los resultados de estos trucos son muy simples: los valores de medición, prácticamente no tienen nada que ver con lo que pasa en el mundo real. Toda la industria automovilística lo sabe muy bien. Tal vez cada fabricante de coches hace sus ajustes de software, como lo hizo Volkswagen. De hecho, hace 15 años, BMW fue sorprendido utilizando un truco similar con el software de sus motos.
¿Pero cómo implementas las trampas de software? Para entenderlo mejor necesitamos examinar cómo funcionan los sistemas electrónicos de los coches.
¿Qué hay dentro de la caja el coche?
El componente electrónico directamente responsable de todo lo que pasa con el motor del coche, incluyendo el escape, es la Unidad de Control de Motor (ECU). Los fabricantes de coches no desarrollan estos dispositivos ellos mismos, pero compran este equipamiento a compañías especializadas en sistemas electrónicos para coches. No existen muchas, y al menos en Alemania, el líder en el mercado es Bosch.
Breaking News: E.P.A. orders Volkswagen to recall nearly a half-million carshttp://t.co/WNqBPQnHbd
— The New York Times (@nytimes) September 18, 2015
El código de firmware para la ECU también es desarrollado por el mismo fabricante; ya que el firmware es de vital importancia para el funcionamiento correcto tanto del motor del coche como del propio coche, y se revisa a fondo.
Como ha dicho Lange, “esto es simulado y probado a muerte. Porque es muy importante. Porque si tú tienes esta máquina, que tiene como 200 HP, y lo diriges mal, esta explotará. Es por eso, que esto se trata de la pieza de software mejor testada que nunca encontrarás”.
Volkswagen shares are down 20%. Here’s what we know so far about the emissions scandal: http://t.co/Y2FlLLHRlh pic.twitter.com/WJw9C0vCDy
— The Wall Street Journal (@WSJ) September 21, 2015
Otro hecho es que las compañías de coches no tienen permiso de cambiar el firmware de la ECU. Al mismo tiempo, cada modelo específico de ECU puede ser utilizado por una gran lista de fabricantes de coches en una variedad de modelos y motores. Por lo tanto, para ser compatible con diferentes coches, el firmware de la ECU puede ser ajustada por cada fabricante, en base a los requerimientos específicos de cada coche o modelo en particular.
Por ejemplo, Bosch EDC17C46, el modelo de la ECU utilizado por coches involucrados en el escándalo del Dieselgate, tiene más de 20.000 variables. Si este tablero virtual pudiera materializarse de alguna forma al mundo real, definitivamente sería el panel de control más grande y complejo de todo el mundo.
Un resumen rápido: los ajustes en el código de firmware no pueden ser desarrollados por el fabricante del coche, sino por el fabricante de la ECU, con una solicitud del fabricante. Ya que cada modificación incluye mucho papeleo, los fabricantes de la ECU suelen informar a las compañías de coches que el uso de estos ajustes es ilegal. Y finalmente, la decisión la toma el fabricante del coche. Para utilizar los ajustes, la compañía del coche necesita jugar con las variables antes mencionadas. ¿Pero cómo funcionan exactamente estos ajustes?
La verdad está en el código
Para investigar eso, Felix Domke compró una ECU en eBay y junto con su propio Volkswagen Sharan (afectado por la retirada VW), le aplicó ingeniería inversa. Explotó una vulnerabilidad de hardware de día cero en el chip de la ECU para obtener el firmware de 2 MB y examinar el código. En primer lugar, la investigación le ayudó a entender lo complejo que son los procesos en los sistemas electrónicos de los coches.
Por ejemplo, resulta ser que lo que ves en un tacómetro, no representa las RPMs (revoluciones por minuto) del motor directamente. El valor mostrado en el tacómetro depende de más de otras 20 señales procesadas por 12 KB de código denso (en caso de que tengas duda: eso es un montón de código).
“A estas alturas te das cuenta de que las trampas podrían continuar sin que nadie lo note”, dijo Domke. “Realmente no crees que lo que marca tu velocímetro es la velocidad. Lo que muestra es “algo” relacionado con tu velocidad”.
La parte del control de emisión del firmware es aún más compleja y flexible. Sin embargo, la idea central sobre cómo funciona la reducción de emisiones de óxidos de nitrógeno es más fácil en comparación a la anterior. Para deshacerse de los óxidos de nitrógeno, puedes añadir una sustancia llamada urea (como AdBlue de VW). A altas temperaturas se convierte en amoniaco y reacciona con NOx con agua y nitrógeno dañinos como sustancias resultantes.
Sin embargo, si añadiste demasiada urea, el exceso de amoníaco llega al escape. Esto no es bueno para tu coche. Por eso en una situación normal es mejor añadir menos urea y luego añadir más (lo mejor sería dosificar la cantidad exacta de urea, pero es algo difícil de hacer). Desafortunadamente, esta dosis insuficiente no te dará una puntuación alta en las pruebas de emisión. Básicamente, es por esto que las compañías automovilísticas necesitan hacer trampa.
En el caso de Volkswagen esta trampa se aplicó de la siguiente forma: había dos modos de dosis en que se podía operar con la urea. Uno era el llamado “modelo regular” en la que la dosis de urea era muy grande, y otro llamado el “modelo alternativo” en la que la urea era dosificada. Domke reveló que el 75% del tiempo, el sistema de escape de un VW operaba en el “modo alternativo” casi todo el tiempo restante, sin dosificar urea.
Al mostrarse el análisis del código de firma, el criterio de cambiar a “modo regular” (el cual sigue pasando de vez en cuando), aparte de las condiciones simples para la temperatura del motor y el combustible y la presión atmosférica, incluía un criterio más interesante. Básicamente, se activaba el “modo regular” cuando la distancia recorrida del vehículo sobre el mapa de tiempos estaba dentro de los mínimos y máximos de las curvas de límite.
En el #32C3 los hackers explicaron lo que pasó exactamente con las emisiones sucias de diésel.
Tweet
Para colmo, un par de estas curvas fue diseñada exactamente para que encajara la distancia sobre la tabla de tiempos de un vehículo que corre más de lo mencionado en el New European Driving Cycle. En este caso la dosis de urea fue alta y la emisión NOx fue suficientemente baja como para cumplir los requisitos estrictos europeos. Y esa es exactamente la idea central del truco del software de VW.
Y aunque existen varias versiones de esta historia, hay una que sobresale. Se necesita a alguien con un perfil de TI para tener la habilidad de hacer hackeos o trucos que puedan impactar en el resultado final. La tecnología digital es ahora más importante y la gente que sabe manejarla se volverá más influyente e importante para las compañías. Por un lado, pueden ayudar a burlar sistemas y a esconder la deficiencia de un producto. Sin embargo, por otro lado, pueden exponer trucos y fraudes similares a lo que estos dos investigadores hicieron con Dieselgate.