Observação:

Verificar Recurso de Inicialização Segura em Instâncias Blindadas do OCI Compute

Introdução

A inicialização segura é um recurso da Interface de Firmware Extensível Unificada (UEFI) que impede que carregadores de inicialização e sistemas operacionais não autorizados sejam inicializados. A Inicialização segura valida se a assinatura do firmware assinado está correta antes da inicialização para evitar que rootkits, bootkits e software não autorizado sejam executados antes do sistema operacional ser carregado. Os componentes de inicialização que não estão assinados corretamente não podem ser executados, o que impede a inicialização do sistema. Este tutorial o guiará pelas tarefas para verificar o recurso de inicialização segura nas instâncias blindadas do Oracle Cloud Infrastructure (OCI) Compute.

Objetivos

Pré-requisitos

Tarefa 1: Verificar Status de Inicialização Segura na Instância Blindada

Execute o comando a seguir para verificar o status da inicialização segura.

sudo mokutil --sb-state

É possível ver que a inicialização segura está ativada.

SecureBoot enabled

Tarefa 2: Configurar o Ambiente na Instância Blindada

  1. Crie um diretório para o módulo kernel.

    mkdir ~/secureboot
    cd ~/secureboot
    
  2. Crie o arquivo de origem do módulo kernel chamado unauthorised_module.c com o conteúdo a seguir.

    #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. Crie um Makefile chamado Makefile com o conteúdo a seguir.

    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
    

    Observação: Certifique-se de que as linhas em all: e clean: estejam recuadas com uma tabulação e não com espaços.

Tarefa 3: Criar o Módulo Kernel

Execute o comando a seguir para instalar o conjunto de ferramentas GCC.

make

Isso compilará o arquivo unauthorised_module.c e produzirá unauthorised_module.ko.

(Opcional) Tratar Problemas de Compatibilidade do Compilador:

Se você encontrar erros de incompatibilidade de versão do Conjunto de Ferramentas GCC, use as etapas a seguir para resolver.

  1. Instale o Conjunto de Ferramentas do GCC.

    sudo yum install gcc-toolset-11
    
  2. Ativar o Conjunto de Ferramentas do GCC.

    scl enable gcc-toolset-11 bash
    

Tarefa 4: Carregar o Módulo do Kernel Não Assinado

  1. Execute o comando a seguir para carregar o módulo kernel.

    sudo insmod unauthorised_module.ko
    

    Se a inicialização segura estiver ativada e funcionando corretamente, o erro a seguir deverá ser exibido.

    insmod: ERROR: could not insert module test_module.ko: Key was rejected by service
    
  2. Verifique as mensagens do kernel para obter a imposição segura da inicialização.

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

    Procure mensagens indicando que a inicialização segura impediu o carregamento do módulo.

    [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
    

Próximas Etapas

Neste tutorial, verificamos com sucesso a funcionalidade de inicialização segura em sua instância blindada do Oracle Linux ao tentar carregar um módulo kernel não assinado e observar a resposta do sistema. Isso confirma que a inicialização segura está ativa e funcionando conforme esperado, aprimorando a segurança do seu ambiente de nuvem. A vantagem da inicialização segura é que ela garante que somente softwares confiáveis e assinados sejam carregados durante o processo de inicialização, protegendo sua instância contra códigos maliciosos ou não autorizados e, assim, mantendo a integridade do sistema.

No próximo tutorial desta série, exploraremos recursos de segurança adicionais e métodos de teste para instâncias da OCI.

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.