← 기술 목록으로
IoT Firmware
Fuzzing
Combined Emulation
Full-System Emulation
User-Mode Emulation
PSO
Coverage-Guided
0작업자의 메모
논문과 특허는 같은 연구의 다른 표현입니다. 논문이 실험과 결과를 설명한다면, 이 특허는 복합 에뮬레이션과 변이 최적화 아이디어를 기술 권리 범위로 정리한 결과입니다.
포트폴리오에서는 연구 성과를 과장하기보다, 임베디드 보안 문제를 실제 장치와 재현 가능한 방법으로 다뤘다는 점을 보여주는 항목으로 두었습니다.
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조에 따른 특허결정(등록결정)을 받은 등록특허로, KIPRIS에서 출원번호로 조회·확인된다(아래 원본 자료 링크).
정량적 성능 지표(커버리지 향상률, 탐지 취약점 수 등)는 제공된 근거 문서에 명시되어 있지 않아 확인 필요로 표기한다.
4의의
- 에뮬레이션의 정확성(풀 시스템)과 퍼징의 속도(유저 모드)를 결합해 펌웨어 퍼징의 속도·호환성 한계를 완화한 점이 핵심이다.
- 변이 연산자 선택을 무작위가 아닌 PSO 기반 최적화로 전환해 동일 자원에서 더 넓은 커버리지와 깊은 취약점 도달을 노린다.
- 본 발명(2020)은 이후 하이브리드(심볼릭/콘콜릭 실행) 퍼징 방향의 IoTHybridFuzzer(2021)로 이어지는 연구의 기반이 되었다.