UEFI 실패: LogoFAIL 공격에 대해 알아야 할 사항
- 여러 UEFI 취약점으로 인해 Linux, Windows, Mac에서 익스플로잇이 발생할 수 있습니다.
- 운영 체제 재설치 시에도 LogoFAIL이 지속됨
- 또한 공급망 위험을 하드웨어 자체로 확장합니다.
호기심 많고 색다른 방법으로 유명한 보안 연구원들이 최근 UEFI(통합 확장 펌웨어 인터페이스)를 면밀히 조사하여 LogoFAIL 취약점이라는 중요한 취약점을 발견했습니다. 시스템을 조사하여 시스템을 악용하는 비정상적인 방법을 찾아내는 이 전문가들은 기존 BIOS를 대체하는 최신 버전인 UEFI가 광범위한 영향을 미치는 특정 오류에 취약하다는 사실을 발견했습니다.
특히, 연구원들은 다양한 시스템 통합업체와 공급업체가 마더보드의 UEFI에서 사용하는 라이브러리가 취약하다는 사실을 발견했습니다. 이러한 라이브러리는 시스템 부팅 시 표시되는 로고나 배너 등 특수하게 조작된 이미지를 통해 예기치 않은 작업을 수행하도록 조작될 수 있습니다. 이러한 조작은 보안 부팅과 같은 보안 기능을 효과적으로 우회하여 후속 운영 체제를 오도합니다.
그렇다면 LogoFAIL 취약점은 어떤 위험을 초래하며, 이것이 여러분에게 어떤 의미가 있을까요?
사전 지식UEFI 이해
UEFI는 이전 BIOS의 고급 버전인 통합 확장 펌웨어 인터페이스의 약자입니다. 기본적으로 기본 운영 체제로 제어권을 전환하기 전에 하드웨어 초기화 및 예비 시스템 보안을 관리하는 컴팩트한 운영 체제입니다. UEFI는 CPU 주파수, 전원 및 열 관리, 메모리 타이밍, 주변 장치 작동을 비롯한 다양한 기능을 감독합니다. 일부 UEFI 시스템은 운영 체제 없이도 펌웨어 업데이트를 위한 네트워크 연결 기능을 제공하기도 합니다. BIOS와 달리 UEFI는 부팅 중에 이미지를 표시하여 일관된 시각적 환경을 제공하며, 이 이미지는 UEFI 초기화 과정과 운영 체제의 부팅 단계에 걸쳐 계속 표시됩니다. 이는 일반적으로 운영 체제 드라이버가 활성화되기 전에 화면 해상도를 변경하고 텍스트 모드를 재설정하는 BIOS와 다릅니다. 퍼징퍼징은 개발자와 IT 전문가가 소프트웨어의 견고성을 평가하기 위해 사용하는 테스트 방법입니다. 퍼징 테스트에는 가능한 모든 애플리케이션 입력 필드, 옵션, 매개변수에 다양하고 무작위적인 입력을 전송하는 것이 포함됩니다. 숫자 필드에 문자를 입력하거나 UTF8용으로 설계된 필드에 UTF16 문자를 삽입하는 등 비정상적인 입력 유형에서도 애플리케이션이 안정적으로 유지되는지 확인하여 잠재적인 코드 취약점을 노출하는 것이 목표입니다. |
로고 실패 취약점
바이너리 공개 이 취약점 패밀리를 공개하여 사이버 보안 전문가들의 주목을 받았습니다.
로고 실패 취약점이라고 불리는 이 취약점은 UEFI 시스템 펌웨어에 내장된 이미지 파싱 라이브러리의 결함으로 인해 발생합니다. 이러한 라이브러리는 부팅 프로세스 또는 BIOS 설정에서 로고를 표시하는 데 사용됩니다.
확인된 특정 취약점에는 힙 기반 버퍼 오버플로 결함 및 범위 외 읽기가 포함됩니다. 이러한 취약점은 악성 로고 이미지 파일이 EFI 시스템 파티션에 삽입될 때 트리거되며, 부팅 프로세스를 탈취하고 보안 부팅 및 인텔 부트 가드와 같은 보안 메커니즘을 우회할 수 있는 페이로드가 실행되도록 합니다.
과대 광고에도 불구하고 이러한 취약점을 악용하려면 먼저 시스템에 대한 액세스 권한이 있어야 하며, 액세스 권한이 있는 경우 EFI 파티션 및 UEFI 비휘발성 램(nvram)에 쓸 수 있는 권한이 있어야 한다는 점에 유의하는 것이 중요합니다. 눈썰미가 있는 독자라면 이미 해당 수준의 액세스 권한을 가지고 있다면 LogoFAIL 익스플로잇 자체가 문제가 아니라 다른 멀웨어가 악용할 수 있는 지속성이 문제라는 것을 알 수 있을 것입니다. 예를 들어 인프라 전체에 대한 공격 후 시스템 재이미징 시도까지 지속하는 랜섬웨어를 생각해 보세요. 이는 복구 작업을 마비시킬 수 있습니다.
설상가상으로 이 취약점은 여러 플랫폼과 아키텍처에 걸쳐 존재합니다. x86과 ARM 기반 디바이스 모두에 영향을 미칩니다. AMI, Phoenix 등과 같은 BIOS 공급업체는 LogoFAIL의 영향을 받는 펌웨어를 만듭니다. 따라서 해당 펌웨어를 사용하는 마더보드도 영향을 받게 되는데, 동일한 BIOS 공급업체가 모든 하드웨어에 소프트웨어를 제공하기 때문에 서버급 하드웨어든 소비자급 하드웨어든 상관없습니다. 따라서 인텔, 델, 슈퍼마이크로, 에이서 등의 공급업체가 영향을 받습니다.
영향
운영 체제가 위협으로부터 보호하고 로딩을 시작하기도 전에 코드가 실행되는 것은 특히 심각한 위협입니다. 바이러스 백신 소프트웨어가 작동하기 시작할 때 위협이 이미 실행 중이라면 바이러스 백신 솔루션이 로드된 모든 것을 탐지하는 것은 중요하지 않습니다.
프로세스 초기에 시작되는 작업을 제어할 수 있으면 운영 체제 수준의 보호가 처음부터 시작되지 않도록 하는 선제적 소프트웨어를 배포하여 기존 엔드포인트 보안을 효과적으로 무력화할 수 있습니다.
실제로 LogoFAIL은 Linux, Windows, Mac 등 모든 운영 체제에 대한 공격으로 이어질 수 있습니다. 실제로 운영 체제를 재설치해도 살아남기 때문에 제거 시도에 매우 탄력적입니다.
펌웨어가 시스템을 표적으로 삼는 지속적인 방법으로 간주된 것은 이번이 처음이 아닙니다. 하드 디스크 펌웨어 익스플로잇 에서 알 수 있듯이 펌웨어는 시스템을 지속적으로 공격하는 방법으로 간주된 것은 이번이 처음은 아닙니다.
현실의 위협?
아직 그런 상황은 아닙니다. 이는 업계 뉴스 사이트 곳곳에 그려진 종말의 시나리오가 아니라 또 다른 근소한 차이일 수 있습니다.
영향을 받는 공급업체는 업데이트된 UEFI 이미지를 릴리스해야 하므로 문제의 배후에 있는 영향을 받는 라이브러리를 효과적으로 패치하려면 펌웨어 업데이트가 필요하지만, 이렇게 하면 이 위협으로부터 시스템을 보호할 수 있습니다.
모든 사람이 모든 시스템에 패치를 적용한다고 가정할 때 말입니다.
퍼징 UEFI
이 문제를 발견한 연구원들은 UEFI 코드를 퍼징하는 방식으로 문제를 해결했으며, 현재까지는 이론적인 위험에 불과하다는 점을 인정합니다.
UEFI 내부의 라이브러리에 대량의 데이터를 전송함으로써 버퍼 오버플로, 범위를 벗어난 읽기, 널 포인터 역참조 및 이와 유사한 문제를 유발하여 해당 라이브러리를 충돌시키는 여러 가지 새로운 방법을 식별할 수 있었습니다.
공급업체마다 펌웨어에 여러 이미지 형식을 지원하는 다양한 라이브러리를 포함하며, JPEG, BMP, 구형 PCX 및 타르가(TGA) 형식이 지원됩니다. 이를 통해 하드웨어 공급업체는 장비에 사용자 지정 이미지를 추가하여 다른 공급업체와 차별화하여 브랜드화할 수 있습니다.
디스플레이를 위해 구문 분석되기 전에 이미지 데이터에 대한 유효성 검사가 거의 이루어지지 않기 때문에 이러한 검사 부족을 악용하여 마음대로 충돌을 유발하는 사용자 지정 이미지를 생성하는 것이 비교적 쉬우며, UEFI는 예측 가능한 상태가 되어 코드를 배포하고 속여서 실행할 수 있게 됩니다.
소프트웨어 공급망
이러한 결과는 소프트웨어 공급망 위험의 또 다른 측면을 강조합니다. 하드웨어를 직접 표적으로 삼는 것은 개발자 도구부터 소스 코드 저장소에 이르기까지 소프트웨어 공급망에 영향을 미치는 이미 복잡한 위협을 추가하는 것입니다.
특정 워크로드가 이 거대한 종속성 및 환경 체인 전체에 걸쳐 취약점의 영향을 받을 수 있다는 사실은 인식 부족이나 효과적인 예방 조치의 부재로 인해 우리가 눈감고 있는 것처럼 보이지만, 그렇다고 해서 보안이 강화되는 것은 아닙니다.