Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
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
-
Verificare lo stato dell'avvio sicuro su un'istanza schermata di OCI Compute.
-
Creare e tentare di caricare un modulo kernel non firmato.
-
Comprendere come il metodo boot sicuro applica le limitazioni ai moduli non firmati.
Prerequisiti
-
Account OCI con le autorizzazioni per creare e gestire le istanze.
-
Conoscenza di base dei comandi e dei moduli kernel di Oracle Linux.
-
Istanze schermate di OCI Compute che eseguono Oracle Linux 8. Per creare un'istanza schermata e visualizzare le forme e le immagini della piattaforma supportate per abilitare le istanze schermate, vedere Istanze schermate.
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
-
Creare una directory per il modulo kernel.
mkdir ~/secureboot cd ~/secureboot
-
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");
-
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:
eclean:
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.
-
Installare il set di strumenti GCC.
sudo yum install gcc-toolset-11
-
Abilitare il set di strumenti GCC.
scl enable gcc-toolset-11 bash
Task 4: caricare il modulo kernel non firmato
-
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
-
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
- Autore - Vishak Chittuvalapil (Senior Cloud Engineer)
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.
Verify Secure Boot Feature on OCI Compute Shielded Instances
G12343-01
August 2024