- Es verbreitete sich die Behauptung, ein in China gekaufter Ethernet-to-USB-Adapter enthalte Malware; die bestätigten Hinweise passten jedoch eher zur Treiber-Verteilungsmethode eines älteren RJ45-to-USB-Chips
- Die „russischen Elemente“ im Scan von CrowdStrike Falcon passten zu den Eigenschaften einer selbstentpackenden 7-Zip-EXE von Igor Pavlov, und auch der Dateiinhalt schien mit dem öffentlich verfügbaren Treiber für den SR9900 von CoreChips Shenzhen übereinzustimmen
- Der SR9900 ist ein Chip, zu dem es kaum Informationen gibt, wirkt aber wie ein direkter Klon des Realtek RTL8152B; das passt zum Kontext rund um Windows 7, als USB-2.0- und 100BASE-TX-Geräte ihre Treiber über eigenen Speicher bereitstellten
- Der 25x40-512-kB-SPI-Flash auf der Platine erwies sich nicht als Speicher für abgegriffene Pakete, sondern als Konfiguration, bei der ein Produktionstool ein ISO-9660-Image samt Windows-Treiber unverändert schreibt und es wie ein virtuelles CD-ROM nutzt
- Der Code der internen USB- und Ethernet-Mikrocontroller des SR9900 bleibt ein ungeklärter Bereich, doch allein dieser Fall liefert zu wenig Grundlage, um „seltsame Hardware“ sofort als bösartig einzustufen
Ausgangspunkt des Verdachts auf bösartige Supply-Chain-Hardware
- Ausgangspunkt ist die Annahme, dass Behauptungen über groß angelegte Supply-Chain-Sabotage im Bereich der Informationssicherheit häufig auftauchen, in der Praxis aber meist falsch sind
- Nicht, weil solche Angriffe unmöglich wären, sondern weil ihre Umsetzung komplex, langwierig und riskant ist
- Realistischer sind einfachere Methoden, etwa Zugangsdaten zu stehlen oder Nutzer zum Herunterladen schädlicher Dateien zu bringen
- Die Kontroverse wuchs, nachdem ein junger Gründer in sozialen Medien behauptete, ein in China gekaufter Ethernet-to-USB-Adapter sei ab Werk mit Malware bestückt gewesen
- Die Behauptung enthielt Formulierungen wie Umgehung virtueller Maschinen, Mitschnitt von Tastatureingaben und Nutzung russischer Elemente
- Die entsprechenden Beiträge erreichten Millionen Aufrufe, konkrete technische Informationen blieben jedoch unklar
Öffentlicher Scan und Prüfung der Treiberdateien
- Der vom Poster geteilte Scanbericht von CrowdStrike Falcon war uneindeutig und eher ein irreführender Hinweis als ein entscheidender Beleg
- Das analysierte Binary war eine selbstentpackende EXE auf Basis des Open-Source-Komprimierungsprogramms 7-Zip von Igor Pavlov
- Die russischen Elemente lassen sich als Spuren der Herkunft des Autors verstehen
- Dass es sich um ein selbstentpackendes Archiv zur Treiberinstallation handelt, erklärt die meisten Verhaltensweisen, die verdächtig wirkten
- Der Inhalt des Archivs schien mit dem signierten öffentlichen Treiber 2.0.7.0 für einen RJ45-to-USB-Chip von CoreChips Shenzhen übereinzustimmen
- In der mitgelieferten
.inf-Datei verwendet das Unternehmen auch den Namen Corechip Semiconductor
- In der mitgelieferten
SR9900-Chip und Kontext älterer Designs
- Der Treiber verweist auf einen Chip namens SR9900
- Öffentliche Informationen zum Chip und Hersteller sind kaum vorhanden
- Die Untersuchung ergab, dass der SR9900 wie ein direkter Klon des Realtek RTL8152B wirkte
- In englischen Produktbeschreibungen wird angedeutet, dass „SR“ für „Supereal“ steht; der Markenname Supereal taucht auch im Kontext gefälschter FTDI-FT232RL-Chips auf, die der Branche früher Probleme bereiteten
- Diese Abstammung ist wichtig, weil das ursprüngliche Realtek-Design auf einem alten Design nach einem Datenblatt von 2013 basiert
- Das Gerät unterstützt 100BASE-TX und USB 2.0
- Es passt zu den Peripherie-Gepflogenheiten der Windows-7-Ära
- Damals verschwanden CD-ROM-Laufwerke zwar allmählich, aber man konnte auch nicht voraussetzen, dass jeder Computer immer online war
- Dass manche Peripheriegeräte sich als Massenspeichergerät mit eigenen Treibern präsentierten, war im Kontext jener Zeit naheliegend
- Aus Sicherheitssicht war das auch nicht eindeutig besser oder schlechter als andere provisorische Methoden zur Bereitstellung von Treiberdateien
Tatsächlicher Zweck des SPI-Flash
- Fotos der Zerlegung zeigten eine einfache Platine mit einem 25x40-seriellen Flash-IC neben dem SR9900
- Die zentrale Frage war, ob der 512-kB-Flash für Firmware oder als Speicher für abgegriffene Pakete gedacht war
- Die Dokumente zu SR9900 und RTL8152B erklärten den Zweck eines begleitenden Flash-ICs nicht ausreichend, und auch die Bildersuche nach Schaltplänen fand kein Design, bei dem etwas mit den seriellen Pins des ursprünglichen Realtek-Chips verbunden war
- Der SPI-Bus selbst ist einfach
- Der Host liefert das Taktsignal mit der gewünschten Geschwindigkeit
- Bei jeder steigenden Taktflanke liest das Peripheriegerät 1 Bit von „serial in“, und der Host liest 1 Bit von „serial out“
- Es gibt kein Handshaking, keine Header, keine Paritätsbits und keine Flusskontrolle
- Ein typischer Lesevorgang bei seriellem Flash sendet den READ-Befehl 0x03 und eine 3-Byte-Adresse und empfängt danach fortlaufend Daten
- Dadurch war es auch möglich, einen echten Dongle zu kaufen und den Speicherinhalt auszulesen
- Nach dem Auffinden des chinesischen Originals auf der CoreChips-Website und weiterer Suche fand sich ein alter chinesischer Forenbeitrag samt Passwort und kostenpflichtigem Download-Archiv zum „SR9900 series chip Windows system mass production tool“
- „SR9900(A)设计资料1018.rar“ wurde für 2,99 US-Dollar heruntergeladen und geprüft
- Das Archiv enthielt das Produktionstool SR9900Efuse mit Retro-UI
- Ein mitgeliefertes ISO-9660-Dateisystem-Image mit 168 kB enthielt einen selbstentpackenden Windows-Treiber
- Das Produktionstool schreibt die
.iso-Datei unverändert in den SPI-Flash - Der Chip verhält sich wie ein „softwaredefiniertes“ CD-ROM als Ersatz für ein physisches CD-ROM
- Das Disk-Image kann hier heruntergeladen werden; das Passwort lautet
rj45
- Das Produktionstool schreibt die
- Das CD-ROM-Image wurde mit „ULTRAISO V9.3 CD & DVD CREATOR, (C) EZB SYSTEMS“ erstellt
- UltraISO wird als Tool mit Windows-XP-Anmutung beschrieben
- Als Voraussetzung wird ein Intel Pentium mit mindestens 166 MHz genannt
Optionale virtuelle CD-ROM-Funktion und verbleibende Grenzen
- Im Hauptarchiv befand sich auch das Dokument „SR9900(A)设计前必看.docx“
- Laut maschinell übersetzter Formulierung kann SPI beim Einsatz des SR9900 als USB-Netzwerkkarte als virtuelles optisches Laufwerk für die Installation des Windows-Treibers genutzt werden
- Der SR9900-Treiber für Windows kann vorab in den SPI-Flash geschrieben werden
- Die Nutzung des Flash-Chips wird ausdrücklich als optional bezeichnet
- Die Auffälligkeit in diesem Fall lässt sich nicht auf bösartiges Verhalten zurückführen, sondern auf eine alte Methode zur Verteilung von Peripherietreibern
- Auch ohne Hardwarelabor ließen sich die zentralen Fragen allein durch Recherche in öffentlichen Quellen und Geduld klären
- Nicht vollständig überprüft sind die beiden kleinen Mikrocontroller-Kerne im SR9900-IC
- Im Inneren gibt es USB- und Ethernet-Kerne, die jeweils internen Code ausführen
- Wenn man annimmt, dass der Chiphersteller beteiligt ist, könnte ein Blick ins Innere möglich sein
- Realtek stellt einen Open-Source-Linux-Treiber für den RTL8152 bereit; dieser Treiber patcht Firmware im Speicher
- Auf den ersten Blick wirkte es nicht so, als wären Verschlüsselung oder Signaturen eingesetzt worden
- Die Möglichkeit eines bösartigen USB-Dongles lässt sich nicht vollständig ausschließen
- Es fällt die Formulierung, dass ein Wissenschaftler im iranischen Nuklearprogramm Anlass zur Sorge hätte
- Als CISO eines strategisch wichtigen Privatunternehmens wäre ein gewisses Maß an Vorsicht angebracht
- Für Heimnetzwerke liefert dieser Fall allein zu wenig Grundlage, um von einer unmittelbaren Bedrohung auszugehen
1 Kommentare
Meinungen auf Hacker News
Diese Formulierung ist missverständlich. Das Problem war weniger der gefälschte Chip selbst, sondern dass der offizielle FTDI-Treiber beim Erkennen einer Fälschung die PID der gerade betriebenen Hardware auf 0000 änderte, sodass sie nicht mehr erkannt wurde: http://www.rei-labs.net/changing-ftdi-pid/
Bei der Formulierung „Intel Pentium 166 MHz oder höher erforderlich“ musste ich lachen. Der Artikel ist unterhaltsam, und ich mag dieses Genre sehr: „Ein kluger Mensch langweilt sich und verfolgt eine eigentlich naheliegende Schlussfolgerung bis zum Ende, wobei der Nachweis überraschend viel Kreativität und Ausdauer erfordert.“
Um den Inhalt des Speicherchips zu dumpen, war ich bereit, ins Dark Web (amazon.com) zu gehen und einen Dongle zu kaufenEs ist auch bequemer zu sagen, man sei Opfer und habe eine Verschwörung aufgedeckt, als zu akzeptieren, dass dies nur ein in der Technik häufiges zusammengestückeltes Ergebnis war. Applaus für den Autor
Das heißt nicht, dass chinesische Spyware kein Problem wäre. Aber wenn man nicht die grundlegende technische Kompetenz hat, das zu beurteilen, sollte man nicht „China! China! China!“ rufend herumrennen. Genau so greifen Politiker Fake News auf und benutzen sie als Vorwand für dumme Politik, und das schadet der Gesellschaft
Als ich den Tweet über diesen „bösartigen“ Dongle sah, erkannte ich sofort, dass es genau dasselbe Teil war, an dem ich früher gearbeitet hatte. Es ist weniger bösartig als einfach nur lästig.
https://blog.brixit.nl/making-a-usb-ethernet-adapter-work-sr...
In meinem Fall habe ich das SPI-Flash-Modul deaktiviert, damit es nicht als CD-Laufwerk erscheint; der Autor dieses Artikels hat sogar Dokumentation gefunden, nach der SPI optional ist. Interessanterweise stellt dieser Artikel nun sogar ein Tool bereit, mit dem man es neu flashen und daraus einen echten bösartigen RJ45-Dongle machen kann
Es sieht so aus, als hätte man einen Dioden-Footprint für ein 3-poliges SOT23-Gehäuse vorgesehen und, weil das Spezialbauteil nicht auf Lager war, eine SOD323-Diode um etwa 30 Grad schräg zwischen zwei Pins gelötet
Wenn es eine unbeabsichtigte Folge ist, war es von Anfang an höchstens Security through obscurity, und es ist richtig, dass es ans Licht kommt, damit sich niemand darauf verlässt
autorun.infhinzufügen?Ich mag die Methode ziemlich, bei der sich ein USB-Gerät als Massenspeicher ausgibt und seinen eigenen Treiber bereitstellt. Die heutige „richtige“ Methode wäre wohl, allerlei Dinge auf Microsoft-Server hochzuladen und beim Einstecken das Nötige herunterladen zu lassen; aber ich habe genug Geräte erlebt, bei denen man Treiber manuell installieren musste, um zu wissen, dass das nicht so einfach ist, wie es aussieht. Zum Beispiel muss ich sehr häufig herstellerspezifische ADB-Treiber herunterladen.
Jedenfalls ist es ein cleverer Ansatz, wenn ein Peripheriegerät bei der Ersteinrichtung hilft, und wenn der Treiber im Gerät steckt, ist das etwas einfacher, als nach der offiziellen Downloadquelle zu suchen
Mehrere Betriebsmodi haben es jedoch erschwert, Geräte wie 4G/LTE-USB-Dongles einzurichten. Sie erscheinen als USB-Massenspeicher, als irgendeine Art serielles Gerät oder als etwas Ähnliches wie ein CDC-ACM-Modemgerät, und um sie in den richtigen Modus zu versetzen, braucht man eine Kombination aus Tools und herstellerspezifischen AT-Befehlen. Ich möchte zurück zu einfachen Geräten, die man nur einsteckt und die dann sofort ihre Aufgabe erfüllen
Ich weiß nicht, was derzeit Stand der Technik ist, aber lange Zeit war es üblich, USB-Peripherie-ICs mit einem kleinen Flash zu versehen, um VID/PID und andere USB-Konfigurationsdaten zu speichern. So konnte das Gerät beim Einstecken korrekt enumeriert und dem richtigen Treiber zugeordnet werden. Je nach Designzeitpunkt war die kleinste in der Lieferkette leicht verfügbare Kapazität vielleicht 512 kB, sodass es nicht ungewöhnlich war, so einen Chip zu verwenden, nur um ein paar Dutzend Bytes zu speichern.
Der ISO-Teil ist etwas seltsam, aber ehrlich gesagt eine kreative Methode, um IT-Sicherheitsrichtlinien in Unternehmen zu umgehen, die USB-Massenspeicher einschränken. Optische Laufwerke verwenden eine andere Geräteklasse und könnten die meisten Einschränkungen umgehen; wenn sie als Composite Device aus optischem Laufwerk und Netzwerkadapter enumeriert werden, könnte man wohl auch auf einem Computer mit gesperrten „USB-Laufwerken“ den eigenen Treiber installieren
Merkwürdig ist, dass man mit dem zusätzlichen Flash Kosten in Kauf nimmt, aber die magnetische Isolation weglässt. Es gibt nur Serienkondensatoren, die Buchse ist zu klein, als dass integrierte Magnetics darin zu stecken scheinen, und zusätzlich Serienkondensatoren einzubauen ergibt auch keinen Sinn
Ich wäre wirklich sauer, wenn ich herausfände, dass mein gekaufter USB-Ethernet-Dongle keine magnetische Isolation hat
Ob es „bösartige“ USB-Ethernet-Dongles gibt? Natürlich. Nur ist dieses Ding hier keiner.
https://hak5.org/products/lan-turtle
Aus Sicht eines RJ45-Puristen müsste man das 8P8C nennen. Ich bin dann mal raus.
Ich habe zum Beispiel schon „RJ45-Dongles“ gesehen, die für die Konsolenports vieler Netzwerkgeräte USB auf serielle RS232-Verbindungen umsetzen.
Wer bei USB-1000BASE-T und heutzutage generell bei 2.5GBaseT-Dongles auf Performance achtet, sollte den Unterschied zwischen einem USB-Gerät und einem PCI-Express-Gerät kennen.
Nach dem Hot-Plug an einem Notebook mit aktuellem Linux-Kernel kann man einfach nachsehen, ob es unter
sudo lsusb -voder untersudo lspci -vauftaucht.Native PCIe-Geräte liefern deutlich bessere Performance, schaffen bis hinauf zur Leitungsrate von 2.5GBASE-T und kommunizieren über eine Thunderbolt-Implementierung über USB mit dem Host. Reine USB-Geräte können ebenfalls ordentlich funktionieren, aber der niedrige Preis hat seinen Grund. Natürlich kann es bei günstigen Notebooks auch sein, dass es gar keine Thunderbolt-Implementierung gibt; das muss man ebenfalls berücksichtigen.
Im Grunde ist es trotzdem ein Dongle, und auf dem Mac erreiche ich mit iperf3 9,4 Gbit/s. Natürlich wird er als PCIe-Gerät angezeigt.
[1] https://www.amazon.com/gp/product/B0DHSWSSBY
Wenn man nur einen USB-Port hat und auf Performance achtet, dürfte der größere Unterschied sein, ob das USB-Ethernet-Gerät CDC-NCM implementiert oder nur CDC-ECM. CDC-ECM schickt Frames einzeln an den Treiber, der sie jeweils einzeln bestätigen und verarbeiten muss, was viel CPU-Arbeit erzeugt; das neuere CDC-NCM bündelt Frames dagegen.
Auf meinem Notebook erreicht selbst ein 1-Gbit-ECM-Dongle Gigabit-Geschwindigkeit, belegt dabei aber einen CPU-Kern zu 100 %, während ein 1-Gbit-NCM-Dongle kaum CPU-Last erzeugt.
Über einen Ethernet-Port eine schädliche Verbindung herzustellen, ist extrem schwierig; über einen USB-Port ist es sehr einfach. Man sollte es so nennen, wie es ist: Das ist ein bösartiger USB-Dongle mit zusätzlicher Ethernet-Buchse.