USB Protocol
Introduction
Description what this documentation is about.
USB protocol
Das USB-Protokoll zeichnet sich durch seine hohe Flexibilit¨at aus, die sich insbeson- dere in der Unterst¨utzung sogenannter Kompositger¨ate zeigt. Kompositger¨ate k¨onnen mehrere Konfigurationen und Schnittstellen enthalten, wobei jede Schnittstelle als eigenst¨andige Einheit fungiert. Ein typisches Beispiel ist ein USB-Headset, das eine Konfiguration aufweist, welche wiederum vier Schnittstellen umfasst: eine Tastatur zur Lautst¨arkeregelung, ein Mikrofon und zwei Lautsprecher. Diese Flexibilit¨at erm¨oglicht es, verschiedene Funktionen in einem einzigen USB-Ger¨at zu kombinieren. Allgemeine Klassenspezifikationen Seit der Einf¨uhrung von USB 1.0 wurde das Konzept der ”Common Class Specifi- cations” etabliert, um eine Standardisierung verschiedener Arten von Peripherieger¨aten zu gew¨ahrleisten. Eine USB-Klasse ist eine Gruppe von einer oder mehreren Schnittstellen, die zusammen eine erweiterte Funktionalit¨at bieten. Eine der bekanntesten Klassen ist die ”Human Interface Device” (HID) Klasse, die es dem USB-Hostcontroller erm¨oglicht, mit Eingabeger¨aten wie Tastaturen und M¨ausen zu kommunizieren. Eine weitere be- deutende Klasse ist die USB-Massenspeicherklasse, die definiert, wie Daten zwischen dem Host und Speicherger¨aten ¨ubertragen werden. 4 Chapter 2. Technischer Hintergrund Kompositger¨ate kombinieren mehrere Klassen, um eine umfassendere Funktion- alit¨at zu bieten. Beispielsweise kann ein USB-Headset sowohl die HID-Klasse als auch die Audioklasse nutzen, um sowohl Eingaben als auch Audioausgaben zu erm¨oglichen. Dieses Designprinzip, bei dem USB-Peripherieger¨ate durch die Kombination mehrerer Klassen geschaffen werden, hat nicht nur die Flexibilit¨at des USB-Protokolls erh¨oht, sondern auch Sicherheitsherausforderungen mit sich gebracht. Nach dem Anschluss eines USB-Ger¨ats an ein Hostsystem erkennt der USB-Hostcontroller die Anwesenheit des Ger¨ats und dessen ¨Ubertragungsgeschwindigkeit, indem er die Spannungs¨anderungen an den Datenpins ¨uberpr¨uft. Daraufhin beginnt die sogenannte Enumeration, eine Prozedur zur Identifikation und Konfiguration des Ger¨ats. Dieser Prozess startet mit dem Befehl GetDeviceDescriptors, bei dem der Host nach Identi- fikationsinformationen des Ger¨ats fragt, wie beispielsweise Hersteller, Vendor ID (VID), Produkt ID (PID) und Seriennummer. Nach der Abfrage setzt der Hostcontroller das Ger¨at zur¨uck und weist ihm eine Adresse f¨ur die zuk¨unftige Kommunikation zu. Anschließend erfolgt eine GetConfigDescriptors- Anfrage, um alle verf¨ugbaren Konfigurationen des Ger¨ats abzurufen. USB-Ger¨ate k¨onnen eine oder mehrere Konfigurationen haben, wobei jedoch immer nur eine Konfig- uration aktiv sein kann. Jede Konfiguration kann eine oder mehrere Schnittstellen en- thalten, die ¨uber die GetInterfaceDescriptors-Anfrage ermittelt werden. Diese Schnittstellen repr¨asentieren die essenziellen funktionalen Einheiten, die von verschiedenen Treibern im Betriebssystem bedient werden. Nach Abschluss dieser Anfrage l¨adt das Betrieb- ssystem die entsprechenden Treiber und ger¨atespezifische Subprotokolle (z. B. HID, Storage) treten in Betrieb.
Security threads
USB-Ger¨ate stellen ein großes Sicherheitsrisiko da, weil sie trotz ihrer weiten verbre- itung eine geringe Sicherheit bieten. Ein besonderes Risiko bei USB-Ger¨aten ist der USB-Stick. Er wird h¨aufig als Tr¨ager von Schadsoftware wie Viren, W¨urmern und 5 Chapter 2. Technischer Hintergrund Trojanern misbraucht. Diese Schadsoftware kann sich leicht verbreiten, da USB-Sticks einfach zwischen verschiedenen Computern ausgetauscht werden k¨onnen. Ein bekan- ntes Beispiel f¨ur eine Schwachstelle ist die AutoRun-Funktion in ¨alteren Windows- Versionen, insbesondere Windows XP. Diese Funktion erm¨oglichte es USB-Ger¨aten, Programme automatisch zu starten, sobald sie an einen Computer angeschlossen wur- den. Dies wurde h¨aufig genutzt, um Treiber zu installieren, aber auch, um unbemerkt Schadsoftware auszuf¨uhren. In sp¨ateren Windows-Versionen wurde diese Funktion je- doch stark eingeschr¨ankt, um das Risiko zu minimieren. [SLL21] [TSK+18] Ein weiteres ernsthaftes Risiko bei USB-Ger¨aten besteht in der M¨oglichkeit, HID- Ger¨ate zu missbrauchen. Da HID-Ger¨ate vertrauensw¨urdig erscheinen, k¨onnen sie leicht als Angriffsvektor genutzt werden. Beispielsweise kann ein manipuliertes USB- Ger¨at als Tastatur auftreten und unbemerkt sch¨adliche Eingaben ausf¨uhren, um Daten zu stehlen oder Malware zu installieren. Diese Angriffe, wie etwa das O.MG Cable, nutzen die Tatsache aus, dass die meisten Betriebssysteme HID-Ger¨aten vertrauen und ihnen automatisch Rechte f¨ur Benutzereingaben einr¨aumen. Durch solche An- griffe k¨onnen Angreifer unbemerkt Befehle ausf¨uhren und Zugang zu sensiblen Daten erlangen, was erhebliche Sicherheits- und Datenschutzrisiken birgt. [SSN+23] Ein weitere Hauptprobleme bei der USB-Technologie ist zudem die fehlende Ver- schl¨usselung des Datenverkehrs. Die Daten¨ubertragung zwischen USB-Ger¨aten und dem Host-Rechner erfolgt im Klartext, was sie f¨ur passive Abh¨orangriffe anf¨allig macht. Angreifer k¨onnen mit relativ einfachen Mitteln den Datenverkehr auf der Busleitung mitschneiden und sensible Informationen abfangen.[NLF16] Dabei stellt die Tastertur die gr¨oßte gef¨ahrdung da, weil sie als eingabe sensible Daten genutz wird z.B von Passw¨orter
Description
Step 1
Enter these commands in the shell
echo foo echo bar
Step 2
Make sure to read
- War and Peace
- Lord of the Rings
- The Baroque Cycle
Used Hardware
Device to be used with this documentation Maybe another device to be used with this documentation
Courses
- A course where this documentation was used (2017, 2018)
- Another one (2018)