controlpro
[논문 정리] A First ISA-Level Characterization of EM Pulse Effectson Superscalar Microarchitectures – A SecureSoftware Perspective 본문
[논문 정리] A First ISA-Level Characterization of EM Pulse Effectson Superscalar Microarchitectures – A SecureSoftware Perspective
controlpro 2022. 3. 9. 16:040. 실험 세팅
보통 대체적으로 EM fault에 대한 공격은 SoC 또는 IoT에 대한 공격을 진행이 되었다. 보통 그런 공격 칩은 dual-core 32bit Cortex-A9 MPCore를 사용하고 clock 단위는 1GHz(1차 EM fault공격이 쉽지 않은 환경)
80M정돌를 클락단위를 이용한다.
Cortext-A9 microarchitecture의 특징은 다음과 같다.
- 8단계의 pipeline
- 두개의 명령어를 동시에 처리할 수 있는 명령어 decoder
- 레지스터 단위 존제
- branch buffer 존제
- 64B instrusction cache 존재
메모리 계층의 특증은 level1 에서는 명령어 단위와 data caches 32KB 가존재 하고 level2에는 cache (256KB)를 처리하고 있다.
1. 공격 세팅
EM 자체는 동작하고 있는 프로세서에 대한 공격하는데 매우 효과적이다.
다음과 같은 EM injector를 사용하고 이 EM injector는 타겟보드의 XY에 대한 조정을 자동적으로 해준다. 보통은 pulse를 6ns to 150ns정도 단위로 넣고 400V를 정도를 주입을 한다.

EM probe는 주입 시간을 정확하게 측정하고 EM 주입시 효과를 정확하게 보는 역할을 하고 있다. 타겟 보드는 컴퓨터 와 연결이 되어 있어서 실시간으로 데이터를 받을 수 있는 환경이다.
다중 파라미터는 공간적인 측정을 하기 위해서는 반드시 세팅이 되어야 하는 부분이다. (공간 시간 voltage등등)
그래서 최적의 조건이 310V 조건에 6ns마다 펄스를 넣는 것이 최적인 조건임을 알았다.

이때 너무 작은 voltage 성공의 빈도를 적게 하지만 높은 voltage는 아무런 반응이 없게 만들어버릴 때가 많다. (그래서 최적의 공급 전압의 양을 전해줘야함. )
그러나 시간 단위는 거의 유일 하게 변하는 파라미터의 값중에 하나이다. target의 다른 명렁어를 공격을 하기 위해서는 다른 시간 단위를 통해서 넣어야한다.
2. 실험 단위 세팅
EM 추적에서 대상 코드의 패턴을 쉽게 탐지하기 위해서 대상 영역 전후에 200nop 시퀸스를 삽입.
이런한 nop슬레드는 상당히 낮은 전력을 발생하기 때문에 대상 영역을 확인하기 편하다.

GPIO는 대상 코드의 실행 추적중 주요한 부분을 포함하는 최대 타이밍 오프셋을 결정하는 데 도움을 준다.
다음의 세팅을 했다.
- 범용 레지스터는 레지스터 손상 시 분석을 좁히기 위해서 구별되는 낮은 해밍 웨이트값으로 초기화
- 작동 메모리 영역은 정확한 값으로 나옴
-
명령어를 공격하는건 존나 어렵다... 그래서 강화 방법을 사용하기로 한다.
루프의 종료조건과 계산과 간련된 명령을 공격하는 방법
SWIFT라는 모든 명령어의 복제 기초한다.
모든 기본 블록은 고유의 서명을 가지고 있다.(레지스터 손상을 감지하도록 설계)
이 모든 루프 강화체계는 간단한 마이크로 커트롤러인 ARM Cortex-M3에서 루프1에서는 단순한 제어 흐름하기 때문에 루프2에서만 Swift 결과를 보고한다.