상세 컨텐츠

본문 제목

심각한 GRUB2 부트로더 취약점, 수십억 리눅스 및 윈도우 시스템에 영향 미쳐

국내외 보안동향

by 알약(Alyac) 2020. 7. 30. 09:41

본문

Critical GRUB2 Bootloader Bug Affects Billions of Linux and Windows Systems


한 사이버 보안 연구 팀이 위험도 높은 취약점에 대한 세부 내용을 공개했습니다. 


이 취약점은 거의 모든 리눅스 배포판 또는 윈도우 시스템을 사용하는 서버, 워크스테이션, 랩톱, 데스크톱, IoT 시스템을 포함한 전 세계 기기 10억대 이상에 영향을 미치는 것으로 알려졌습니다.


‘BootHole’이라 명명되었으며 CVE-2020-10713으로 등록된 이 취약점은 GRUB2 부트로더에 존재하며 악용될 경우 공격자가 시큐어 부트 기능을 우회하고 타깃 시스템에 대한 높은 권한을 획득하고 지속적이고 은밀한 접근이 가능해집니다.


Secure Boot는 중요 컴포넌트, 주변 장치, OS를 로드하는데 부트로더를 사용하며 부트 과정 중 암호로 서명된 코드만 실행되도록 하는 UEFI의 보안 기능입니다.


“Secure Boot의 설계 목표 중 하나는 추가 권한을 얻고 Secure Boot를 비활성화하거나 부트 체인을 변조하여 선 OS 지속성을 얻지 못하도록 차단해 인증되지 않은 코드가 관리자 권한으로 실행되는 것을 막는 것입니다.”



GRUB2 부트로더 취약점


Eclypsium의 연구원들이 발견한 BootHole 취약점은 버퍼 오버플로우 취약점으로 GRUB2의 모든 버전에 영향을 미치며 일반적으로 다른 파일 및 실행파일처럼 서명되지 않는 Config 파일에서 콘텐츠를 파싱하는 방식으로 인해 발생합니다.


이로 인해 공격자는 하드웨어 신뢰 루트 메커니즘을 깨부술 수 있는 기회를 얻게 됩니다.

 


<이미지 출처: https://eclypsium.com/wp-content/uploads/2020/07/Theres-a-Hole-in-the-Boot.pdf>



Grub.cfg 파일은 EFI 시스템 파티션에 존재하기 때문에, 공격자가 이 파일을 수정하기 위해서는 먼저 타깃 시스템에서 관리자 권한을 얻어야 합니다. 이후 추가적인 권한 상승이 가능하고 기기 내에서 지속적으로 상주할 수 있습니다.


GRUB2는 대부분의 리눅스 시스템에서 사용되는 표준 부트로더지만 다른 OS, 커널, XEN과 같은 하이퍼바이저 또한 지원하고 있습니다.


“공격자는 버퍼 오버플로우를 통해 UEFI 실행 환경에서 임의 코드 실행이 가능하며 악성코드 실행, 부트 프로세스 변경, OS 커널 직접 패치, 기타 여러 가지 악성 행위에 악용할 수 있습니다.”


공격자가 윈도우 시스템에서 BootHole 취약점을 악용할 경우 루트킷 악성코드를 설치하기 위해 윈도우 시스템에 설치된 디폴트 부트로더를 GRUB2의 취약한 버전으로 대체하는 것이 가능합니다.


“표준 마이크로소프트 서드파티 UEFI CA를 사용하는 시큐어 부트 기능이 활성화된 모든 윈도우 기기에 이 문제가 존재합니다.”


해커가 이 취약점을 악용할 경우 OS 시스템이 부트되기 전 악성코드를 실행할 수 있어 보안 소프트웨어가 이 악성코드를 탐지하거나 제거하는 것이 어려울 수 있습니다.

 


<이미지 출처: https://eclypsium.com/wp-content/uploads/2020/07/Theres-a-Hole-in-the-Boot.pdf>



이 외에도, 연구원들은 “UEFI 실행 환경은 ASLR(Address Space Layout Randomization), DEP/NX(Data Execution Prevention) 또는 최신 OS에서 일반적으로 찾아볼 수 있는 기타 익스플로잇 완화 기술을 포함하고 있지 않아 이러한 취약점의 익스플로잇을 만드는 것은 매우 쉽습니다.”라 밝혔습니다.



단순히 업데이트 및 패치를 설치하는 것만으로 문제 해결 어려워


Eclypsium의 연구원들은 OS 공급 업체, 컴퓨터 제조업체를 포함한 관련 기관에 이 취약점에 대해 신고했으며 문제를 패치하는 것을 돕고 있습니다.


하지만 문제를 완전히 패치하는 것은 쉬운 일은 아닙니다.


공격자가 기기에 설치된 부트로더를 취약한 버전으로 교체하는 것이 가능하기 때문에 단순히 업데이트된 GRUB2 부트로더를 설치하는 것만으로 문제가 해결되지 않습니다.


Eclypsium은 “공격자가 취약한 구버전을 악용하는 것을 막기 위해서는 새로운 부트로더가 서명 및 배치되어야 하며, 취약한 부트로더는 폐기되어야 합니다.”라 밝혔습니다.


따라서 이 취약점에 영향을 받는 제조사들은 먼저 마이크로소프트 서드파티 UEFI CA로 서명된 부트로더 shim의 새로운 버전을 공개해야 합니다.


부팅 중 이 취약한 코드를 실행하는 것을 막기 위해 영향을 받는 시스템의 펌웨어에서 UEFI 폐기 목록(dbx) 또한 업데이트되어야 합니다.


조직이 이 다단계 완화 프로세스를 완료하는 데는 몇 년이 소요될 수 있습니다.


연구원들은 아래와 같이 경고했습니다.


“하지만 이 폐기 프로세스를 전부 적용하는 데는 오랜 시간이 걸릴 것입니다. 과거에 발생된 UEFI  관련 업데이트는 기기를 사용할 수 없는 상태로 만든 이력이 있기 때문에 제조 업체에서는 각별한 주의를 기울여야 할 것입니다. 만약 폐기 목록(dbx)이 리눅스 부트로더와 shim이 업데이트되기 이전에 업데이트되었을 경우 OS는 로드되지 않을 것입니다.”


마이크로소프트는 금일 권고문을 발행해 이 문제를 인지하고 있으며 “이 취약점을 패치하는 윈도우 업데이트에 대한 유효성 및 호환성을 테스트 중”이라고 밝혔습니다.


또한 앞으로 몇 주 안에 출시될 예정인 보안 패치를 즉시 적용할 것을 권장합니다.


마이크로소프트 이외에도 많은 리눅스 배포판에서 이 취약점과 관련된 완화법, 보안 패치 일정을 포함한 권고를 발행했습니다.



Red Hat (Fedora 및 RHEL)

Canonical (Ubuntu)

SuSE (SLES 및 OpenSUSE)

Debian

VMware

Microsoft

HP





출처:

https://thehackernews.com/2020/07/grub2-bootloader-vulnerability.html

https://eclypsium.com/wp-content/uploads/2020/07/Theres-a-Hole-in-the-Boot.pdf

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV200011

관련글 더보기

댓글 영역