Embedded Security: Die neue Hardware-Hacking-Schulung der SySS GmbH

Hack neu(n): Embedded Security

Im Zeitalter von IoT-Geräten, smarten Autos oder Industriesteuerungen wird das Thema „Embedded Security“ immer wichtiger: In allen diesen Systemen sind Kleincomputer verbaut. Wenn die Beleuchtung mit dem Handy gesteuert wird, Autos mehr als 100 Computer enthalten und in der Industrie der reibungslose Ablauf der Produktion im Internet geprüft werden kann, eröffnen sich auch für Angreifer viele Wege, ein System zu kompromittieren.

Insbesondere die Hardware ist Bedrohungen ausgesetzt. Um Entwickler, Product Security Incident Response Teams und Interessierte dabei zu unterstützen, mit hardware-spezifischen Gefahren professionell umzugehen, bietet die SySS GmbH nun eine Schulung zu „Embedded Security“ an.

Embedded Security: Der Gegenstand

„Embedded“ heißen Computer, die in einen technischen Kontext eingebunden sind und dort eine bestimmte Funktion erfüllen. Eingebettete Computer gibt es in verschiedenen Komplexitäten, im Vergleich zu PC sind sie jedoch häufig kleiner und weniger leistungsfähig. Meist sind Embedded Computer nur einem speziellen Zweck gewidmet: Der in die Waschmaschine integrierte Kleincomputer organisiert den Waschvorgang, d. h. er legt beispielsweise fest, wann der Motor oder die Pumpe angesteuert wird. Embedded Computer regeln an modernen Gebäuden die Jalousien, der Controller steuert in einem Atomkraftwerk die Prozesse.

Anders als mit dem Personal Computer kommen die meisten Menschen mit Embedded Computern seltener ,persönlich‘ in Kontakt: Die Kleincomputer sind in Geräten verbaut und ein direkter Zugriff ist meist nicht möglich. Daher erfährt dieses Thema selten ausreichend Aufmerksamkeit. Zu Unrecht – Die Systeme sind komplex und die potenziellen Risiken sollten nicht unterschätzt werden. Embedded Computer sind nicht weniger anfällig für Angriffe als andere Computer.

Embedded Security: Die Gefahren

Ein Einfallstor sind die Zugangsdaten zu Embedded Geräten. Werden diese nicht gerätespezifisch vergeben, ist es möglich, Erkenntnisse von Gerät A und Gerät B zu übertragen und so ganze Geräteserien zu kompromittieren! Dies ist durchaus ein gangbarer Angriffsweg. Auch der Tatsache, dass Embedded Systems häufig im öffentlichen Raum exponiert und frei zugänglich sind, eignet ein besonderes Gefährdungspotenzial. Z. B. Smart Locks, die unbeaufsichtigt abgestellte Fahrräder sichern sollen, aber auch Bankautomaten und andere IoT-Geräte sind beliebte Ziele der immer weiter zunehmenden Hardware-Angriffe.

Für die IoT-Waschmaschine, die mit dem Internet verbunden ist, kann der Passwortschutz genauso wie beim Heimrouter für WLAN der zentrale Angriffsvektor sein. Entwickler von Embedded Controllern müssen sich also fragen, wie sie am besten eine sinnvolle Passwortrichtlinie erzwingen. Verschlüsselung ist ebenfalls ein zentrales Thema, wenn es um Embedded Security geht. Bei jedem Bürolaptop ist es heutzutage Gang und Gäbe, dass die Festplatte verschlüsselt ist; bei Embedded Computern ist dies in der Regel nicht der Fall. Skizzieren wir ein Szenario am Beispiel des Heimrouters für WLAN: Ein Nutzer kauft ein neues Gerät  und vergibt dort das bisherige WLAN-Passwort; den alten Router entsorgt er im Elektroschrott. Da bei Heimroutern der Speicher meist nicht verschlüsselt ist, kann er leicht ausgelesen werden. Ein Angreifer muss nur den Weg über die Platine nehmen, sprich: den Speicherbaustein auslöten, der die entsprechenden Geheimnisse enthält, diesen anderswo wieder einbauen und dort die Geheimnisse auslesen. Auf diese Weise kann er sich an den Passwortabfragen der integrierten Webseite etc. vorbeischleichen, im Speicher das WLAN-Passwort rekonstruieren, und sich schließlich mit dem WLAN verbinden.

Der Stellenwert von Speicherverschlüsselung für Embedded Security lässt sich auch am Beispiel der Automobilindustrie zeigen: Kleinere Komponenten wie ECUs (Electronic Control Units) oder auch das Navigationssystem sind Embedded Computer. In einer Automotive Head Unit wird sensibles Material gespeichert, z. B. die Zugangsdaten für die Cloud und Daten für viele Funktionalitäten des Autos. Einiges davon sind Betriebsgeheimnisse des Automobilherstellers. Ist der Speicher nicht geschützt, muss ein Angreifer nur die Mittelkonsole ausbauen, um in den Besitz dieser Geheimnisse zu gelangen. Ist die Intellectual Property mangels Speicherverschlüsselung erst einmal gestohlen, kann beispielsweise das Produkt kopiert oder nach Schwachstellen in der Software gesucht werden.

Funktionen wie der Diebstahlschutz oder die Standortsuche machen ein Auto ebenfalls anfällig für Angriffe. Von der Mittelkonsole aus werden Betriebs- und Positionsdaten an die Cloud gesendet und können dann mit dem Handy abgefragt werden. An diesem Prozess sind mehrere eingebettete Systeme beteiligt, wovon mindestens eines GPS-Empfang hat. Die Embedded Computer sind hier der Gefahr der Manipulation auf mehreren Ebenen ausgesetzt:

Manipulation von Programmen: Ein Angreifer könnte einen USB-Stick an der Mittelkonsole anstecken und die Funktionsweise derart manipulieren, dass die GPS-Position nicht nur in die Cloud hochgeladen wird, sondern auch zu ihm selbst. Dadurch kennt der Angreifer jederzeit den Standort des Autos. Der wichtigste Aspekt aus der Perspektive der Embedded Security ist hier die Absicherung der Integrität, beispielsweise durch Secure Boot.

Manipulation von Nutzdaten: Das Hochladen von Daten in die Cloud soll nur den Autos selbst möglich sein, nicht aber Dritten. Die Zugangsdaten zur Cloud müssen entsprechend auf der Konsole liegen. Ist die Konsole nicht ausreichend geschützt, können die dort verwalteten Daten leicht manipuliert werden. Der Angreifer schickt den Halter des (gestohlenen) Autos dann beispielsweise mithilfe der Standortsuche auf eine völlig falsche Fährte. Der wichtigste Aspekt aus der Perspektive der Embedded Security ist hier das Absichern der betroffenen Systeme, sodass keine Zugangsdaten entwendet oder Daten verfälscht werden können.

Embedded Security: Die Schulung

Die neue Schulung der SySS, „Hack9: Embedded Security“, geht aus von den Schwachstellen und Problemen, die die Sicherheit von Embedded Systems gefährden, und zeigt Wege auf, professionell mit diesen umzugehen. Die Schulung setzt bei der Entwicklung von eingebetteten Systemen an und beschäftigt sich mit den Fehlern, die in dieser Phase gemacht werden können. Die Schulungsleiter und IT Security-Experten Michael Großmann und Gerhard Klostermeier kennen verbreitete Defizite aus ihrer täglichen Arbeit als Penetrationstester. Sie können erläutern, wo Verbesserungspotenzial liegt, und was zu tun ist, um Kleincomputer besser abzusichern. Entwicklungs-, nicht Anwenderfehler stehen im Zentrum der Schulung (also der Controller selbst und nicht das Trivialpasswort, das der Anwender vergibt). Das Ziel ist nicht, an den zwei Schulungstagen „Embedded Security“ eine Programmierrichtlinie zu erarbeiten, sondern Wege und Möglichkeiten zur Absicherung von Komponenten und Systemen kennenzulernen. Viel verwendete Komponenten bringen typische Fehlerquellen mit sich (z. B. bei der Sicherung des Bootloaders) und die Sicherung von Systemen wirft ganz typische Fragestellungen auf (z. B. die nach der Absicherung des Bootloaders gegen Manipulation) – auch unabhängig vom konkreten System. Diesen Problematiken wird die Schulung nachgehen und mögliche Lösungen erarbeiten. Bei Industrieanlagen beispielsweise muss im Sinne der Embedded Security gewährleistet sein, dass die Controller keine manipulierten Programme annehmen, also Messwerte nicht verzerrt und Prozesse nicht dereguliert werden. Denken wir zurück an den Wurm Stuxnet im Jahr 2010: Um derartige Angriffe zu verhindern, müssen die Programme in einer Weise auf dem Controller hinterlegt werden, dass sie vor Manipulation geschützt sind. Entscheidend sind hier Grundlagen der IT-Sicherheit wie Signieren, insbesondere die Firmwaresignierung. Dies lernen die Teilnehmerinnen und Teilnehmer am 23.-24.06.2020 bzw. am 20.-21.10.2020.

„Embedded Security“ ist folglich in erster Linie an Entwickler und Mitglieder von Product Security Incident Response Teams (PSIRT)  gerichtet, zu den Adressaten der Schulung gehören aber auch Security-Architekten, Penetrationstester und Personen mit besonderem Interesse für Embedded Systems.

Embedded Security: Die Kernthemen

Die Kernthemen der Hardware-Schulung sind „Sicher booten“ und „Daten sicher speichern“. Es geht also um Vorgänge, die nahe am Gerät/an der Hardware ablaufen, und um Probleme, die an der Hardware oder beim Aufspielen von Software auf Hardware entstehen.

Sicher Booten verhindert Manipulationen. Beim Bootvorgang muss Sicherheit vom ersten Boot-Level an gewährleistet sein. Da die vorhergehende Schicht immer die nächste Schicht startet und somit kontrolliert, ist insbesondere das erste Level zu schützen. Hier werden sehr häufig Fehler gemacht: Auf den Embedded-Kleincomputern läuft häufig ein passwortgeschütztes Linux-System, aber die vorliegenden Boot-Level sind nicht ausreichend abgesichert. Dadurch können sich Angreifer am Passwort vorbeischleichen und trotz der vermeintlich guten Sicherung Systemhoheit erlangen. In der Schulung lernen die Teilnehmerinnen und Teilnehmer zu verhindern, dass das eingebettete Linux-System manipuliert werden kann, noch bevor es gestartet wird.

Sicher Speichern verhindert Datenverlust bei Diebstahl. Wer sicher speichert, verhindert, dass Dritte Zugriff auf sensible Daten erlangen. Sichere Verschlüsselungs- und Authentifizierungsmethoden zu vermitteln, ist ein weiteres Anliegen der Schulung.

Embedded Security: Theorie und Praxis

Didaktisch basiert die Schulung „Embedded Security“ auf einer Mischung aus theoretischen und praktischen Anteilen. Die Theoriemodule widmen sich schwerpunktmäßig den folgenden Fragen/Themen:

  • Was sind typische Hardwareschnittstellen?
  • Wie sind Datenblätter zu lesen und zu verstehen?
  • Wie identifiziert man Komponenten, wenn man das Gerät öffnet?
  • Arbeiten am PCB
  • Dateisysteme für Embedded Devices

Im Zentrum der Schulung stehen hardwarenahe Probleme. Die Schulung vermittelt, wie bestimmte Schnittstellen (UART, JTAG, I2C, SPI) sicher benutzt werden und welche Probleme entstehen, wenn man sich ihrer Funktionsweise und Leistungen nicht bewusst ist.

Auch „Datenblätter lesen“ gehört zu den Theoriemodulen. Wer Datenblätter lesen und verstehen kann, weiß, welcher Chip nicht nur bestimmten technischen Anforderungen entspricht, sondern auch den Sicherheitsanforderungen genügt. Im Datenblatt ist beispielsweise niedergelegt, ob ein Bootmechanismus mit Zertifikatprüfung unterstützt wird und wie die allererste Schicht beim Booten gesichert ist. Aus der Perspektive eines Analysten (z. B. eines Penetrationstesters) sind Datenblätter für das Reverse Engineering relevant. In der Schulung lernen die Teilnehmerinnen und Teilnehmer, solche Dokumentationen über Schlagworte zu erschließen, um so sicherheitsrelevante Informationen zu erhalten.

Die Teilnehmerinnen und Teilnehmer erwarten außerdem viele praktische Übungen. Sie erhalten die Möglichkeit, die Geräte wirklich selbst anzufassen und die Hardware zu be-greifen. Die Schulungsbesucher werden Schwachstellen eigenhändig entdecken und ausnutzen. Denn wer die Angreiferbrille aufsetzt, kann anschließend die Verteidigerperspektive besser verstehen. Er/Sie weiß dann: Hier war der Fehler! Das kann ich besser machen! Durch den Wechsel von Theorie und Praxis wird das Gelernte schnell und nachhaltig im Gehirn verankert.

Die praktischen Übungen werden an zwei Platinen, zwei Embedded Systems, durchgeführt. Die beiden Kleincomputer unterscheiden sich grundlegend: Das eine Board ist die einfachste Form eines Computers und enthält nur kleine Programme, die eine bestimmte Aufgabe erledigen (z. B. die Temperatur messen und ab einer gewissen Höhe einen Ventilator einschalten). Auf diesem Board wird Bare Metal, d. h. sehr nah am Prozessor programmiert. Das andere Board ist leistungsstärker. Es ist ein komplexeres, mächtigeres System, auf dem ein Betriebssystem installiert werden könnte. Außerdem beherrscht es mehrere verschiedene Funktionen, die komplexere Anforderungen erfüllen können. Anhand dieser beiden Boards kann ein breites Spektrum an Fragen zur Embedded Security praktisch erarbeitet werden. In einer Übung wird eines der Boards mit einer präparierten Software bespielt, die fehlerhaft konfiguriert ist. Hierfür werden Fehler, die die SySS in Pentestprojekten gefunden hat, nachimplementiert und die Teilnehmer können diese ansehen und selbst ausnutzen. Wenn das Board auf dem Tisch liegt und analysiert werden kann, ist es durch das Finden und Ausnutzen von Schwachstellen oftmals erstaunlich leicht, Maximalrechte zu erlangen, ohne das Passwort zu kennen!

Darüber hinaus sind die Schulungsleiter Michael Großmann und Gerhard Klostermeier offen für alle Frage- und Problemstellungen aus dem Alltag der Teilnehmerinnen und Teilnehmer. Melden Sie sich an, kommen Sie nach Tübingen und bringen Sie Ihre Themen mit!


Termine

03.03.2020
Hack7: Sicherheit und Einfallstore bei Webapplikationen

10.03.2020
Secu2: Incident Response

17.03.2020
Hack3: Angriffe auf Windows-basierte Netzwerke

24.03.2020
Hack4: Angriffe gegen VoIP-Infrastrukturen