mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-11-10 17:35:29

부채널 공격

사이드 채널 분석에서 넘어옴
Side-Channel Attack (부채널 공격)
Side-Channel Analysis (부채널 분석)

1. 개요2. 알려진 공격 기법의 종류
2.1. Meltdown/Spectre2.2. Row Hammer2.3. Cold Boot
3. 주요 공격 대상(장치)4. 주요 공격 대상(알고리즘)5. 관련 기사6. 관련 연구 주체(또는 단체)
6.1. 관련 컨퍼런스6.2. 프로젝트 그룹6.3. 대학 연구실6.4. ChipWhisperer
7. 사례분석
7.1. DES를 대상으로 한 DPA
8. 관련 문서

1. 개요

암호 알고리즘을 대상으로 한 물리적 공격 기법을 말한다. 간단히 말하면 정면으로 돌파 못하니까 옆으로 친다 즉 꼼수 1996년 코처[1]가 제시한 타이밍 공격법에 대한 논문을 이 분야의 연구가 시작된 계기로 꼽는다. 공격 목적이 아니라 분석 목적일 때는 부채널 분석이라고도 한다. 간혹 관련 기사를 보면 '옆수로 공격' 등으로 번역하기도 한다.

실용성에 대해서는 ASP.NET을 대상으로 한 Oracle Cell Padding 공격이 발생하여 패치가 되었다. 또한, 2012~2015년도 사이에 SSL 통신을 해독할 수 있는 CRIME, BREACH, HEIST 공격이 BlackHat Conference에서 발표된 바 있다. CPU게이트 문서도 참조.

현실적인 공격 구현의 어려움에도 불구하고, 암호 기능을 포함하는(또는 Secure Element를 포함하는) 모듈을 제조하여 유통하기 위해서는 엄격한 인증 절차를 거치는데, 공통평가기준(Common Criteria, CC), 암호모듈평가체계(Cryptographic Module Validation Program, CMVP) 등의 방식으로 비침습적 공격에 대한 평가가 비중있게 다뤄지고 있다. 이 때의 비침습적 공격은 부채널 공격을 포함하는 용어이다. 향후 IoT 기반 산업이 급격하게 성장 할 때, 부채널 공격에 대한 위협도 함께 증가할 것으로 내다보고 이에 대한 대응 방안이 활발하게 논의되고 있다.

하지만 대개의 경우 하드웨어로의 매우 근접한 접근이 필요하며, 대상 컴퓨터를 매우 정확히 알고 있어야 한다는 단점이 있다. 따라서 컨퍼런스에는 발표할 수 있어도 공격 용도로의 실용성은 매우 낮다. 잡음이나 전력 분석을 한다 하더라도 현대 시스템 중에 그런 정보를 손쉽게 특정할 수 있게 프로세서를 하나만 쓰는 시스템이 어디 있을까? 애초에 하드웨어를 매우 심하게 타며 환경의 영향을 크게 받을 수 밖에 없다.

2. 알려진 공격 기법의 종류

일반적으로 물리적 공격 기법 중에서도 다음 세 가지 공격 기법을 부채널 공격으로 본다.[2] 좀 더 넓게는 물리적 공격 기법인 프로빙(probing), 오류주입(fault induction) 공격을 포함한다. 이 외에도 암호 알고리즘의 취약점과 연관 시킬 수 있는 다양한 물리적 채널들을 활용한 공격 기법들이 알려져 있다.

2.1. Meltdown/Spectre

최신 프로세서의 특성을 이용한 공격 기법이다.

2.2. Row Hammer

DRAM 공정의 미세화에 따라 나타나게 된 셀간 간섭 현상을 이용해 데이터를 변조하는 공격 기법이다. 2010년대 초반 이후 생산된 모든 미세공정 기반 DRAM이 영향을 받는다. (삼성전자의 경우 35나노 이하, 하이닉스의 경우 44나노 이하, 마이크론의 경우 50나노 이하) 아래는 DRAM 공정별 Row Hammer 취약도를 볼 수 있는 데이터이다:

DDR3 DRAM 칩별 Row Hammer 성공률 데이터 [펼치기 · 접기]
||<|2> 제조사 ||<-2> 칩 구성 ||<-2> 리비전 ||<-2> 타이밍 ||<|2> 평균 성공 수 ||<|2> RIth
(min., ms)[4] ||
용량 스테핑 주차 속도 (MT/s) tRC (ns)
마이크론 DRAM
마이크론 1 Gb x16 B-die 10-08 1066 50.6 0 -
마이크론 1 Gb x16 B-die 10-20 1066 50.6 0 -
마이크론 68나노 기반 DRAM
마이크론 1 Gb x8 F-die 10-20 1066 50.6 0 -
마이크론 50나노 기반 DRAM
마이크론 2 Gb x16 D-die 11-24 1066 49.1 7.8 x 101 21.3
마이크론 2 Gb x16 D-die 11-26 1066 49.1 2.4 x 102 16.4
마이크론 2 Gb x16 D-die 11-50 1066 49.1 8.8 x 101 26.2
마이크론 2 Gb x16 D-die 12-22 1600 50.6 9.5 x 100 34.4
마이크론 ??나노(50나노?) 기반 DRAM
마이크론 2 Gb x8 M-die 12-26 1600 49.1 1.2 x 102 21.3
마이크론 30나노 기반 DRAM
마이크론 2 Gb x8 K-die 12-40 1600 48.1 8.6 x 106 8.2
마이크론 2 Gb x8 K-die 13-20 1600 48.1 1.7 x 106 9.8
마이크론 2 Gb x8 K-die 13-28 1600 48.1 5.7 x 104 16.4
마이크론 2 Gb x8 K-die 14-04 1600 48.1 0.5 x 100 18.0
마이크론 ??나노 기반 DRAM
마이크론 2 Gb x8 ? 13-02 1600 48.1 1.8 x 106 11.5
마이크론 2 Gb x8 ? 13-14 1600 48.1 4.0 x 101 21.3
마이크론 2 Gb x8 ? 14-04 1600 49.1 2.7 x 105 18.0
삼성전자 68나노/56나노 기반 DRAM
삼성전자 1 Gb x8 D-die 08-49 1066 50.6 0 -
삼성전자 1 Gb x8 E-die 09-49 1066 50.6 0 -
삼성전자 46나노 기반 DRAM
삼성전자 1 Gb x8 F-die 10-19 1066 50.6 0 -
삼성전자 1 Gb x8 F-die 11-16 1066 50.6 0 -
삼성전자 1 Gb x8 F-die 11-19 1066 50.6 0 -
삼성전자 2 Gb x8 C-die 10-31 1333 49.1 0 -
삼성전자 2 Gb x8 C-die 11-13 1333 49.1 0 -
삼성전자 2 Gb x8 C-die 11-25 1333 49.1 0 -
삼성전자 2 Gb x8 C-die 11-49 1333 49.1 0 -
삼성전자 35나노 기반 DRAM
삼성전자 2 Gb x8 D-die 11-37 1333 49.1 1.9 x 106 11.5
삼성전자 2 Gb x8 D-die 12-01 1866 47.1 9.1 x 105 9.8
삼성전자 2 Gb x8 D-die 12-10 1866 47.1 9.8 x 105 11.5
삼성전자 2 Gb x8 D-die 13-40 1333 49.1 2.6 x 104 21.3
삼성전자 2 Gb x8 D-die 14-07 1333 49.1 7.5 x 103 26.2
삼성전자 28나노 기반 DRAM
삼성전자 2 Gb x8 E-die 12-25 1600 48.1 7.4 x 105 11.5
삼성전자 2 Gb x8 E-die 12-28 1600 48.1 5.2 x 105 11.5
삼성전자 2 Gb x8 E-die 12-31 1600 48.1 4.0 x 105 13.1
삼성전자 2 Gb x8 E-die 13-19 1600 48.1 1.1 x 105 14.7
하이닉스 DRAM
하이닉스 1 Gb x8 T-die 10-43 1333 49.1 0 -
하이닉스 54나노 기반 DRAM
하이닉스 2 Gb x8 A-die 10-18 1333 49.1 0 -
하이닉스 2 Gb x8 A-die 10-20 1066 50.6 0 -
하이닉스 2 Gb x8 A-die 10-22 1066 50.6 0 -
하이닉스 44나노 기반 DRAM
하이닉스 2 Gb x8 B-die 10-26 1333 49.1 8.9 x 102 29.5
하이닉스 2 Gb x8 B-die 10-51 1333 49.1 4.0 x 102 29.5
하이닉스 2 Gb x8 B-die 11-12 1333 46.3 6.9 x 102 21.3
하이닉스 2 Gb x8 B-die 11-19 1333 46.3 9.2 x 102 27.9
하이닉스 2 Gb x8 B-die 11-31 1333 49.1 3.0 x 100 39.3
하이닉스 2 Gb x8 B-die 11-42 1333 49.1 1.6 x 102 39.3
하이닉스 35나노 기반 DRAM
하이닉스 2 Gb x8 C-die 11-48 1600 48.1 7.1 x 104 19.7
하이닉스 2 Gb x8 C-die 12-08 1333 49.1 3.9 x 104 21.3
하이닉스 2 Gb x8 C-die 12-12 1333 49.1 3.7 x 104 21.3
하이닉스 2 Gb x8 C-die 12-20 1600 48.1 3.5 x 103 27.9
하이닉스 2 Gb x8 C-die 12-24 1600 48.1 6.5 x 104 21.3
하이닉스 2 Gb x8 C-die 12-26 1600 48.1 2.3 x 104 24.6
하이닉스 2 Gb x8 C-die 12-32 1600 48.1 1.7 x 104 22.9
하이닉스 2 Gb x8 C-die 12-37 1600 48.1 2.3 x 104 18.0
하이닉스 2 Gb x8 C-die 12-41 1600 48.1 2.0 x 104 19.7
하이닉스 2 Gb x8 C-die 13-11 1600 48.1 3.3 x 105 14.7
하이닉스 2 Gb x8 C-die 13-35 1600 48.1 3.7 x 104 21.3
하이닉스 ?나노 기반 DRAM
하이닉스 2 Gb x8 E-die 12-23 1600 48.1 1.4 x 105 18.0
출처: Y. Kim et al., "Flipping bits in memory without accessing them: An experimental study of DRAM disturbance errors," 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA), Minneapolis, MN, USA, 2014, pp. 361-372, doi: 10.1109/ISCA.2014.6853210.


Row Hammer 공격의 발표 이후 OS 및 소프트웨어 차원의 패치, 프로세서 및 DRAM 차원의 대응이 이루어졌으나 아직도 Row Hammer 기반 취약점이 계속 나타나고 있다.

2.3. Cold Boot

축전기에 저장된 전하의 양을 통해 값을 저장하는 DRAM 메모리는 누설 전류에 의해 시간이 지남에 따라 데이터가 휘발된다. 그러나 극저온 환경에서는 데이터가 휘발되는 데 걸리는 시간이 크게 증가하는데, 이 점을 이용해 DRAM을 극저온 환경에 노출시킨 뒤 실행중인 시스템을 강제 종료 후 데이터를 탈취하는 기법이다.

3. 주요 공격 대상(장치)

4. 주요 공격 대상(알고리즘)

5. 관련 기사

6. 관련 연구 주체(또는 단체)

6.1. 관련 컨퍼런스

6.2. 프로젝트 그룹

6.3. 대학 연구실

다음은 부채널 분석을 연구하는 대학 연구실 목록이다.

6.4. ChipWhisperer

부채널 공격을 위한 오픈 프로젝트이다. 필요한 하드웨어와 소프트웨어 모두 공개하여 누구나 시도해 볼 수 있는 환경을 제공해 준다. 직접 하드웨어를 제작할 수 없는 순수(?) 소프트웨어 맨들을 위해 킥스타터를 통한 크라우드 펀딩으로 출시한 제품도 판매하고 있다. #

분석을 위한 하드웨어는 크게 분석용 메인 보드, 분석 대상 구현 보드로 FPGA 기반이다. 분석 대상 구현은 AVR/Xmega 프로그래밍을 통해 구현 할 수 있다. 분석 소프트웨어에 AVR/Xmega 프로그래머 기능을 탑재하고 있다. 단순히 크로스 컴파일 된 파일을 분석 대상 보드에서 다운로드 하는 기능을 제공한다. 소프트웨어는 Python 기반으로 작성됐다. 분석 대상을 구동시켜 파형을 수집하는 캡처 소프트웨어와 해당 파형 파일로 분석을 진행하는 분석 소프트웨어로 설계됐다.

CHES2016 컨퍼런스에서 부채널 공격 CTF를 개최했다. 장치의 소비 전력을 측정하는 도구들은 클라우드로 제공된다고 하니 참가자가 장비를 갖추지 않고도 도전해 볼 수 있는 기회이기도 하다.

7. 사례분석

7.1. DES를 대상으로 한 DPA

영상

8. 관련 문서



[1] Paul C. Kocher, Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems, 1996. [2] KOEUNE, François; STANDAERT, François-Xavier. A tutorial on physical security and side-channel attacks. In: Foundations of Security Analysis and Design III. Springer Berlin Heidelberg, 2005. p. 78-108. [3] CPU게이트가 여기에 해당한다. [4] DDR 메모리의 표준 Refresh Interval은 64 ms이다. [5] 취소선을 쳤지만 인간의 취약점을 대상으로 한 공격도 적지 않다. 자세한 내용은 APT(해킹) 문서 참조. [6] KISA, 곽진 등, “부채널 공격 취약성 평가방법론 및 기준개발,” KISA-WP-2009-0065, 2009.

분류