Hardware-Schreibschutz am USB-Stick nachrüsten


Auf der Suche nach USB-Sticks mit Schreibschutzschalter hatte ich mir die Frage gestellt, ob diese Funktion nachrüstbar ist. Ich kannte aus früheren Projekten die Pin-Funktionen der FLASH-Speicherbausteine. Hier bot sich der /WP (Write-Protect)-Pin für einen Schreibschutz-Hack an.

Ein besonderer Nebeneffekt dieses Umbaus ist ein 100% sicherer Schreibschutz für den Inhalt der FLASH-Speicherbausteine. Mir ist kein Verfahren bekannt, das diesen Schreibschutz durch Schadsoftware umgehen kann. Als mögliches Sicherheitsleck ist dann nur noch die manipulierbare Firmware vom Speicherkontroller vorhanden, wenn sie nicht aus Kostengründen als Bootblock im dann schreibgeschützten FLASH-Speicher abgelegt wurde.

 

1. Nur die Hardware ändern

Ja das geht!

Nicht bei allen USB-Sticks und es erfordert Geschick, gute Hardware-Kenntnisse, einen Lötkolben für SMD-Bauteile und idealerweise ein Mikroskop.

Mein Vorschlag für den Umbau verwendet den /WP (Write-Protect) Pin an den FLASH-Speicherbausteinen. Liegt ein LOW-Signal an diesen Eingang an, werden Schreibsequenzen an den FLASH-Baustein abgewiesen. Diese Funktion ist besonders während eines Powerups oder Powerdowns erforderlich, denn diese Schreibkommandos könnten sonst inkonsistente Daten im Speicher verursachen. Erst wenn das Betriebssystem, also die Kontrollerfirmware stabil arbeitet, sollte der /WP-Eingang vom Speicherkontroller wieder umgeschaltet werden, also den Speicherbaustein für den Empfang von Schreibkommandos freigeben.

Ein Mechanismus ist mir nicht bekannt, der diesen HW-Schreibschutz bei aktiven WP-Pin umgehen kann.

 

Als Versuchsexemplar habe ich einen USB-Stick mit 16 GB von Kingston (ID 0951:1624 Kingston Technology DataTraveler G2) geöffnet und hatte Glück. Die FLASH-Bausteine waren im TSOP-Gehäuse aufgelötet und ein Datenblatt mit Pinbelegung war im Internet abrufbar (Typ Micron 29F64G08CAM, S. Pin 19).

Am TSOP-Gehäuse jedes FLASH-Speichers wurde der /WP-Pin mit einem SMD-Lötkolben vorsichtig etwas angehoben. Nicht zu viel biegen und nicht zu lange erwärmen, sonst brechen die Pins ab. Die angehobenen Anschlüsse wurden mit Kupferlackdraht verbunden. Ein Pulldown-Widerstand wird an dieser Verbindungsleitung gegen GND angeschlossen. (Mit „aktiv LOW“ oder aktiv-0 ist ein LOW-Pegel am Pin erforderlich, wenn die bezeichnete Funktion aktiv werden soll. Nomenklatur: Kennzeichnung '/' bzw. '#' in der Pinbezeichnung)


Abb. 1: Umgebauter USB-Stick(Version 1) mit Kupferlackdraht, Jumper und Widerstand

 

    

  

 

  

 

 

 

 

 

 


 

Abb. 2: Schaltplan vom Umbau des USB-Sticks mit Write-Protect Jumper

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ein Jumper verbindet dann einen der /WP-Pin Landepads bei den FLASH-Bausteinen und den Stromkreis mit dem Pulldown-Widerstand.

Bei nicht gesetztem Jumper liegt nun über den Pulldown-Widerstand ein konstantes LOW-Signal am /WP-Pin an und das Schreiben in den Speicher wird permanent geblockt. Mit gestecktem Jumper kann der LOW-Pegel am Pin wieder mit dem Kontrollersignal vom Lötpad des /WP-Pins überschrieben werden. Es kann dann wieder in den FLASH-Baustein geschrieben werden, wenn der Kontrollerchip einen HIGH-Pegel auf der Signalleitung vorgibt.

Ich gehe davon aus, dass die /WP-Pins immer gemeinsam an einer Steuerleitung ausgehend vom Kontrollerbaustein angeschlossen sind oder manchmal sogar nur fest auf HIGH-Pegel gelegt werden, also dauerhaft deaktiviert wurden (Risiko von Datenfehlern!).

Der Jumper, die Kupferlackdrähte und die angehobenen Pins wurden mit Sekundenkleber fixiert. Die Wahl eine 2-Polige Stiftleiste zu verwenden, hat den Vorteil, dass eine Verlängerung mit Schalter einfacher angeschlossen werden kann, falls der USB-Stick mal in einem PC-Gehäuse untergebracht werden sollte.


1.1 Es geht  auch einfacher

Gelegentlich öffne ich USB-Sticks, um sie nach Umbaumöglichkeiten zu untersuchen. Dabei gibt es so Überraschungen, dass beispielsweise MicroSD-Karten als Ersatz für den FLASH-Speicher eingebaut wurden (s. u.). Mit einem USB-Stick von Kingston DT101 G2 8GB ( ID 0951:1665 Kingston Technology Digital Data Traveler SE9 64GB) hatte ich Glück. Der einzige Speicherbaustein lag im TQFP-Gehäuse vor und ein Datenblatt war dazu im Internet zu finden. Laut Datenblatt sind auch keine Steuerbits im FLASH-Baustein zu setzen, die den /WP-Anschluss für ausgewiesene Speicherbereiche erst freigeben. Eine Analyse des Layouts ergab, dass der Write-Protect Pin des TQFP-Bausteins nur mit VCC verbunden ist. Hier gab es also nicht einmal eine Steuerleitung vom Kontroller, um den FLASH-Speicher gesichert nach dem Einschalten der Betriebsspannung freizugeben. Dieses Layout vereinfachte den Umbau erheblich. Der Write-Protect Pin wurde angehoben. Zwischen /WP-Pin und VCC-Pad wurde dann ein 2,7K 0402 Widerstand gelötet. Ein Mikroskop für SMD-Lötarbeiten ist hier absolut erforderlich. Die zweipolige Stiftleiste wurde so weit zurück positioniert, dass bei aufgesteckten Jumper die metallische Schutzkappe über dessen Position gedreht werden kann. Ein Pin der Stiftleiste wurde an den angehobenen /WP-Pin angeschlossen. Der andere Pol der Stiftleiste wurde an einen beliebigen GND-Pin, ebenfalls mit Lackdraht, angeschlossen. Das USB-Gehäuse hatte dann noch eine Ausfräsung für den Jumper erhalten und der Aufbau wurde mit Sekundenkleber fixiert. Der Schreibschutz ist nun mit gesteckten Jumper aktiv. Das war's.

 

 

Abb. 3: Fertig umgebauter Stick (Version 2) mit Schutzkappe für den WP-Jumper


 

 

 

 

 


 

 

 





Abb. 4: Zerlegter USB-Stick

 

 

 

 

 

 

 

 

 

 





Abb. 5: Positionierung der Stiftleiste











Abb. 6: 4002 Pullup zwischen ange/WP-Pin und VCC-P

Abb. 6: 0402-Pullup zwischen VCC-Pad und angehobenen /WP-Pin

 



 

 

 

 

 

 

 

 

 

 

 

 


 

 

Abb. 7: Schaltplan des Umbaus

Abb. 7: Schaltplan des Umbaus

 

 

Sicherheitshinweise:

Ein schlechter ESD-Schutz und mangelhafte Löterfahrung führen sehr schnell zu einem zerstörten USB-Stick.


Und ganz wichtig: Wer seine Elektronik schrottet, der ist selber daran schuld.

 


1.2 Selbstbau-Schreibschutz am USB-Stick im Test

Mit gestecktem Jumper am ersten Beispiel eines Umbaus (der Schreibschutz ist in diesem Fall dann deaktiviert s. Abb. 1 und Abb. 2), konnte ich vom USB-Stick lesen und diesen auch wieder beschreiben. Ohne Jumper, war der Schreibschutz aktiv. Es konnten Dateien und Verzeichnisse „virtuell“ geschrieben werden, d. h. es gab keine Rückmeldung oder Fehlermeldung von WinXP und auch nicht von Linux Mint. Die Verzeichnisse mit Dateien waren zu sehen (im Test ca. 500 KB gesamt). Ein Zurücklesen der Dateien war möglich. Nach erneutem Einstecken des USB-Sticks waren die Dateien, wie erwartet, nicht mehr vorhanden.

Ich vermute, dass keine Verifizierung (Write-Read-Verify) der geschriebenen Daten vom Betriebssystem ausgeführt wird und diese „Virtuellen-Reste“ aus einem Zwischenspeicher im PC stammen.

Das „virtuelle“-Schreiben wird von manchen Herstellern für ihre schreibgeschützten FLASH-Medien als besonderes Feature beworben. Es ist aber anscheinend nur der Inhalt aus dem Pufferspeicher.

 

1.2.1 Funktionssicherheit und offene Fragen

Mit einem aktiven /WP-Pin ist eine TRIM-Funktion (auch bei SSD) nicht mehr möglich. Je nach Firmware im Kontrollerbaustein wird ein TRIM ins Leere laufen, wenn er zu beliebigen Zeiten, also im Hintergrund und nicht nur beim Schreiben einer Datei, ausgeführt wird.

Bei USB-Sticks vermute ich allerdings keine aufwendige TRIM-Korrektur.

Was ist mit aktiver Fehlerkorrektur vom Kontrollerbaustein (Read-Modify-Write)?

Fehler in den Speicherbereichen können nicht mehr behoben werden, wenn die Kontrollerfirmware eine automatische Korrektur über ein zurückschreiben (neuer Sektor) vorsieht. Entsteht eine Art TRIM bzw. ECC-Loop, der alles blockiert?

Ich kenne auch nicht den Ablageort der Laufzeitparameter (Speicherorganisation, Betriebszeitzähler, Logging der Lesefehler, Ausmaskierung von fehlerhaften Speicherbereichen etc.) von einer SSD oder eines USB-Sticks. Ist ein programmierbarer Speicherbereich im Kontroller dafür reserviert oder wurde im FLASH-Baustein, der nun schreibgeschützt ist, ein entsprechender Bereich dafür vorgesehen?

Dieser harte Eingriff kann Fehler in der Funktion verursachen, wenn die Kontrollerfirmware nicht auf einen so schreibgeschützten FLASH-Speicher vorbereitet ist, bzw. wenn sie den logischen Zustand an den /WP-Pins nicht erkennen und berücksichtigen kann.

 

Neben dem filigranen Umbau gibt es noch andere Hindernisse und Fragen bei einem solchen Eingriff:

-In USB-Sticks werden auch FLASH-Speicher in BGA Gehäusen verwendet. Hier kommt man nicht mehr so einfach an den /WP-Pin heran. Eventuell ist ein Zugriff auf einen gemeinsamen Steueranschluss am FLASH-Kontroller oder irgendwo sonst auf der Platine möglich.

Mein Tipp hierzu: USB-Sticks im leicht getönten Klarsichtgehäuse bieten einen Einblick auf die verbauten Komponenten. Mit etwas Übung lassen sich dann auch die USB-Sticks erkennen, welche TSOPs als FLASH-Speicher verwenden.

-Die Datenblätter der FLASH-Bausteine sind nicht freigegeben.

-Der Aufdruck auf den FLASH-Speichern wurde unkenntlich gemacht.

-Manche FLASH-Speicher (BIOS) reagieren auf den logischen Zustand am /WP-Pin Funktion erst, wenn zuvor interne Register (Fuses/Flags) im FLASH-Baustein programmiert wurden. Es ist dann zusätzliche Software im Kontroller notwendig, die diese FLASH-Speicher konfiguriert, damit der logische Zustand am /WP-Pin vom FLASH-Baustein auch den eingebauten Schreibschutz aktivieren kann. Das Zurücksetzen, also das Umprogrammieren dieser Konfigurationsbits, ist dann auch nur bei freigegebenen /WP-Pin möglich, sonst macht ein Schreibschutz über Hardware keinen Sinn.

-Bei anderen FLASH-Speicherbausteinen verhindert ein aktiver /WP-Pin nicht nur die Schreibsequenzen, sondern auch das Auslesen.

 

1.3 Arbeiten mit einem schreibgeschützten USB-Stick

Ein Anwender hat nun eine sehr hohe Sicherheit, dass sein USB-Stick mit den Live-Systemen wie beispielsweise Bankix oder Desinfec't nicht heimlich manipuliert wird (Bootprogramm etc.). Mit aktiviertem Schreibschutz direkt am /WP-Pin vom FLASH-Baustein kann auch über eine fehlerhafte oder manipulierte Firmware des Kontrollers der Speicherinhalt im FLASH-Baustein selbst nicht verändert werden. Die Firmware könnte allerdings immer noch die gelesenen Daten aus dem FLASH-Speicher, beim Durchreichen an das Computersystem analysieren und diese manipulieren („Man-in-the-Middle“ Angriff). Eine Abhilfe wäre hier, die Daten in verschlüsselten Kontainern auf den USB-Stick abzulegen (s. Veracrypt). Der Datenstrom zum PC wäre nicht analysierbar und Manipulationen würden durch Lesefehler auffallen.  

Es sollte auf jeden Fall vermieden werden, den Schreibschutz im Betrieb umzuschalten. Undefinierte Pufferzustände werden erzeugt (Was ist im FLASH?- Was ist noch im Schreibpuffer?). Das System wird instabil und hat inkonsistente, also zerstörte Dateien, auf dem FLASH-Speicher zur Folge.

 

1.4 Notwendige Absicherung der Firmware / No BadUSB

Aktuell wird eine Diskussion über die Angriffsmöglichkeiten und der Manipulierbarkeit von USB-Firmware geführt. Stichwort: BadUSB. Mir geht es mehr darum eine unfreiwillige, unbemerkte Manipulation der Firmware im Kontroller und der Daten im FLASH-Speicher selbst zu verhindern, wenn der USB-Stick vom Anwender an einen PC gesteckt wird. Es geht mir nicht um bereits manipulierte USB-Sticks und BadUSB-Tools die bewusst eingesetzt werden, um im Zielsystem einen Schaden anzurichten.

Wie bei den USB-Sticks, sind auch alle SSD-Speicher mit FLASH-Bausteinen und einem Kontroller für Kommunikation und Speichermanagement ausgestattet. Der Kontroller benötigt Firmware und muss daher programmiert werden. Updates sollten auch möglich sein (leider, also 'Banane-Produkte'-Reift beim Kunden). Das bedeutet, dass sich Schadsoftware in diesen Kontroller einnisten kann. Sie könnte die gewünschte Funktion der WP-Pins der FLASH-Bausteine je nach Bedarf abschalten. (Mit einem Schaltungsdesign nach Abb. 8 ist das allerdings nicht möglich.)

Viele der Kontrollerbausteine verfügen aus Kostengründen nur über begrenzten Speicherplatz für ihre Firmware oder die Firmware ist gänzlich als Bootimage in das externe FLASH ausgelagert. Mit der Schreibblockade des Haupt-FLASH-Speichers, wie am USB-Stick Umbau demonstriert, wird dort ein heimliches Anlegen von weiteren Software-Ressourcen oder ein Umprogrammieren der Firmware verhindert. Es wäre dort genug „Logische-Reserve“ für einen komplexen Angriff auf ein Zielsystem vorhanden. Bsp. EQUATIONGROUP Page 13, ModulFanny., s. a. Hidden sectors (DCO)

Bisher habe ich noch nie ein Firmware-Update für einen USB-Stick machen müssen!

Warum überhaupt ein Firmware-Update bei USB-Speichersticks ermöglicht wird und auch nach der Konfiguration noch erforderlich sein soll und das sogar über den USB-Zugang, über den auch jederzeit Schadsoftware zugespielt werden kann, kann ich mir nicht erklären (Banane-Produkte?).

Ein Programmierung, welche eine signierte Firmware berücksichtigt, hält die trivialen BadUSB-Angriffe/Updates ab. Das ist ein Sicherheitsgewinn der beibehalten werden kann. Allerdings nur auf SW-Mechanismen zu bauen, ist für mich wieder ein Designfehler.

Denn sowie die Signaturschlüssel bekannt werden, oder eine mangelhafte Implementierung in der Kontroller-Software vorliegt, ist eine Firmware wieder mit einfachen Mitteln manipulierbar.

Eine erfolgreiche Programmierung mit signierter Software zeigt mir nur an, dass die Quelle meines Updates ein exklusives Wissen über das Zielsystem hat. Eine erfolgreiche Programmierung sagt nichts über die Eigenschaften einer signierten Software aus. 

Kurz gesagt, BadUSB-Firmware kann auch signiert sein sein.

Weiter unten ist unter "Zertifizierung und Signatur" das Thema ausführlicher behandelt.


Meine Lösungsvorschläge, um die Sicherheitslücke „Kontrollerfirmware“ zu entschärfen wären:

I. Der Einsatz von OTP-ROMs*  (One Time Programmable), als Speicher für die Firmware und Parameter von USB-Sticks, verhindert eine nachträgliche Programmierung mit einer BadUSB-Firmware mit Sicherheit. Das ist auch für andere USB-Geräte, wie z. B. Keyboards sinnvoll.


(*OTP-Speicher ist hier und im folgenden im Text, als Synonym für ein nicht mehr veränderbaren Speicher zu sehen. bspw. Lötbrücke am /WP-Pin vom Firmware-FLASH wird angewendet ...)


II. Eine Kontrollerfirmware darf sich nur selbst umprogrammieren, wenn auch die Freigabe vom WP-Schalter für den allgemeinen FLASH-Speicher vorgegeben wurde. 

Alternativ bzw. unabhängig davon wäre eine billige WP-Lötbrücke, als Freigabe nur für das Programmieren des Firmware- und Konfigurationsspeichers denkbar.

Mehr Vertrauen hätte ich in Kontrollerbausteine (ASICs), die eine Freigabe der Firmwareprogrammierung über Steuerleitungen bereits als fest verdrahtet (hard-wired) implementiert haben.

III. Die Programmierung der Firmware eines USB-Kontrollers darf nur über eine weitere, sonst nicht genutzte Schnittstelle erfolgen.

Die Punkte können einzeln oder in Kombination angewendet werden.



1.5 Designfehler beim HW-Schreibschutz der FLASH-Speicher vermeiden

Einen WP-Schalter nur an den Eingang eines Speicherkontrollers anzuschließen ist kein gutes HW-Design. Eine BadFirmware im Kontroller kann den Eingangszustand ignorieren und weiter Schreibkommandos auf dem FLASH-Speicher zulassen und den FLASH-Speicher sogar für eigene Zwecke umprogrammieren.

„Security by Design" fängt für mich mit dem Gebrauch der Write-Protect Pins an den Speicherbausteinen an. Alles andere sehe ich als Designfehler.


Kleine Randbemerkung:

Viele FLASH-Speicherbausteine besitzen inaktive /WP-Pins. D.h., in diesen Bausteinen muss der WP-Eingang und seine Blockadefunktion erst noch über programmierbare, interner Steuerbits freigeschaltet werden. Ein gesetzter Jumper (gegen GND) am /WP-Pin aktiviert dann erst die Blockade der Schreibkommandos. Natürlich wird auch das Zurücksetzen der Steuerbits bei aktivem /WP-Pin verhindert, sonst macht ein HW-Schreibschutz keinen Sinn. Diese Funktion ist auf den Speicherchips fest verdrahtet und kann daher von Software nicht mehr umgangen werden.



Mit folgender Schaltung wird der Schreibschutz am FLASH-Speicher bei gesetztem Jumper immer erzwungen und kann vom Kontroller (mit Bad-Firmware) über die Steuer- bzw. Leseleitung dann auch nicht mehr überschrieben werden.

Abb. 8: Schaltung für steuerbaren und detektierbaren /WP-Pin Zustand


Die Verbindung über R2 an den Kontroller dient vorwiegend zum Einlesen des Zustandes vom Jumper/Schalter. Falls doch ein Firmwareupdate ermöglicht werden soll, dann könnte die Software im Kontroller so geschrieben werden, dass mit gesetztem Jumper auch ein Firmware-Update bereits im Kontroller geblockt wird (s. 1.4 Punkt II.). So bleibt der USB-Stick wenigstens mit gesetztem Jumper abgesichert, wenn nur Daten ausgelesen werden sollen.

Notwendigerweise dient die Erkennung des Jumperzustandes auch dazu, um z. B. TRIM-Kommandos oder automatische ECC-Korrekturen bei aktiviertem Schreibschutz abzufangen.

Sind mehrere Speicherbausteine vorhanden, dnn sind alle /WP-Pins am Jumper/Schalter zusammenzuführen.

(Der Unterschied zu meinem USB-Stick im ersten Umbau ist, dass hier der Jumper für einen Schreibschutz gesteckt werden muss und das ein Kontroller nun den Zustand am /WP-Pin immer erkennen kann.)



1.5.1 Aufwand und Kosten für einen USB-Stick Schreibschutz

Wie zuvor gezeigt, ist das besondere Feature des hardwareseitigen Schreibschutzes eines USB-Sticks ganz einfach mit dem Verbinden des /WP-Pins eines FLASH-Speicherbausteins mit GND (LOW-Pegel) zu erreichen. Eine entsprechende Lötbrücke könnte auf jeder Platine mit FLASH-Bausteinen ohne Probleme integriert werden.

Ich schätze die Produktionskosten in der Größenordnung von Cents. Die Möglichkeit eines schaltbaren Schreibschutzes ist damit vorhanden. Wie ich bei dem zuerst umgebauten USB-Stick herausfinden konnte, ist sie manchmal sogar schon als Anschlusspin, zum Einlesen der Schalterposition, am Kontrollerbaustein vorgesehen [Kontrollertyp SK6211, Pin 40]. Hier übernimmt dann (leider) nur die Firmware im Kontrollerbaustein die Blockade der Schreibkommandos an den FLASH-Speicher.

Dieser Pin war allerdings nicht an dem mir vorliegenden USB-Stick funktional. Versuchsweise habe ich diesen Pin an GND (LOW) und alternativ dazu an die Betriebsspannung (HIGH) gelegt, um zu überprüfen, ob die Firmware schon auf diesen Signaleingang mit einem Schreibschutz reagiert. An GND angeschlossen, war der USB-Stick les- und beschreibbar. Mit einem HIGH-Pegel konnte der USB-Stick weder gelesen noch beschrieben werden und wurde auch nicht vom Betriebssystem eingebunden. Vermutlich muss der Kontroller doch erst mit der passenden Software programmiert werden.

Mein Fazit ist, dass die Schreibschutz-Eigenschaft in der Hardware vorgesehen wird, aber die Funktion dem Nutzer nicht zur Verfügung steht. Der Käufer bezahlt diese vorbereitete Eigenschaft in der Hardware, ohne dass er sie anwenden kann.

D. h., die Möglichkeit vom Hersteller einen HW-Schreibschutz zu ergänzen, ist vom Aufwand her kostengünstig und sehr einfach in ein Schaltungsdesign zu implementieren und sie ist manchmal sogar schon vorbereitet. Das gilt nicht nur für USB-Sticks, sondern lässt sich genauso einfach auf die meisten FLASH-Speichermedien übertragen.

Der Kostenaufwand in der Herstellung ist gering - Centbeträge. Der Aufpreis beträgt aber meistens viele Euros. (s. "Hardware mit Schreibschutz" -teure USB-Sticks mit Schreibschutzschalter KanguruFlashBlu30 8GB mit WP ca. 32 € - Dem gegenüber kostet ein 8GB 3.0-Stick o. WP ca. 7 €). Die Ausstattung mit einem Schreibschutzschalter erhöht die Gewinnspanne beträchtlich. Warum nutzen nicht mehr Hersteller dieses Feature zur Gewinnsteigerung? Etwas mehr Konkurrenz würde zudem die Preise zu Gunsten der Kunden wieder sinken lassen. 



1.5.2 Optimieren von USB-Sticks mit Schreibschutzschalter

Ist sogar ein Schreibschutzschalter am USB-Stick vorhanden, aber nur mit dem Kontrollerbaustein verbunden, bietet sich eine zusätzliche Brücke zum #WP-Pin am FLASH-Speicher an. Dieser effektive Schreibschutz-Hack vom cccfr ist unter "Projekt readonly" sehr gut beschrieben.

 

 

1.6 Kauf von USB-Sticks mit Schreibschutzschalter

Unter "Hardware mit Schreibschutz" befindet sich eine Tabelle mit USB-Sticks, die noch mit Schreibschutzschalter erhältlich sind.

Ich habe einen Vertreter für Speichermedien gefragt, warum es so wenige USB-Sticks mit Schreibschutzfunktion zu kaufen gibt. Er hatte darauf geantwortet, dass es bei diesen USB-Sticks zu viele Rückläufe gegeben habe und daher die Schreibschutzfunktion nicht mehr mit ausgeliefert wird. „Die Kunden hätten den USB-Stick als fehlerhaft zurückgegeben, weil er nicht mehr beschreibbar war. Allerdings war nur der Schalter auf Schreibschutz gestellt.“

An den SD-Karten gibt es aber (immer noch) einen Lock-Schieber (Das ist kein elektrischer Schalter, sondern nur ein Plastik-Schieber. Die Auswertung der Position erfolgt vom Lesegerät). Damit können die Kunden anscheinend besser umgehen. Das die Nutzer mit dem Schreibschutzschalter eines USB-Sticks überfordert sind, lasse ich daher nicht gelten und suche nach anderen Ursachen.


Zertifizierung und Signatur

Es werden auch USB-Sticks mit besonders geschützter Firmware (No BadUSB) angeboten. Die Behauptung, dass die Firmware nun digital signiert ist (RSA2048 Bit) und damit geschützt vor BadFirmware, halte ich für nicht zutreffend. Ein Schreibschutz mit RSA abgesichert, selbst wenn dieser fehlerfrei implementiert ist, ist im Vergleich zu einer Firmware in einem OTP-Speicher immer noch veränderbar, also unsicher  (s. o. Kap. 1.4). Ist der Aufwand für eine RSA2048-Firmware, besonders bei dem Wegwerfprodukt USB-Stick, gegenüber einer OTP-Version überhaupt gerechtfertigt?

Der Nachweis (Ist der vorhanden?) einer korrekten Implementierung eines RSA-Algorithmus ist sehr teuer und aufwendig. Für jedes Update der Software ist eine neue Zertifizierung erforderlich. Ein Zertifizierungsprozess benötigt viel Zeit. Daher sind wichtige Updates zur Fehlerbeseitigung und zum Schließen von Sicherheitslücken nur mit großer Zeitverzögerung nach bekannt werden zu erwarten. Die Zertifizierungskosten müssen auf den Kunden wieder umgelegt werden. Ein einfaches OTP-ROM (auch ein serielles EEPROM mit /WP Pin -s. BIOS) für Firmware und Konfigurationsdaten, ist dem gegenüber wesentlich günstiger zu implementieren (wenige Cent) und letztendlich in der Wirksamkeit auch zuverlässiger, um eine BadUSB-Firmware nachträglich zu verhindern.

Schlüssel können weitergegeben werden (Firmenübernahme aus dem Ausland) oder 'verloren' gehen (s. NSA-Spionage bei SIM-Karten-Herstellern). Wie sieht es im Produktionsland dieser USB-Sticks aus? Müssen diese Schlüssel sogar unter Schweigeverpflichtung des Herstellers an staatliche Stellen übermittelt werden? Gibt es nur einen Zentralschlüssel oder je (Groß-) Kunde einen individuellen Schlüssel für individuell angepasste Firmware?

Eine Signatur sagt nichts über die Funktion der signierten Software aus. Eine Zertifizierung garantiert keine Sicherheit, sondern Dokumentiert nur, dass bestimmte Tests erfolgreich bestanden wurden (s. Dieselskandal) bzw. ein (Mindest-)Standard eingehalten wurde. Eine Zertifizierung ist noch lange kein Nachweis, dass ein RSA-Algorithmus fehlerfrei implementiert wurde.

BadFirmware kann daher auch auch signiert und zertifiziert sein. 


Selbst wenn eine Software unter NDA von einer Zertifizierungsstelle (BSI, FIPS) eingesehen werden kann, werden die Algorithmen nur von wenigen, allerdings auch fehlbaren Experten überprüft (s. "BSI Zertifiziert RSA BUG", "DUHK Angriff -Vermurkster Zufallszahlengenerator mit FIPS-Zertifizierung", "Sicherheit für FIPS-zertifizierte Geräte" und "NIST-zertifizierte USB-Sticks mit Hardware-Verschlüsselung geknackt"  ).

Wie sicher sind FIPS-zertifizierte Geräte?


Dazu noch Beispiele aus der Praxis von USB-Festplatten:

Selbstverschlüsselnde Festplatten leicht knackbar oder auch

Externe Festplatten mit Verschlüsselung knackbar

Besonders der darin enthaltenen Hinweis:

"Firmware-Schlüssel nicht individuell -
Zwar ist die Firmware des Fujitsu MB86C311A durch einen Schlüssel geschützt, doch nach Angaben der Sicherheitsforscher ist dieser Schlüssel bei jedem Chip gleich.  
Das bedeutet, dass jeder Hersteller, der solche Platten fertigt, die eigene Firmware und die von Konkurrenzprodukten patchen kann,  
... Externe Festplatten mit dieser lückenhaften Umsetzung einer Hardware-Verschlüsselung schützen Daten somit nur vor dem Zugriff unbedarfter Dritter. "


Mit einem OTP-Speicher* ...

(*-FLASH mit fester Brücke am /WP-Pin)

Auf manchen USB-Sticks wird zusätzlich ein Virenscanner mit angeboten. Die Möglichkeit damit sogar den Host-PC zu scannen erfordert hohe Systemrechte. Wurde der Virenscanner wenigstens von großen Firmen mit Erfahrung und KnowHow erstellt (Kaspersky,...), oder liegt nur eine Eigenentwicklung mit noch nicht abgearbeiteter Lernkurve vor?

Interessant ist die Option, dass verlorengegangene oder gestohlene USB-Sticks über eine Remote-Funktion gesteuert werden können.

("this optional feature gives you the ability to control your ... secure flash drive(s) from anywhere in the world. Remotely delete drives that have been lost or stolen, manage passwords (strength, updates and remote resets), and ensure compliance with set security policies and much more.")

Wie meldet sich der USB-Stick beim Kunden? Hierzu müsste der USB-Stick doch (heimlich) seinen neuen Wirtsrechner zur Kontaktaufnahme mit der Stick-Verwaltung(Cloud?) überreden? Eine selbst mitgebrachte Kommunikationssoftware setze ich da voraus. Der Kommunikationsschlüssel, auch bei nicht verlorengegangenen USB-Sticks, ist selbstverständlich nur dem rechtmäßigen Besitzer bekannt ;-).

Der Anwender nutzt sozusagen einen zertifizierten und signierten Trojaner, den er vermutlich auch immer mit Updates aktualisiert halten soll.

Gerade die Kunden, die ernsthaft mehr Aufwand betreiben möchten, um ihre Systeme beispielsweise gegen Industriespionage oder Sabotage abzusichern, sollten die oben gestellten Fragen klären.


Sind BSI- und FIPS zertifizierte Produkte überhaupt für den durchschnittlichen Anwender erforderlich?

Er ist kein Manager der eine eingehaltene IT-Compliance nachweisen muss, um dann in einem Schadensfall mit dem Feigenblatt "War doch Zertifiziert", jede Verantwortung von sich weisen zu können.

Einen verschlüsselten Datei-Container (s. Veracrypt) auf einem einfachen Datenträger angelegt, erscheint mir wesentlich sicherer und preiswerter. Veracrypt wurde neben Windows, MacOS und Linux, auch auf den RaspberryPi portiert.


 

1.7 mSATA-Modul mit Write-Protection nachrüsten

mSATA-Module sollten sich nach dem gleichen Verfahren umrüsten lassen.

Wie bei den USB-Sticks gibt es dann allerdings auch wieder die Fragen zur zuverlässigen Funktionalität, wenn ein HW-Schreibschutz erzwungen wird. [s. o. Kap. 1.2.1].

 

1.8 Anmerkungen

Wünschenswert wäre es, wenn die Hersteller wenigstens für ihre Highend-USB-Sticks einen Schreibschutzschalter spendieren würden. Ein OTP-ROM für die Firmware würde das BadFirmware Problem zuverlässig lösen.

In Testberichten und Zertifizierungen von USB-Sticks sollte der hardwareseitige Schreibschutz in die Wertung mit eingehen. Bedauerlicherweise wurde diese Eigenschaft auch nicht im letzten Test der c't 11/2014 aufgelistet. Für Live-Systeme ist dieser Schreibschutz ein wichtiger Sicherheitsfaktor.

Auch den praktischen Nutzen eines Schreibschutzschalters am USB-Stick sehe ich weiterhin als gegeben. Er dient als Absicherung gegen eigene Bedienfehler. Beispielsweise wird damit ein Überschreiben von Dateien verhindert, wenn ein Backup/Sync aus Versehen in die falsche Richtung ausgeführt wird.


1.9 Meine Empfehlung

Ein einfacher Schreibschutzschalter reicht meistens aus. Die Hardware selbst muss nicht unbedingt über Kryptofunktionen verfügen. Die Daten werden in eine Kontainerdatei abgelegt, die z. B. mit Veracrypt verschlüsselt angelegt wurde.

Eine Alternative zu den USB-Sticks mit Schreibschutzschalter, ist der Einsatz von Schnittstellenkonvertern mit zuschaltbarem Hardwareschreibschutz. In Live-Systeme mit SD-Karten und Write-Blocker Adapter sind hierzu Beispiele zu finden.

Und wenn die USB-Stick Platine ohnehin offen vorliegt, dann kann auch das Gehäusedesign den individuellen Ansprüchen angepasst werden. Beispielsweise in "USB-Sticks im Steampunk-Design" sind Umbauanleitungen für Retro-Sticks zu finden.


 

  Volker

 

Überraschungen gibt es immer wieder.


 

Abb. 9: USB-Stick mit MicroSD als Datenspeicher

Intenso 32GB, ID 058f:1234 Alcor Micro Corp. Flash Drive


 

Abb. 10: Andere Marke, aber mit baugleichen Inhalt

Ein 16GB Modell von ISY (ID  058f:1234 Alcor Micro Corp. Flash Drive) verwendet ebenfalls MicroSDs. Der USB-Stick war nach kurzen Gebrauch als Speichermedium nicht mehr ansprechbar. Ist der Kontrollerbaustein auf der MicroSD möglicherweise dafür verantwortlich?

 

Absicherung über PS/2 bei abgeschaltetem USB-Ports.

Viele PCs haben noch PS2 Anschlüsse. Es gibt aber immer weniger Mäuse und Tastaturen mit PS/2.

Mit einem USB zu PS/2 Adapter können die moderneren USB-Mäuse und Tastaturen verwendet werden, wenn die USB-Ports eines PCs deaktiviert wurden.  



Quellen:


BadUSB:

http://www.heise.de/newsticker/meldung/BadUSB-Wenn-USB-Geraete-boese-werden-2281098.html


BadUSB, aktuelle USB Exploits und Schutzmechanismen
von [Ramon Mörl 1 , Andreas Koke ] http://itwatch.de/content/download/1475/8588/file/BadUSB_aktuelle%20USB%20Exploits%20und%20Schutzmechanismen.pdf


Liste mit angreifbaren USB-Geräten:

https://opensource.srlabs.de/projects/badusb


USB-Sticks mit Schreibschutzschalter:

Auf "Hardware mit Schreibschutz" ist eine Tabelle mit USB-Sticks Und externen USB-Laufwerken mit Schreibschutzschalter zu finden.



Wie sichere ich mein Betriebssystem gegen BAD-USB-Dvices ab:

https://www.privacy-handbuch.de/handbuch_91.htm