PC의 UEFI 펌웨어에 보안 업데이트가 필요한 이유

마이크로소프트가 최근 발표한 프로젝트 뮤(Project Mu)는 지원되는 하드웨어에 대해 ‘펌웨어 서비스’라는 새로운 개념을 제시합니다. 이는 모든 PC 제조업체가 주목해야 할 중요한 변화입니다. 기존 PC들은 UEFI 펌웨어에 대한 보안 업데이트가 필요했지만, PC 제조업체들은 이러한 업데이트를 제때 제공하지 못하는 경우가 많았습니다.

UEFI 펌웨어란 무엇인가?

최신 PC는 구형 BIOS 대신 UEFI 펌웨어를 사용합니다. UEFI 펌웨어는 PC가 시작될 때 가장 먼저 실행되는 저수준 소프트웨어입니다. 이 펌웨어는 하드웨어를 점검하고 초기화하며, 일부 기본적인 시스템 설정을 수행한 후 컴퓨터 내부 드라이브나 다른 부팅 장치에서 운영 체제를 불러옵니다.

UEFI는 이전 BIOS보다 더 복잡한 구조를 가지고 있습니다. 예를 들어, 인텔 프로세서가 장착된 컴퓨터에는 인텔 관리 엔진(Intel Management Engine)이라는 소형 운영 체제가 내장되어 있습니다. 이 운영 체제는 윈도우, 리눅스 등 컴퓨터에서 실행되는 운영 체제와 병렬로 작동합니다. 기업 네트워크 환경에서는 시스템 관리자가 인텔 ME 기능을 사용하여 원격으로 컴퓨터를 관리할 수 있습니다.

UEFI는 프로세서 펌웨어와 유사한 프로세서 ‘마이크로코드’도 포함하고 있습니다. 컴퓨터가 부팅되면 UEFI 펌웨어가 이 마이크로코드를 로드합니다. 이 마이크로코드는 소프트웨어 명령을 CPU가 이해할 수 있는 하드웨어 명령으로 해석하는 역할을 합니다.

UEFI 펌웨어에 보안 업데이트가 필요한 이유

지난 몇 년간의 사례들은 UEFI 펌웨어에 대한 적절한 보안 업데이트의 중요성을 명확히 보여주었습니다.

2018년에 발생한 스펙터(Spectre) 취약점은 최신 CPU의 심각한 구조적 결함을 드러냈습니다. ‘추측 실행’ 문제로 인해 프로그램이 일반적인 보안 제약을 우회하여 메모리의 보안 영역을 읽을 수 있었습니다. 스펙터 문제를 해결하기 위해서는 CPU 마이크로코드 업데이트가 필요했습니다. 이에 따라 PC 제조업체는 모든 랩톱과 데스크톱 PC를 업데이트해야 했으며, 마더보드 제조업체는 모든 마더보드를 업데이트된 마이크로코드가 포함된 새 UEFI 펌웨어로 업데이트해야 했습니다. 만약 UEFI 펌웨어 업데이트를 설치하지 않으면 PC는 스펙터 공격으로부터 제대로 보호받지 못합니다. AMD 또한 스펙터 공격으로부터 AMD 프로세서 시스템을 보호하기 위해 마이크로코드 업데이트를 제공했습니다. 따라서 이 문제는 인텔만의 문제가 아니었습니다.

인텔의 관리 엔진에는 보안 취약점이 있어서 컴퓨터에 로컬 접근 권한이 있는 공격자가 관리 엔진 소프트웨어를 해킹하거나, 원격 접근 권한을 가진 공격자가 문제를 일으킬 수 있었습니다. 다행히 원격 공격은 인텔 AMT(Active Management Technology)를 활성화한 기업에만 해당되므로 일반 사용자는 영향을 받지 않습니다.

이러한 예시 외에도 연구자들은 일부 PC에서 UEFI 펌웨어를 악용하여 시스템에 대한 깊은 접근 권한을 얻을 수 있음을 밝혀냈습니다. 심지어 그들은 컴퓨터 UEFI 펌웨어에 접근하여 지속적인 랜섬웨어를 설치하는 시연을 하기도 했습니다.

업계는 이러한 문제와 미래의 유사한 결함으로부터 시스템을 보호하기 위해 모든 컴퓨터의 UEFI 펌웨어를 다른 소프트웨어처럼 업데이트해야 합니다.

오랫동안 업데이트 과정이 막혀 있던 이유

BIOS 업데이트 과정은 UEFI 이전부터 문제가 많았습니다. 기존 컴퓨터는 구식 BIOS와 함께 제공되었으며, 오류가 발생할 가능성이 적었습니다. PC 제조업체는 사소한 문제 해결을 위해 몇 가지 BIOS 업데이트를 제공했지만, 일반적으로 PC가 잘 작동하는 경우에는 업데이트를 설치하지 않는 것이 권장되었습니다. BIOS 업데이트를 설치하려면 부팅 가능한 DOS 드라이브에서 부팅해야 하는 경우가 많았고, BIOS 업데이트가 실패하여 PC가 부팅 불가능한 상태가 된다는 소문이 많았습니다.

상황이 바뀌었습니다. UEFI 펌웨어는 더 많은 기능을 수행하며, 지난 몇 년 동안 인텔은 CPU 마이크로코드 및 인텔 ME 등에 대한 여러 중요한 업데이트를 배포했습니다. 인텔이 이러한 업데이트를 출시할 때마다 인텔은 “컴퓨터 제조업체에 문의하십시오”라는 말만 반복했습니다. 컴퓨터 제조업체나 마더보드 제조업체(자신이 PC를 조립한 경우)는 인텔로부터 코드를 받아와 새 UEFI 펌웨어 버전에 통합해야 했습니다. 그리고 나서 펌웨어를 테스트해야 했습니다. 또한, 제조업체마다 UEFI 펌웨어가 다르기 때문에 판매하는 모든 개별 PC에 대해 이 과정을 반복해야 했습니다. 이는 과거 안드로이드폰 업데이트를 어렵게 만들었던 수동 작업과 유사합니다.

실제로, 이는 UEFI를 통해 전달되어야 하는 중요한 보안 업데이트를 받는 데 오랜 시간(수개월)이 걸린다는 것을 의미했습니다. 제조업체가 책임을 회피하고, 심지어 몇 년 된 PC의 업데이트를 거부할 수도 있었습니다. 심지어 제조업체가 업데이트를 출시하더라도 해당 업데이트는 종종 제조업체의 지원 웹사이트 깊숙이 숨겨져 있었습니다. 대부분의 PC 사용자는 이러한 UEFI 펌웨어 업데이트가 있는지 인지하지 못하고 설치하지 않으므로 이러한 취약점은 기존 PC에 오랫동안 남아있게 됩니다. 또한, 일부 제조업체는 여전히 DOS로 부팅하여 펌웨어 업데이트를 설치하도록 요구하여 절차를 더욱 복잡하게 만들었습니다.

사람들은 이 문제에 대해 어떻게 대처하고 있나

상황이 복잡합니다. 제조업체가 새로운 UEFI 펌웨어 업데이트를 더 쉽게 생성할 수 있는 간소화된 과정이 필요합니다. 또한, 사용자가 PC에 자동으로 설치할 수 있도록 이러한 업데이트를 배포하는 더 나은 절차가 필요합니다. 현재 과정은 느리고 수동적이지만, 빠르고 자동화되어야 합니다.

마이크로소프트가 프로젝트 뮤(Project Mu)를 통해 해결하고자 하는 것이 바로 이 문제입니다. 공식 문서에 따르면, 프로젝트 뮤는 다음과 같이 설명됩니다.

“Mu는 UEFI 제품 배포 및 유지 관리가 수많은 파트너 간의 지속적인 협력이라는 아이디어에 기반합니다. 너무 오랫동안 업계는 복사/붙여넣기/이름 바꾸기와 결합된 ‘포킹(forking)’ 모델을 사용하여 제품을 구축해 왔으며, 각 신제품이 출시될 때마다 유지 관리 부담이 증가하여 업데이트가 거의 불가능한 수준이 되었습니다.”

프로젝트 뮤는 UEFI 개발 과정을 간소화하고 협력을 통해 PC 제조업체가 UEFI 업데이트를 더 빠르고 쉽게 만들고 테스트할 수 있도록 지원합니다. 마이크로소프트는 이미 PC 제조업체가 UEFI 펌웨어 업데이트를 사용자에게 자동으로 더 쉽게 배포할 수 있도록 지원하고 있기 때문에 이것이 중요한 해결책이 될 것으로 기대하고 있습니다.

특히, 마이크로소프트는 PC 제조업체가 펌웨어 업데이트를 게시할 수 있도록 Windows 업데이트를 통해 2017년부터 관련 문서를 제공해 왔습니다. 또한 마이크로소프트는 구성 요소 펌웨어 업데이트를 발표했는데, 이는 2018년 10월에 UEFI 및 기타 펌웨어를 업데이트하기 위해 제조업체들이 사용할 수 있는 오픈 소스 모델입니다. PC 제조업체가 이에 동의한다면 모든 사용자에게 펌웨어 업데이트를 매우 빠르게 제공할 수 있습니다.

이 문제는 윈도우에만 국한되지 않습니다. 리눅스 개발자들도 PC 제조업체가 UEFI 업데이트를 쉽게 배포할 수 있도록 노력하고 있습니다. LVFS(Linux 공급업체 펌웨어 서비스)를 통해 PC 공급업체는 업데이트를 제출할 수 있으며, 우분투 및 기타 여러 리눅스 배포판에서 사용되는 GNOME 소프트웨어 응용 프로그램에서 다운로드할 수 있습니다. 이러한 노력은 2015년으로 거슬러 올라가며, PC 제조업체 중에서는 델과 레노버 등이 참여하고 있습니다.

이러한 윈도우 및 리눅스 솔루션은 UEFI 업데이트뿐 아니라 더 광범위한 영향을 미칩니다. 하드웨어 제조업체는 이를 활용하여 USB 마우스 펌웨어에서 솔리드 스테이트 드라이브 펌웨어까지 모든 것을 업데이트할 수 있습니다.

솔리드 스테이트 드라이브 펌웨어 및 암호화 문제에 대한 스위프트온시큐리티의 의견처럼 펌웨어 업데이트는 신뢰할 수 있어야 합니다. 하드웨어 제조업체에 더 나은 수준을 요구해야 합니다.

펌웨어 업데이트는 신뢰할 수 있습니다. 단 한 번의 실수로 최소 3,000개의 Dell BIOS 업데이트가 시작되었으며, 해당 구형 PC는 이미 오류에 대한 서비스를 제공하고 있었습니다.

불가능하다고 생각하는 것을 다시 생각하십시오. 펌웨어 서비스는 불가능하거나 위험하지 않습니다. 사람들은 더 나은 것을 요구해야 합니다.

— SwiftOnSecurity(@SwiftOnSecurity) 2018년 11월 6일

이미지 출처: 인텔, 나타샤 아이블, 쿠바/Shutterstock.com.