Nota

Verifica la funzione di avvio sicuro nelle istanze schermate di OCI Compute

Introduzione

L'avvio sicuro è una funzioneUEFI (Unified Extensible Firmware Interface) che impedisce di avviare loader e sistemi operativi di avvio non autorizzati Avvio sicuro verifica che la firma del firmware firmato sia corretta prima dell'avvio per impedire l'esecuzione di rootkit, bootkit e software non autorizzato prima del caricamento del sistema operativo. I componenti di boot non firmati correttamente non possono essere eseguiti, impedendo il boot del sistema. Questa esercitazione descrive i task necessari per verificare la funzione di avvio sicuro nelle istanze schermate di computazione OCI (Oracle Cloud Infrastructure).

Obiettivi

Prerequisiti

Task 1: verificare lo stato di avvio sicuro nell'istanza schermata

Eseguire il comando riportato di seguito per controllare lo stato di boot sicuro.

sudo mokutil --sb-state

È possibile vedere che il boot sicuro è abilitato.

SecureBoot enabled

Task 2: Impostazione dell'ambiente nell'istanza schermata

  1. Creare una directory per il modulo kernel.

    mkdir ~/secureboot
    cd ~/secureboot
    
  2. Creare il file di origine del modulo kernel denominato unauthorised_module.c con il seguente contenuto.

    #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. Creare un Makefile denominato Makefile con il seguente contenuto.

    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
    

    Nota: assicurarsi che le righe sotto all: e clean: siano rientrate con una tabulazione e non con spazi.

Task 3: Creare il modulo kernel

Eseguire il comando seguente per installare il set di strumenti GCC.

make

Questa operazione compila il file unauthorised_module.c e produce unauthorised_module.ko.

(Facoltativo) Gestire i problemi di compatibilità del compilatore:

Se si verificano errori di mancata corrispondenza della versione di GCC Toolset, attenersi alla procedura riportata di seguito per risolvere il problema.

  1. Installare il set di strumenti GCC.

    sudo yum install gcc-toolset-11
    
  2. Abilitare il set di strumenti GCC.

    scl enable gcc-toolset-11 bash
    

Task 4: caricare il modulo kernel non firmato

  1. Eseguire il comando seguente per caricare il modulo kernel.

    sudo insmod unauthorised_module.ko
    

    Se il boot sicuro è abilitato e funziona correttamente, si dovrebbe verificare l'errore seguente.

    insmod: ERROR: could not insert module test_module.ko: Key was rejected by service
    
  2. Controllare i messaggi kernel per l'applicazione sicura del boot.

    (dmesg -T | grep -i "secure boot"; dmesg -T | tail -5) | less
    

    Cercare i messaggi che indicano che il boot sicuro ha impedito il caricamento del modulo.

    [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
    

Passi successivi

In questa esercitazione è stata verificata correttamente la funzionalità del boot sicuro sull'istanza schermata di Oracle Linux tentando di caricare un modulo kernel non firmato e osservando la risposta del sistema. Ciò conferma che l'avvio sicuro è attivo e funziona come previsto, migliorando la sicurezza dell'ambiente cloud. Il vantaggio dell'avvio sicuro è che garantisce che durante il processo di avvio vengano caricati solo software affidabili e firmati, proteggendo l'istanza da codice dannoso o non autorizzato e mantenendo così l'integrità del sistema.

Nella prossima esercitazione di questa serie, esploreremo ulteriori funzioni di sicurezza e metodi di test per le istanze OCI.

conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.