주:

OCI 컴퓨트 실드 인스턴스에서 보안 부팅 기능 확인

소개

보안 부트는 인증되지 않은 부트 로더 및 운영 체제가 부트되지 않도록 방지하는 UEFI(Unified Extensible Firmware Interface) 기능입니다. 보안 부트에서는 부트 전에 서명된 펌웨어의 서명이 올바른지 검증하여 루트킷, 부트킷 및 인증되지 않은 소프트웨어가 운영 체제 로드 전에 실행되지 않도록 합니다. 제대로 서명되지 않은 부트 구성 요소는 실행할 수 없으므로 시스템이 부트되지 않습니다. 이 사용지침서에서는 Oracle Cloud Infrastructure(OCI) Compute 실드된 인스턴스에서 보안 부팅 기능을 확인하는 작업을 안내합니다.

목표

필요 조건

작업 1: 실드된 인스턴스에서 보안 부트 상태 확인

다음 명령을 실행하여 보안 부트 상태를 확인합니다.

sudo mokutil --sb-state

보안 부트가 사용으로 설정된 것을 확인할 수 있습니다.

SecureBoot enabled

작업 2: 실드된 Instance에서 환경 설정

  1. 커널 모듈에 대한 디렉토리를 만듭니다.

    mkdir ~/secureboot
    cd ~/secureboot
    
  2. 다음 내용으로 이름이 unauthorised_module.c인 커널 모듈 소스 파일을 만듭니다.

    #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. 다음 내용이 포함된 Makefile라는 Makefile을 생성합니다.

    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
    

    주: all:clean: 아래의 행이 공백이 아닌 탭으로 들여쓰기되어 있는지 확인하십시오.

작업 3: 커널 모듈 작성

다음 명령을 실행하여 GCC 도구 세트를 설치합니다.

make

이렇게 하면 unauthorised_module.c 파일이 컴파일되고 unauthorised_module.ko가 생성됩니다.

(선택 사항) 컴파일러 호환성 문제 처리:

GCC 도구 세트 버전 불일치 오류가 발생하는 경우 다음 단계를 사용하여 해결하십시오.

  1. GCC 도구 세트를 설치합니다.

    sudo yum install gcc-toolset-11
    
  2. GCC 도구 세트를 사용으로 설정합니다.

    scl enable gcc-toolset-11 bash
    

작업 4: 서명되지 않은 커널 모듈 로드

  1. 다음 명령을 실행하여 커널 모듈을 로드합니다.

    sudo insmod unauthorised_module.ko
    

    보안 부트가 사용으로 설정되고 올바르게 작동하면 다음 오류가 표시됩니다.

    insmod: ERROR: could not insert module test_module.ko: Key was rejected by service
    
  2. 커널 메시지에서 보안 부트 적용을 확인합니다.

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

    보안 부트로 인해 모듈이 로드되지 못했음을 나타내는 메시지를 찾습니다.

    [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
    

다음 단계

이 사용지침서에서는 서명되지 않은 커널 모듈을 로드하고 시스템 응답을 관찰하여 Oracle Linux 실드된 인스턴스에서 보안 부팅 기능을 성공적으로 확인했습니다. 따라서 보안 부팅이 활성 상태이고 예상대로 작동하므로 클라우드 환경의 보안이 향상됩니다. 보안 부트의 장점은 부팅 프로세스 중에 신뢰할 수 있고 서명된 소프트웨어만 로드되도록 하여 악의적이거나 승인되지 않은 코드로부터 인스턴스를 보호하고 시스템 무결성을 유지한다는 것입니다.

이 시리즈의 다음 사용지침서에서는 OCI 인스턴스에 대한 추가 보안 기능 및 테스트 방법을 살펴봅니다.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.