Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Vérifier la fonction de démarrage sécurisé sur les instances dotées d'une protection maximale pour le service de calcul d'OCI
Présentation
Le démarrage sécurisé est une fonction de l'interface UEFI (Unified Extensible Firmware Interface) qui empêche les programmes de démarrage et les systèmes d'exploitation non autorisés de démarrer. Le démarrage sécurisé vérifie que la signature du micrologiciel signé est correcte avant le démarrage afin d'empêcher l'exécution de programmes malveillants racines, de trousses de démarrage et de logiciels non autorisés avant le chargement du système d'exploitation. Les composants de démarrage qui ne sont pas correctement signés ne sont pas autorisés à s'exécuter, ce qui empêche le système de démarrer. Ce tutoriel vous guidera tout au long des tâches permettant de vérifier la fonction de démarrage sécurisé sur les instances dotées d'une protection maximale pour le service de calcul d'Oracle Cloud Infrastructure (OCI).
Objectifs
-
Vérifiez le statut du démarrage sécurisé sur une instance dotée d'une protection maximale du service de calcul pour OCI.
-
Créez et tentez de charger un module de noyau non signé.
-
Découvrez comment le démarrage sécurisé applique la restriction aux modules non signés.
Préalables
-
Un compte OCI autorisé à créer et à gérer des instances.
-
Connaissance de base des commandes et des modules de noyau Oracle Linux.
-
Instances dotées d'une protection maximale pour le service de calcul d'OCI exécutant Oracle Linux 8. Pour créer une instance dotée d'une protection maximale et voir les formes et images de plate-forme prises en charge pour activer les instances dotées d'une protection maximale, voir Instances dotées d'une protection maximale.
Tâche 1 : Vérifier le statut de démarrage sécurisé dans l'instance dotée d'une protection maximale
Exécutez la commande suivante pour vérifier le statut de démarrage sécurisé.
sudo mokutil --sb-state
Vous pouvez voir que le démarrage sécurisé est activé.
SecureBoot enabled
Tâche 2 : Configurer l'environnement dans l'instance dotée d'une protection maximale
-
Créez un répertoire pour le module de noyau.
mkdir ~/secureboot cd ~/secureboot
-
Créez le fichier source du module de noyau nommé
unauthorised_module.c
avec le contenu suivant.#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");
-
Créez un fichier Makefile nommé
Makefile
avec le contenu suivant.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
Note : Assurez-vous que les lignes sous
all:
etclean:
sont indentées par un onglet et non par des espaces.
Tâche 3 : Créer le module de noyau
Exécutez la commande suivante pour installer le jeu d'outils GCC.
make
Cela compile le fichier unauthorised_module.c
et produit unauthorised_module.ko
.
(Facultatif) Gérer les problèmes de compatibilité du compilateur :
Si vous rencontrez des erreurs de non-concordance de version de jeu d'outils GCC, procédez comme suit pour résoudre le problème.
-
Installez l'ensemble d'outils GCC.
sudo yum install gcc-toolset-11
-
Activez l'ensemble d'outils GCC.
scl enable gcc-toolset-11 bash
Tâche 4 : Charger le module de noyau non signé
-
Exécutez la commande suivante pour charger le module de noyau.
sudo insmod unauthorised_module.ko
Si le démarrage sécurisé est activé et fonctionne correctement, vous devriez voir l'erreur suivante.
insmod: ERROR: could not insert module test_module.ko: Key was rejected by service
-
Vérifiez les messages du noyau pour l'application sécurisée du démarrage.
(dmesg -T | grep -i "secure boot"; dmesg -T | tail -5) | less
Recherchez des messages indiquant que le démarrage sécurisé a empêché le module de charger.
[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
Étapes suivantes
Dans ce tutoriel, nous avons vérifié la fonctionnalité de démarrage sécurisé sur votre instance dotée d'une protection Oracle Linux en tentant de charger un module de noyau non signé et en observant la réponse du système. Cela confirme que le démarrage sécurisé est actif et fonctionne comme prévu, améliorant ainsi la sécurité de votre environnement en nuage. L'avantage du démarrage sécurisé est qu'il garantit que seuls les logiciels approuvés et signés sont chargés pendant le processus de démarrage, protégeant votre instance du code malveillant ou non autorisé et conservant ainsi l'intégrité de votre système.
Dans le prochain tutoriel de cette série, nous explorerons des fonctions de sécurité et des méthodes de test supplémentaires pour les instances OCI.
Confirmation
- Auteur - Vishak Chittuvalapil (ingénieur en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Verify Secure Boot Feature on OCI Compute Shielded Instances
G12341-01
August 2024