피드로 돌아가기
Hacker NewsSecurity
원문 읽기
Can you get root with only a cigarette lighter? (2024)
David Buchanan이 라이터의 압전 소자와 납땜 안테나만으로 DDR3 메모리 버스에 전자기 결함을 주입해 Linux 로컬 권한 상승 및 CPython 샌드박스 탈출 익스플로잇 구현
AI 요약
Context
Nintendo Switch 2의 예상 출시로 소프트웨어 취약점이 소진되면서 하드웨어 결함 주입(Fault Injection)을 통한 로컬 권한 상승 기법의 필요성이 증대했다. 기존 하드웨어 결함 주입 도구는 고가의 전자기 펄스(EMFI) 장비를 요구하므로 저비용 대체 수단이 필요했다.
Technical Solution
- DDR3 메모리 버스의 DQ26 핀에 15옴 저항과 안테나선 납땜: 압전 라이터의 전자기 간섭을 데이터 버스에 직접 전달하는 수신 안테나 구성
- 메모리 읽기/쓰기 시 특정 비트(DQ26 측정 시 비트 29) 반복 반전 유도: 클릭 시점의 반응 속도 해상도로 결함 주입 타이밍 제어
- CPython 힙 구조 악용 익스플로잇: bytes 객체 내부에 위조된 bytearray 구조 배치 후 결함 주입으로 포인터 변조, 임의 메모리 접근 실현
- Linux 페이지 테이블(Page Table) 및 TLB(Translation Lookaside Buffer) 엔트리 결함 주입: 가상 메모리 보호 우회로 root 권한 획득
- 2011년 제조 Samsung S3520 노트북(Intel i3-2310M, DDR3 1GB)에서 Arch Linux 환경에서 검증
Key Takeaway
저가 하드웨어(라이터 ~$2, 저항 ~$0.01)만으로도 정교한 결함 주입 익스플로잇이 가능하며, 이는 향후 DDR4/DDR5, ARM 아키텍처, hypervisor 탈출, webkit 익스플로잇 등으로 확대될 수 있음을 시사한다. ECC 메모리 유형(DDR5 Link-ECC 등)의 완화 효과와 RP2040 기반 자동화 가능성이 향후 연구 과제다.
실천 포인트
임베디드 보안 연구자 및 하드웨어 해킹 커뮤니티에서 압전 소자 기반 저비용 EMFI 도구를 구축할 때, 타겟 메모리 버스의 DQ 핀 식별 및 단일 비트 반전 특성을 파악한 후 가상 메모리 구조(페이지 테이블, TLB) 또는 인터프리터 힙 객체(CPython 등)에 선택적 결함을 주입하면 권한 상승 익스플로잇을 개발할 수 있다.