보안 구멍난 인텔CPU, 예견된 사고였다

미닉스3 기반 ME 펌웨어 특성…잠재적 위협 꼽혀

컴퓨팅입력 :2017/11/28 15:37

최근 2년새 시판된 거의 모든 컴퓨터 제품에 영향을 미친 인텔 중앙처리장치(CPU) 펌웨어 보안취약점 문제는 보안전문가들 사이에선 예견된 사고였다.

인텔은 지난 20일 공식 보안권고를 통해 복수의 CPU 제품군과 시리즈에 탑재된 펌웨어 3종에서 공통 보안취약점 공개항목(CVE) 8건을 발견했다고 발표했다. 그중 절반인 4건은 매니지먼트엔진(ME)이라는 펌웨어에서 발견됐다. [☞원문보기]

ME 펌웨어 취약점 영향을 받는 인텔 CPU 제품군은 광범위하다. 6~8세대 코어 및 6, 7세대 X시리즈 코어칩과 스케일러블, E3, W 제온칩을 아우른다. 즉 최근 2~3년새 시판된 노트북, 데스크톱, 워크스테이션, 서버용 CPU 상당수가 잠재적 위험에 노출된 상태다. [☞관련기사]

당시 와이어드는 인텔의 보안권고가 전문가들이 우려하는 '최악의 상황'이 벌어질 수 있음을 확인한 것이라며 펌웨어 결함이 인텔 CPU를 탑재한 단말기 수백만대를 보안 위협에 노출시켰다고 보도했다. [☞원문보기]

28일 인텔코리아 측에서도 "특정 펌웨어 버전을 사용하는 PC, 서버 및 사물인터넷(IoT) 플랫폼에 영향을 미칠 수 있는 보안 관련 취약점을 확인했다"며 "인텔은 디바이스 제조업체와 함께 이를 해결할 수 있는 펌웨어 및 소프트웨어(SW) 업데이트를 진행했다"고 밝혔다.

PC와 서버를 막론하고 2015년 이후 출시된 컴퓨터를 심각한 보안위협에 빠뜨릴 수 있는 보안결함이 인텔CPU의 매니지먼트엔진(ME)이라는 펌웨어에서 발견됐다. ME는 실제 취약점이 확인되기 전부터 시스템과 사용자를 잠재 보안 위협에 빠뜨릴 가능성이 있다는 우려의 대상이었다.

이어 "현재 SW 업데이트가 가능하다"며 "해당 인텔 제품이 탑재된 컴퓨터나 디바이스를 쓰는 기업, 시스템 관리자, 소유자는 디바이스 제조사 및 공급업체와 시스템 업데이트 관련 항목을 확인해 가능한 빨리 적용 가능한 업데이트를 수행하라"고 당부했다.

현재 기업과 개인 사용자는 인텔 권고에 따라 최신 펌웨어 업데이트를 적용해야 안전하다. 업데이트는 인텔이 아니라 OEM 파트너 제조사를 통해 제공돼야 한다. 제조사가 펌웨어 업데이트를 제공하지 않으면 기업과 개인 사용자의 컴퓨터는 무방비 상태가 된다.

■인텔CPU 펌웨어 보안결함, 처음이 아니다

인텔 CPU에서 ME 펌웨어 관련 보안 문제는 처음 불거진 게 아니다. 지난 5월 인텔 CPU의 액티브매니지먼트테크놀로지(AMT) 기능에서 보안 결함이 발생한 사례가 있다. AMT는 ME 펌웨어에서 돌아가는 SW였다. 그 영향 범위는 지난 2008년 출시된 칩까지 거슬러올라갔다.

반도체

이번과 마찬가지로 제조사들이 ME 펌웨어 업데이트를 제공해야 해당 사용자가 AMT 취약점에 따른 잠재적 위협으로부터 보호받을 수 있었다. 그러기엔 출시 후 시간이 너무 많이 흘렀다. 인텔은 ME 펌웨어 기능을 비활성화하라는 요구를 받기도 했다. [☞원문보기]

인텔 CPU의 ME 펌웨어 보안 문제에 따른 최악의 시나리오는 이렇다. 공격자가 인텔 CPU를 탑재한 기기의 시스템 제어권을 탈취하고, 데이터 무단 접근이나 위변조에 무방비 노출되는데, 운영체제(OS)에서 돌아가는 백신처럼 일반적인 보안수단으로는 탐지조차 불가능해진다.

이 취약점 때문에 데스크톱과 노트북 기기 사용자는 개인 사생활 기록을 무단으로 침해당할 수 있고, 주요 업무 기록과 사업 관련 자료를 몽땅 잃어버릴 수도 있다. 서버 관리자는 디지털로 처리되는 조직내 유무형 자산을 손실하거나 민감한 고객 데이터를 유출당할 수도 있다.

ME 펌웨어가 대체 뭐기에 그 보안취약점이 이런 시나리오의 방아쇠 역할을 할 수 있다는 걸까.

ME는 인텔 CPU 속에 숨어 있는 서브시스템이다. 공식적으로는 관리자가 인텔 CPU 장치의 모든 기능을 원격으로 제어해 업데이트와 장애해결 조치를 적용할 수 있게 해주는 역할을 한다.

보안취약점 [사진=Pixabay]

ME의 정체는 다른 SW 구동을 위한 기반을 제공하는, 일종의 운영체제(OS)다. 구동되기 위해 인텔 칩셋 위에 독립적인 자기만의 마이크로프로세서를 갖고 있다. 이 OS는 인텔이 완전히 새로 개발한 게 아니라 미닉스(MINIX)라는 오픈소스OS를 개조한 버전이다.

■인텔 ME 동작, 사용자도, OS도, CPU도 못알아챈다

미닉스는 1987년 네덜란드 대학교수 앤드류 타넨바움이 만든 유닉스 계열 OS다. 리누스 토발즈가 미닉스로부터 영감을 받아 만든 게 리눅스다. [☞관련기사] 미닉스는 대학교수가 학생들에게 OS의 기초를 가르치기 위해 만든 OS로, 산업용으로 쓰이도록 만들어진 게 아니었다.

오픈소스 SW 소식을 주로 다루는 온라인사이트 포스바이츠의 설명에 따르면 인텔은 마이크로커널OS로 진화한 '미닉스3' 버전을 가져가 ME를 만들어 CPU에 탑재했다. 이는 2015년 이후 출시된 모든 인텔 기반 데스크톱, 노트북, 서버에서 구동되고 있다. [☞원문보기]

포스바이츠의 설명에 따르면 오리지널 버전 미닉스와 ME는 시스템 사용자가 실제로 다루는 윈도 및 리눅스 OS보다 보안에 밀접한 시스템 핵심 영역(커널)에 더 가깝게 동작한다. 결과적으로 그만큼 더 민감하고 역할을 수행한다.

전체 시스템 차원에서 미닉스와 ME의 SW 코드가 어떤 수준에서 동작하는지 이해하면 오히려 이해하기 쉬워진다.

시스템상의 실행권한과 보안수준에따라 링(ring)3~0까지 나뉘는 SW는 사용자가 볼 수 있는 영역이지만 ME 펌웨어는 사용자나 CPU 수준에도 가시성이 없는 링 마이너스3(Ring -3)에서 동작한다. [사진=Pixabay]

OS에서 동작하는 SW 코드는 OS차원의 실행 권한, 보호수준에 따라 다양한 '링(Ring) 숫자' 등급으로 나눠볼 수 있다. 가장 권한이 낮은 '애플리케이션'은 링3다. 그보다 약간 권한이 높은 '디바이스 드라이버'는 링2 또는 링1이다. 가장 권한이 높은 '커널(kernel)'이 링0다.

이 체계는 링0보다 심층적인 '마이너스' 영역으로 이어진다. 예를 들어 젠(Xen)같은 가상화 SW는 링 -1이다. 여기까진 그래도 사용자가 인식할 수 있다. 아예 사용자 모르게 CPU 수준에서만 인식되는 영역이 있다. 모든 CPU 자원을 제어하는 링 -2다.

그리고 CPU수준에서조차 인식되지 않는 링 -3 영역이 있다. 링 -2보다 더 높은 실행 권한을 갖고 시스템을 켜고 끄거나 디스크 이미지를 덮어쓸 수 있는 수준이다. 여기서 동작하는 게 바로 미닉스3와 이를 변형한 인텔 ME 펌웨어다.

■민감한 역할 대비 보안취약점 악용 시도에 취약

ME 펌웨어 제어권이 공격자에게 넘어가면 OS 수준에서도, CPU 수준에서도 알아차릴 수 없는 동작이나 오류에 속수무책이 될 수 밖에 없다.

요컨대 이런 인텔ME는 컴퓨터 OS처럼 사용자가 쉽게 통제할 수 없는 영역까지 접근할 수 있고, 그 전체 동작방식은 공개돼있지 않고, 문제가 발생해도 펌웨어에 있는 코드라서 쉽게 고칠 수 없다는 점에서 언제든 보안 위협이 될 것이라 예상할 수 있었다는 얘기다.

ME의 보안취약점을 해결하려면 시스템 제조사의 대응을 기다려야 한다. 사용자 스스로 결함을 고치거나 비활성화할 수 있는 공식적인 방법은 지원되지 않는다. [사진=Pixabay]

ME는 시스템관리자나 사용자보다 높은 권한을 갖고 더 광범위한 시스템 정보와 제어 기능에 접근할 여지가 있다. 또 자체 구성요소로 미뤄볼 때, 인터넷으로 시스템관리자와 사용자 의도와 다른 명령을 전달받아 수행하거나, 아무도 모르게 정보를 기록하고 외부로 보낼 수 있다. ME의 제어권이 공격자에게 넘어가면 해당 시스템에서 방해받지 않고 스파이 노릇을 할 수 있다는 얘기다.

이미 미국 지디넷은 인텔이 3가지 펌웨어 보안취약점을 확인하기 전인 지난 7일에 ME가 관여하는 것으로 추정되는 동작 및 관리 영역 특성과 보안 관점의 유의점을 다음 4가지로 소개했다. [☞원문보기]

첫째, ME는 심층적인 커널 수준의 동작을 맡고 그 최종 제어권을 x86 플랫폼의 소유자나 OS에 주지 않는다. 둘째, ME는 OS 커널과 하드웨어 사이의 동작 일부를 맡고 있다. 셋째, ME는 오리지널 버전 미닉스와 달리 인텔의 독점적인 코드로 구성돼 있고 따라서 보안취약점을 악용당하기 쉽다. 넷째, 코드가 플래시메모리에 기록되기 때문에 보안취약점에 항시 노출될 수 있고, 사용자는 스스로 수정할 수 없다.

관련기사

인텔 ME가 OS로서 갖춘 구성요소를 살펴 보면 좀 더 심각해진다. 인텔이 ME 소스코드를 공개하진 않았지만 미국 지디넷은 다른 보안연구자가 분석한 결과 다음 4가지 요소가 파악됐다. 첫째는 TCP/IP 네트워킹 스택이다. 둘째는 파일시스템이다. 셋째는 디스크, 네트워크, USB, 마우스 드라이버다. 넷째는 웹서버다. 이런 구성요소를 포함하는 ME에 보안취약점이 있다면 인터넷을 통한 공격에 노출될 소지가 크다.

이를 전한 스티븐 J. 본 니콜스는 "(인텔칩의) 미닉스는 여러분의 패스워드에도 접근해 왔고, 여러분 컴퓨터 전원이 꺼져 있을 때조차 펌웨어 이미지를 재구성할 수도 있다"며 "자체 코드 변형 동작을 구현할 수도 있기 때문에, 만일 여러분이 서버 전원을 뽑아 놓더라도 다시 전원을 연결할 때까지 공격 시도가 대기하는 상황이 벌어질 수도 있다"고 지적했다.