ACPI Secure Boot 취약점-GRUB 2-(CVE-2020-14372)

Public Date: March 1, 2021, 10:36
갱신됨 May 10, 2022, 18:21 - Chinese, Simplified 영어 (English) French Japanese
Resolved 상태
Moderate Impact

Insights vulnerability analysis

View exposed systems

Red Hat은 Red Hat Enterprise Linux를 비롯한 당사 제품에 영향을 미치는 GRUB 2 부트 로더의 취약점을 인지하고 있습니다. 이 취약점을 통해 공격자(이미 시스템에 존재)는 Secure Boot 보안을 무시하고 서명되지 않은 커널 모듈을 로드할 수 있습니다. 이 취약점은 시스템 부팅에 사용되는 소프트웨어를 확인하여 시스템을 보호하기 위해 UEFI Secure Boot를 사용하는 시스템에만 영향을 미칩니다. 이 문제는 CVE-2020-14372로 지정되어 있으며 보통 (Moderate) 보안 영향을 미치는 것으로 분류하고 있습니다. 영향을 받는 버전을 사용하는 Red Hat 고객은 해당 업데이트를 적용하는 것이 좋습니다. 

다음 Red Hat 제품 버전 및 컨테이너는 직접적인 영향을 받거나 잠재적으로 영향을 받을 수 있습니다.

  • Red Hat Enterprise Linux 7

  • Red Hat Enterprise Linux 8

  • Red Hat Enterprise Atomic Host

  • Red Hat OpenShift Container Platform 4 [1]

[1] 이 제품에는 RHEL (Red Hat Enterprise Linux)의 컨텐츠가 포함되어 있으며 RHEL에 대한 권고가 릴리스된 후 바로 업데이트된 컨텐츠가 포함된 권고가 제공됩니다.

  • Red Hat Enterprise Linux 기본 이미지를 사용하는 제품 컨테이너입니다. 기본 이미지는 이러한 취약점에 대한 수정 사항을 포함하도록 업데이트됩니다. 컨테이너가 최신 상태인지 확인하십시오. Red Hat Container Catalog의 일부인 Container Health Index를 사용하여 Red Hat 컨테이터의 보안 상태를 확인할 수 있습니다.

  • RHEL 채널에서 패키지를 가져오는 제품입니다. 기본 Red Hat Enterprise Linux 패키지가 이러한 제품 환경에서 최신 버전인지 확인하십시오.

현재 사용 중인 시스템에 보안 취약점이 있는지 확인하려면 아래의 진단 섹션을 참조하십시오. 이러한 문제를 자동으로 해결할 수 있는 Ansible playbook도 제공됩니다.

CVE-2020-14372에서 공격자는 Linux 커널이 로드되면 GRUB 2 취약점을 악용하여 Secure Boot 메커니즘을 우회할 수 있습니다. 공격자는 재부팅 후 (구성 파일을 통해) 사용자 지정 ACPI(Advanced Configuration and Power Interface) 테이블을 로드하도록 grub를 지시하여 이 결함을 악용할 수 있으며, 이 테이블에서 커널 잠금을 비활성화하고 서명되지 않은 코드를 커널 공간에 추가로 로드되도록 하여 시스템의 데이터 무결성, 기밀성, 가용성을 손상시킬 수 있습니다.

이는 Secure Boot을 사용하고 상위 권한이 필요한 환경에만 영향을 미칩니다. 공격자가 이 취약점을 악용하려면 물리적 제어 또는 root 수준 권한이 있어야 합니다. 

참고: SBAT 기술이 도입된 shim 업데이트가 준비되는 즉시 릴리스될 예정입니다. (SBAT에 대한 자세한 내용은 배경 정보 섹션 참조) 이는 릴리스 전에 shim 업데이트가 제대로 테스트되었는지 확인하고 부팅 시스템에 버그가 발생하지 않도록하기 위한 것입니다.

이 보안 취약점에 대한 완화 조치가 없습니다.

GRUB 2 부트 로더는 부트 로더 동작을 수정하거나 기능을 확장하는 데 사용할 수 있는 여러 모듈과 명령을 지원합니다. Secure Boot 기술을 사용하여 시스템을 부팅할 때 모든 로드 모듈은 관련 제한 사항을 준수하고 사용자가 서명되지 않은 코드를 로드하지 못하도록 해야 합니다. 이 취약점으로 인해 GRUB 2 ACPI 명령 옵션이 Secure Boot 제한 사항을 준수하지 않을 수 있습니다. 따라서 악의적인 에이전트가 변조된 ACPI 테이블을 로드할 수 있으며 이러한 테이블은 환경을 수정하여 Secure Boot 메커니즘을 손상시킬 수 있습니다.

로컬 root 권한을 가진 공격자는 시스템에 SSDT (Secondary System Description Table)를 배치하고 grub 구성 파일을 수정하여 악의적인 SSDT가 로드되도록 할 수 있습니다. 그런 다음 변조된 ACPI 테이블이 커널에 의해 실행되어 커널 잠금 변수를 덮어 쓰므로 공격자가 서명되지 않은 커널 모듈을 로드하고 서명되지 않은 코드에 kexec를 수행할 수 있습니다. 

이 이벤트는 shim의 해시를 취소해야 합니다. SBAT (Secure Boot Advanced Targeting)라고 하는 새로운 기술이 이번 릴리스의 일부로 몇 주 이내에 shim 패키지에 릴리스될 예정입니다. 이는 이 프로세스에 대해 dbxtool 패키지에서 이전에 처리했던 기능 대신 사용됩니다. 자세한 내용은 아래 배경 정보 섹션을 참조하십시오. 

ACPI 및 SSDT에 대한 자세한 내용은 이 문서 하단의 참조 섹션에서 확인하십시오. 

GRUB 2에서 Secure Boot가 활성화된 경우 ACPI 명령을 잘못 사용하도록 설정되는 취약점이 발견되었습니다. 이 취약점을 통해 액세스 권한을 가진 공격자는 코드가 포함된 SSDT (Secondary System Description Table)를 만들어 Linux 커널 잠금 변수 내용을 메모리에 직접 덮어 쓸 수 있습니다. 이 테이블은 커널에 의해 추가로 로드 및 실행되어 Secure Boo 잠금을 해제하고 공격자가 서명되지 않은 코드를 로드할 수 있습니다. 이 취약점으로 인한 가장 큰 위협은 시스템 가용성뿐 만 아니라 데이터 기밀성 및 무결성으로 연결될 수 있다는 점입니다. 

2021년 3월 2일에 심각도 보통인 6 건의 다른 GRUB 2 관련 문제도 공개되었습니다. 자세한 내용은 관련 CVE 페이지를 확인하십시오.

  • CVE-2020-25632 grub2: use-after-free in rmmod command

  • CVE-2020-25647 grub2: out-of-bound write in grub_usb_device_initialize()

  • CVE-2020-27749 grub2: Stack buffer overflow in grub_parser_split_cmdline

  • CVE-2020-27779 grub2: cutmem command allows privileged user to remove memory regions when Secure Boot is enabled

  • CVE-2021-20225 grub2: heap out-of-bounds write in short form option parser

  • CVE-2021-20233 grub2: heap out-of-bound write due to mis-calculation of space required for quoting

보안 부팅 및 작동 방식에 대한 자세한 내용은 What is UEFI Secure Boot and how it works?에서 참조하십시오.

2020년 중반의 BootHole 이벤트는 기존의 서명된 바이너리와 인증서 교체를 대대적으로 취소해야했기 때문에 shim 및 grub 업데이트가 중단되고 DBX 공간 소비가 크게 증가했습니다. 

결과적으로 부팅 경로에 포함된 구성 요소가 UEFI 펌웨어보다 더 빠르고 쉽게 진화할 수 있기 때문에 UEFI 해지 메커니즘에 대한 개선이 요구되었습니다. UEFI SBAT (Secure Boot Advanced Targeting) 모델로 알려진 새로운 세대 기반 해지(Generation-Based Revocation) 메커니즘의 도입은 이러한 릴리스의 일부로 몇 주 내에 shim 패키지 내에서 릴리스될 예정입니다. 이 메커니즘은 손상된 부트 체인 구성 요소를 보다 쉽게 취소할 수있는 기능을 제공합니다. 

SBAT 개발은 Linux 커뮤니티와 Microsoft가 공동으로 개발한 것으로 모든 UEFI 바이너리에 새로운 메타 데이터를 채택하여 공급 업체, 제품군, 제품, 구성 요소, 버전 및 세대에 대한 정보를 제공합니다. 이 메타 데이터는 디지털 서명되며 UEFI Secure Boot 메커니즘의 허용 또는 거부 목록에 추가로 통합될 수 있습니다. 

이는 부트 체인 툴에 글로벌 생성 번호가 포함되어 향후 해지 이벤트를 사용하므로 해지 목록에 하나의 메타 데이터 항목만 지정하여 여러 해시 또는 서명 항목을 대체할 수 있습니다. 

SBAT에 대한 자세한 기술 정보는 “UEFI shim bootloader secure boot life-cycle improvements” 문서를 참조하십시오.

SBAT 메커니즘이 변경됨에 따라 Red Hat은 현재 키가 활성 상태로 유지되고 부팅이 허용되므로 Secure Boot 키를 교체하고 신뢰할 수 있는 모든 구성 요소(패키지: kernel, shim, grub2, fwupd)를 다시 서명할 필요가 없습니다.

RHEL (Red Hat Enterprise Linux) 7 및 8, Red Hat Enterprise Atomic Host 및 RHEL CoreOS (Openshift Container Platform 4의 일부)에는 보안 취약점이 있는 GRUB 2 버전이 포함되어 있습니다. 

영향을 받는 Red Hat 제품 버전을 실행 중인 모든 Red Hat 고객은 에라타를 사용할 수 있는 즉시 해당 제품을 업데이트할 것을 권장합니다.

제품

구성 요소

권고/업데이트

Red Hat Enterprise Linux 8 

grub2

RHSA-2021:0696

Red Hat Enterprise Linux 8 

shim

보류 [1]

Red Hat Enterprise Linux 8.2.0 Extended Update Support [2]

grub2

RHSA-2021:0697

Red Hat Enterprise Linux 8.2.0 Extended Update Support [2]

shim

보류 [1]

Red Hat Enterprise Linux 8.1.0 Extended Update Support [2]

grub2

RHSA-2021:0698

Red Hat Enterprise Linux 8.1.0 Extended Update Support [2]

shim

보류 [1]

Red Hat Enterprise Linux 7

grub2

RHSA-2021:0699

Red Hat Enterprise Linux 7

shim

보류 [1]

Red Hat Enterprise Linux 7.7 Extended Update Support [2]

grub2

RHSA-2021:0700

Red Hat Enterprise Linux 7.7 Extended Update Support [2]

shim

보류 [1]

Red Hat Enterprise Linux 7.6 Extended Update Support [2]

grub2

RHSA-2021:0701

Red Hat Enterprise Linux 7.6 Extended Update Support [2]

shim

보류 [1]

Red Hat Enterprise Linux 7.4 Update Services for SAP Solutions, Advanced Update Support [3],[4]

grub2

RHSA-2021:0702

Red Hat Enterprise Linux 7.4 Update Services for SAP Solutions, Advanced Update Support [3],[4]

shim

보류 [1]

Red Hat Enterprise Linux 7.3 Advanced Update Support [4]

grub2

RHSA-2021:0703

Red Hat Enterprise Linux 7.3 Advanced Update Support [4]

shim

보류 [1]

Red Hat Enterprise Linux 7.2 Advanced Update Support [4]

grub2

RHSA-2021:0704

Red Hat Enterprise Linux 7.2 Advanced Update Support [4]

shim

보류 [1]

RHEL Atomic Host

Image

보류 [1]

Red Hat OpenShift Container Platform 4.6 [7]

Red Hat CoreOS

보류 [1]


[1] 업데이트가 릴리스된 후 권고/업데이트 링크가 추가됩니다.

[2] Red Hat Enterprise Linux Extended Update Support (EUS)서브스크립션이란 무엇입니까?

[3] Advanced mission critical Update Support (AUS)이란 무엇입니까?

[4] Red Hat Enterprise Linux SAP Solutions 서브스크립션이란 무엇입니까?

[5] 이 패치에 액세스하려면 활성 ELS (Extended Life-cycle Support) 서브스크립션이 필요합니다. 해당 계정에 활성 ELS 서브스크립션이 없는 경우 Red Hat 영업 부서 또는 영업 담당자에게 문의하십시오.

[6] Red Hat Enterprise Linux 기본 이미지를 사용하는 제품 컨테이너입니다. 기본 이미지는 이러한 취약점에 대한 수정 사항을 포함하도록 업데이트됩니다. 컨테이너가 최신 상태인지 확인하십시오. Red Hat Container Catalog의 일부인 Container Health Index를 사용하여 Red Hat 컨테이터의 보안 상태를 확인할 수 있습니다.

[7] 영향을 받는 Red Hat CoreOS 구성 요소는 RHEL 콘텐츠를 사용하며 Red Hat OpenShift Container Platform에 대한 권고로 재빌드 및 릴리스될 예정입니다.

진단 스크립트를 사용하여 현재 사용 중인 시스템에 보안 취약점이 있는지 확인합니다. 정규 스크립트임을 확인하려면 OpenPGP 분리 서명을 다운로드합니다. GPG 서명을 확인하는 방법은 고객 포털에서 확인할 수 있습니다.

버전 1.0

Ansible Playbook은 다음에서 사용할 수 있습니다. 이 Playbook은 모든 관련 패키지를 업데이트합니다. Playbook을 사용하려면 HOSTS 추가 변수로 업데이트할 호스트를 지정합니다.

ansible-playbook -e HOSTS=<myhosts> CVE-2020-14372-update_fixit.yml

OpenPGP 서명을 다운로드하여 Playbook의 진위 여부를 확인할 수 있습니다. GPG 서명을 확인하는 방법은 고객 포털에서 확인할 수 있습니다.

버전 1.0

Red Hat은이 취약점을 발견하고 보고해 주신 Máté Kukri에게 감사드립니다. 또한 Red Hat은 이 문제의 대응에 협력해 주신 업계 파트너 및 GNU GRUB 커뮤니티에 감사드립니다.

How to use GPG to verify signed content from Product Security 

Boot Hole Vulnerability - GRUB 2 boot loader - CVE-2020-10713 

GRUB’s ACPI Command line usage

​​​​​​​Using SSDT Overlays within ACPI




Comments