 Guten Morgen zusammen. Steuergerät in Fahrzeugen. Ich möchte ein bisschen was, ja so eine Art kleine Einführung zu dem geben, was man heutzutage in modernen Fahrzeugen an speziell an Elektronik findet. Kurz zu meiner Person. Ich bin selbstständiger Software-Entwickler. Ich mache auch relativ viel Security-Research, besonders von Hardware. Ich bin am OpenBSC Osmo-Com-BB und ein paar weiteren Osmo-Com-Projekten beteiligt. Das seit circa 2008, da ist OpenBSC, da haben wir damit angefangen. Seitdem schaue ich mir auch ganz besonders die Sicherheit in der Mobilfunk-Kommunikation, also in dem Sinne mit GSM, UMTS, LTE und so weiter an. Was ich in letzter Zeit viel gemacht habe, war Steuergeräte an Fahrzeugen untersuchen und deswegen auch die Idee, da vielleicht einen kleinen Vortrag drüberzuhalten. Die Motivation, warum schaut man sich überhaupt Steuergeräte in einem Fahrzeug an? Einer der wahrscheinlich auch kommerziell wichtigsten Gründe ist Motor-Tuning. Schon seit einiger Zeit ist Motor-Tuning eher weniger, dass man da am Vergaser die Düsen wechselt, sondern man manipuliert das Motor-Steuergerät. Das ist etwas, das hat man schon vor vielen Jahren gemacht, als Motor-Steuergeräte in Fahrzeugen eingebaut wurden. Damals war Motor-Tuning dann unter Umständen auswechseln von dem E-Prom, der gesockelt war. Begriff Chip-Tuning kommt vielleicht auch von der Zeit damals. Heutzutage ist es eher so, dass man die Firmware im Motor-Steuergerät extrahiert, dort Veränderungen vornimmt und wieder zurückspielt. Warum tunet man mehr Leistung, ist ein Grund. Es gibt aber auch Leute, die tatsächlich versuchen, den Verbrauch zu optimieren und dann mit noch weniger Verbrauch auszukommen. Wie gesagt, Motor-Tuning ist ein ziemlicher Geschäftsbereich, die Hardware, mit der man Motor-Tuning an Steuergeräten durchführen kann. Das sind meistens spezielle Programmiergeräte, teilweise mit Pogo-Pin-Adaptern für diverse bestimmte Steuergeräte, die werden von den Anbietern ziemlich teuer verkauft. China sei Dank gibt es davon mittlerweile auch deutlich günstigere Klons, die also auch in Massen mittlerweile aus China zum Zehntel des ursprünglichen Preises verkauft werden, aber das ist immer noch ein ziemliches Gebiet. Ein weiterer Grund, warum sich manche Leute mit der Manipulation von Steuergeräten beschäftigen, ist Tachomonipulation. Angeblich, laut Statistiken in Deutschland, ist angeblich jedes dritte verkaufte Gebrauchtfahrzeug am Tacho manipuliert. Man manipuliert stellt einen niedrigen Tacho Wert ein, um damit einen höheren Preis natürlich zu erzielen. Tacho Manipulation klingt im ersten Moment einfach so nach dem Motto, naja, ich finde irgendwo die Stelle heraus und stelle den Tacho Wert im Kombiinstrument zurück. So einfach war es mal. Die Automobilhersteller haben ein bisschen was dagegen getan. Heutzutage ist der Kilometerstand von dem Fahrzeug durchaus auf diversen Steuergeräten verteilt. Und wenn da irgendwelche Unstimmigkeiten sind, dann aktualisieren die sich auf den höchsten Wert, der halt irgendwo gespeichert ist. Wenn man so eine Manipulation durchführt bei einem höherwertigen Fahrzeug, also, was weiß ich, S-Klasse im RCD ist, da kann es durchaus sein, dass auch ein Tacho Manipulateur mehrere Stunden daran beschäftigt ist, um alle Steuergeräte zu flaschen, teilweise diese auszubauen, weil er nicht über die Schnittstelle im Fahrzeug direkt rankommt. Also da ist Aufwand dahinter. Aber selbst wenn der eine Stunde, wenn der da jetzt einen halben Tag daran arbeitet, bei einem entsprechenden Fahrzeug, wo ich dann vielleicht 4-5.000 Euro mehr im Gebrauchtmarkt verdiene, hat sich rentiert. Ein weiterer Grund, warum Leute an Steuergeräten experimentieren, ist Steuergeräte Reparatur. Ganz besonders betroffen ist davon das Airbag-Steuergerät. Bei vielen Fahrzeugen ist es so, sobald Unfall mit Airbag Auslösung stattgefunden hat, ist das Airbag-Steuergerät, muss das ausgetauscht werden. Nicht, weil es kaputt ist, sondern einfach, weil es diesen Status, da war ein Unfall, permanent speichert, permanent im Sinne von zwar irgendwo im Flash, aber so, dass die normale Werkstatt auch nicht mehr löschen kann und dann braucht man neue Steuergeräte. So ein Steuergerät, ein klassisches Airbag-Steuergerät von, sagen wir mal, einem Golf 7 im aktuellen Fahrzeug, kostet in der Größenordnung 300-350 Euro. Da kann sich es durchaus rentieren, wenn irgendjemand für 50 Euro das Zurücksetzen dieses Status, da war schon mal ein Unfall ermöglicht. Das ist auch ein gewisser kommerzieller Bereich natürlich, weil man damit Geld verdienen kann. Der nächste Bereich ist Coding. Coding ist so der Begriff, der kommt eigentlich aus der Fahrzeugszene, im Prinzip bedeutet das Konfiguration der Steuergeräte. Ein typisches Steuergerät ist nicht nur für diese spezielle Fahrzeug und diese Ausstattung gemacht, sondern das kann deutlich mehr bzw. kann alle möglichen Features, die halt in dieser Serie von dem Fahrzeughersteller vorgesehen sind. Manche Features sind nicht unbedingt freigeschalten, die bekommt man erst gegen Aufpreis. Ein typisches Beispiel ist dieser Berg-Anfahr-Assistent. Das ist diese Sache, wenn ich am Berg halte, von der Bremse runter gehe und wieder starten will, dann rollt der Wagen nicht zurück, sondern der hält die Position. So was ist bei manchen Fahrzeughersteller nur gegen Aufpreis zu bekommen, kostet ja 100, 200 Euro als Ausstattungsmerkmal. Die ganze Funktionalität ist aber bei einem heutigen Fahrzeug, bei einem typischen, auch einem Kleinwagen bereits vorhanden. Das ist die Steuerung, dass die Bremsen gesteuert werden. Das ist alles da, das ist also wirklich nur eine Software-Sache. Und dieses Feature dann einschalten ist eigentlich nur ein Bit irgendwo umkippen in dem sogenannten Coding von einem bestimmten Steuergerät. Ähnlich geht es dann auch, manche Leute schalten da zum Beispiel die Anzahl der Blinkzyklen. Wenn man den Blinker kurz antippt, dann wird teilweise 2-3 Mal geblinkt. Teilweise kann man es in den Einstellungen vom Fahrzeug einstellen. Mit dem Coding kann man dann noch viel mehr machen. Da kann man dann zusätzlich noch Features einstellen, dass so irgendwie ein Licht angeht, sonstiges Spielereien. Aber ja, für manche Leute ganz interessant wird also auch ziemlich gemacht. Wichtiger Bereich ist auch die Untersuchung zu Security. Security in dem Sinne, was passiert, wenn ich jetzt beispielsweise von der Versicherung so ein Gerät angeboten kriege, dass ich mir ins Auto bauen kann, das an meinen Fahrzeugbus angeschlossen wird und das irgendwie mein Fahrzeugverhalten kontrolliert. Und ich zahle dann je nachdem, wie ich fahre, ein günstigeren Tarif. Inwieweit hat so ein Gerät, wenn das jemand hacken sollte, Einfluss auf die Sicherheit des Fahrzeugs, weil beispielsweise jemand in der Lage ist, über den Fahrzeugbus bestimmte Dinge im Fahrzeug auszulösen, die so eigentlich nicht vorgesehen sein sollten. Ein weiterer Punkt ist Daten oder Datenschutz. Also gerade in Fahrzeugen, in denen ein Telematikmodul verbaut ist, Telematikmodul mit vielleicht noch ein eingebauten Sinn vom Hersteller, wo also das Fahrzeug auch Daten zurück zum Hersteller schicken kann. Da ist es natürlich durchaus interessant, was fallen an Daten in dem Fahrzeug an und wie werden die verarbeitet? Auch wenn Fahrzeug meinetwegen in die Werkstatt kommt, es wird dort an die Standardsoftware vom Hersteller angeschlossen. Was passiert da überhaupt? Sind das nur technische Daten oder wird da irgendwie vielleicht auch noch mehr abgefangen? Wenn man die Hersteller fragt, kriegt man da halt irgendwie die Antwort, zumindest in Deutschland so, ja, wir sind konform zum Deutschen Datenschutzgesetz. Klar, sind sie alle. Aber was genau wirklich passiert, kriegt man von den Herstellern zumindest selten gesagt. Ein Beispiel vielleicht noch zu den Daten. Ganz konkret, da kommt auch wieder das Airbag-Modul zum Tragen. In Amerika gibt es schon seit längerem eine gesetzliche Vorgabe, dass das Airbag-Steuergerät in amerikanischen Fahrzeugen einen sogenannten Event-Data-Rekorder haben muss. Das bedeutet, dass kurz vor einem Unfall die Events, die zu diesem Unfall führen, beziehungsweise auch Aktivitäten im Fahrzeug, das bedeutet, wie wird die Bremse betätigt, was wird mit dem Gas gemacht, teilweise wird festgehalten, ob ein Blinker gesetzt ist. Das wird in diesem Steuergerät gespeichert und ist für eine Unfallauswertung dort fest drinnen. Da gibt es Software, das ist hauptsächlich ein Hersteller, das ist eine Ablegerfirma von Bosch, die kann das auslesen und je nachdem Gutachterfälle, sonstige Dinge, wird das also in Amerika auch durchaus verwertet. Wenn man jetzt bei diesem Hersteller für diese Software schaut, bekommt man dort eine relativ umfangreiche Liste über die Fahrzeuge, die der unterstützt. Wenn man jetzt bei deutschen Fahrzeugmodellen schaut, dann ist es so, dabei ausdrücklich immer erwähnt, ja, nur die Fahrzeuge für den US-Markt oder Kanada. In der EU-Ausführung von Mercedes, Audi, VW oder was auch immer wird das Feature nicht unterstützt. Ich meine, man kann jetzt normalerweise davon ausgehen, dass ein Hersteller nicht verschiedene Softwareversionen entwickelt. Es ist relativ klar, dass solche Daten sicherlich auch in einem europäischen Fahrzeug gespeichert werden, nur halt eben, dass es keinen dokumentierten Weg gibt, wie die ausgelesen werden. Aber es ist durchaus mal interessant herauszufinden, was ist an solchen Daten tatsächlich da in einem Airbag-Steuergerät, wenn ein Unfall passiert ist? Präzedenzfälle in die Richtung gab es meines Wissens zumindest in Deutschland auch noch keine, aber wie gesagt, auch etwas, was man sich vielleicht mal anschauen sollte. Um wenn es dann mal so weit ist, dass vielleicht mal wirklich jemand sagt, okay, wir haben da Daten, wir können irgendwas machen, dass man da vielleicht auch tatsächlich mal Einfluss draufnehmen kann, indem man festlegt, ja, wem gehören diese Daten? Gehören die dem Fahrer, gehören dem Fahrzeug Hersteller oder wie auch immer? Dann relativ aktuell, da ist immer noch der VW-Abgaskandal, also letzten Kongress in Hamburg hat Felix Domke, ja, das Steuergerät von seinem Passat, der davon konkret betroffen war, ziemlich genau analysiert, um herauszufinden, was jetzt diese Software eigentlich macht, um diese Manipulation zu ermöglichen. Also sowas ist sicherlich auch ein guter Grund, um sich mal ein Motorsteuergerät genauer anzugucken und so einer der Punkte, wo man dann vielleicht selber irgendwas am Fahrzeug machen will, eigene Modifikationen, Beispiel, man baut sich ein Modul ein, was vielleicht über Bluetooth mit einem Smartphone kommunizieren kann, dann kann ich von außen beispielsweise die Fahrzeugtür öffnen oder irgendwelche Aktionen auslösen. Wäre eine Idee, die man machen könnte, wenn man da motiviert entsprechend ist und am eigenen Fahrzeug experimentieren will. So, mal zu Steuergeräten und Beispiel. Also das Bild schaut jetzt erstmal relativ groß und wüst aus. Das ist ein Screen-Dump von der offiziellen Diagnose-Software von Audi. Das Fahrzeug ist ein Audi A3 von 2015, also ein relativ aktuelles Fahrzeug. Was da so in Grau dargestellt ist, das sind mögliche Steuergeräte in diesem Fahrzeug. Was tatsächlich verbaut ist, das sind die Steuergeräte, die hier mit dem dicken Kasten drum herum sind. Die Texte, die da drüber stehen, ist ein bisschen klein, ich werde dann aber dann noch darauf eingehen. Die habe ich dazu geschrieben, in der offiziellen Software stehen da nur diese drei Buchstaben und eine sogenannte Geräteadresse. Was man ganz grob sieht, sind drei Strenge. Geht's vielleicht doch mal, das ist vielleicht einfach. Also man sieht hier die drei Bus-Systeme. Einer von der obersten ist der sogenannte Mutterbus. Da hängt alles dran, was für den Motor relevant ist. Motor-Elektronik, Erbecksteuerung, Bremsen, Lenkhilfe, Lenkhilfe ist das Servolenkung. Dann gibt es den Fahrzeug oder Innenraumkern, das ist in dem Falle kombiniert, bei anderen Fahrzeugen ist da doch erstmal eine Trennung für irgendwelche Dinge im Innenraum, Dinge wie Leuchten am Fahrzeug, aber hier bei dem Audi ist das alles kombiniert. Die Zentralelektrik, was dort eher so unscheinbar hinten steht, Zentralelektrik ist in dem Falle das Steuergerät, was wirklich für alle Leuchten, Blinker, Fernlicht und so weiter zuständig ist. Kombinstrument, klar. Einparkhilfe, Einparkhilfe ist in dem Falle die akustischen Signale, die man bekommt, wenn man rückwärts wieder in das Rand fährt oder zu nahe herankommt. Die Lenkrad-Elektronik, das ist der Steuergerät, was für alle Schalter und Tasten am Lenkrad zuständig ist. Das muss ja irgendwie vom Lenkrad beweglich, muss ja irgendwie weitergeleitet werden, dafür gibt es ein eigenes Steuergerät. Die Klimaanlage, Tür-Elektrik, da haben wir zweimal Tür-Elektrikfahrer, Tür-Elektrik Beifahrer. Tür-Elektrik ist dann Spiegelverstellung, Fenster hoch runter und solche Dinge. Es gibt einen eigenen Infotainment-Bus, in dem Falle bei diesem Fahrzeug ist dort nur das sogenannte Informationssystem, das ist das eigentliche Infotainment-Modul, also Navi-Radio. Ich glaube, das Fahrzeug hat jetzt kein interaktives Handbuch, aber das ist bei heutigen Modellen auch da so üblich, dass man das Handbuch in Form von einem interaktiven Handbuch im Infotainment-System unterbringt. Da vorne sitzt dran das Diagnose-Interface, das dann direkt zu dem Diagnose-Adapter geht. Wenn man jetzt hier noch ein bisschen schaut, was es so an optionalen Modulen gibt, den A3 gibt es auch in einer Hybrid ausführen, das ist dann der Audi E-Tron, also mit Elektroantrieb zusätzlich zum Verbrennungsantrieb. Dann kommt eine ganze Menge an Steuergeräten zusätzlich dazu, Steuergerät-Elektroantrieb. Es gibt ein Hybrid-Batterie, es gibt ein eigentliches Modul, was die Hochwald-Batterie unterstützt. Es gibt ein Modul für das Hochwald-Laden oben rechts außen. In dem Falle ist es ein Fahrzeug mit Schaltgetriebe. Wenn ich eine Automatik habe, gibt es noch eine Getriebesteuerung dazu. Alle Rad hat ein eigenes Steuergerät, kommen Assistenzsysteme dazu für Spurwechsel, kommen weitere Steuergeräte dazu. Selbst wenn ich eine Sitzverstellung habe, das Fahrzeug hat in dem Fall manuelle Sitzverstellungen, also ich muss noch an den Knöpfen bzw. an den Hebeln stellen. Wenn das elektrisch geht, gibt es eigene Steuergeräte für die Sitzverstellung. Solche Ausstattungen wie Head-Up-Display und so weiter. Also Notruf, das ist ein Notrufmodul für E-Call bzw. Telematik, was dann auch im Falle, wenn er Hybrid, also wenn er mit Elektro ausgestattet ist, dann hat er dieses Notkmodul automatisch drinnen, weniger wegen der Notruf-Funktionalität, sondern da geht es dann eher darum, Elektrofahrzeuge, die sind immer ganz speziell der wilde Hersteller, meistens sehr genau wissen, wie sich die Batterie verhält, wie sich die entwickelt, wie die Lebensdauer ist. Deswegen ist ein Elektrofahrzeug heutzutage eigentlich immer mit einem Telematikmodul ausgestattet und sendet auch diese Daten über den Batteriezustand kontinuierlich, also regelmäßig zum Hersteller. Ich sage so weit mal so einen Koberüberblick, also bei dem Fahrzeug sind es jetzt um die 10-15 Steuergeräte, die man drinnen findet. Was ich jetzt nicht als Steuergeräte zähle, das sind so einfache Stellmotoren, beispielsweise hat die Klimaanlage einige Stellmotoren, die die Lüfterklappen steuern. Das wird nicht mehr durch eine direkte Ansteuerung des Motors vorgenommen, da hat man auch ein einfache Steuergerät, was dann an die Klimaanlage angekoppelt ist, was nichts weiter machen kann, als Motor in eine bestimmte Richtung stellen und vielleicht Rückmeldung geben, ob ein Endanschlag erreicht ist. So was zähle ich jetzt nicht zu den Steuergeräten, weil da einfach viel zu wenig Funktionalität drinnen ist, um irgendwelche komplexeren Dinge damit zu tun. Zu den Bussystemen, die man im Fahrzeug findet, weitverbreitet und eigentlich in allen heutigen Fahrzeugen ist der Kanbus, da werde ich nachher noch im Detail darauf eingehen, was das genau ist, was man im Infotainment-Bereich findet, das ist der Mostbus, media-oriented system transport. Das ist ein Bus, der wird auf optischen Leitern übertragen, in dem Fall keine Glasfasern, sondern diese Plastik-Kunststoff-Lichtleiter, wird zum Beispiel benutzt, wenn ich noch ein zusätzliches Soundsystem im Fahrzeug habe. Dann ist meistens dieses Soundsystem am Infotainment über den Mostbus angeschlossen, also über ein optisches System. Wenn ich nur ein einziges Infotainment-System in einem Fahrzeug habe, gibt es diesen Mostbus nicht, auch wenn er vielleicht im Infotainment-System bestückt ist. FlexRay ist ein Bussystem, was relativ komplex ist und vergleicht zu dem beispielsweise Kanbus, hat aber bestimmte Vorzüge, vor allem ist es schneller. Durch die Komplexität ist es auch teurer, deswegen findet man es meist nur so in den Oberklassen von BMW, Mercedes beispielsweise verbaut, das Audi glaube ich mittlerweile auch, aber es ist eher so die Ausnahme, eben wegen der Komplexität und den höheren Preisen. Vorteile eben diese höhere Geschwindigkeit, aber meistens kommt man auch ohne das aus. Also FlexRay, bestimmten Modellen ja, eher allgemein weniger. Der Linbus, dieses Local Interconnect Network, das ist der Bus, der dann die Aufgabe übernimmt, dass er solche Stellmotoren, wie eben diesen Lüfterklappen, diese Lüfterklappe in der Klimaanlage, oder vielleicht die verstellbaren Spiegel am Auto ansteuern. Das ist ein relativ einfaches und billig zu implementieren, das Bussystem, und da kann man halt so, ist auch langsam, kann man einfache Kommandos übergeben, wie ja, fahren wir in die Richtung, mach dieses, mach jenes, das reicht aber für solche Dinge, wie jetzt Fenster auch hoch runter oder Spiegel verstellen oder eben diese ganzen Klappen zu bedienen, dafür reicht das vollkommen aus. Es hat in älteren Fahrzeugen, hat es noch andere Bussysteme gegeben, relativ verbreitet, war da Carline bei Audi und VW. Die K-Line, die ist teilweise noch da, aber eher für Spezialaufgaben. Wenn man jetzt irgendwie an einem Steuergerät, was Spezielles machen will, sieht man es manchmal auch noch heute, dass da zusätzlich noch Carline da ist, das ist aber dann nicht für einen normalen Techniker, sondern es ist dann eher irgendein Diagnose oder Debugzugang, teilweise für die Entwickler. Ansonsten K-Line auch am Aussterben. Der Cannes, was ist, wie gesagt, eines der wichtigsten Bussysteme im Fahrzeug, das ist auch das Bussystem, was wirklich auch in normalen Kleinwagen, was eigentlich der Standard ist. Es ist ein differenzielles Bussystem, das heißt, das sind zwei symmetrische Leitungen, die da verwendet werden, auf denen kann High, kann Low, also immer abwechselnd Polarität übertragen werden. Man macht das deshalb, weil es einfach störsicher ist im Fahrzeug. Da habe ich aufgrund von den möglichen Störungen durch die Zündanlage doch alles Mögliche, was da vom Motor eben Energie, auch elektrische Energie erzeugt, wirklich ziemlich viele Störungen. Deswegen vielleicht heutzutage nicht mehr früher mit elektrischer Zündanlage und diesen Dingen oder vielleicht auch Verteilerfingern, da war das noch schlimmer. Aber mit einem Grund, warum man da ein differenzielles Bussystem nimmt, ist, dass es eben störsicher ist. Das ist beidseitig terminiert, wenn man so eine Leitung hat und da jetzt vermutet, dass da vielleicht Kanbus drauf sein könnte, einfach mal mit Multimeter hingehen und mal im Messen, wenn da 60 Ohm Widerstand drauf ist, dann ist die Wahrscheinlichkeit sehr hoch, dass es ein Kanbus ist. Man kann da auch ziemlich wenig kaputt machen. Also jetzt mit Multimeter einfach mal draufhalten. Normalerweise sind das so 2-3 Volt-Pegel drauf, da geht nichts kaputt. Kann sein, dass zwar dann irgendwie die Kommunikation kurz mal gestört ist, aber auch die Wahrscheinlichkeit. So eine Leitung in Kanbus im Fahrzeug erkennt man auch recht gut daran, dass dieses differenzielle Bussystem eine verdrillte Leitung ist. Also verdrillte Leitung, die da irgendwo recht unscheinbar und über ziemlich lange im Fahrzeug verteilt ist, meistens Kanbus. So eine Kanbus Message, also was kann ich darauf verschicken, ist eigentlich recht einfach. Es gibt einen Identifier, der ist 11 oder 29 Bit lang, und die heutige Fahrzeuge verwenden mittlerweile teilweise 29 Bit, weil man in den 11 Bit nicht mehr alles unterbringen konnte, was man da verschicken will. Aber ansonsten ist 11 Bit eher Gang und Gebe und zusätzlich zu diesem Identifier gibt es 0 bis 8 Byte-Daten. Mehr ist die einzelne Kannennachricht nicht. Durch die Art, wie das verschaltet ist, gibt es eine Priorität von den Identifier niedriger ID, hat höchste Priorität. Die, die immer durchgeht, es kommt einfach daher, im Prinzip kann jedes, der an einem Bus-System angeschlossen ist, gleichzeitig zum Senden anfangen. Monitort auch, was auf der Leitung passiert. Wenn es jetzt feststellt, dass ein bestimmtes Bit auf High geht, obwohl es selber, dass ein bestimmtes Bit auf 0 geht, obwohl es es eigentlich auf High setzen wollte, dann hört es auf zu senden, weil dann sieht es, okay, da ist jemand, der auch sendet, hat eine niedrigere Priorität, ich höre auf zu senden, ich höre jetzt nur noch zu. Über den Weg wird eigentlich auch sichergestellt, dass wenn man gleichzeitig lossendet, derjenige mit der höchsten Priorität immer durchkommt, aber es keinen Ries-Dat braucht, weil irgendwie Daten durch dieses gleichzeitig gesenden unleserlich geworden sind. Ansonsten ist dieses Paket aus Identifier und 0 bis 8 Byte-Daten doch nicht CRC gesichert und jeder der beteiligten Empfänger, das heißt also wirklich jedes Gerät, was an diesem Bus dran hängt, sendet am Schluss eine Bestätigung, das ist wieder auch ein bestimmtes Bit in diesem Frame, an der einfach gesagt wird, okay, an der Stelle muss das Bit von allen auf 0 gezogen werden, gleichzeitig, wenn es nicht passiert, dann hat irgend einer es nicht mitbekommen. Das ist ein relativ einfachem Mährenismus, aber der stellt sicher, dass diese Daten tatsächlich von jedermann empfangen wurden. So typische Geschwindigkeiten 125 bis 500 Kilobit pro Sekunde, diese 500 Kilobit pro Sekunde, das ist das, was man im Mutterraum findet, kann, kann auch höhere Geschwindigkeiten. Das ist aber ein Fahrzeug, einfach aufgrund von Entsteuerungen wird selten verwendet. Wenn man sowas dann wirklich braucht, dann tendiert man eher dazu, dass man dann wirklich Flexrei nimmt. Was man beachten muss oder was halt auffällt, wenn man jetzt das anschaut, man hat zwar diese Ideen, aber das ist eine Empfänger-Antresse. Wenn ich jetzt an so einem Bus-System drinnen hänge, also hier wird irgendwie das Beispiel, in dem Fall ist jeder dieser drei Stränge, ist ein eigenes Kanbus, wenn ich dort irgendwo dran hänge und mitlese, ich sehe, dass da die Nachrichten sind, aber ich weiß nicht, wer jetzt von den angeschlossenen Steuergeräten, das geschickt hat, bzw. wer es anwindsgerichtet ist. Wenn man auf dem Kanbus mitlesen will, und es fängt mit billigen Modulen an, die einfach von vornherein für Kanbus-Analyse ausgelegt sind, die man teilweise für 50 Euro kaufen kann, es gibt diverse Projekte, die auf Arduino aufbauen. Das Beaglebone Black, das hat eine Kan-Uhr bereits eingebaut, die muss man nur freischalten, wird auch vom Linux-Körn unterstützt. Da braucht man dann lediglich noch ein Teil oder 4 Euro teuer in Transiva, um die elektrische Ankopplung zu machen. Dann hat man mit einem Beaglebone Black bereits ein Kanbus, ein sehr leistungswiegend. Da gibt es heutzutage alles Mögliche, um auf den Kanbus selber darauf zugreifen zu können oder sich Geräte zu bauen, die entweder passiv mitlesen, die Daten aufzeichnen oder auch selber Daten senden können. Was ein Problem ist, wenn man hier dieses Beispiel der Steuergerät im Fahrzeug nimmt, auf der linken Seite hat man ein D-Connector. Dort ist auch ein Kanbus, der hängt über dieses Diagnose-Interface dran. Dieses Diagnose-Interface ist jetzt auch ein Gateway bei den meisten europäischen Fahrzeugen, also zumindest bei den deutschen Fahrzeugen, die ich mir bisher angeschaut habe. Da ist dieses Gateway im Fahrzeug drinnen. Dieses Gateway bewirkt eine Trennung dieser einzelnen Kanbus-Systeme. Es stellt sicher, dass eigentlich nur Nachrichten nicht mehr mal die Mutter kann, zum Infotainment oder Innenraum kann kommen, die dort auch interessant sind. Also Dinge wie jetzt meinetwegen, ja, sollte dort die Öl-Temperatur oder irgendwas gesendet werden, die jetzt vielleicht den Infotainment überhaupt nicht interessieren. Dann hat diese Nachricht durch dieses Gateway im Diagnose-Interface gar nicht erst durchgelassen. Also dieses Diagnose-Interface funktioniert als Gateway so eine Art Firewall. Ist nicht erst Firewall mit den Einstellern da gemacht worden. Ist eher der Grund. Dadurch, dass auf den einzelnen Bus-Systemen viel treffig ist, kann ich die nicht mehr zusammenschalten, weil dann überlasse ich einfach die Bus-Systeme. Also brauche ich eine Trennung. Neben Effekt ist natürlich auch, dass ich sicherstellen kann, dass bestimmte Nachrichten von einem Bus zum anderen gar nicht hinkommen, wenn sie dort nicht hingehören. Für mich als Angreifer oder als jemand, der sein Auto untersuchen will, bedeutet das, wenn ich mich auf den OBD-Konnektor zum Ständen gar nichts, weil dort einfach nichts ankommt, weil ich bin halt an dem Zweig, der nur für Diagnose zuständig ist und das, was intern im Fahrzeug passiert, das kommt bei mir nicht an. Also wenn ich mitbekommen will, was jetzt auf diesem grünen Innenraum kennen beispielsweise oder Fahrzeug kennen, passiert, dann muss ich mich da direkt draufhängen. Zweifelsfall nach dem Diagnose-Interface suchen, dort nach den entsprechenden Anschlussen schauen und sich dann dort draufhängen. Am OBD-Konnektor, die bekomme ich nicht mit. Es geht sogar so weit, wenn ich jetzt angenommen habe, ich kenne bestimmte Meldungen, die meinetwegen sagt, okay, Fenster runterfahren, Fenster auf. Und ich schickte es jetzt über OBD an das Diagnose-Interface, dann wird das diese Meldung gar nicht durchreichen, weil es einfach so konfiguriert ist, dass ich sage, diese Meldung kommt vom Diagnose-Interface nicht, die werde ich jetzt nicht weiterleiten, also passiert auch nichts im Fahrzeug. Hänge ich dagegen auf dem grünen Bus fahre ich weiterfahren. Wie gesagt, dieses Gateway, das ist so eine Sache, das muss man ein bisschen im Hinterkopf haben. Bei vielen europäischen Fahrzeugen ist es einfach da, also nicht wundern, wenn man jetzt im OBD-Bus einfach mal auf den Campus schaut und es feststellt, da ist nichts. Ältere Fahrzeuge haben da durchaus noch alle Nachrichten dran. Auch bei US-Fahrzeugen ist es so, dass dieses Gateway-Konzept eher langsam erst umgesetzt wird. Ganz einfach, weil es halt auch Geld kostet. Also so ein Gateway, wenn es nicht zwingend nötig ist, dann muss man das einbauen. Wie gesagt, hier bei den europäischen Herstellern, da ist es länger schon da, aber halt einfach auch, weil man da so eine funktionale Trennung zwischen den Campusen irgendwo implementiert hat und einfach eine Trennung gebraucht hat, um keine Überlastung auf dem Bus auszulösen. So, was? Es ist nicht auch ein Grund, dass es unterschiedliche Geschwindigkeiten gibt. Der Handlose-Motor hat ja Megabits und im Innenraum hat ja irgendwie die unterschiedlichen Geschwindigkeiten. Genau, wenn man die unterschiedlichen Geschwindigkeiten hat, ja. Teilweise allerdings in aktuellen Fahrzeugen, also ich habe mir erst vor kurzem ein Mercedes, einen relativ neuen angeguckt, da war auf allen einzelnen Busen immer 500 KB drauf. Also da wäre diese unterschiedliche Geschwindigkeit jetzt kein Argument, aber auch da gibt es das Gateway. Also natürlich, sobald ich die unterschiedliche Geschwindigkeit habe, ja und wo ein Gateway auch noch reinkommt, angenommen, ich habe ein Flex-Ray-System drinnen. Flex-Ray ist komplett anders, hat mit Kann gar nichts zu tun, dann brauche ich auch zwingend ein Gateway, dass diese Flex-Ray-Nachrichten auf Ken wieder umsetzen kann. Also auch dann ist so ein Gateway zwingenderforderlich. Ich stelle mir das jetzt so als Ring-System vor. Ist das richtig? Nein, es ist ein ganz normaler Bus. Er kann als Ring ausgebaut sein, ist er aber normalerweise nicht, weil ich diese beidseitige Terminierung habe. Das ist eigentlich ein verdrilltes Kabel, was irgendwo doch das Fahrzeug geht. Aber keine haksame Knoten? An den Knoten, ich gehe einfach direkt auf die Leitung drauf. Also ich stelle es sicher, dass ich auf den beiden Enden sozusagen meine Terminierung habe. Es erinnert so ein bisschen an die Coax Ethernet-Kabel von vor 15, 20 Jahren. Also 50 ohmern Widerstände damals, aber es ist eigentlich genau dieses Konzept. Teilweise sind die Busse, manche von diesen Busen teilweise so ausgelegt, dass die auch, wenn eine der Leitungen bricht, immer noch funktionieren, dann ist irgendwie die Anschalt-Elektronik so ausgelegt, dass sie dann auch noch aus diesem Pegel von der einen Leitung sauber das Signale recovern kann. Ist halt für speziell im Motorbereich wichtig, dass da nicht, wenn man irgendwie die Leitung bricht, das Auto stehen bleibt. Gut, was genau, wie kommunizieren jetzt so die Fahrzeuge auf diesem Kanbus? Also zum einen hat man damals das, für das der Kanbus ursprünglich gemacht worden ist, die Steuergeräte kommunizieren untereinander. Da gibt es überhaupt keinen Standard. Da macht wirklich jeder Hersteller, was er möchte und wie er es möchte. Auch die Zulieferer haben da ihre eigenen Ideen. Das kann teilweise innerhalb eines Herstellers unterschiedlich sein. Im Prinzip läuft es immer irgendwo darauf hinaus, ein Steuergerät, das bestimmte Daten hat, weil sie dort anfallen, beispielsweise der Motor, der hat die Motordrehzahl. Der schickt periodisch alle, was weiß ich, fünfmal die Sekunde eine Kannnachricht raus, dann wird die Drehzahl im Identifier anzeigt, dass es jetzt die Motordrehzahl, dann ist hinten in den Daten entsprechend die Motordrehzahl drinnen und der Umstand irgendwie noch skaliert, vielleicht noch ein paar zusätzliche Informationen und dann geht die periodisch raus und wird verteilt. Jeder, der jetzt diese Drehzahl braucht, weiß, dass es die Nachricht ist, der hocht drauf und holt sie sich. Die Nachricht ist immer da, es ist aber nicht irgendwie so, dass einer gezielt sagt, Hallo Motorsteuergerät, diese Query-Responsage gibt es da eigentlich nicht. Es ist also wirklich ihr Broadcast, weil es halt einfach auch von der Implementierung am einfachsten ist. Ich lege fest, in dem Zeitraster gehen die Nachrichten raus, jeder, der die Nachricht haben will, der muss hochen und kriegt sie mit. Hat als Nebeneffekt auch den Vorteil, ich bekomme sofort mit, wenn irgendwas nicht stimmt. Wenn jetzt, das meine ich wegen alle, fünfmal die Sekunde diese Drehzahl, wenn diese Message fehlt über einen längeren Zeitraum, dann weiß ich irgendwas, das faul. Es gibt auch in dem Kombinstrument Gehen-Wahn-Lampen an und sonstige Dinge. Ähnlich zum Beispiel für Lichtsteuerung. Es gibt eine Nachricht, die heißt beispielsweise, Status der Lichter, dann ist da drinnen Fernlichter an, Abländlicher an, Blinker an. Die kommt auch regelmäßig, hat im Normalfall, wenn keine Lichter an sind, dort alle Bits auf Null gesetzt, wenn dann irgendeine Funktion ausgelist werden soll, gehen da Bits an. Aber wirklich jeder Hersteller machen, was er will, weil es eben dafür keine Standards gibt. Aber das ist eben das, wie die Steuergeräte untereinander ihre Nachrichten austauschen. Wenn ich da jetzt irgendwo höher drauf, höhere Protokolle implementiere, dann sind es Protokolle, die jetzt speziell für TÜV oder für die Werkstatt, also für Diagnose vom Fahrzeug interessant sind. Da habe ich zum einen mal dieses ISOTP, das ist der einzige Zweck von dem ISOTP, ist, dass man aus diesen maximal langen Nachrichten, dass man dort längere Messages formen kann. ISOTP ist im Prinzip, es setzt einen Sequenzzähler rein und man kann dann Nachrichten, ich glaube, bis knapp 4 Kilobyte in der Länge erzeugen. Gleichzeitig wird noch irgendwie sichergestellt, wenn irgendwie Nachrichten, wenn da jetzt ein Teil fehlt, dass man den wieder recovern kann. Also das ist das, was ISOTP macht, es baut einfach vernünftig handhabbare größere Messages zusammen. Darauf aufsetzend ist dann die genormten abgasrelevanten Daten und Funktionen, die man über diesen OBD-Stecker in seiner ursprünglichen Funktion abrufen kann. Das ist das, was beim TÜV oder auch in der Werkstatt passiert, wenn ich dort eine Abgasuntersuchung mache. Da werden genau diese Dinge, die in diversen Specs festgelegt sind, aufgerufen, das ist in einem, manchmal auch, mehreren Steuergeräten, diese Funktionalität implementiert, wie schaut es aus, funktioniert der Cut noch. Sinn ist die Drehzahl so und so hoch. Das ist auch etwas, was teilweise von diesen einfachen OBD-Dongles, die per Smartphone gekoppelt sind, im Auto realisiert wird, wenn man da als irgendwie Geschwindigkeit oder Drehzahl, vielleicht auch Öltemperatur und sowas anzeigen will. Also die basieren auch auf dem, weil die eigentlich einheitlich bei allen Fahrzeugen mit Verbrennungsmotor gleich sind. In einer bestimmten Art und Weise kann man diese Dinge abfragen. Es ist zwar nicht immer sichergestellt, dass sämtliche Daten da sind, beispielsweise kann ich in manchen Fahrzeugen die Öltemperatur nicht abfragen, weil die nicht relevant ist bzw. für Abgasrelevante Untersuchungen nicht entscheidend ist, deswegen ist sie nicht zwingend abfragbar über diesen Weg. Weiter gibt es dann noch für die, das ist wie der Hersteller spezifisch, die eigentliche Diagnose, die in der Werkstatt stattfindet, in der Vertragswerkstatt. Was sich da so als Standard herausgestellt hat, Standard im Sinne von Standard für das Protokoll, es ist dieses UDS Unified Diagnostics Services. Das ist ein Protokoll, will ich nachher noch kurz zeigen. Da sind bestimmte Dienste festgelegt, man kann Werte lesen, man kann Aktionen auslesen. Das ist das, was die Werkstatt beispielsweise macht, wenn sie mit ihrer Werkstatt spezifischen Software über den OBD-Stecker ausliest, da ist meinetwegen ein bestimmter Fehler im Fahrzeugspeicher und deutet darauf hin, dass dieses oder jenes passiert ist. Wie gesagt, hier es wird eine Abhängigkeit von den Herstellern, aber als Protokoll benutzen die eigentlich alle dieses UDS. In diesem UDS, was gibt es da, zum Einen gibt es eine sogenannte Diagnostic Session Control. Die macht eigentlich nichts weiter, als das, wenn der Tester, also der Tester wird am OBD-Gerät angesteckt, über Kanbos, der spricht ein bestimmtes und sagt, okay, ich mache jetzt eine Diagnostic Session auf. Der Steuergerät weiß, okay, da ist jetzt ein Tester da, der will jetzt was von mir. Es gibt da verschiedene Levels im Sinne von, es kann auch mal vorkommen, dass ein Steuergerät die Software aktualisiert werden muss, dann gibt es zum Beispiel eine sogenannte Programming Session. Das wird auch über diese Session Control eingeleitet. Das ist aber an der Stelle wirklich nur mitteilen an Steuergerät folgendes passiert. Die sogenannten DTCs, die Diagnostic Doublecoats, das ist genau das. Das sind die Fehler, die ein Steuergerät speichern kann, weil irgendwas mal schief gegangen ist und die dann der Werkstatt helfen sollen, diese Fehler zu analysieren. Da waren auch teilweise Informationen gespeichert, die jetzt nicht unbedingt ein Fehler sind, die aber vielleicht Hinweise geben, dass irgendwas nicht in Ordnung sein könnte, beispielsweise beim Motor. Da wird gerne mal auch gespeichert, dass es relativ lange mit hoher Drehzahl gefahren ist, obwohl das noch nicht unbedingt was bedeutet oder dass er überhitzt oder annäher an der Überhitzung war. Das heißt nicht unbedingt, wenn da ein Fehlercode geschrieben worden ist, dass dann irgendeine Kontrollleuchte im Auto an ist. Das kann alles okay sein, das Auto sagt auch in seinen Einstellungen, Fahrzeugstatus, alles Bestens, aber trotzdem sind bestimmte Informationen drinnen. Beispielsweise, wenn bei einem Infotainment System, da kann es mal passieren, dass man den USB-Stick ansteckt, der nicht gelesen werden kann. Infotainment System, je nachdem, wie die Entwickler das ausgelegt haben, liegt fest, USB-Stick mit der WenderID und ProductID konnte ich nicht lesen. Steht da drinnen, als reine Information, die Werkstatt wird auch nichts damit anfangen können, wenn jetzt ein Entwickler diese Information bekommen würde, könnte er vielleicht feststellen, oh, da müssen wir noch irgendwas nachbessern, weil mit den Geräten kommen wir nicht klar. Aber so was beispielsweise wird da auch gerne mal festgelegt. Was es dann gibt, ist Datenlesen und Schreiben. Datenlesen sind Messwerte beispielsweise beim Motor. Ich kann da auslesen, ich kann wirklich sehr viel über diese UDS-Schnittstelle bei Motoren auslesen. Bei einem Mercedes-Steuergerät für einen Diesel waren es glaube ich um die 1.500 verschiedene Werte, die man dort auslesen kann. Nicht direkt die Werkstatt, aber die zumindest vom Kommunikationsmodul vorgesehen sind. Wie dann genau jetzt wieder diese Werte ausschauen. Also dieses Auslesen funktioniert mit dem Diagnosticservice Read Identifier bei ID. Die ID ist ein 16-Bit-Wert, also man hat knapp 65.000 verschiedene Werte, die man lesen kann. Was da jetzt pro ID ausgelesen werden kann. Da macht wieder jeder Hersteller was er will. Da gibt es also in dem Standard von UDS keine Vorgaben. Da heißt es lediglich, wir haben die Möglichkeit, bis zu so und so viel Werte auszulesen oder auch zu schreiben. Aber wie genau die zugeordnet sind, da kommt wieder die spezielle Software vom Hersteller zu tragen. Wobei es da auch so ist, wenn man heutzutage auf eBay schaut von den wichtigsten Herstellern, findet man die Software. Man kann die teilweise sogar ganz normal auf eBay kaufen, kriegt teilweise sogar eine Rechnung dazu, obwohl es im Prinzip eine Raubkopie ist. Also es ist manchmal interessant was man alles bekommt. Die Hersteller wissen das vermutlich auch, aber offensichtlich schreitet dann niemand gegen ein. Wenn man sich so Software, wie sie in der Werkstatt benutzt wird, mal anschauen will, ist es relativ einfach daran zu kommen. Zusätzlich gibt es dann auch noch so Dienste wie diese Input-Output-Kontrolle. Beispiel Kombi-Instrument, ich möchte die Lichter testen. Dann würde unter Umständen in Output-Kontroll Service ein Dienst implementiert sein, der sagt, wenn du die Bits setzt, dann gehen die ganzen Lampen an. Routine-Kontroll, da kann man alles reinstecken, was in den Rest nicht passt. Beispielsweise eine Feststellbremse, Steuergerät von der Feststellbremse, ich muss in der Werkstatt mal diese Bremse justieren, dann gibt es unter Umständen-Kommandos, die sagen, dass die Bremse in bestimmten, zu bestimmten Prozentwerten angezogen werden kann über diesen Befehl Routine-Kontroll. Download Upload, meistens ist nur der Download da, das ist dazu da, um Firmware-Updates durchzuführen. Upload würde das zurücklesen bedeuten, ist selten implementiert, weil man es eigentlich kaum braucht. Wenn man sich da jetzt fragt, wie gut es abgesichert, da kommt gegen irgendwie Manipulation, da kommt der sogenannte Security-Access. Security-Access ist in den UDS-Service, es ist auch wieder sehr wage spezifiziert. Im Prinzip gibt es ein Sied, die vom Steuergerät geschickt wird und da zurück kommt ein Key. Länge, welche Algorithmen und so weiter, vollkommen offen kann jeder machen, was man will. Man sieht auch wirklich alles Mögliche, also bei VW und Audi ist gerne verbreitet, dass als Sied ein 32-Bit-Wert vom Steuergerät kommt, wenn es ganz simpel ist, wird ein Offset einfach drauf addiert und zurückgeschickt als Key. Es ist wirklich eine Zahl, die spezifisch pro Steuergerät auf diesen Siedwert addiert wird. Wenn es komplizierter ist, wird das ein bisschen mit Xorn, mit irgendwelchen Schiffs durcheinander geworfelt und geht zurück, aber alles nichts Dramatisches. Man sieht allerdings auch bei manchen Herstellern, dass da durchaus RSA 2048 benutzt wird, um entsprechend lange Keys bzw. lange Siedwerte geschickt werden, die dann entsprechend signiert zurückgeschickt werden müssen. Also macht auch jede Hersteller, was er will. Vorgaben gibt es keine. Man kann es irgendwie implementieren und so macht es auch jeder. Und über diesen Security Access soll beispielsweise sichergestellt werden, dass nicht jeder man Funktionen auslösen kann, die vielleicht auch kritisch sind. Beispielsweise eine Bremse während der Fahrt anziehen, ist unter Umständen nicht gut. Gut, wenn man die Steuergeräte reinschaut und mal so ein, ich nehm jetzt mal ein Steuergerät, nicht infotainment. Also alles, was Airbag, Motorsteuer und so weiter geht. Was man da drin empfindet, das sind durchaus teilweise exotische Mikrocontroller, die man so im normalen Bastlerumfeld eher weniger sieht. Ganz einfach, weil es Mikrocontroller sind, die zum einen einen ganz anderen Temperatur oder Spannungsbereich vertragen, Spannungsbereich, sorry, nicht aber in denen auch teilweise Sicherheitsfeatures implementiert sind, Safety Features implementiert sind, die bei Fahrzeug Elektronik oder bei Fahrzeugfirma wichtig sind. Ein Beispiel, die meisten dieser Flash-Speicher bei diesen Mikro-Kontrollern haben ICC bereits von vornherein eingebaut. Das heißt, wenn da irgendwelche Bits im Betrieb mal flippen sollten, dann werden die teilweise korrigiert oder können wirklich sicher detektiert werden. Teilweise das Sicherheitskritischen Mikro-Kontroller Erbecksteuergerät ist zusätzliche Hardware implementiert, die beim Hochfahren, also beim Reset von so einem Mikro-Kontroller, die U-Arts auf Funktionalität prüft. Da gibt es also dann ein eigenes Register, was dann nur sagt, ein interner Hardware-Check meiner Peripherie hat ergeben, dass alles in Ordnung ist oder eben nicht. Also da wird sehr viel auf Safety Wert gelegt. Eine Klasse, die man häufig sieht, das ist diese Renners V850 Das ist ein kleiner Mikro-Kontroller Renners des Japan, der halt auch entsprechend mit Peripherie ausgestattet ist. Das heißt, da ist Cannbus immer Standard mit dabei. Freiste Scale und SD-Mikro-Electronics verwenden gerne Mikro-Kontroller auf PowerPC Basis. Was da vielleicht ganz interessant ist für diejenigen, die PowerPC noch von früheren Apple-Zeiten können. PowerPC hat mittlerweile auch hinzugelernt, diese Mikro-Kontroller benutzen alle den VLE via Length Execution Opcode. Das ist also so in etwa vergleichbar beim Thumb Arm Coding. Also wenn man jetzt irgendwie so eine Firmware ganz normal mit Ida aufmacht und sein PowerPC auswählt, stellt man erst mal fest, dass da nur Müll steht. Also da muss man dann ein bisschen tiefer bei Ida suchen. Da gibt es dann Flag, wo man dann dieses VLE einstellen kann. Weil eben dieser Code kompakter ist, wird er natürlich bei Mikro-Kontrollern benutzt. Augen Exot ist dieser HCS 12. Die Basis ist ein wirklich ziemlich alter Mikro-Kontroller. Das ist ein 16-Bit Mikro-Kontroller dieser 68Hz 12. Der ist im Laufe der Jahre wirklich so aufgebohrt worden, das 12er noch 16-Bit hat über Paging die Möglichkeit, dass er auf einer 4K-Seite bis zu 4MB Flash einblenden kann. Warum man da immer noch an solchen Konzepten festhält, wahrscheinlich weil entsprechend zuverlässig ist, weil es viel Code gibt, der darauf aufbaut, aber ist manchmal schon verblüffend. Also sowas macht auch relativ viel Spaß, wenn man es mit Ida Reverse engenieren will. Weil diese Pages, die dann zu verwalten, das ist durchaus interessant. Ein weiterer interessanter Mikro-Kontroller TMS 470, Texas Instruments ausnahmsweise mal ein Arm. Arm sieht man relativ selten in diesem Bereich außerhalb Infotainment. Was an dem besonders ist, das ist mal ein Arm im Big-Indian-Mode. Also normalerweise die meisten Arms, die ich zumindest kenne, diese klassische Weise Little-Indian, aber aus welchen Gründen auch immer ist der Big-Indian. Was man in Muttersteuerungen gerne sieht, ist von Infinion die 3-Core-CPU, die speziell für diese Sachen gemacht, also Bosch verbaut, die ganz gerne Bosch-Steuergeräte sind relativ häufig in vielen Fahrzeugen drinnen. Wenn man jetzt so ein Steuergerät einfach mal aufmacht und versucht das anzuschließen, also Stromversorgung, Kambus, sowas kann man leicht identifizieren. Kambus deshalb, weil immer irgendwie ein Kambus-Kontroller oder ein Kambus-Transitversorgung drinnen verbaut ist und für die findet man Datenblätter. Also dann kann man die Leitungen verfolgen, findet man den Kambus. Wenn man das Gerät jetzt an die Stromversorgung anschließt, schaltet man seine 12 Volt ein, stellt fest, kurz fließt der Strom, alles wieder weg aus, kein Strom fließt, dann ist halt die Frage, woran liegt es? Eine Möglichkeit, was bei Fahrzeugen, bei älteren Modellen immer noch vorkommt, das ist dieser zusätzliche Anschluss Klemme 15. Klemme 15, das ist so eine, diese Klemme plus Nummer, das ist glaubt nicht irgendwie die Norm, die irgendwie festlegt, wie Leitungen in Fahrzeugen mal gehießen haben oder immer noch heißen. Klemme 15 ist Zündung ein. Manche Fahrzeuge, manche Steuergeräte werden erst dann eingeschalten, wenn da tatsächlich noch dieses Signal Zündung ein da ist, weil sie sonst zu viel Strom verbrauchen. Was aber heutzutage wesentlich häufiger vorkommt, man spart sich diese Klemme 15 Leitung und schaut einfach auf ein Cannbus. Wenn auf ein Cannbus keine Aktivität ist, dann ist irgendwas faul, dann ist das Auto normalerweise ausgeschalten und dann geht auch das Steuergerät komplett in den ausgeschaltenden Zustand. Das heißt, da wird dann auch wirklich kaum messbar noch Strom von dem Steuergerät gezogen. Um das dann aufzuwecken, genügt normalerweise auf dem Cannbus irgendwelche Aktivität. Das muss noch nicht mal die richtige Message oder die richtige Geschwindigkeit sein. Einfach periodisch im Sinne von zwei, drei Mal die Sekunde ein Signal generieren und dann wird man feststellen, das Steuergerät schaltet ein und Stromverbrauch ist messbar. Im Infotainment-Bereich, da sieht man durchaus das, was man aus meinem embedded Bereich kennt. Am Betriebssystem, was häufig verbreitet ist, ist Q&X. Das wird gerne eingesetzten Echtzeitbetriebssystem, POSIX basierend. Linox kommt auch vermehrt zum Einsatz in letzter Zeit. Es war vermutlich wieder einfach eine Kostenfrage wie üblich Q&X fordert Lizenzkosten. An CPUs im Infotainment sieht man arm, man sieht aber auch X86 CPUs. Was auch teilweise der Fall ist, teilweise ist Ethernet sogar vom Infotainment an OBD herausgeführt. Wobei das Ethernet, was dann da um OBD angeschlossen ist, es ist weniger dazu da, um jetzt da irgendwie Zugang zum Internet oder sonstiges zu gehen. Das ist eher dazu gedacht, dass man eine schnelle Möglichkeit hat, vom Hersteller außen ein Software-Update einzuspielen. So ein Infotainment-System kann der Größenordnung von Gigabytes liegen. Wenn man das nicht über USB-Stick oder CD früher machen will, sondern wirklich im Betrieb, also bei der Fertigung, dann verwendet man diesen Ethernet-Anschluss an OBD. Wenn man nach sowas sucht, OBD sind teilweise umbelegte Pins, die OBD-Spezifikation kann man sich auf der WGPD anschauen. Ethernet ist normalerweise, wenn es dort angeschlossen ist, nicht sofort aktiviert. Man kann zwar da feststellen, dass sind 2 Leitungen, die fast kurz Schluss haben, also dort wo die RXT-Leitungen am Übertrag dran sind, aber es gibt dann meistens noch eine zusätzliche Leitung, die auf 12 Volt gezogen werden muss, dann wird dieses Interface aktiviert. Und was der Hersteller normalerweise machen kann, ist eben diese Update-Sache. Teilweise interessant wird es wieder, wenn man dann auch Debug-Möglichkeiten vorgesehen sind, wobei die meistens nicht per Default eingeschalten sind. Da kommt dann wieder dieses Kodieren zum Tragen. Was ich vorher erwähnt hab, teilweise gibt es dort Einstellungen, dass man in den Coding-Einstellungen irgendwelche Flex setzen kann, die zwar nicht unbedingt dokumentiert sind, aber die dann bewirken, dass auf diesen Ethernet-Port auch andere Zugänge noch da sind, als die, die man für die normale Diagnose braucht. Noch mal abschließend noch ein Bild. Das ist ein Infotainment-System aus einem BMW, die große Head-Unit. Auf der linken Seite dieser, ja, fast dieser komplette linke Bereich, das ist ein steckbares Prozessormodul, auf dem sitzt eine Dualcore-Intel-CPU drauf mit entsprechend Speichern, Antrommern dran und rechts. Das ist eine NVIDIA-GPU. Das braucht man heutzutage einfach für die grafischen Effekte, die man so im Infotainment drin hat. Da wird heutzutage auch das eingebaut, was man so zumindest von typischen Desktop von Laptops kennt. Okay, das war's von meiner Seite. Ein paar Mal gesagt Ida Pro und so, das heißt die Firmware sind in der Regel auslesbar, auch bei neueren Geräten oder waren ja alles alte Sachen? Also bei den, allen Steuergeräten, die ich mir angeguckt habe, die nicht mit dem mit der Wegversperre oder mit den Schlüsseln zu tun hatten, war's an und für sich kein Problem. Da waren teilweise jetzt bei diesem Texas Instruments, der war aus einem Honda Civic Airbag-Modul, war JTEC vorhanden. Da war kein Schutz da, weil in dem Falle wenn ich die Firmware auslesen kann, da ist jetzt nichts Sicherheitsrelevantes drinnen, um das Fahrzeug zu öffnen. Also das interessiert die Hersteller an der Stelle. Da muss man dazu sagen, wenn man sich den Code anschaut, speziell aus so einfachen Steuergeräten, das ist ziemlich zäh, das zu disassemblieren. Da sind keine Strings drin, da ist wirklich nichts drin. Also beim Infotainment, klar, klassisch, da läuft ein normales Betriebssystem, da kommt man irgendwie klar, aber Motorsteuerung oder Airbag, das sind jetzt welche, die ich total angeguckt habe, das siehst du erst mal nichts. Da kommen irgendwelche Messages, man kann vielleicht erkennen, da wird auf Messages vom Cannabis irgendwelche Daten reingeholt, dann werden die verrechnet, dann wird irgendetwas ausgegeben, aber was das genau ist, wenn ich den Kontext nicht kenne. Also wenn ich jetzt nicht genau weiß, welche Cannemessage bedeutet was, was bewirkt welcher i-Outport, dann wird das extrem zäh. Wenn ich mich jetzt einfach auf so ein Cannabis rauf hänge, das heißt die Orobo, das geht mir einfach mal abschalten. Gibt es eigentlich irgendwelche Implementationen, die ein Senden auften kann, wo es hinterfragen, oder zum Beispiel irgendwelche klassischen Timing-Zykling abwarten, Stichwort, ich glät mich drauf, schick eine Nachricht, weil ich die I.D. kenne. Wenn die nicht zyklisch im gewissen Rhythmus kommt, ist es vielleicht auch ein Fake. Es wird teilweise erkannt, dass inkonsistenten auftauchen. Also ein das öfters mal machen muss, wenn man jetzt beispielsweise Steuergeräte Bremse anziehen. Die man haben durchaus ein Check drinnen, dass die sagen, sobald die Geschwindigkeit höher als 10 oder 20 kmh ist, erlaube ich das nicht mehr im normalen Betrieb. Wenn ich jetzt als Angreifer da irgendwas faken will, muss ich die Geschwindigkeit zusätzlich zu der, die ja normal vom Fahrzeug da ist, schicken die sagt, okay, wir sind langsam als diese 20 kmh. Da kann es sein, wenn die Steuergeräte gut sind, dass die Inkonsistenzen feststellen und dann einfach den Wert nehmen. Wenn sie schlecht sind, also schlecht im Sinne von niemand hat, ist davon ausgegangen, dass so was in der Praxis passiert, dann sagt er, okay, ich nimm halt gerade den Wert, es ist gerade 10 reingekommen, okay, jetzt erlaube ich die Funktion. Ich kann natürlich das senden, einer bestimmten Kennalige zielstören, indem ich versuche, über eine Heuristik zu erkennen, wann die gesendet wird und dann störe ich eben den Empfang, indem ich eine niedrige Reihe die selber sende und das immer dann, wenn das Steuergerät normalerweise senden würde. Klar, stören, also stören würde ich, kann ich immer natürlich, ich kann ja physikalisch, auch die Leitung einfach nur meinetwegen kurz schließen jetzt. Ja, und wenn ich dann das Originalsteuergerät auf diese Weise stillgelegt habe, kann ich natürlich auch meine eigenen Daten initiieren, indem ich wieder unter dieser Kennaldie was verschicke. Klar, also dieser Cannbus ist nicht, also von grundsätzlich heutzutage nicht auf in heutigen Fahrzeug nicht darauf ausgelegt, dass er dieses Faken in irgendeiner Form erkennt. Die Entwickler haben normalerweise genügend damit zu tun, ihre Steuergeräte überhaupt auf dem Bus sauber zu synchronisieren. Also, da ist, man fängt langsam an, an so was zu denken, das kriegt man auch mit, wenn man mit den Herstellern redet, aber man muss auch sehen, Entwicklungszüge in dem Fahrzeugbereich, das ist so die Zahl fünf Jahre, wird da genau. Also, wenn man heute darüber nachdenkt, in fünf Jahren die neuen Modelle so grob, also weil Software Updates in irgendeiner Form, man sagt, okay, wir haben jetzt ein Software Updates hier, alle Fahrzeuge raus, jetzt ist alles gut, gibt es ja nicht. Ich habe da noch eine Anmerkung dazu und zwar kann ich, ich muss nicht wissen, wann die Message gesendet wird, ich sehe die ID, die ist vorne an der Message dran, und ich kann den Rest der Message einfach kaputt machen und dann meine checken zum Beispiel, um da den Wert zu überschreiben von der Geschwindigkeit. Unter der Voraussetzung, dass die CRC nicht, dass die CRC dann passt, weil ich habe die CRC-Absicherung. Ich kann ja die Message kaputt machen, dann passt es ja nicht mehr. Ja, sicher, das ist doch richtig, will ich doch erreichen. Also, okay, gut, David, das sind uns weg, logisch. Genau, und dann noch eine Anmerkung zuvorhin, das Eckbit, also was die Empfänger schicken können, um zu sagen, ich habe die Message gekriegt, da kriege ich natürlich nicht mit, ob die alle geschickt haben, es reicht, wenn ein Empfänger das Bit schickt. Und das muss natürlich nicht der sein, der die Message haben will. Also, das kann durchaus sein, dass Messages nicht am Ziel ankommen, weil irgendein anderer gesagt, ich habe es gekriegt. Mhm, ja. Ansonsten würde ich vorschlagen, dass wir zum nächsten Talk switchen.