
전자기 결함 주입(EMFI) 공격 소개
# 결함 주입 공격에 대한 초보자 친화적인 소개: 전자기 결함 주입(EMFI)의 이해
**목차**
- [결함 주입 공격 소개](#결함-주입-공격-소개)
- [전자기 결함 주입(EMFI)란 무엇인가?](#전자기-결함-주입emfi란-무엇인가)
- [EMFI의 작동 원리: 이론에서 실전으로](#emfi의-작동-원리-이론에서-실전으로)
- [전자기 간섭의 이해](#전자기-간섭의-이해)
- [집적 회로(IC)에서의 EMFI 영향](#집적-회로ic에서의-emfi-영향)
- [컴팩트한 EMFI 설정: 구성 요소 및 조립](#컴팩트한-emfi-설정-구성-요소-및-조립)
- [필요한 장비](#필요한-장비)
- [일반적인 설정 다이어그램](#일반적인-설정-다이어그램)
- [안전 고려 사항](#안전-고려-사항)
- [실전에서의 EMFI: 실제 공격 시나리오](#실전에서의-emfi-실제-공격-시나리오)
- [사례 연구 1: 암호화 키 추출](#사례-연구-1-암호화-키-추출)
- [사례 연구 2: 보안 마이크로컨트롤러에 대한 결함 공격](#사례-연구-2-보안-마이크로컨트롤러에-대한-결함-공격)
- [사례 연구 3: 임베디드 시스템 온 칩(SoC)에서의 EMFI](#사례-연구-3-임베디드-시스템-온-칩soc에서의-emfi)
- [EMFI를 사용한 취약성 탐지](#emfi를-사용한-취약성-탐지)
- [결함 응답 스캔](#결함-응답-스캔)
- [Python과 Bash로 결함 주입 테스트 자동화](#python과-bash로-결함-주입-테스트-자동화)
- [결함 주입 공격 완화: 방어책](#결함-주입-공격-완화-방어책)
- [지식 확장: 리소스 및 커뮤니티](#지식-확장-리소스-및-커뮤니티)
- [결론](#결론)
- [참고 문헌](#참고-문헌)
---
## 결함 주입 공격 소개
결함 주입 공격은 **장치의 작동에 의도적으로 오류(결함)를 유발하는** 하드웨어 공격의 한 유형으로, 보안 검사 우회, 민감 데이터 추출, 시스템의 신뢰성을 저해하는 것을 목표로 합니다. 이 기술은 스마트 카드부터 IoT 장치에 이르기까지 임베디드 시스템에서 실행되는 보안 애플리케이션의 급증과 함께 특히 중요해졌습니다.
결함 주입은 여러 방법으로 수행될 수 있습니다:
- 전압/클럭 트리거링
- 레이저 결함 주입
- **전자기 결함 주입(EMFI)**
- 온도/환경 조작
이 중에서 **EMFI**는 비접촉식 기술로 두드러지며, 단기간의 전자기(EM) 에너지를 활용하여 실리콘의 특정 영역을 방해하여 일시적인 결함을 초래합니다. 이 글에서는 사이버 보안 연구와 실제 공격에 사용되는 EMFI에 중점을 둡니다.
---
## 전자기 결함 주입(EMFI)이란 무엇인가?
**전자기 결함 주입(EMFI)**는 집적 회로(IC) 또는 마이크로컨트롤러의 특정 부분에 제어된 전자기 에너지의 폭발을 주입하는 고급 기술입니다. 이 기술의 목적은 **비트 플립, 타이밍 위반 또는 명령 건너뛰기와 같은 결함을 유발하여** 장치의 올바른 작동을 방해하는 것입니다.
### 주요 특징:
- **비침습적**: 패키지를 열 필요가 없으며 내부 실리콘에 물리적으로 접촉하지 않습니다.
- **정밀함**: 칩 내부의 특정 기능 단위(예: CPU 코어, I/O)를 타겟팅할 수 있습니다.
- **재현 가능함**: 적절한 설정을 통해 일관되고 재현 가능한 결함 주입이 가능합니다.
- **강력함**: 안전 부팅, 암호화 엔진 또는 신변 조작 방지와 같은 보안 기능이 있는 칩에 특히 강력합니다.
### 개념 개요

*그림: 전자기 결함 주입의 원리 (단순화)*
EMFI 기술은 일반적으로 다음과 같습니다:
- 전자기장을 집중시키기 위해 **코일 기반 탐침**(자체 제작 또는 상업용)을 사용합니다.
- 나노초 규모의 고전압 펄스를 생성하기 위해 **EM 펄스 생성기**를 사용합니다.
- 민감한 컴퓨팅 단계 동안 의미 있는 결함을 유발할 확률을 극대화하기 위해 시스템 클럭과 동기화합니다.
**출처:** [arXiv:2509.18341v1](https://arxiv.org/html/2509.18341v1), [Ledger Blog on Compact EMFI](https://www.ledger.com/blog/compact-em)
---
## EMFI의 작동 원리: 이론에서 실전으로
### 전자기 간섭의 이해
**전자기 간섭(EMI)**는 외부 전자기장이 전자 회로의 정상 작동을 방해할 때 발생합니다. 결함 주입의 맥락에서, 공격은 집중적이고 의도적이며 고도로 제어됩니다.
**EMFI 이면의 물리학:**
- 맥스웰 방정식은 EM 필드가 어떻게 전파되고 물질과 상호작용하는지를 설명합니다.
- 빠르고 고에너지의 과도 현상은 피해 회로에 불필요한 전류를 유도합니다.
- 디지털 시스템에서 이러한 현상은 중요한 게이트나 메모리 셀의 전압(또는 전류) 급증을 일으켜 결함을 유발할 수 있습니다.
### 집적 회로(IC)에서의 EMFI 영향
정교하게 조작된 EM 펄스가 장치에 발사되면 여러 공격 효과가 가능합니다:
- **타이밍 위반:** 데이터가 올바르게 래치되지 않거나 제어 시퀀스가 순차적으로 잘못됩니다.
- **명령 건너뛰기:** CPU가 실수로 명령을 건너뜁니다.
- **비트 플립:** 유도된 전류로 인해 메모리나 레지스터의 비트가 뒤바뀝니다.
- **보안 우회:** 보안 검사나 조건 분기를 잘못 이행할 수 있습니다.
**예시:**
마이크로컨트롤러가 암호가 올바른지 확인하는 코드를 실행하고 있습니다. EMFI 공격은 이 확인의 결과를 바꾸어, 인증을 우회하고 비인가 접근을 부여할 수 있습니다.
---
## 컴팩트한 EMFI 설정: 구성 요소 및 조립
공격을 시작하기 전에 보안 실험실에서 전형적인 EMFI 설정이 어떻게 보이는지 알아봅시다.
### 필요한 장비
1. **펄스 생성기** — 빠르고 정확한 고전압 펄스를 생성합니다 (종종 수백 볼트까지, 수 나노초 정도의 폭).
2. **EM 주입 탐침** — 일반적으로 대상 칩 바로 위에 위치한 작은 코일(루프 탐침)입니다.
3. **오실로스코프/로직 분석기** — 시스템의 응답을 모니터링하고 타이밍 보정을 돕습니다.
4. **트리거 및 동기화 장비** — 결함이 정확히 필요한 시간에 주입되도록 보장합니다.
5. **대상 장치** — 테스트할 임베디드 시스템, 마이크로컨트롤러 또는 SoC.
6. **포지셔닝 시스템** — 정밀한 탐침 정렬을 위한 XYZ 마이크로 포지셔너.
7. **차폐 및 안전 장비** — 부수적인 간섭과 부상을 방지합니다.
**참고:** 일부 고급 설정은 모터가 달린 단계, 컴퓨터 제어 가능 지연 그리고 머신 러닝까지 사용하여 과정을 자동화합니다.
### 일반적인 설정 다이어그램
```plaintext
+---------------------+ 동축 케이블 +-----------------------+
| 펄스 생성기 |--------------------->| EM 탐침 (루프/코일) |
+---------------------+ +-----------------------+
|
V
+-----------+
| 대상 장치 |
| 칩 |
+-----------+
|
v
+---------+ 트리거/동기화 +-------------+ USB/직렬 +-----------+
| 제어 PC |<--------------------->| 오실로스코프 |--------------->| 호스트 PC |
+---------+ +-------------+ +-----------+
(제어, 타이밍) (응답 모니터링)
안전 고려 사항
- 고전압: 펄스 생성기는 위험한 전압을 전달할 수 있으므로 매우 주의해서 다뤄야 합니다.
- EM 필드: 공격을 국한시키고 방출을 최소화하기 위해 차폐가 필요합니다.
- 장치 손상: 반복적이고 고에너지의 펄스는 대상 IC를 영구적으로 손상시킬 수 있습니다.
실전에서의 EMFI: 실제 공격 시나리오
사례 연구 1: 암호화 키 추출
공격 개념
많은 장치는 내부에 저장된 암호화 키(AES, RSA 키 등)에 의존합니다. 암호화 계산(예: RSA에서의 곱셈) 동안 실행을 방해하면 공격자는 결함이 있는 출력을 유도하고, 이를 통해 비밀 키를 수학적으로 복구할 수 있습니다.
예시
- 대상: RSA 서명 계산을 실행하는 스마트카드.
- 절차: 개인 키 계산 중 EMFI를 적용하여 중요한 비트를 선택적으로 결함 발생.
- 결과: 여러개의 결함있는 출력과 원본 암호문을 사용하여 차등 결함 분석 기술을 통해 키를 재구성합니다.
차등 결함 분석 흐름
flowchart TD
A[장치가 암호화 알고리즘을 실행] --> B[EMFI가 계산에 결함 유발]
B --> C[출력이 캡처됨 (결함 있는 암호/서명)]
C --> D[공격자가 알려진 방정식과 여러개의 결함 있는 출력을 사용]
D --> E[대수적 기술을 통해 키 복구]
사례 연구 2: 보안 마이크로컨트롤러에 대한 결함 공격
현대의 결제 카드, TPM 또는 인증 토큰에 사용되는 마이크로컨트롤러는 보안 기능을 포함하고 있지만 EMFI는 이를 우회하여 비밀을 밝힐 수 있습니다.
예시: 인증 검사 건너뛰기
가령 대상 코드 세그먼트가 암호를 검사합니다:
if (input_hash == stored_hash) {
grant_access();
}
비교가 수행되는 동안 잘 타이밍된 EMFI 펄스는 CPU의 제어 흐름 레지스터 또는 플래그를 손상시켜, 조건문을 건너뛰고 부정확하게 접근을 부여할 수 있습니다.
시연: 제어 흐름 조작 시각화
| 주기 | 작업 | 레지스터 상태 | EMFI 효과 | 출력 |
|---|---|---|---|---|
| T1 | input_hash 로드 | input_hash in R1 | - | - |
| T2 | input_hash와 stored 비교 | R1, R2 | EM 펄스 | 잘못된 비교 결과 |
| T3 | 동일할 경우 분기 | 조건 확인 | 건너뜀 | 접근 허가 |
사례 연구 3: 임베디드 시스템 온 칩(SoC)에서의 EMFI
SoC(e.g., ARM Cortex-M, A53)에서 EMFI는 넓은 공격 표면을 제공합니다:
- 부트 ROM
- 보안 인클레이브
- 실시간 코드 암호 해독
- 런타임 데이터 인증
예시: 안전 부팅에 대한 공격
SoC는 부팅 시 펌웨어 무결성을 검사할 수 있습니다. 공격자는 CRC 검사 루틴에 EMFI 펄스를 동기화하여 누락되거나 계산 오류를 유발합니다. 장치는 그러면 공격자가 수정한(악성) 펌웨어를 부팅합니다.
현실 세계의 참조:
Creach Labs 세미나에서 연구자들은 트러스트드 실행 환경을 구동하는 SoC가 EMFI로 해킹되는 방법을 보여주었습니다.
EMFI를 사용한 취약성 탐지
보안 연구자들은 종종 EMFI를 사용하여 새로운 장치의 취약성을 특성화합니다. 이 과정은 체계적인 프로빙, 결함 주입 및 장치 응답 관찰을 포함합니다.
결함 응답 스캔
단계별 과정:
- 민감한 코드 식별: 어디를 겨냥해야 할까요(예: 암호 비교, 암호화 루틴)?
- 펄스 동기화: GPIO, 직렬 출력 또는 디버깅 라인을 사용하여 정확한 타이밍 보장.
- 매개변수 다양화: 펄스 폭, 진폭, 타이밍 오프셋 및 탐침 위치 탐색.
- 출력 수집: 장치 응답, 결함 있는 암호문 또는 디버그 로그 저장 및 분석.
- 결함 분류: 스크립트를 활용하여 출력을 파싱하고 결함 유형 — 명령 건너뛰기, 비트 플립, 전체 장치 재설정 —에 따라 분류합니다.
스캔 스크립트 예제 (Bash + Python):
귀하의 장치가 UART를 통해 진단 정보를 출력하고, 결함 분류를 자동화하고자 한다고 가정합니다.
Bash: 각 주입마다 일련의 로그를 캡처하는 결함 스캔 시작:
for delay in $(seq 0 100 5000); do
echo "Injecting at delay $delay ns"
./trigger_pulsegen --delay $delay --width 10 --voltage 200
cat /dev/ttyUSB0 > log_${delay}.txt &
sleep 0.5
pkill -f "cat /dev/ttyUSB0"
done
Python: 로그에서 결함 패턴(예: 'FAULT DETECTED' 검색) 파싱:
import glob
for logfile in glob.glob("log_*.txt"):
with open(logfile) as f:
content = f.read()
if "FAULT DETECTED" in content:
print(f"{logfile}: Fault observed")
elif "RESET" in content:
print(f"{logfile}: Device reset detected")
else:
print(f"{logfile}: No fault")
Python과 Bash로 결함 주입 테스트 자동화
대규모 연구에는 모든 장비를 소프트웨어 자동화와 통합하는 것이 포함됩니다:
- 탐침 위치 자동화 (모터 지원)
- 펄스 매개변수를 프로그래밍적으로 제어
- 실시간 데이터 수집 및 처리
- 관측 결과에 기반한 광범위한 타겟팅
간단한 Python 자동화 예제:
펄스 생성기 및 오실로스코프의 API가 있다고 가정합니다:
import pulsegen
import oscilloscope
# 기기 연결
pulse = pulsegen.connect("COM4")
scope = oscilloscope.connect("USB0::0x1AB1::0x0588::DS1ET141904883")
delays = range(1000, 5000, 200) # in ns
for d in delays:
pulse.setup(delay=d, width=10, voltage=250) # 주입 매개변수 설정
pulse.fire() # 주입!
trace = scope.capture()
# 캡처한 트레이스를 저장, 분석 또는 시각화:
filename = f"trace_{d}ns.csv"
with open(filename, "w") as f:
f.write(trace)
참고: 실제 자동화에는 복잡한 라이브러리, 오류 처리, 탐침 위치 조정과의 통합 등이 포함될 수 있습니다.
결함 주입 공격 완화: 방어책
EMFI가 성숙해짐에 따라 이에 대응하는 공격 방지책도 발전했습니다 — 하드웨어 제조업체들은 이제 결함 내성을 설계에 포함합니다:
- 센서: 강한 EM 필드 또는 전압 이상을 감지하는 온칩 감지기.
- 중복 계산: 중요한 로직은 중복되어 결과를 비교합니다 (듀얼 모듈러 리던던시, DMR).
- 랜덤 지연/난독화: 실행 타이밍에 노이즈를 추가하여 정확한 타겟팅을 어렵게 합니다.
- 물리적 차폐: 민감한 IC 영역 위에 전도성, EM-흡수가 바리어를 추가합니다.
- 소프트웨어 감지: 소프트웨어는 불가능한 상태를 감시합니다 (예: 불가능한 논리 점프).
소프트웨어 예제: 검증을 위한 삼중 실행:
// 의사 코드
result1 = calc_hash(input);
result2 = calc_hash(input);
result3 = calc_hash(input);
if ((result1 == result2) && (result2 == result3))
use(result1);
else
trigger_alert();
지식 확장: 리소스 및 커뮤니티
기본을 초월하고 싶다면 다음의 리소스와 커뮤니티가 매우 유용합니다:
- 연구 논문:
- 세미나 및 워크샵:
- 오픈소스 도구:
- 블로그 및 튜토리얼:
- 컨퍼런스:
- CHES (Cryptographic Hardware and Embedded Systems)
- COSADE (Constructive Side Channel Analysis and Secure Design)
- RECON, Hardwear.io
결론
**전자기 결함 주입(EMFI)**는 하드웨어 보안 연구에서 매혹적이고도 강력한 도구입니다. 최초에는 이국적인 학문적 호기심으로 시작되었으나, 이제는 안전한 마이크로컨트롤러 또는 칩 설계자가 꼭 고려해야 할 중요한 위험 요소가 되었습니다. 기본 장비와 스크립트만으로 공격자(및 연구자)는 정확하고, 재현 가능하며, 고도로 방해적인 하드웨어 수준의 침해를 설치할 수 있습니다.
지금까지 보셨던 것처럼:
- EMFI는 암호화 비밀을 우회하거나 저하시키거나 추출할 수 있습니다.
- 실용적인 설정은 많은 실험실과 전문가의 손이 닿을 수 있습니다.
- SoC 안전 부팅, 스마트카드 및 보안 요소에서의 현실 세계의 취약성은 EMFI의 심각성을 시연합니다.
- 방어적 연구와 안전한 칩 설계는 계속해서 적응해야 합니다.
신입자와 전문가 모두에게 EMFI는 관리해야 하는 위협인 동시에 디지털 세상을 대비시킬 강력한 진단 도구입니다.
참고 문헌
- A Beginner-Friendly Introduction to Fault Injection Attacks (arXiv:2509.18341v1)
- A Compact Electromagnetic Fault Injection Setup — Ledger Blog
- Do not Trust Modern System-on-Chips: Electromagnetic Fault Injection Against SoC — Creach Labs Seminar
- ChipWhisperer Project
- 맥스웰 방정식 및 EMI 기본 사항 — Wikipedia
- 결함 주입 및 대응책 — 임베디드.com
이 긴 설명서가 도움이 되었나요? 도움이 되었다면 보안 팀이나 하드웨어 엔지니어링 동료들과 공유하세요! 더 고급 기술이나 예제를 보시려면 위의 리소스를 참고하거나 하드웨어 및 임베디드 보안 최신 컨퍼런스 진행을 보십시오.
[피드백, 수정 제안 또는 기고는 원본 ArXiv 사전 인쇄 및 오픈 보안 연구 커뮤니티를 참조하세요.]
사이버 보안 경력을 다음 단계로 끌어올리세요
이 콘텐츠가 유용하다고 생각하셨다면, 저희의 포괄적인 47주 엘리트 교육 프로그램으로 무엇을 달성할 수 있을지 상상해 보세요. Unit 8200 기술로 경력을 변화시킨 1,200명 이상의 학생들과 함께하세요.
