← 기술 목록으로
IoT Firmware
Fuzzing
Combined Emulation
Full-System Emulation
User-Mode Emulation
PSO
Coverage-Guided
1문제
제조사마다 다른 IoT 펌웨어를 사람이 일일이 분석하는 것은 현실적으로 불가능하다.
기존 접근은 펌웨어를 에뮬레이션하고 퍼저를 결합해 자동 분석을 시도했지만 두 가지 한계가 있었다.
- 변이 기반(mutation-based) 퍼저가 변이 1단계(stage 1)에 너무 오래 머문다. 새로운 경로나 크래시가 발견되지 않을 때만 2단계로 넘어가기 때문이다.
- 변이 2단계(stage 2)에서 8개의 변이 연산자(mutation operator)를 효율성과 무관하게 무작위로 선택한다.
그 결과 변이 횟수는 기하급수적으로 늘어나지만 코드 커버리지는 의미 있게 늘지 않았고,
펌웨어 에뮬레이션 퍼징 자체의 속도·호환성도 좋지 않았다.
2접근 (한 일)
본 발명은 복합 에뮬레이션(Combined Emulation) 기법과 PSO 기반 변이 연산자 최적화를 결합한
효율적인 커버리지 가이드 IoT 펌웨어 퍼징 시스템·방법을 제안한다.
복합 에뮬레이션 흐름
- 대상 펌웨어를 풀 시스템 모드 에뮬레이션(Full System Mode Emulation)으로 실행한다.
- 펌웨어의 네트워크 프로그램을 구동하고, 해당 프로세스에 할당된 메모리 주소를 RAM File로 저장한다.
- 변이 기반 퍼저에 내장된 유저 모드 에뮬레이터(User Mode Emulator)가 이 RAM File을 참조해 대상 프로세스를 빠르게 에뮬레이션·퍼징한다.
- 유저 모드에서 처리할 수 없는 시스템 콜이 감지되면 현재 메모리 상태를 저장하고 시스템 모드 에뮬레이션으로 넘겨 시스템 콜을 처리한 뒤, 다시 유저 모드로 프로세스를 복귀시킨다.
변이 효율 개선
- 변이 1단계의 변이 횟수를 낮춰 1단계에 머무는 시간을 줄였다.
- 변이 2단계에 PSO(Particle Swarm Optimization, 입자 군집 최적화)를 적용해 효율적인 변이 연산자를 찾아 우선 적용함으로써, 코드 커버리지를 넓히고 깊은 코드 영역의 취약점에 더 빨리 도달하도록 했다.
3결과 · 성과
- 국문 명칭: 펌웨어 퍼징 장치 및 방법 / 영문 명칭: APPARATUS AND METHOD FOR FUZZING FIRMWARE.
- 출원인: 세종대학교산학협력단. 발명자: 윤주범, 김현욱, 김주환.
- 특허법 제66조에 따른 특허결정(등록결정)을 받았다. 등록번호는 확인 필요.
정량적 성능 지표(커버리지 향상률, 탐지 취약점 수 등)는 제공된 근거 문서에 명시되어 있지 않아 확인 필요로 표기한다.
4의의
- 에뮬레이션의 정확성(풀 시스템)과 퍼징의 속도(유저 모드)를 결합해 펌웨어 퍼징의 속도·호환성 한계를 완화한 점이 핵심이다.
- 변이 연산자 선택을 무작위가 아닌 PSO 기반 최적화로 전환해, 동일 자원에서 더 넓은 커버리지와 깊은 취약점 도달을 노린다.
- 본 발명(2020)은 이후 하이브리드(심볼릭/콘콜릭 실행) 퍼징 방향의 IoTHybridFuzzer(2021)로 이어지는 연구의 기반이 되었다.
★원본 자료
본 특허의 출원서·명세서·결정서 등 원문 PDF는 외부 자료이므로 본 포트폴리오에는 포함하지 않았다.
특허 메타데이터(출원번호 10-2020-0089416, 출원일 2020.07.20, 등록결정 2021.01.25)는 내부 위키 근거 문서를 기준으로 한다.