So prüfen Sie die Integrität Ihrer Firmware

Normalerweise wird die Firmware von einem Computerhersteller aufgespielt und anschließend gewartet und aktualisiert. Zumindest, wenn Sie das Glück haben, stolzer Besitzer eines NovaCustom Geräts zu sein. Es ist bemerkenswert, dass viele Computerhersteller nicht mal Firmware-Updates anbieten, oder zumindest eine zugängliche Möglichkeit, diese zu installieren. Das ist besorgniserregend, da die Firmware des Laptops für die allgemeine Sicherheit Ihres Geräts immer wichtiger wird. Aber wie vergewissern Sie sich, dass die Firmware, die Sie verwenden, nicht manipuliert worden ist?

Die kurze und unbefriedigende Antwort lautet: Sie können das nicht tun nach der Installation. Es sei denn, Sie haben die Heads-Firmware-Variante, die integrierte Methoden zur Integritätsprüfung bietet. Um die Integrität der Firmware für die Standard EDK II (TianoCore) Firmware-Version sicherzustellen, müssen Sie die Firmware überschreiben. Und genau das werden wir in diesem Artikel machen.

Es gibt zwei Arten von Firmware im Mainboard des Laptops:

  • BIOS-Firmware
  • EC-Firmware

In diesem Artikel konzentrieren wir uns auf die BIOS-Firmware, da diese Firmware für den Bootvorgang verantwortlich ist und möglicherweise Malware enthalten könnte.

Hinweis: Achten Sie beim Flashen der Firmware immer darauf, dass die BIOS-Firmware-Version mit der EC-Firmware-Version übereinstimmt. Andernfalls kann es sein, dass das Notebook nicht bootet oder Stabilitätsprobleme auftreten.

1. Die Firmware-Binary erstellen

Dasharo Coreboot-Firmware-Builds sind reproduzierbar. Daher wollen wir zuerst die Firmware aus dem Quellcode erstellen. Dazu ist jedoch die docker-Anwendung erforderlich. Es ist einfacher, diese mit apt zu installieren, als den Schritten unter Requirements zu folgen. Öffnen Sie also ein Terminalfenster (Strg + Alt + T) und führen Sie aus:

sudo apt install git docker.io -y

Folgen Sie nun der Dasharo firmware building guide (nur die Schritte unter dem Abschnitt Build Dasharo BIOS firmware). Schritt 1, 2 und 3 sollten entsprechend den Schritten aus diesem Link ausgeführt werden.

Now, please follow the Dasharo firmware building guide (only the steps under the Build Dasharo BIOS firmware section). Step 1, 2 and 3 should be executed according to the steps from that link.

Nachdem Sie die Zeile aus Schritt 4 ausgeführt haben, erhalten Sie einen Berechtigungsfehler. Das liegt daran, dass wir Docker mit apt installiert haben. Führen Sie direkt nach der Fehlermeldung einfach aus:

sudo !!

Dadurch wird der vorherige docker-Befehl mit Root-Rechten ausgeführt, wodurch der Berechtigungsfehler vermieden werden sollte.

Fahren Sie nun mit Schritt 5 und 6 fort, wie in der Build-Anleitung beschrieben.

Wenn die Firmware-Binärdatei erfolgreich erstellt wurde, befindet sie sich im Ordner ~/coreboot/build/coreboot.rom. Bitte beachten Sie, dass der Erstellungsprozess sehr viel Zeit in Anspruch nehmen kann.

Hinweis: Für Heads gibt es eine separate Build-Anleitung. Die Binärdatei befindet sich möglicherweise an einem anderen Ort. Stellen Sie bei weiteren Befehlen sicher, dass Sie den Pfad zur Binärdatei entsprechend ändern.

Fahren Sie nun mit 2 fort: Notieren Sie sich den Hash der Binärdatei.

Fahren Sie nun fort mit: 2. Hash der Binary notieren.

2. Hash der Binary notieren

Da wir jetzt die Firmware-Binärdatei haben, müssen wir sicherstellen, dass sie identifizierbar ist. Das machen wir mithilfe des sha256-Hash-Wertes. Führen Sie Folgendes aus:

sha256sum ~/coreboot/build/coreboot.rom

Die Ausgabe zeigt den Hash und den Dateinamen wie folgt an:

Hinweis: Dies ist nur eine Beispielausgabe.

00b6338389cc5d020b641629971aac6d4047be6134c6e8d0228140edc42584f6  coreboot.rom

Sie können die Firmware auf einem anderen Computer erstellen, der sich in einem anderen Netzwerk befindet, und dann überprüfen, ob der sha256-Hash der gleiche ist.

Und wenn der Hash nicht übereinstimmt?

Wenn der Hash nicht übereinstimmt, bedeutet dies, dass der Quellcode der von Ihnen erstellten Binärdatei nicht mit dem Quellcode der Binärdatei übereinstimmt, die bei dem anderen Erstellungsprozess verwendet wurde. Dies könnte auf eine Manipulation hindeuten, muss es aber nicht. Es kann auch eine Dateibeschädigung sein, die die Veränderung des Hashes verursacht.

Hinweis: Selbst die kleinste Änderung in der Konfiguration führt dazu, dass der Hash anders ausfällt.

Wir haben diese Diskussion begonnen, um das Binary mit dem Binary zu verifizieren, das von den Firmware-Entwicklern erstellt wurde. Derzeit ist dies aufgrund der vboot-Signierung nicht möglich.

Bitte nehmen Sie teil an der Diskussion auf Github!

3. Die Firmware installieren

Es gibt zwei Möglichkeiten, die Firmware des Laptops zu installieren (zu überschreiben):

  1. Durch internes Flashen.
  2. Durch externes Flashen.

Externes Flashen ist die sicherste Methode, erfordert aber einige Tools. Beim internen Flashen könnte man argumentieren, dass der Flashvorgang – theoretisch – von bösartigen Firmware-Teilen gefälscht werden könnte. Dennoch erklären wir Ihnen, wie Sie die Firmware intern flashen können, da einige Benutzer möglicherweise nicht über die nötigen Tools verfügen, um die Firmware extern zu flashen.

Möchten Sie die Anweisungen für internes oder externes Flashen sehen?


Internes Flashen

Kopieren Sie zunächst die Datei coreboot.rom auf einen USB-Stick.

Stellen Sie dann sicher, dass BIOS Boot Lock, SMM BIOS Write Protection und UEFI Secure Boot deaktiviert sind.

Fahren Sie den Laptop zur Dasharo Tools Suite hoch. Sie können DTS sogar aus dem Quellcode erstellen und auf einen anderen USB-Stick flashen, wenn Sie der integrierten iPXE-Boot-Option nicht vertrauen oder wenn Sie Heads verwenden, das kein iPXE-Boot integriert hat.

Sobald DTS hochgefahren ist, werden Sie vom DTS-Hauptmenü gefragt, was zu tun. Wählen Sie Option 9: Drop to shell. Führen Sie dann Folgendes aus:

mkdir /mnt/usb

Stecken Sie nun den USB-Stick ein, der die Datei coreboot.rom enthält. Identifizieren Sie den Stick mit dem folgenden Befehl:

fdisk -l

Mounten Sie die Partition des USB-Sticks in den Ordner, den Sie zuvor erstellt haben, mithilfe des folgenden Befehls.

Bitte beachten Sie, dass wir im folgenden Beispiel /dev/sda1 verwenden. Der Partitionspfad könnte jedoch je nach anderen angeschlossenen Speicherlaufwerken anders lauten. Ersetzen Sie /dev/sda1 durch den Partitionspfad, den Sie mit dem zuvor ausgeführten Befehl fdisk -l ermittelt haben.

mount /dev/sda1 /mnt/usb

Überprüfen Sie nun erneut den sha256-Hash der coreboot.rom-Binärdatei, indem Sie ausführen:

sha256sum /mnt/usb/coreboot.rom

Damit wird nicht nur überprüft, ob die Binärdatei in der Zwischenzeit manipuliert wurde, sondern auch, ob sie während des Kopiervorgangs nicht beschädigt wurde.

Vergewissern Sie sich, dass der Hash der Ausgabe derselbe ist wie der Hash, der in diesem Schritt angezeigt wurde.

Führen Sie nun den Befehl zum Flashen der Binary aus und schalten Sie den Laptop aus, sobald der Flashvorgang abgeschlossen ist. Sie können dies kombiniert mit dem folgenden Befehl tun:

flashrom -p internal --ifd -i bios -w /mnt/usb/coreboot.rom && systemctl poweroff

Der Flash-Vorgang wird gestartet. Dies dauert etwa 3 Minuten. Danach schaltet sich der Laptop aus und die Firmware wurde erfolgreich installiert.

Externes Flashen

Wenn Sie sich nicht auf die Dasharo Tools Suite verlassen möchten oder wenn Sie Angst vor gefälschter Firmware haben, können Sie die Firmware auch extern flashen. Dazu benötigen Sie die folgenden Tools:

  1. Ein CHA341A Firmware-Programmiergerät, das mit der richtigen Spannung flasht. Sie können eins in unserem Shop kaufen.
    – Sie benötigen die EEPROM-Clip-Version für Intel 11th Gen CPU-Boards und niedriger. Sie benötigen die WSON 8×6 Variante für Intel 12th Gen CPU Boards und höher.
  2. Für den Fall, dass Ihr Laptop einen WSON 8×6 Firmware-Chip hat: Eine Klemme, um die Probe an der Stelle des Chips zu halten.
    – Dies ist inbegriffen, wenn Sie in unserem Shop kaufen.
  3. Etwas Schweres für die Klemme, um sicherzustellen, dass die Probe während des Flashvorgangs auf dem WSON 8×6 Chip bleibt. Wir verwenden dafür eine große Zange.
  4. Einen anderen Computer mit GNU/Linux installiert, der über Internetzugang verfügt. Die folgenden Schritte sind für Ubuntu beschrieben.

Laden Sie auf dem anderen Computer flashrom Version v1.3.0 oder höher herunter, erstellen und installieren Sie es. Sie können das machen mithilfe der nächsten Befehle:

sudo apt update
sudo apt upgrade -y
sudo apt remove flashrom -y # Zum Entfernen vorhandener Flashrom-Versionen
sudo apt install git make binutils build-essential ca-certificates libpci-dev libftdi-dev libusb-1.0-0-dev -y
git clone https://github.com/flashrom/flashrom
cd flashrom
make CONFIG_CH341A_SPI=yes
sudo make install

Nach der Installation von Flashrom ist es nun an der Zeit, das untere Gehäuse des Laptops, das Sie flashen wollen, abzuschrauben. Schließen Sie dann das CH341A 3.3V Programmiergerät an den Flashrom-Computer an und verbinden Sie die Probe mit dem SPI-Hauptchip (BIOS-Chip), indem Sie die Klemme und das schwere Teil verwenden. Auf dem Bild weiter unten sehen Sie, wie das aussehen kann. Während des Flashvorgangs ist es wichtig, dass sowohl die CMOS-Batterie als auch der Akku nicht angeschlossen sind.

Starten Sie den Flash-Vorgang mit dem folgenden Befehl:

sudo flashrom -p ch341a_spi --ifd -i bios -w ~/coreboot/build/coreboot.rom

Hinweis: Der obige Befehl geht davon aus, dass sich Ihr coreboot.rom-Binary unter ~/coreboot/build/coreboot.rom befindet. Ersetzen Sie es bei Bedarf durch den richtigen Pfad.

In manchen Fällen fordert flashrom Sie auf, den Chip-Namen anzugeben. In diesem Fall fügen Sie einfach -c DETECTEDCHIP am Ende des flashrom-Befehls hinzu, aber ersetzen Sie DETECTEDCHIP durch den ersten erkannten Chip aus der früheren Ausgabe (zwischen Anführungszeichen). Wenn der Befehl fehlschlägt, können Sie es erneut versuchen, allerdings mit dem zweiten erkannten Chip.

Der Flash-Vorgang beginnt mit der Meldung Reading flash. Der gesamte Flash-Vorgang dauert etwa 10 Minuten, haben Sie also bitte etwas Geduld. Zeit für einen Kaffee! Sobald der Flash-Vorgang abgeschlossen ist, steht in der Ausgabe VERIFIED.

Sobald der Flash-Vorgang abgeschlossen ist, können Sie die Probe und das Programmiergerät entfernen. Stellen Sie danach sicher, dass Sie die CMOS-Batterie und den Akku wieder anschließen. Sie können nun das untere Gehäuse wieder aufsetzen und den Laptop einschalten.

Hinweis: Der erste Systemstart kann bis zu zwei Minuten dauern.

Hinweis: Das Flashen der Firmware setzt auch die Einstellungen der UEFI-Firmware auf die Standardeinstellungen zurück. Für die meisten Anwendungsfälle empfehlen wir, die Intel Management Engine (ME) nach dem Flashen zu deaktivieren. Sie wollen vielleicht auch andere Dasharo Systemfunktionen überprüfen, um Sicherheitsfunktionen zu aktivieren, die möglicherweise standardmäßig nicht aktiviert sind.

Über den Autor: Wessel Klein Snakenborg ist seit seiner Kindheit technikbegeistert. 2015 gründete er das Unternehmen NovaCustom, das maßgeschneiderte Laptops mit Blick auf Datenschutz und Sicherheit herstellt. Mit dem Fokus auf Benutzerfreundlichkeit definiert NovaCustom das Notebook-Erlebnis neu, angeführt von Wessels Engagement für Innovation und Zusammenarbeit.

Kommentare nur auf Englisch bitte.

Ihren Warenkorb teilen