Schreibschutzschalter 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.1 Nur die Hardware ändern

Ja das geht!

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

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. Diese Eigenschaft des /WP-Pins eignet sich hervorragend, um auch einen Schreibschutz im Normalbetrieb zu ermöglichen.

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).

An jedem TSOP-Gehäuse der FLASH-Speicher habe ich nun den /WP-Pin mit einem SMD-Lötkolben vorsichtig etwas angehoben. Nicht zu viel biegen und nicht zu lange erwärmen, sonst bricht der Pin 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 ausgeführt werden soll. Nomenklatur: Kennzeichnung '/' bzw. '#' in der Pinbezeichnung)


Abb. 1: Umgebauter USB-Stick 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 Kontroller-baustein 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.

 

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, ist selber daran schuld.

 


1.2 Selbstbau-Schreibschutz am USB-Stick im Test

Mit gestecktem Jumper, also deaktivierten Schreibschutz, konnte ich vom USB-Stick lesen und ihn 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 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.

-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

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 schon manipulierte USB-Sticks und USB-Tools die bewusst eingesetzt werden, um im Zielsystem 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.

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 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 schon 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.


Als bisher absolut sicher sehe ich folgendes Schaltungsdesign:

Viele FLASH-Speicherbausteine besitzen, wie oben zu sehen, selbst einen /WP-Pin als Anschluss zum Blocken von Schreibkommandos. In einigen Bausteinen muss der WP-Eingang über die Programmierung interner Steuerbits noch erst freigeschaltet werden. Ein gesetzter Jumper (gegen GND) am /WP-Pin aktiviert den Schreibschutz, der dann natürlich auch ein Zurücksetzen der Steuerbits 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. Die /WP-Pins der Speicherbausteine können auf den Trägerplatinen alle parallel angeschlossen und auf einen Jumper/Schalter zusammengeführt werden. Ist der Jumper gegen GND gesetzt, kann selbst eine Schadsoftware im Kontrollerbaustein den Schreibschutz für die FLASH-Bausteine nicht mehr deaktivieren/überschreiben. Der Kontrollerbaustein muss ohnehin einen logischen Zustand einlesen und entsprechend berücksichtigen, der nun auch an den /WP-Anschlüssen der Speicherbausteine liegt und von außen über den Jumper erzwungen wird. Nicht nur, um auch ein Update seiner Firmware zu blocken (s. 1.4 Punkt II.), sondern notwendigerweise auch, um z. B. TRIM oder automatische ECC-Korrekturen bei aktiviertem Schreibschutz abzufangen. 

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

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

 

(Der Unterschied zu meinem USB-Stick Umbau ist, dass hier der Jumper für einen Schreibschutz gesteckt werden muss und das der Kontroller 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 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 schon vorgesehen wird, aber die Funktion dem Nutzer nicht zur Verfügung steht. Der Käufer bezahlt eigentlich schon diese vorbereitete Eigenschaft in der Hardware, aber er kann sie nicht anwenden.

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 wurde teilweise sogar schon vorbereitet. Das gilt nicht nur für USB-Sticks, sondern für alle FLASH-Speichermedien.

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 schon 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.6 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.7 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.8 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.


 

  Volker

 

Überraschungen gibt es immer wieder.

Über langsame Geschwindigkeiten braucht man dann sich nicht zu wundern, wenn die Daten durch den USB-Kontrollerbaustein und den Speicherkontroller der recycelten MicoSD laufen müssen. 

Abb. 4: USB-Stick mit MicroSD als Datenspeicher



 

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.