임베디드 시스템은 우리의 일상 속에서 깊이 자리 잡고 있다. 휴대폰, 자동차, 신용카드, 노트북, 의료 장비 등 수많은 장치가 작은 크기의 마이크로컴퓨터, 즉 임베디드 장치에 의해 구동된다. 이러한 임베디드 장치의 보안은 이제 더 이상 선택의 문제가 아닌 필수적인 요소가 되었으며, 이를 이해하는 것은 매우 중요하다. 이 책은 이러한 임베디드 시스템의 보안 문제를 깊이 있게 다루며, 실제 하드웨어를 통해 다양한 공격 기법을 이해하고 실습할 수 있도록 안내하는 훌륭한 길잡이다.
특히 실험실 환경에서 직접 수행할 수 있는 다양한 공격 기법을 상세히 설명하고 있어, 학생부터 전문가까지 폭넓은 독자층이 유용하게 활용할 수 있을 것이다. 각종 인터페이스, 포트 및 통신 프로토콜, 전기적 신호 분석, 펌웨어 이미지 분석 등의 기본기를 다지고, 결함 주입(fault-injection), 사이드 채널 분석(SCA), 전력 분석(SPA/DPA) 등을 통해 실제 장치에서 비밀번호나 암호화 키를 추출하는 등의 고급 기술을 배울 수 있다.
Contents
1장. 임베디드 보안 소개
__하드웨어 구성 요소
__소프트웨어 구성 요소
____초기 부트 코드
____부트로더
____신뢰 실행 환경 OS 및 신뢰 애플리케이션
____펌웨어 이미지
____메인 운영체제 커널 및 애플리케이션
__하드웨어 위협 모델링
____보안이란?
____공격 트리
__공격자 프로파일링
__공격 유형
____하드웨어에 대한 소프트웨어적 공격
____PCB 수준 공격
____논리적 공격
____비침습적 공격
____칩-침습적 공격
__에셋과 보안 대상
____이진 코드의 기밀성과 무결성
____키의 기밀성과 무결성
____원격 부트 증명
____개인 식별 정보의 기밀성과 무결성
____센서 데이터 무결성 및 기밀성
____콘텐츠 기밀성 보호
____안전성과 회복 탄력성
__대응책
____보호
____탐지
____반응
__공격 트리 예제
____식별과 악용
____확장성
____공격 트리 분석
____하드웨어 공격 경로 평가
__보안 문제 공개
__요약
2장. 하드웨어 주변 장치 인터페이스
__전기 기초
____전압
____전류
____저항
____옴의 법칙
____AC/DC
____저항 구분
____전력
__전기와의 인터페이스
____논리 레벨
____하이 임피던스, 풀업,풀다운
____푸시-풀와 3 상태 및 오픈 컬렉터 또는 오픈 드레인
____비동기식과 동기식 및 내장 클럭
____차분 신호
__저속 직렬 인터페이스
____범용 직렬 비동기식 수신기/송신기
____직렬 주변 장치 인터페이스
____IC 간 인터페이스
____보안 디지털 입력/출력 및 내장형 멀티미디어 카드
____CAN 버스
____JTAG 및 기타 디버깅 인터페이스
__병렬 인터페이스
____메모리 인터페이스
__고속 직렬 인터페이스
____범용 직렬 버스
____PCI 익스프레스
____이더넷
__측정
____멀티미터: 전압
____멀티미터: 연속성
____디지털 오실로스코프
____논리 분석기
__요약
3장. 구성 요소 식별 및 정보 수집
__정보 수집
____연방 통신 위원회 기록
____특허
____데이터시트와 회로도
____정보 검색 예제: USB Armory 장치
__분해 시작
____보드에서 IC 식별
____소형 리드 패키지: SOIC, SOP, QFP
____노리드 패키지: SO, QFN
____볼 그리드 어레이
____칩 스케일 패키징
____DIP, 스루홀, 기타
__PCB의 샘플 IC 패키지
____보드의 기타 구성 요소 식별
__PCB 매핑
____매핑을 위한 JTAG 경계 스캔 사용
__펌웨어에서 정보 추출
____펌웨어 이미지 얻기
____펌웨어 이미지 분석
__요약
4장. 결함 주입 소개
__잘못된 보안 메커니즘
____펌웨어 서명 확인 우회
____잠금된 기능에 접근하기
____암호화 키 복구
__OpenSSH 결함 주입 연습
____C 코드에 결함 주입
____기계 코드에 결함 주입
__결함 주입 허풍
____대상 장치 및 폴트 목표
____결함 주입기 도구
____대상 준비와 제어
__폴트 검색 방법
____폴트 프리미티브 탐색
____효과적인 폴트 검색
____검색 전략
____결과 분석
__요약
5장. 결함 주입 방법
__클럭 결함 주입
____준안전성
____폴트 민감도 분석
____제한 사항
____필수 하드웨어
____클럭 결함 주입 매개변수
__전압 결함 주입
____전압 글리치 생성
____스위칭 기반 주입기 구축
____쇠지레 결함 주입
____쇠지레를 이용한 라즈베리 파이 폴트 공격
____전압 결함 주입 검색 매개변수
__전자기 결함 주입
____전자기 폴트 생성
____전자기 결함 주입을 위한 아키텍처
____EMFI 펄스 모양과 폭
____전자기 결함 주입을 위한 매개변수 검색
__광학 결함 주입
____칩 준비
____전면 및 후면 공격
____광원
____광학 결함 주입 설정
____광학 결함 주입 구성 가능 매개변수
__바디 바이어싱 주입
____바디 바이어싱 주입을 위한 매개변수
__하드웨어 폴트 트리거
____예측할 수 없는 대상 타이밍 작업
__요약
6장. 결함 주입 실험
__실험 1: 간단한 반복문
____고통의 BBQ 라이터
__실험 2: 유용한 글리치 삽입
____환경설정 폴트를 위한 쇠지레 글리칭
____먹스 결함 주입
__실험 3: 차분 오류 분석
____약간의 RSA 이론
____대상에서 올바른 서명 얻기
__요약
7장. 트레저 원 지갑 메모리 덤프
__공격 소개
__트레저 원 지갑 내부
__USB 읽기 요청 폴트
__코드 분해
__펌웨어 구축과 글리치 검증
__USB 트리거링과 타이밍
__케이스를 통한 글리치
____설정
____결합 주입을 위한 코드 검토
____코드 실행
____덤프 확인
____EM 펄스 미세 조정
____USB 메시지를 기반으로 타이밍 조정
__요약
8장. 전력 분석 소개
__타이밍 공격
____하드 드라이브 타이밍 공격
____타이밍 공격을 위한 전력 측정
__단순 전력 분석
____RSA에 SPA 적용
____RSA에 SPA 적용 다시보기
____ECDSA의 SPA
__요약
9장. 단순 전력 분석
__자택 실험실
____기본 하드웨어 설정 구성
____설정 구매
____대상 코드 준비
____설정 구축
__통합: SPA 공격
____대상 준비
____오실로스코프 준비
____신호 분석
____통신 및 분석 스크립트 제작
____공격 스크립트 제작
__칩위스퍼러-나노 예제
____펌웨어 구축과 로딩
____첫 통신 살펴보기
____트레이스 캡처
____트레이스에서 공격으로
__요약
10장. 차분 전력 분석
__마이크로컨트롤러 내부
____커패시터의 전압 변경
____전력에서 데이터로 그리고 다시 반대로
__XOR 예제
__차분 전력 분석 공격
____누출 가정을 사용한 전력 소비량 예측
____파이썬의 DPA 공격
__지피지기: 고급 암호화 표준 공격 과정
____DPA를 사용해 AES-128 공격
__상관관계 전력 분석 공격
____상관 계수
____CPA를 이용한 AES-128 공격
____대상 장치와 통신
____오실로스코프 캡처 속도
__요약
11장. 고급 전력 분석
__주요 장애물
____더 강력한 공격
__성공 측정
____성공률 기반 메트릭
____엔트로피 기반 메트릭
____상관관계 피크 진행
____상관관계 피크 높이
__실제 장치에 대한 측정
____장치 작동
____측정 프로브
____민감한 망 결정
____자동화된 프로브 스캐닝
____오실로스코프 설정
__트레이스 세트 분석과 처리
____분석 기술
____처리 기술
____컨볼루션 신경망을 사용한 딥러닝
__요약
12장. 실험 사례: 차분 전력 분석
__부트로더 배경지식
____부트로더 통신 프로토콜
____AES-256 CBC의 세부 사항
____AES-256 공격
__부트로더 코드 얻기 및 빌드
__대상 실행과 트레이스 캡처
____CRC 계산
____부트로더와 통신
____개요 트레이스 캡처
____상세 트레이스 캡처
__분석
____라운드 14 키
____라운드 13 키
__IV 복구
____캡처 대상
____첫 번째 트레이스 얻기
____나머지 트레이스 얻기
____분석
__서명 공격
____공격 이론
____전력 트레이스
____분석
____4바이트 전체
__부트로더 소스코드 엿보기
____서명 확인 타이밍
__요약
13장. 실제 사례
__결함 주입 공격
____플레이스테이션 3 하이퍼바이저
____엑스박스 360
__전력 분석 공격
____필립스 휴 공격
__요약
__SPI 플래시 핀아웃
__0.1인치 헤더
____20핀 Arm JTAG
____14핀 PowerPC JTAG
__0.05인치 헤더
____Arm 코어텍스 JTAG/SWD
____엠버 패킷 트레이스 포트 커넥터
Author
콜린 오플린,야스퍼 반 벨든버그,김세영,정윤선
엔지니어에게 임베디드 보안을 학습하기 위한 도구 및 장비를 설계하는 신생 기업 뉴에이이 테크놀로지(NewAE Technology, Inc.)를 경영하고 있다. 박사 연구의 일환으로 오픈소스 칩위스퍼러(ChipWhisperer) 프로젝트를 시작했고, 이전에는 댈하우지 대학교(Dalhousie University)의 조교수로 재직하면서 임베디드 시스템과 보안을 가르쳤다. 캐나다 핼리팩스에 살고 있으며 뉴에이이(NewAE)로 개발된 많은 제품에 그의 개가 등장하는 것을 볼 수 있다.
엔지니어에게 임베디드 보안을 학습하기 위한 도구 및 장비를 설계하는 신생 기업 뉴에이이 테크놀로지(NewAE Technology, Inc.)를 경영하고 있다. 박사 연구의 일환으로 오픈소스 칩위스퍼러(ChipWhisperer) 프로젝트를 시작했고, 이전에는 댈하우지 대학교(Dalhousie University)의 조교수로 재직하면서 임베디드 시스템과 보안을 가르쳤다. 캐나다 핼리팩스에 살고 있으며 뉴에이이(NewAE)로 개발된 많은 제품에 그의 개가 등장하는 것을 볼 수 있다.