graf

secure boot bypass 개요 본문

ChipWhisperer/SecureBoot bypass

secure boot bypass 개요

graf 2026. 4. 27. 21:51

 

드디어 시작한다. 

작년에 RSW 분석을 마치고부터 계획했던 일인데 6개월만에 준비가 끝났다. 

 

 

1. 목표

목표는 글리칭을 통해 esp32의 secure boot를 우회하고 

검증되지 않은 펌웨어를 실행시키는 것이다. 

 

계획을 좀 더 세분화하면 

1. 펌웨어 추출 및 업로드 방법 확보

2. 펌웨어 검증 루틴 존재 식별

3. 검증 성공/실패 전력 흐름 비교

4. 트리거 잡기

5. 결함이 발생하는 파라미터 구체화

6. 글리칭 주입

 

이렇게 쪼갤 수 있을 것 같고 

트리거 잡기에서 가장 오래 시간을 쓰게 되지 않을까 예상 중이다. 

 

 

2. 보유 장비

현재 보유 장비는 

  • 로직 분석기 (24MHz)
  • CH341
  • Chip Whisperer
  • 휴대용 멀티미터
  • 라즈베리파이3B+

이게 전부다. 

 

허스키를 제외하면 전부 몇 만원밖에 안 하는 싸구려 장비들이다. 

라즈베리파이4B도 있긴 한데 서버가 돌아가고 있어서 웬만해서는 쓰기 어려울 거다. 

로직 분석기는 저가형 클론인데 저번에 보니까 구형 flash 클럭도 못 따라가더라. 

 

이렇게 적어놓고 보니까 진짜 보잘 것 없다. 

대체 무슨 배짱으로 시작한 건지 모르겠다. 

 

내가 봐도 답이 없다.

이제 겨우 시작인데 벌써 긴장된다. 

 

 

3. 자료 조사

esp32의 하드웨어 스팩은 어느 정도인지, 

보안 조치는 어떤 것들이 있는지 등등을 먼저 조사해보려고 한다. 

 

 

Hardware Overview Socs

esp 제조사인 espressif에서 하드웨어 스팩을 상세히 공개하고 있다. 

 

시리즈 별로 잘 정리되어 있다. 

생각보다 시리즈가 많다. 

 

 

칩마다 스팩이 다 다른데 esp32 계열만 대충 요약해보면 

아키텍쳐 Xtensa or RISC-V
최대 클럭 속도 96MHz ~ 500MHz
내장 Flash 0 ~ 8MB
코어 수 Single or Dual
ROM 128KB ~ 448KB
패키징 QFN or LGA

 

이런 형태다. 

근데 시리즈마다 secure boot 지원 여부가 다르다. 

 

 

Series architecture flash package secure boot flash encryption
ESP32-P4 RISC-V 32bit 0MB QFN O O
ESP32-S31 RISC-V 32bit 0MB QFN O O
ESP32-S3 Xtensa 32bit 0 ~ 8MB QFN, LGA O O
ESP32-S2 Xtensa 32bit 0 ~ 4MB QFN O O
ESP32-C6 RISC-V 32bit 0 ~ 8MB QFN O O
ESP32-C61 RISC-V 32bit 0 ~ 4MB QFN O O
ESP32-C5 RISC-V 32bit 0 ~ 4MB QFN O O
ESP32-C3 RISC-V 32bit 0 ~ 8MB QFN O O
ESP32-C2 RISC-V 32bit 2 ~ 4MB QFN O O
ESP32-H4 RISC-V 32bit 0 ~ 4MB QFN O O
ESP32-H21 RISC-V 32bit 4MB QFN
ESP32-H2 RISC-V 32bit 2 ~ 4MB QFN O O
ESP32 Xtensa 32bit 0 ~ 4MB QFN, LGA

 

watchdog은 8266부터 있었으니 대부분 들어있을 거고 

UART, SPI, I2C 등등은 거의 다 지원한다. 

esp32 시리즈에 secure boot가 없는 모델이 일부 있다. 

 

 

칩에 따라 완성된 모듈 형태로도 제작되고 DevKit도 판매한다. 

 

 

지난번에 쓰였던 건 ESP-WROOM-02D라는 모듈이었다. 

 

 

덮개를 열어봤다. 

 

좌측에 달린건 SPI flash다. 

저기에 클립을 연결했어도 펌웨어 추출이 가능했겠다. 

가운데 QFN이 SoC고 위에 파란 부분이 안테나다. 

 

다른 모듈도 내장 플래시가 없다면 이것과 거의 비슷한 구조일 거다. 

 

펌웨어 추출 및 업로드를 자주 해야할 테니 

모듈 중에는 외장 플래시가 사용된 구조가 분석하기 좋을 거다. 

 

 

4. 공격 대상 선정

사실 고민 중이었다. 

esp32 모듈 자체를 대상으로 할지, 

아니면 esp32가 쓰인 실제 제품을 구매해서 할지

 

연구 가치를 따지면 실제 제품에서 공격을 성공시키는게 더 나을 것 같긴 한데 

실제 제품을 대상으로 하려면 esp32가 쓰인 제품을 찾아야 한다. 

 

기업이 제품 설명으로 제품에 사용된 모듈이나 아키텍쳐까지 

공개하는 경우가 거의 없다보니 적절한 제품을 찾기가 쉽지 않다. 

 

기껏 주문했는데 esp가 아니거나 secure boot가 없으면 곤란하다. 

반대로 secure boot 기능은 있더라도 활성화되어있지 않을 수도 있다. 

 

 

ESP Product Selector

espressif에서 제품 선택을 위해 스팩을 비교해놓은 표를 찾아서 보고 있었는데 

리드 타임이 최소 4주에 길면 12주까지 나온다. 

4주는 거의 없고 대부분 6주 이상이다. 

 

한달이면 이미 학기가 끝난다. 

모듈을 여기서 구하기는 힘들겠다. 

 

 

찾아보니 sonoff라는 회사가 esp를 사용한 IoT 기기를 많이 만든다고 한다. 

 

 

여긴 하단에 대놓고 esp32라고 적어놨다. 

 

 

확인해보니 D0WD는 모두 secure boot도 있고 

대부분 외장 flash를 사용한다. 

 

현재까지는 가장 괜찮은 후보다. 

가격이 6만원이라는 것만 빼면.. 

 

 

만약 제품 중에 secure boot가 사용된 걸 찾지 못한다면 남은 선택권이 없으니

이런 esp32 개발 보드를 사서 글리치를 시도해볼 계획이다. 

 

 

제품은 이렇게 사려고 했는데 

 

주문하려고 보니 배송이 최소 보름이고 길면 한달도 더 걸린다고 한다. 

아니 이게 맞아...? 

 

그렇다고 배송비에 5만원을 태울 수는 없다. 

 

 

그냥 너로 해야겠다... 

 

 

'ChipWhisperer > SecureBoot bypass' 카테고리의 다른 글

ESP32 글리칭 파라미터 찾기  (0) 2026.05.05
펌웨어 수정 및 업로드  (0) 2026.05.02
ESP32 개발 환경 구축  (0) 2026.05.02