Ziel von Hackern ist es oft sensible Daten wie Passwörter physisch aus externen Speichermedien wie Flash-Bausteinen zu extrahieren, sowie die abgelegte Firmware zu manipulieren. Das Einpflanzen von Backdoors, um einen Kommunikationstunnel nach außen zu erzeugen ist hierbei nicht unüblich und stellt einem Angreifer die Möglichkeit bereit, sich über längere Zeit im internen Netzwerk auszubreiten (sog. Lateral Movement). Zum aktuellen Stand verschlüsseln erfahrungsgemäß die wenigsten IoT-Entwickler Ihre Firmware, welche sich somit im Klartext innerhalb der Speichermedien befindet.
Anleitungen wie Speicherinhalte ausgelesen werden können gibt es mittlerweile Zuhauf im Internet. Erfahrungsgemäß behandeln diese aber meist die immer seltener anzutreffenden SPI-Flashes im SOIC-8-Format.
Diese Art von Speicher lassen sich aufgrund Ihrer außenliegenden Datenleitungen (Pins) direkt auf der Platine auslesen. Als Hilfsmittel wird lediglich eine passende Adapterklemme benötigt falls kein Lötkolben zur Anwendung kommen soll.
Nach erfolgreicher Anbringung der Klemmer kann im Anschluss der Flash-Speicher mit dem kostenlosen flashrom Tool (https://www.flashrom.org/Flashrom) identifiziert und ausgelesen werden.
Wie bereits angedeutet, sind diese SPI-Flash-Varianten trivial auslesbar. Auch aus diesem Grund dienen diese Chips vermehrt als Musterbeispiel in den im Internet kursierenden Anleitungen. Wie sieht es allerdings mit wirklich aktuell verbreiteten und sichereren Speichervarianten aus? Eine mittlerweile oft eingesetzte Gehäuseform bei Speicherchips ist das sog. Ball-grid-array (BGA), bei der die Anschlüsse kompakt auf der Unterseite des Chips liegen. Vorteil dieser oft bei eMMC-Speicher verwendeten Gehäuseart ist die nicht vorhandene Pin-Zugänglichkeit.
Um an die dicht gepackten Pins zu gelangen muss ein Angreifer i.d.R. mittels Heißluft den Chip von der Platine entfernen. Dieser Prozess führt ohne Erfahrung oft zur Zerstörung des Speichers. Ein weiteres Hindernis ist die extrem kompakte Anordnung der benötigten Pins. Ohne spezielle Tools wie Flash-Programmer (z.B. RT809) inkl. passender BGA-Adapter ist es oft nur schwer möglich, die Speicherelemente auszulesen. Ein weiterer großer Vorteil solcher BGA-Gehäuse ist die Remontage. Ohne spezielles Werkzeug wie z.B. geeignete Reflow-Öfen ist ein erneutes Auflöten von BGA-Speichern schwierig. Dies stellt einen zusätzlichen Schutz gegen Firmware-Manipulation und anschließender Inbetriebnahme dar.
Vor allem die bereits erwähnten eMMC-Speicher liegen ausschließlich in diesem BGA-Format vor. Ist man im Besitz eines passenden Adapters oder sind entsprechende Löt-Skills vorhanden um die relevanten Datenleitungen (lassen sich aus dem entsprechendem Datenblatt ermitteln) anzuzapfen, werden softwareseitig keine weiteren Tools mehr benötigt da eMMC-Speicher praktischerweise als SD-Karte gemounted werden können. Möglich macht dies, der bei eMMCs implementierte Controller, welcher den Chip über den MMC Bus ansprechbar macht.
Falls allerdings kein passender eMMC-Adapter vorhanden ist und sämtliche Leitungen angelötet werden, ist lediglich ein SD-Breakoutboard zu empfehlen, mit welchem eine direkte Verbindung zum Chip hergestellt wird. Solche, wie z.B. das Board TOL-09419 von Sparkfun lassen sich bereits für wenig Geld im Internet beziehen. Ein vollständiges Tutorial, wie eMMC-Speicher manuell, also ohne Adapter ausgelesen werden können, wurde ebenso auf der Blackhat vorgestellt: https://www.blackhat.com/docs/us-17/wednesday/us-17-Etemadieh-Hacking-Hardware-With-A-$10-SD-Card-Reader-wp.pdf
Abgesehen von den erwähnten SPI- sowie eMMC-Speicher-Chips, kommt ebenso vermehrt gewöhnlicher NAND oder NOR-Speicher zum Einsatz, welcher in dutzenden Gehäuseformaten existiert. Diese sind oft nicht seriell (z.B.: via SPI) sondern parallel angebunden. Sehr gängig sind beispielsweise Speicher im TSOP-48-Gehäuse.
Neben TSOP-Gehäusen setzen erfahrungsgemäß aber immer mehr Hersteller auf parallel angebundene Speicher im BGA-Format, welches wie bereits erwähnt auch bei eMMC-Speicher zum Einsatz kommt. Speicher im bspw. TSOP-Format lassen sich mit einem FTDI FT2232H Breakoutboard, einem passenden TSOP-360-Clip sowie dem dumpflash Tool (https://github.com/ohjeongwook/dumpflash) auslesen. Die mühsame Installation sowie die Anbringung von vielzähligen Kabeln machen dieses Setup allerdings sehr fehleranfällig. Da vor allem bei parallel angebundenen Speichermedien verschiedenste Gehäuseformate zum Einsatz kommen wird für den professionelleren Gebrauch eher ein etablierter Flash-Programmer wie der RT809 inkl. Adapter-Set empfohlen.
Wie man bereits erkennen kann, ist vor allem beim Auslesen von gängigen Speichermedien wie Flashes im BGA-Format etwas Erfahrung notwendig, welche sich zumindest zum aktuellen Zeitpunkt nicht binnen weniger Stunden durch das Internet aneignen lässt. Auch eine gewisse Erfahrung im Heißluft-Löten ist erforderlich um die vorhandenen Komponenten nicht zu zerstören. Brauchen Sie Unterstützung bei der Untersuchung Ihrer Hardware-Komponenten? Schreiben Sie uns gern hierzu an.