QUICK REVIEW
[논문 리뷰] Injecting Software Vulnerabilities with Voltage Glitching
Yifan Lu|arXiv (Cornell University)|2019. 02. 14.
Physical Unclonable Functions (PUFs) and Hardware Security참고 문헌 7인용 수 6
한 줄 요약
이 논문은 크로우바르 회로를 사용하여 CMOS 논리에서 타이밍 위반을 유도하는 저비용 전압 글리치 공격을 수행함으로써, PlayStation Vita의 ARM 기반 SoC에서 보안 부팅 보호 기능을 우회하는 결함 주입을 구현한다. 체계적인 글리치 파라미터 스캔을 통해 저자들은 신뢰할 수 있는 코드 실행을 달성하고, 매핑되지 않은 부트 ROM을 성공적으로 덤프함으로써, 전압 글리치가 하드웨어로 보호된 소비자 기기에서 데이터에 의존하는 타이밍 취약점을 악용할 수 있음을 입증한다.
ABSTRACT
We show how voltage glitching can cause timing violations in CMOS behavior. Then we attack a real, security hardened, consumer device to gain code execution and dump the secure boot ROM.
연구 동기 및 목표
- 전압 글리치가 일시적인 공급 전압 강하 조건(V_DD' ≈ 0V)에서 발생할 때, CMOS 인버터의 전파 지연(t_pHL 및 t_pLH) 분석을 통해 전압 글리치 효과에 대한 이론적 모델을 수립한다.
- 설정/홀드 시간 위반을 유도하는 전압 글리치의 영향을 중심으로, 이론적 모델을 실제 보안 강화된 소비자 기기인 PlayStation Vita에 적용하여 초기 부팅 시 코드 실행을 달성한다.
- 실행 중 핵심 무결성 검사에 오류를 유도함으로써 전압 글리치가 보안 부팅 메커니즘을 우회할 수 있음을 입증한다.
- 오픈소스 하드웨어인 ChipWhisperer를 사용하여 현대의 보안 강화된 SoC에서도 결함 주입이 가능하고 재현 가능함을 보여준다.
제안 방법
- 일시적인 공급 전압 조건(V_DD' ≈ 0V)에서 전압 글리치가 발생할 때 CMOS 인버터의 동작을 분석하여 전파 지연(t_pHL 및 t_pLH)을 모델링한다.
- 결함 유도 타이밍 윈도우를 체계적으로 스캔하기 위해 글리치 시작 사이클 수 N과 글리치 지속 시간(사이클 수) M을 정의한다.
- Rigol DS1054Z 온도계를 사용하여 eMMC 통신을 모니터링하고, 예기치 않은 명령 시퀀스(예: 예상치 못한 READ_SINGLE_BLOCK 요청)를 통해 성공적인 결함 발생 여부를 감지한다.
- ChipWhisperer API를 사용하여 정의된 윈도우 내의 모든 N 및 M 조합을 테스트하는 자동화된 브루트포스 스캔을 구현하고, 각 시도 후 장치 동작을 관찰한다.
- 성공적인 결함 발생 시 장치가 첫 번째 블로터 로더 블록을 요청하는 것을 관찰함으로써, 성공적인 글리치 여부를 감지할 수 있음을 활용한다.
- 글리치 파라미터를 반복적으로 개선하고 결함을 악용하여 더 이른 코드 실행을 달성함으로써, SRAM에서 부트 ROM을 단계적으로 덤프할 수 있다.
실험 결과
연구 질문
- RQ1전압 글리치는 CMOS 논리에서 어떤 방식으로 타이밍 위반을 유도하는가, 특히 설정/홀드 시간 위반을 통해?
- RQ2실제 SoC의 조합 논리 및 플립플롭 동작에 영향을 주는 전압 글리치의 데이터에 의존하는 영향은 무엇인가?
- RQ3현대의 보안 강화된 소비자 기기에서 전압 글리치를 신뢰성 있게 사용하여 보안 부팅 메커니즘을 우회할 수 있는가?
- RQ4결함 주입 파라미터(N 및 M)는 어떻게 시스템적으로 발견하고 조정하여 일관된 악용을 가능하게 할 수 있는가?
- RQ5결함 유도 소프트웨어 취약점은 얼마나까지 악용되어 코드 실행과 데이터 유출을 달성할 수 있는가?
주요 결과
- PlayStation Vita의 F00D 프로세서에서 작동하는 전압 글리치 공격이 성공적으로 실행되어 초기 부팅 중에 신뢰할 수 있는 코드 실행을 달성했다.
- 최적의 글리치 파라미터는 N = 40800–40820 사이클, M = 45–55 사이클로 확인되었으며, 안정된 조건에서 성공률가 80% 이상이었다.
- 성공적인 결함는 예기치 않은 eMMC 명령 시퀀스를 관찰함으로써 감지되었으며, 특히 글리치 후 장치가 첫 번째 블로터 로더 블록을 요청하는 것으로 확인되었다.
- 공격은 bldr_size 무결성 검사에서 데이터에 의존하는 취약점을 악용하여, 잘못된 블록 수(0xE2)가 읽히도록 유도함으로써 이루어졌다.
- 부트 ROM은 직접 읽을 수 없었지만, SRAM에서 실행을 확보하고 이전 코드 섹션을 반복적으로 글리치하여 더 많은 데이터를 추출함으로써 간접적으로 덤프되었다.
- 이 방법은 강건하고 재현 가능했으며, 환경적 변동에도 불구하고 초기 유효한 설정 근처에서 새로운 작동 파라미터 조합을 쉽게 발견할 수 있었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.