Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte nach Abschluss der Übung durch Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Sicheres Bootfeature auf geschützten OCI Compute-Instanzen prüfen
Einführung
Der sichere Start ist ein Unified Extensible Firmware Interface-(UEFI-)Feature, das verhindert, dass nicht autorisierte Bootloader oder Betriebssysteme gestartet werden. Der sichere Start validiert, dass die Signatur der signierten Firmware vor dem Booten korrekt ist, um zu verhindern, dass Rootkits, Bootkits und nicht autorisierte Software ausgeführt werden, bevor das Betriebssystem geladen wird. Boot-Komponenten, die nicht ordnungsgemäß signiert sind, dürfen nicht ausgeführt werden, sodass das System nicht gebootet werden kann. In diesem Tutorial werden Sie durch die Aufgaben geführt, mit denen Sie das Feature für den sicheren Start auf abgeschirmten Oracle Cloud Infrastructure-(OCI-)Compute-Instanzen prüfen können.
Ziele
-
Prüfen Sie den Status des sicheren Starts auf einer abgeschirmten OCI Compute-Instanz.
-
Erstellen und versuchen Sie, ein nicht signiertes Kernel-Modul zu laden.
-
Erfahren Sie, wie der sichere Start die Einschränkung für nicht signierte Module durchsetzt.
Voraussetzungen
-
Ein OCI-Account mit Berechtigungen zum Erstellen und Verwalten von Instanzen.
-
Grundlegende Kenntnisse der Oracle Linux-Befehle und Kernel-Module.
-
Abgeschirmte OCI Compute-Instanzen mit Oracle Linux 8. Informationen zum Erstellen einer abgeschirmten Instanz und zum Anzeigen der unterstützten Ausprägungen und Plattformimages zum Aktivieren abgeschirmter Instanzen finden Sie unter Abgeschirmte Instanzen.
Aufgabe 1: Prüfen des sicheren Boot-Status in der abgeschirmten Instanz
Führen Sie den folgenden Befehl aus, um den sicheren Boot-Status zu prüfen.
sudo mokutil --sb-state
Sie können sehen, dass der sichere Start aktiviert ist.
SecureBoot enabled
Aufgabe 2: Umgebung in der abgeschirmten Instanz einrichten
-
Erstellen Sie ein Verzeichnis für das Kernel-Modul.
mkdir ~/secureboot cd ~/secureboot
-
Erstellen Sie die Quelldatei des Kernel-Moduls mit dem Namen
unauthorised_module.c
mit dem folgenden Inhalt.#include <linux/module.h> #include <linux/kernel.h> static int __init unauthorised_module_init(void) { printk(KERN_INFO "Unauthorised module loaded\n"); return 0; } static void __exit unauthorised_module_exit(void) { printk(KERN_INFO "Unauthorised module unloaded\n"); } module_init(unauthorised_module_init); module_exit(unauthorised_module_exit); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Unauthorised module"); MODULE_AUTHOR("Vishak");
-
Erstellen Sie eine Makefile namens
Makefile
mit dem folgenden Inhalt.obj-m += unauthorised_module.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Hinweis: Stellen Sie sicher, dass die Zeilen unter
all:
undclean:
mit einer Registerkarte und nicht mit Leerzeichen eingerückt sind.
Aufgabe 3: Kernel-Modul erstellen
Führen Sie den folgenden Befehl aus, um das GCC-Toolset zu installieren.
make
Dadurch wird die Datei unauthorised_module.c
kompiliert und unauthorised_module.ko
erzeugt.
(Optional) Compiler-Kompatibilitätsprobleme beheben:
Wenn Fehler bei GCC Toolset-Versionen auftreten, die nicht übereinstimmen, führen Sie die folgenden Schritte aus, um das Problem zu beheben.
-
Installieren Sie das GCC-Toolset.
sudo yum install gcc-toolset-11
-
Aktivieren Sie das GCC-Toolset.
scl enable gcc-toolset-11 bash
Aufgabe 4: Nicht signiertes Kernel-Modul laden
-
Führen Sie den folgenden Befehl aus, um das Kernel-Modul zu laden.
sudo insmod unauthorised_module.ko
Wenn der sichere Start aktiviert ist und ordnungsgemäß funktioniert, sollte der folgende Fehler angezeigt werden.
insmod: ERROR: could not insert module test_module.ko: Key was rejected by service
-
Prüfen Sie die Kernel-Meldungen auf die sichere Boot-Durchsetzung.
(dmesg -T | grep -i "secure boot"; dmesg -T | tail -5) | less
Suchen Sie nach Meldungen, die darauf hinweisen, dass der sichere Start das Laden des Moduls verhindert hat.
[Wed Jul 10 14:00:41 2024] secureboot: Secure boot enabled [Wed Jul 10 14:00:41 2024] Kernel is locked down from EFI Secure Boot mode; see man kernel_lockdown.7 [Wed Jul 24 14:34:51 2024] Loading of unsigned module is rejected
Nächste Schritte
In diesem Tutorial haben wir die Funktionalität des sicheren Starts auf Ihrer abgeschirmten Oracle Linux-Instanz erfolgreich überprüft, indem wir versuchen, ein nicht signiertes Kernel-Modul zu laden und die Systemantwort zu beobachten. Dadurch wird bestätigt, dass der sichere Start aktiv ist und wie erwartet funktioniert, was die Sicherheit Ihrer Cloud-Umgebung erhöht. Der Vorteil des sicheren Bootens besteht darin, dass beim Booten nur vertrauenswürdige und signierte Software geladen wird. Dadurch wird Ihre Instanz vor böswilligem oder nicht autorisiertem Code geschützt und die Integrität Ihres Systems gewahrt.
Im nächsten Tutorial dieser Serie werden wir zusätzliche Sicherheitsfeatures und Testmethoden für OCI-Instanzen untersuchen.
Danksagungen
- Autor - Vishak Chittuvalapil (Senior Cloud Engineer)
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Verify Secure Boot Feature on OCI Compute Shielded Instances
G12339-01
August 2024