Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:readonlyflash

"Projekt readonly" - Flashspeicher

Was: kurzzeitig oder dauerhaft garantiert schreibgeschützte Flash Speicher
Wer: protagonist und andere
aktueller Stand: aktiv

Beschreibung

Um z.B. vertrauenswürdige Live-Linux-Systeme (Bankix,..) auf Hardwareebene vor Modifikationen zu schützen suchen wir passende Speichermedien.

Hardwaremodifikation -> reversibler Schreibschutz

USB-Sticks mit Schreibschutz-Schalter ab Werk

Es existieren USB-Sticks mit „Schreibschutz“-Schalter, dieser ist aber bei allen bekannten Modellen „nur“ mit dem Controller verbunden und kann vermutlich über eine Firmwaremodifikation ignoriert werden.
→ kein echter Schreibschutz auf Flash-Ebene
Da die Stock-Firmware jedoch bereits über den Schalter dazu gebracht werden kann, dem Betriebssystem den Schreibschutz mitzuteilen, eignet sich diese Hardware möglicherweise dennoch gut für eine Hardware-Modifikation, die den #WP-Pin beeinflusst.

Trekstor 8GB

modifizierter USB Stick

  • ca. 11€
  • ?? angeblich im Saturn erhältlich ??
    • war 7/2015 im Freiburger Saturn nicht auffindbar
  • Silber, „USB STICK CS“, Made in China
  • 8GB Flash BA8GB
    • verschiedene Aufschriften: TKTC58TEG6DDKTA00, TKSDTNQGAMA-008G
    • no name, kein Datenblatt auffindbar
  • Hardwareschalter ist „nur“ mit Controller verbunden
  • Controller: SiliconMotion SM3257EN
    • weitere Aufschrift: „Q BA D5K945“
    • 48? pins
  • es sieht so aus, als wär der Controller via USB flashbar → Schwachstelle im Sicherheitskonzept (!)
    • passende Software scheint es online zu geben
    • Firmware-seitiger Schreibschutz könnte so ausgehebelt werden
  • Modifikation: verbesserte Sicherheit durch Verdrahtung des Hardwareschalters (Schreibschutz-Indikator für den Controller) mit dem echten #WP-Schreibschutz-Pin des NAND Speichers
    • löst alle Teilprobleme: NAND schreibgeschützt, Firmware weiß vom Schreibschutz, signalisiert Schreibschutz gegenüber des Betriebssystems
    • elektrosches Schaltverhalten passt gut: Pin garantiert auf GND gezogen im readonly-Zustand durch Verbindung mit der Groundplane

modifizierter USB Stick

  • Indikatorpin sonst auf VCC (vermutlich per Pullup durch eine GPIO-Leitung vom Controller)
  • verbleibendes Problem: Controller-Firmware potentiell modifizierbar, kann ausgelesene Daten „verfälscht“ wiedergeben (z.B. den Inhalt von /etc/shadow)
Trekstor CS 8GB 2012
  • ältere Version des Trekstor 8GB
  • Controller: SiliconMotion SM3255Q AB SIP062131 1118
Hama 4GB
  • gekauft 2010
  • praktisch identisches Gehäuse zum Trekstor 8GB
  • Controller: ITE IT1167E-48B 0946-BX0 N4LR40
    • englisches Datasheet auffindbar (IT1167E_datasheet_v0.2.pdf)
    • „Support firmware ISP function to upgrade firmware“
    • LQFP 48-Pin, 8032 Microcontroller,
  • NAND: Hynix H27UBF8T2ATR BC 004AA M3QJR364AJ1
  • Schalter zieht im schreibgeschützten Modus den (vermutlich) GPIO-Pin auf GND
    • Vermutung: interner Pullup im Controller

CF Karten Modifikation

„Primitive“ Hardware-Modifikation, #WP-Pin wird per Schalter auf Wunsch auf GND gezogen, sonst NC
CF-Karten enthalten durch ihre Größe noch TSSOP 40/48 Chips (++), aber auch hier sind Modifikationen am Chip knifflig (–).
Außerdem sind die Karten nur schwer zerstörungsfrei zu öffnen (–).
Vereinfacht wird die Modifikation durch Testpunkte / nur einseitig bestückten Platinen. Siehe: Trancend-Karte. Diese Variante hat deutliche Usability-Probleme: der Controller weiß nichts vom Schreibschutz und behauptet gegenüber dem Betriebsystem, der Datenspeicher wäre beschreibbar. Das führt zu unerwünschten Timeouts, bis z.B. das Dateisystem in den readonly-Fehlermodus übergeht.

Transcend 2GB

Pins auf der Karten-Unterseite Transcend/2GB

  • Conrad Ladenverkauf Preis: 15€
  • besserer Deal Preis/Leistung wäre: 4GB / grob 16€
  • 1x Flash TSSOP48 Baustein 29F16G08CBACA micron
    • → nur einmal Verlöten notwendig!
  • Controller: SM2232T AD, S3G63.1 (Taiwan)
    • viele Pins
    • „ISP“ Programmierfähigkeit wird im Datenblatt erwähnt
  • –> oben beschriebenes usability-Problem: Timeouts bei aktiviertem Schreibschutz des Flash-Speichers
maxflash 4 GB
  • Controller PHISON
    • PS3006-L, UT0830CD, P5432.12
  • 1x NAND MICRON 29F32G08CBAAA
  • 4 Gbyte
  • schwerer modifizierbar:
    • kein weiterer Chip auf der Rückseite vorgesehen
    • keine Testpins
    • Nand ist so eingebaut, dass sich der WP Pin in Richtung Kartenleser befindet

detaillierte Beschreibung

Angriffszenario

Beim Browsen/Öffnen von Dokumenten eingefangene Schadsoftware, die sich auf den Live-USB-Sticks festsetzt
Dabei gehen wir so weit, auch hochentwickelte Schadsoftware zu berücksichtigen, die durch Modifikationen an USB-Stick-Controller den Schreibschutz aushebeln könnten. Es wird also nach einer Hardware-Lösung gesucht, die auch einem solchen Angriff standhält.

Hintergrund

Flash-Speichermedien enthalten einen internen Mikrochip (meist: ARM), der über die USB-Schnittstelle vom Hostsystem beeinflussbar oder neu programmierbar ist.
Je nach Controller sind entsprechende Firmware-Update-Programme verfügbar.
Software/Firmware-basierten Schreibschutzmethoden kann daher nur sehr eingeschränkt vertraut werden, da sie potentiell entfernt werden können.

Ansatz: #WP am Flash-Speicher

Übliche Flash-Bausteine besitzen einen WriteProtect-Pin, der im „low“-Zustand ein Beschreiben des Chips verhindert. Auch bei Kompromittierung des Speichercontrollers wären somit die gepeicherten Daten sicher vor Modifikation (im Chip).

Problem: fehlende Schreibschutzinfo ans OS

Der Speicherkontroller in Stick/Karte überprüft üblicherweise nicht die Schreibfähigkeit des Flash-Bausteins, daher meldet er auch bei aktiviertem Schreibschutz in Richtung Betriebssystem weiterhin „Karte beschreibbar“, was zu Fehlern und Timeouts führt, bis die Karte z.B. von Linux zwangsweise als readonly markiert wird. Das Speichermedium bleibt zwar schreibgeschützt, aber für Endnutzer ist das ärgerlich.
(eigene Firmware notwendig, um Problem zu umgehen)

SD: permanenter Schreibschutz via Softwarebefehl (nicht-reversibel!)

SD Karten: TMP/PERM Register

Möglichkeit: TMP write protect
  • Spielerei, kann beliebig zurückgesetzt werden (!?)
  • kein echter Schutz
Möglichkeit: PERM write protect
  • in den SD-Spezifikationen enthalten: einmaliger write protect (unwiederruflich!)
  • genaue Implementation in verbreiteten Karten ungetestet / unbekannt
  • Möglichkeit: Microcontroller bauen, der das PERM-Bit per lowlevel-SD Zugang setz
  • teensy 3 + sd Karten Pinout Adapter existiert bereits
  • wurde angesichts der obigen, reversiblen Methoden nicht umgesetzt
projekte/readonlyflash.txt · Zuletzt geändert: 2015/07/05 17:48 von protagonist