TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 53 READS

x86 CPU에 숨겨진 하드웨어 백도어 '로젠브리지', 무엇을 남겼나

x86 CPU에 숨겨진 하드웨어 백도어 '로젠브리지', 무엇을 남겼나
SOURCE IMAGE · HACKER NEWS

보안 연구자 크리스토퍼 도마스(Christopher Domas, @xoreaxeaxeax)가 공개한 '프로젝트 로젠브리지(rosenbridge)'는 일부 x86 프로세서 안에 하드웨어 수준의 백도어가 존재한다는 사실을 실증한 연구다. 소프트웨어 취약점은 패치로 막을 수 있지만, 실리콘에 새겨진 기능은 사용자가 손댈 여지가 거의 없다. 로젠브리지는 바로 그 지점, 즉 우리가 신뢰의 최종 근거로 삼는 CPU 자체가 배신할 수 있다는 가능성을 구체적인 도구와 함께 보여준다는 점에서 실무자들이 눈여겨볼 만하다.

어떤 구조의 백도어인가

핵심은 권한 경계의 무력화다. 현대 운영체제는 사용자 애플리케이션이 도는 링 3(userland)와 커널이 도는 링 0(kernel)을 하드웨어적으로 분리해, 일반 코드가 커널 메모리를 함부로 읽거나 쓰지 못하도록 막는다. 로젠브리지는 이 보호 장치를 통째로 우회한다. 링 3 코드가 커널 데이터를 자유롭게 읽고 쓸 수 있게 되는 것이다. 원칙적으로 이 백도어는 비활성 상태이며, 이를 켜려면 링 0 권한과 특정 모델별 레지스터(MSR) 제어 비트 조작이 필요하다. 그러나 연구진은 일부 시스템에서 이 기능이 기본적으로 활성화되어 있는 것을 확인했다. 이 경우 아무런 권한이 없는 코드가 커널을 임의로 수정할 수 있다.

동작 원리는 독특하다. 로젠브리지는 메인 x86 코어 옆에 나란히 심어진 작고 별도의 비(非) x86 코어다. MSR 비트로 기능을 켠 뒤 특정 '실행(launch) 명령'으로 이 숨은 코어를 깨우고, 이후에는 특수하게 포맷된 x86 명령에 감싼 명령들을 이 코어에 흘려보낸다. 연구진이 '깊숙이 내장된 명령 집합(Deeply Embedded Instruction Set, DEIS)'이라 부르는 이 명령들은 모든 메모리 보호와 권한 검사를 건너뛴 채 실행된다.

ME나 PSP와는 다른 층위

주목할 점은 이 코어가 인텔 매니지먼트 엔진(ME)이나 AMD 플랫폼 보안 프로세서(PSP) 같은 기존에 알려진 코프로세서와는 완전히 별개이며, 그보다 훨씬 깊은 곳에 자리한다는 것이다. ME나 PSP가 시스템 메모리에 접근하는 수준이라면, 로젠브리지 코어는 CPU의 메모리뿐 아니라 레지스터 파일과 실행 파이프라인에까지 직접 손을 뻗는다. 그만큼 탐지와 방어가 어렵다는 뜻이기도 하다.

영향 범위는 다행히 제한적이다. 연구진은 VIA C3 프로세서에만 해당 문제가 있는 것으로 본다. VIA의 C 시리즈는 산업 자동화, POS 단말, ATM, 의료 장비 등 임베디드 시장을 겨냥해 판매됐고 일부 소비자용 데스크톱·노트북에도 쓰였다. C3 이후 세대에서는 이 기능이 더 이상 포함되지 않는다는 것이 연구진의 설명이다. 또한 연구진은 이 기능이 악의로 심어졌다고 보지 않는다. 저전력과 임베디드 설계에 강점을 지닌 VIA가 임베디드 시장을 위한 유용한 기능으로 선의로 만들었고, 초기 세대 일부에서 의도치 않게 비활성화되지 않은 채 남았다는 것이 저자의 추정이다.

연구가 남긴 도구와 방법론

저장소에는 자신의 CPU가 영향을 받는지 확인하는 알파 단계의 탐지 도구, 백도어를 잠그거나 여는 유틸리티, 권한 상승 개념 증명(PoC), DEIS용 어셈블러, 그리고 부팅 초기에 백도어를 닫는 스크립트가 포함돼 있다. 미지의 명령을 발굴하는 데 쓰인 샌드시프터(sandsifter) 퍼저와, 이를 축소해 x86 코어에서 숨은 코어로 명령을 전달하는 '브리지 명령'을 찾아낸 도구, 퍼징 작업을 여러 워커에 분산해 관리하는 유틸리티 등 실제 리버스 엔지니어링 과정에서 쓰인 자산이 함께 공개된 점이 이 연구의 실질적 가치다.

다만 한계는 분명하다. 탐지·차단 도구는 반드시 가상머신이 아닌 베어메탈에서 실행해야 하며, 알파 상태여서 백도어가 없는 시스템에서는 오히려 시스템을 크래시, 패닉, 행 상태로 만들 수 있다. 도구들은 연구된 특정 프로세서 계열과 코어 형태에 맞춰져 있어, 백도어가 조금이라도 변형된 형태라면 놓치게 된다. 부팅 시 차단 스크립트를 적용하더라도 커널 권한을 가진 공격자는 백도어를 다시 켤 수 있으며, 이 스크립트는 시스템마다 별도 적응이 필요한 뼈대에 불과하다.

결국 로젠브리지의 무게중심은 특정 구형 칩의 위험도 자체보다, 점점 복잡해지는 프로세서 안에서 백도어가 어떻게 생겨나고 어떻게 발견될 수 있는지를 보여주는 사례 연구이자 사고 실험에 있다. 지금도 자산·재고에 VIA C3 기반 임베디드 장비를 운영하는 조직이라면 실제 점검 대상이 되지만, 그렇지 않더라도 시사점은 유효하다. 우리가 신뢰의 뿌리(root of trust)로 가정하는 하드웨어조차 검증의 대상이어야 하며, 소프트웨어 레이어의 방어만으로는 결코 닿을 수 없는 위협의 층위가 존재한다는 점이다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/xoreaxeaxeax/rosenbridge
SHARE
처리 중...