Hinweis:

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

Voraussetzungen

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

  1. Erstellen Sie ein Verzeichnis für das Kernel-Modul.

    mkdir ~/secureboot
    cd ~/secureboot
    
  2. 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");
    
  3. 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: und clean: 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.

  1. Installieren Sie das GCC-Toolset.

    sudo yum install gcc-toolset-11
    
  2. Aktivieren Sie das GCC-Toolset.

    scl enable gcc-toolset-11 bash
    

Aufgabe 4: Nicht signiertes Kernel-Modul laden

  1. 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
    
  2. 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

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.