BadUSB Uncovered
Die Demonstration einer Sicherheitslücke bei der Nutzung der USB-Schnittstelle, genannt BadUSB, geistert derzeit durch die internationale Presse. Doch was steckt wirklich dahinter?
Jeder USB-Speicherstick besteht aus einem Controller-Chip und mindestens einem Speicherbaustein. Der Controller übernimmt die USB-Kommunikation mit dem Rechner und verwaltet den Speicher. Dieser ist ein Mikrocomputer, der nach dem Einstecken sein Betriebssystem (Firmware) von einem nicht sichtbaren Teil des Flashspeichers bootet. Dann stellt er den Flashspeicher dem Computer als Laufwerk zur Verfügung.
Aus Kostengründen wird die Firmware updatebar implementiert. Für dieses Update gibt es zwei mögliche Wege: Einen sicheren mit Secure Boot und eine einfache Verschleierung durch undokumentierte Befehle. Letzteres ist bei einfachen USB-Sticks der Regelfall und ist mit der in BadUSB gezeigten Methode prinzipiell angreifbar.
Der erste Schritt des BadUSB-Angriffes manipuliert die Firmware im USB-Stick. Dazu ist es zunächst notwendig, die Firmware zu reengineeren und eine für diesen Controller angepasste Firmware neu zu entwickeln. Um die neue Firmware auf die Sticks zu laden, muss noch die Verschleierung des Firmware-Update-Prozesses umgangen werden.
Im zweiten Schritt meldet sich der USB-Stick mit der manipulierten Firmware als Tastatur (HID device) am Computer. Hier erkennt der Rechner also als erstes eine neue Tastatur und initialisiert diese automatisch - was einem User allerdings in der Regel nicht verdächtig vorkommt und vom Betriebssystem meistens nicht verboten ist.
Daraufhin sendet diese "Tastatur" eine Zeichenfolge wie zum Beispiel <WIN>+r <ENTER> cmd <ENTER> und kann dann in dem sich öffnenden Konsolenfenster Schadsoftware aus dem Internet nachladen und ausführen. Die heruntergeladene Schadsoftware wird natürlich automatisch vom Virenscanner geprüft. Damit ist es nur eine Frage der Zeit bis die meisten Angriffsmuster erkannt und verhindert werden. Auch erfolgt dies nur mit den Rechten des angemeldeten Users.
Prinzipiell ist dieser Angriff auch für OS X und Linux möglich. Lediglich die zu sendenden Tastaturbefehle sind andere.
Die meisten USB Sticks mit Flash Speicher nutzen laut der Veröffentlichung einen Controller-Chip des Herstellers Phison.
Der hier demonstrierte Angriff basiert darauf, dass mit viel Aufwand die Firmware des Phison-Controllers reengineert und dann manipuliert wurde. So etwas passt immer nur auf einen spezifischen Controller und nicht, wie in der Presse gerne dargestellt, ganz einfach auf jedes USB-Gerät. Dazu muss dieser Aufwand für jedes Gerät wiederholt werden. Hier stellt sich zunächst die Frage nach dem Kosten-Nutzen-Verhältnis. Die Grundlagen dieses Angriffs wurden bereits auf der Black Hat 2005 unter dem Titel "Plug and root - the USB key to the kingdom" vorgestellt. Bisher gibt es keine flächendeckenden, erfolgreichen und bekannten Angriffe dieser Art. Das Thema wurde seitdem eher im wissenschaftlichen Bereich behandelt. Dennoch sollten Maßnahmen sowohl vom Betriebssystem als auch Prozesse wie Secure Boot zukünftig umgesetzt werden.
Auswirkungen auf die Wibu-Systems Hardware
Die in der Demo gezeigte Variante des Angriffes ist so nicht auf WibuKey und CodeMeter übertragbar. Selbst wenn der gesamte Quellcode des Angriffes veröffentlicht würde.
WibuKey
WibuKey verwendet einen Smartcard-Controller und eine signierte Firmware. Nur eine von Wibu-Systems unterschriebene Firmware kann in den Controller geladen werden. Ein BadUSB-Angriff ist nicht möglich.
CmStick, CmStick/C, CmStick/I , CmStick/IV
Der CodeMeter Stick verwendet einen Smartcard-Controller ohne Flash Speicher mit einer signierten Firmware. Nur eine von Wibu-Systems unterschriebene Firmware kann in den Controller geladen werden. Ein BadUSB-Angriff ist nicht möglich.
CmCard/SD, CmCard/CF, CmCard/µSD, CmCard/CFast
Diese Devices können nicht als HID-Devices angemeldet werden, da es sich nicht um USB-Geräte handelt. Der Angriff ist hier also nicht durchführbar.
CmStick/M bis 2014
Obwohl der Stick über einen Flash-Speicher verfügt, ist die Angriffsmethode nicht direkt auf die CodeMeterSticks/M übertragbar. Der Stick verwendet einen angepassten Controller, für den eine vergleichbare Attacke derzeit nicht bekannt ist. Ein zukünftiger Angriff ist aufgrund des Aufwandes eher unwahrscheinlich.
CmStick/M ab 2014
Hier wurde der ohnehin schon hohe Sicherheitslevel der CodeMeterStick/M noch weiter erhöht. Die Firmware aller verwendeten Chips ist verschlüsselt und signiert. Der Root Key liegt in einem ROM. Dieser kann nur im Werk einmalig geschrieben werden und ist unter keinen Umständen im Feld änderbar. Somit ist durch diesen sicheren Anker ein kompletter Secure Boot-Prozess auf dem Stick gegeben. Die Inter-Chip-Kommunikation erfolgt ebenfalls verschlüsselt, um mögliche zukünftige Attacken auf die Hardware unmöglich zu machen. Diese CodeMeter/M-Version ist immun gegen derartige und ähnliche in Zukunft kommende Angriffe auf die Firmware.
Vollkommen unabhängig von dem BadUSB-Angriff ist und bleibt der CodeMeter-Schutz sicher. Dieser ist auf einem eigenen Chip implementiert, verfügt über eigenen Speicher und eine kryptographisch gesicherte Firmware.
Eine wichtige Erkenntnis aus diesem Szenario: Secure Boot ist auch für kleinste Devices von essenzieller Bedeutung.