x86 CPU의 숨겨진 비밀 파헤치기

by DD
1개월 전
조회수 0

x86 프로세서의 숨겨진 명령어 집합(Instruction Set)을 분석하고 취약점 탐색 기법을 소개함

디스어셈블러(Disassembler)페이지 폴트(Page Fault)를 활용하여 미사용 명령어(Undocumented Instructions)를 찾는 방법을 시연함

CPU 명령어 디코딩(Instruction Decoding)의 복잡성과 하드웨어 보안 취약점의 현실적인 위험성을 강조함

실제 x86 프로세서에서 발견된 다양한 종류의 보안 취약점과 그 영향력을 설명함

x86 명령어 디코딩의 복잡성

발표자는 x86 명령어 길이가 1바이트에서 15바이트까지 가변적임을 지적하며, 이는 명령어 디코딩(Instruction Decoding)을 매우 복잡하게 만든다고 설명한다. 1.3억 개 이상의 가능한 명령어 조합은 무차별 대입 방식의 분석을 비효율적으로 만들며, 숨겨진 명령어(Hidden Instructions)를 찾기 위한 정교한 탐색 전략이 필요함을 강조한다.

페이지 폴트(Page Fault)를 이용한 명령어 탐색

영상에서는 페이지 폴트(Page Fault)를 활용하여 미사용 명령어(Undocumented Instructions)를 탐지하는 기법을 소개한다. 프로세서가 존재하지 않는 메모리 주소에 접근할 때 발생하는 페이지 폴트를 이용, 디스어셈블러(Disassembler)가 인식하지 못하는 명령어 시퀀스를 식별하고, 이를 통해 보안 취약점(Security Vulnerabilities)을 찾아내는 과정을 시연한다.

CPU 명령어의 실제 보안 취약점 사례

발표자는 인텔의 '푸프(FuuF)' 버그'F-div' 버그 등 실제 하드웨어에서 발견된 치명적인 취약점들을 예시로 든다. 이러한 취약점들은 커널 권한 상승(Kernel Privilege Escalation)이나 데이터 유출(Data Leakage)과 같은 심각한 보안 문제를 야기할 수 있으며, 이는 하드웨어 설계 자체의 근본적인 문제를 드러낸다고 지적한다.

샌드 시프터(SandSifter) 도구 소개

발표자는 이러한 분석을 자동화하기 위해 개발한 샌드 시프터(SandSifter) 도구를 소개한다. 이 도구는 CPU 명령어 튜닝(Instruction Tuning)페이지 폴트 기반 탐색을 결합하여, 프로세서의 숨겨진 명령어와 취약점을 효율적으로 찾아낸다. 이를 통해 CPU 아키텍처의 투명성을 높이고자 하는 목표를 설명한다.

하드웨어 취약점 분석의 어려움과 과제

샌드 시프터는 CPU의 실제 동작 방식제조사 문서화된 정보 간의 불일치를 탐지하는 데 중점을 둔다. 특히, 미사용 명령어(Undocumented Instructions)잘못된 명령어(Malformed Instructions)는 탐지가 매우 어렵고, 발견되더라도 실제 악용 가능성을 판단하기 위한 추가적인 분석이 필요함을 강조한다. 이는 하드웨어 보안 연구의 복잡성을 보여준다.

Breaking the x86 Instruction Set

댓글 0

첫 번째 댓글을 남겨보세요!