ASUS aktualisiert das BIOS/UEFI über ein unsicheres Netz und warum das schlecht ist

ASUS aktualisiert das BIOS/UEFI auf Computern über unsichere Verbindungen via HTTP.

In diesem Blogeintrag will ich aufzeigen, warum das katastrophal ist. Aber dafür muss man erst die Begriffe verstehen.

BIOS/UEFI

Das UEFI (oder früher BIOS) ist die zentrale Schnittstelle auf dem Computer, die die einzelnen Komponenten verbindet und steuert. Über das UEFI kann man zum Beispiel die Rotationen der Lüfter einstellen, Festplatten hinzu- oder abschalten, den Prozessor übertakten und wenn man etwas falsch macht mal die eben die Hardware schrotten.
Es läuft unter dem Betriebssystem, lässt sich also „von oben“ nicht kontrollieren. Jegliche Antivirenschutzprogramme, Firewalls oder was auch immer die Securityindustrie einem verkauft läuft auf Betriebssystemebene, demnach kann das UEFI nicht kontrolliert werden und hebelt ebenfalls die Firewalls etc. aus.
Das allein wäre schon schlimm genug, aber moderne UEFIs besitzen die Möglichkeit, selber ins Internet gehen zu können, um sich beispielsweise selber zu updaten.
Man hat also ein eigenes Betriebssystem laufen, dass man nicht kontrollieren kann, aber das die Möglichkeit besitzt jegliche Aktionen deines Windows oder Macs aktiv auszuspionieren und diese Daten selbstständig ins Internet zu versenden. Oder um es kurz zu fassen, du willst deinem UEFI vertrauen können.

Sicherheit von HTTP

HTTP ist die Abkürzung von „Hypertext Transfer Protocol“ und ist der Standard, wodurch Webseiten aus dem Internet abgerufen werden. Jeder Webbrowser und jeder Webserver spricht HTTP.
HTTP an sich ist allerdings unverschlüsselt. Das bedeutet, dass die Daten wie z.B. die Webseiten, die Bilder und Programme, alle im Klartext über das Internet übertragen werden.
Jeder, der sich dazwischen hängt, kann also alles mitlesen, was du über deinen Webbrowser herunterlädst. Dafür muss man keine Ressourcen wie die NSA haben, die das halbe (gesamte) Internet mitschneiden. Es gibt viele Szenarien, wo man anfällig für einen solchen „Man In The Middle“-Angriff (MITM) wird. Eins der beliebtesten Möglichkeiten solch einen MITM-Angriff zu fahren ist ein unsicheres oder offenes W-Lan zu benutzen, wie einen kostenlosen Hotspot. Ein anderer guter Ansatz ist ein kompromittiertes UEFI, da es direkten Zugriff auf die Netzwerkkarte vor dem Betriebssystem hat.
Solch ein Man-In-The-Middle kann allerdings nicht nur das lesen, was über die Leitung geht, sondern die Daten auch verändern, wenn es keine Überprüfung gibt. Beispielsweise kann ein MITM in Webseiten nervige Werbung einfügen, oder noch schlimmer, Programme durch Schadsoftware ersetzen.
Daher niemals Programme über unsicheres HTTP downloaden und ausführen.

Die Lösung

Natürlich gibt es dafür eine Lösung, und die nennt sich HTTPS, das unscheinbare S am Ende steht für Secure.
HTTPS löst das Problem mit HTTP. Der Verkehr über das Internet wird dadurch verschlüsselt. Durch einige Tricks wird sichergestellt, dass man am Ende auch wirklich die Daten der Webseite so erhält, wie sie abgeschickt wurden. Zumindest solange, wie es keinen Vorfall wie Superfish gibt.
Man erkennt sichere Webseiten im Browser an dem roten oder grünen Schloss oben neben der URL-Bar. HTTP ist by default rot, HTTPS grün.

Zurück zu ASUS

ASUS liefert also Updates für ein zentrales, opakes, unkontrollierbares, bestriebssystemähnliches Programm aus, welches direkten Zugriff auf die Hardware deines Computers hat und diese Aktualisierung geht über eine unsichere Verbindung, die es trivial macht, jemandem Schadcode unterzujubeln.
Dass der Updatecode auch noch als Administrator ausgeführt wird, macht das alles nur noch schlimmer.

Die Lösung ist einfach. Encrypt by default, erst Recht bei so kritischen Komponenten wie ein Update des UEFIs. Die Webbrowserhersteller sind auf dem richtigen Weg und kennzeichnen unsicheres HTTP durch ein roten Schloss. Auch Projekte wie Let’s Encrypt machen es einfacher, das Web verschlüsselt zu halten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

seven + two =