◈ 추천의 글 ◈
멀지 않은 과거에 하드웨어는 해킹에 있어 비주류로 밀려났던 때가 있었다. 대부분의 사람은 너무 어려워서 참여할 수 없고, “하드웨어는 어렵다.”고 생각했다. 물론 익숙해지기 전에는 하드웨어가 어려운 것이 당연하다.
저자가 하드웨어 해킹에 대한 열정을 가진 비행 청소년이었을 때 지식과 기술에 대한 접근이 어려웠다. 쓰레기 수거통에서 버려진 장비를 찾고 회사 차량에서 재료를 훔쳐 ASCII 아트에서 만든 도식으로 텍스트 파일에 설명된 도구를 만들곤 했다. 대학 도서관에 몰래 들어가 데이터 책을 찾고, 엔지니어링 박람회에서 무료 샘플을 요청하고 전화로 공급업체로부터 정보를 얻으려고 목소리를 낮춰 어른인 것처럼 했다. 시스템을 설계하는 대신 망가뜨리는 데 관심이 있다면 적당한 곳은 거의 없을 것이다. 해커가 존경받는 직업으로 거듭나려면 아직 멀었다.
수년에 걸쳐 하드웨어 해커가 성취할 수 있는 것에 대한 관심은 무관심에서 주요 관심사로 바뀌었다. 자원과 장비를 더 많이 사용할 수 있게 됐고 비용도 저렴해졌다. 해커 그룹 및 콘퍼런스는 만나서 배우고 서로 협력할 수 있는 방법을 제공했다. 학계 및 기업에서도 해커의 가치를 깨달았다. 마침내 하드웨어가 보안 환경의 중요한 부분으로 인식되는 새로운 시대에 들어서게 됐다.
이 책에서 저자들은 실제 제품을 망가뜨리는 경험들을 통해 우리 시대의 하드웨어 해킹 프로세스를 우아하게 전한다. 이들은 실제 공격에 대한 세부 정보를 제공한다. 이를 통해 독자가 공격을 따라할 수 있게 하며, 필요한 기술을 배우고 성공적인 해킹과 함께 마법 같은 경험을 가질 수 있게 한다. 이러한 분야에 처음이거나 해커 커뮤니티의 어딘가에 있던지 또는 현재 갖고 있는 보안 기술들을 ‘레벨 업’하려는 경우라도 문제가 되지 않는다. 여기에 모두를 위한 지식이 있다.
하드웨어 해커로서 엔지니어와 이들이 구현하는 장치에 대한 제약을 이용하는 것을 목표로 한다. 엔지니어는 스케줄 및 예산 내에서 제품이 작동하게 하는 데 중점을 둔다. 또한 정의된 사양을 따르고 엔지니어링 표준을 따라야 한다. 제품이 제조 가능하고 시스템을 프로그래밍, 테스트, 디버그, 수리 또는 유지 관리하기 위해 접근할 수 있는지를 확인해야 한다. 엔지니어는 통합한 칩 및 서브시스템의 공급업체를 신뢰하고 광고대로 작동하기를 기대한다. 그리고 보안을 구현하더라도 올바르게 구현하기가 매우 어렵다. 해커는 모든 요구 사항을 무시하고 시스템이 의도적으로 오작동하게 하고, 성공적으로 시스템을 공격할 수 있는 가장 효과적인 방법을 찾는 등의 호화로움을 누린다. 주변 인터페이스 및 버스(2장), 구성 요소에
대한 물리적 접근(3장) 또는 결함 주입(fault injection) 또는 부채널 누출(leakage)(4장)을 통해 시스템의 약점을 악용하려고 시도할 수 있다.
오늘날 하드웨어 해킹으로 달성할 수 있는 것은 과거 해커의 연구, 투쟁, 성공을 기반으로 한다. 모두 선구자의 성과와 업적을 활용하는 것이다. 엔지니어와 공급업체가 보안 인식을 점진적으로 개선하고 더 많은 보안 기능과 대응책을 장치에 통합하더라도 이러한 발전은 해커 커뮤니티의 끈기와 인내심으로 계속해서 무너질 것이다. 말 그대로 군비 경쟁 같은 이러한 경쟁은 점점 더 안전한 제품으로 이어지고 차세대 엔지니어와 해커의 기술을 연마하게 한다.
이 모든 것은 하드웨어 해킹이 계속 존재한다는 메시지를 준다. 하드웨어 해킹 핸드북은 가능한 한 많은 경로를 탐색할 수 있는 프레임워크를 제공한다. 여행의 시작은 책을 읽는 독자에게 달려있다.
납땜에 모든 것이 있다.
오레곤(Oregon), 포틀랜드(Portland)에서
1982년부터 기술 해커가 된
─킹핀(Kingpin)으로 알려진 조 그랜드(Joe Grand)
◈ 이 책에서 다루는 내용 ◈
◆ 상용 인터페이스와 버스를 활용하거나, 직접 구성 요소에 접근해 시스템의 약점을 공략한다.
◆ 폴트 주입 지점을 식별, 대상 준비, 폴트 주입 구성을 구축한다.
◆ 클럭 글리치를 생성하고, 기성품이나 DIY 도구를 사용해서 전압 폴트 주입, 전자기 폴트 주입, 바디 바이어싱 폴트 주입을 수행한다.
◆ 타이밍 공격과 단순 전력 분석을 통해 비밀번호 및 암호화된 키를 추출한다.
◆ 향상된 전력 및 신호 분석, 누출 탐색, 시각화 기술을 수행한다.
◈ 이 책의 대상 독자 ◈
이 책의 독자는 좋은 일을 하기 위해 보안을 깨는 데 관심이 있는 공격자의 역할을 하고 있다고 가정할 것이다. 또한 간단한 오실로스코프(Oscilloscope) 및 납땜 장비와 같은 비교적 저렴한 하드웨어를 대부분 사용할 수 있고 파이썬이 설치된 컴퓨터가 있다고 가정한다.
레이저 장비, 입자 가속기 또는 취미 활동의 예산 한도를 넘어서는 기타 품목에 접근할 수 있다고 생각하지 않는다. 지역 대학 연구실에서 이러한 장비를 사용할 수 있는 경우 이 책을 통해 더 많은 이점을 얻을 수 있을 것이다. 임베디드 장치 대상과 관련해 독자가 해당 대상에 물리적으로 접근할 수 있고 해당 장치에 저장된 에셋(asset)에 관심이 있다고 가정한다. 그리고 가장 중요한 것은 독자가 새로운 기술을 배우는 데 관심이 있고 리버스 엔지니어링 사고방식을 갖고 있으며 깊이 탐구하려는 준비가 돼 있다고 가정한다.
◈ 이 책의 구성 ◈
1장, ‘임베디드 보안 소개’에서는 임베디드 시스템의 다양한 구현 아키텍처와 일부 위협 모델링에 초점을 두고 다양한 공격에 대해 알아본다.
2장, ‘하드웨어 주변 장치 인터페이스’에서는 신호(signaling) 및 측정(measurement)을 이해하는 데 필요한 전기 기본 사항을 포함해 다양한 포트 및 통신 프로토콜을 설명한다.
3장, ‘구성 요소 식별 및 정보 수집"에서는 대상에 대한 정보를 수집하고, 데이터 시트 및 설계도를 해석하고, PCB의 구성 요소를 식별하고, 펌웨어 이미지를 추출 및 분석하는 방법을 설명한다.
4장, ‘결함 주입 소개’에서는 결함 주입 지점을 식별하고, 대상을 준비하고, 결함 주입 설정을 생성하고, 효과적인 매개변수를 만들어내는 방법을 포함해 결함 공격의 이면에 있는 아이디어를 제시한다.
5장, ‘결함 주입 방법’에서는 클럭, 전압, 전자기, 레이저, 바디 바이어싱(Body Biasing) 결함 주입 그리고 이를 수행하기 위해 구축 또는 구매해야 하는 도구의 종류를 설명한다.
6장, ‘결함 주입 실험’에서는 집에서 수행할 수 있는 3가지 실용적인 결함 주입 연구실을 제공한다.
7장, ‘트레저 원 지갑 메모리 덤프’에서는 트레저 원(Trezor One) 지갑을 갖고 취약한 펌웨어 버전에서 결함 주입을 사용해 키를 추출하는 방법을 보여준다.
8장, ‘전력 분석 소개’에서는 타이밍 공격과 단순 전력 분석을 소개하고, 이러한 공격을 사용해 암호 및 암호화 키를 추출하는 방법을 보여준다.
9장, ‘단순 전력 분석’에서는 기본 하드웨어 설정부터 가정 실험실에서 SPA 공격을 수행하는 데 필요한 것까지 모든 방법을 안내한다.
10장, ‘차분 전력 분석’에서는 차분 전력 분석(DPA, Differential Power Analysis)을 설명하고 전력 소비의 작은 변동이 암호화 키 추출로 이어지는 방법을 보여준다.
11장, ‘고급 전력 분석’에서는 실용적인 측정 팁부터 추적 설정 필터링, 신호 분석, 처리 및 시각화에 이르는 전력 분석의 수준을 높일 다양한 기술을 설명한다.
12장, ‘실험 사례: 차분 전력 분석’에서는 특수 부트로더로 물리적 목표를 잡고 차분 전력 분석 기술을 사용해 여러 가지 비밀을 알아낸다.
13장, ‘실제 사례’에서는 실제 대상에 대해 수행된 여러 가지 게시된 결함 및 부채널 공격을 요약한다.
14장, ‘대책, 인증, 종장’에서는 이 책에서 설명하는 몇 가지 위험을 완화하는 여러 가지 대응책을 살펴보고 장치 인증 및 다음 단계에 대해 다룬다.
부록 A, ‘테스트 실험 설정’에서는 원하는 모든 도구 등을 멋지게 공개해 구미를 돋운다.
부록 B, ‘유명한 핀아웃’에서는 정기적으로 접하게 될 몇 가지 인기 있는 핀아웃(pinout)에 대한 커닝 페이퍼를 제공한다.
◈ 옮긴이의 말 ◈
임베디드 시스템은 우리의 일상 속에서 깊이 자리 잡고 있습니다. 휴대폰, 자동차, 신용카드, 노트북, 의료 장비 등 수많은 장치가 작은 크기의 마이크로컴퓨터, 즉 임베디드 장치에 의해 구동됩니다. 이러한 임베디드 장치의 보안은 이제 더 이상 선택의 문제가 아닌 필수적인 요소가 됐으며, 이를 이해하는 것은 매우 중요합니다. 이 책은 이러한 임베디드 시스템의 보안 문제를 깊이 있게 다루며, 실제 하드웨어를 통해 다양한 공격 기법을 이해하고 실습할 수 있도록 안내하는 훌륭한 길잡이입니다.
번역을 진행하면서 저 또한 임베디드 시스템 보안의 복잡성과 그 이면에 숨겨진 기술들에 대해 많은 것을 배울 수 있었습니다. 이 책은 공격자의 관점에서 하드웨어 보안을 이해하고, 이를 통해 선의의 목적을 달성하려는 이들에게 꼭 필요한 내용을 다룹니다. 임베디드 장치의 아키텍처, 위협 모델링, 공격 트리 등 기본적인 이론부터 시작해 실제 하드웨어 실습을 통해 고급 해킹 기술까지 단계적으로 학습할 수 있게 구성돼 있습니다.
특히 실험실 환경에서 직접 수행할 수 있는 다양한 공격 기법을 상세히 설명하고 있어, 학생부터 전문가까지 폭넓은 독자층이 유용하게 활용할 수 있을 것입니다. 각종 인터페이스, 포트, 통신 프로토콜, 전기적 신호 분석, 펌웨어 이미지 분석 등의 기본기를 다지고, 결함 주입, 사이드 채널 분석(SCA), 전력 분석(SPA/DPA) 등을 통해 실제 장치에서 비밀번호나 암호화 키를 추출하는 등의 고급 기술을 배울 수 있습니다.
이 책이 임베디드 시스템 보안에 관심을 갖고 있는 모든 분께 유익한 지침서가 되기를 바랍니다.