1 |
1
임의의 사물 인터넷(IoT; Internet of Things) 기기에 시스템 모드 에뮬레이션 환경을 제공하는 시스템 모드 에뮬레이터; 상기 시스템 모드 에뮬레이션 환경에서 실행되는 상기 기기의 펌웨어(firmware)에 대한 하나 이상의 프로세스 중 대상 프로세스에 사용자 모드 에뮬레이션 환경을 제공하는 사용자 모드 에뮬레이터;상기 사용자 모드 에뮬레이션 환경에서 상기 대상 프로세스에 대한 변이 기반 퍼징(fuzzing)을 실행하는 제1 테스팅부; 및상기 퍼징이 실행되는 도중 기 설정된 이벤트가 발생된 경우, 상기 시스템 모드 에뮬레이션 환경에서 상기 발생된 이벤트를 해결하기 위한 동작을 수행하는 제2 테스팅부를 포함하되,상기 제1 테스팅부는,상기 기 설정된 이벤트가 발생한 경우, 상기 퍼징의 실행을 중단하고, 상기 동작의 수행 결과에 기초하여 상기 퍼징의 실행을 재개하고,상기 제2 테스팅부는,사전 생성된 라이브러리(library)를 이용하여 상기 퍼징의 과정에서 실행될 하드웨어 의존성 함수를 처리하되, 상기 라이브러리는 상기 하드웨어 의존성 함수의 결과를 참(true)으로 반환하는, 펌웨어 퍼징 장치
|
2 |
2
청구항 1에 있어서,상기 제1 테스팅부는,메모리에 저장된 상기 대상 프로세스에 대한 문자열 상수를 추출하고, 상기 문자열 상수에 기초하여 상기 퍼징을 실행하는, 펌웨어 퍼징 장치
|
3 |
3
청구항 1에 있어서,상기 제2 테스팅부는, 상기 퍼징이 실행되는 도중 페이지 폴트(page fault)가 발생하는 경우, 상기 페이지 폴트를 유발하는 명령어(instructor)를 상기 사용자 모드 에뮬레이션 환경에서 실행하여 상기 페이지 폴트를 처리하는, 펌웨어 퍼징 장치
|
4 |
4
삭제
|
5 |
5
삭제
|
6 |
6
청구항 1에 있어서,상기 제1 테스팅부는,제1 입력 값에 따른 상기 퍼징의 코드 커버리지(code coverage) 증감 결과에 기초하여 제2 입력 값에 대한 퍼징을 수행하는, 펌웨어 퍼징 장치
|
7 |
7
청구항 6에 있어서,상기 제1 테스팅부는,상기 제1 입력 값에 따른 상기 퍼징의 코드 커버리지가 감소되는 경우, 상기 사용자 모드 에뮬레이션 환경을 초기화시킨 후, 상기 제2 입력 값에 대한 퍼징을 수행하는, 펌웨어 퍼징 장치
|
8 |
8
임의의 사물 인터넷(IoT; Internet of Things) 기기에 시스템 모드 에뮬레이션 환경을 제공하는 단계;상기 시스템 모드 에뮬레이션 환경에서 실행되는 상기 기기의 펌웨어(firmware)에 대한 하나 이상의 프로세스 중 대상 프로세스에 사용자 모드 에뮬레이션 환경을 제공하는 단계;상기 사용자 모드 에뮬레이션 환경에서 상기 대상 프로세스에 대한 변이 기반 퍼징(fuzzing)을 실행하는 단계; 및상기 퍼징이 실행되는 도중 기 설정된 이벤트가 발생된 경우, 상기 시스템 모드 에뮬레이션 환경에서 상기 발생된 이벤트를 해결하기 위한 동작을 수행하는 단계를 포함하되,상기 퍼징을 실행하는 단계는,상기 기 설정된 이벤트가 발생한 경우, 상기 퍼징의 실행을 중단하고, 상기 동작의 수행 결과에 기초하여 상기 퍼징의 실행을 재개하고,상기 동작을 수행하는 단계는,사전 생성된 라이브러리(library)를 이용하여 상기 퍼징의 과정에서 실행될 하드웨어 의존성 함수를 처리하되, 상기 라이브러리는 상기 하드웨어 의존성 함수의 결과를 참(true)으로 반환하는, 펌웨어 퍼징 방법
|
9 |
9
청구항 8에 있어서,상기 퍼징을 실행하는 단계는,메모리에 저장된 상기 대상 프로세스에 대한 문자열 상수를 추출하고, 상기 문자열 상수에 기초하여 상기 퍼징을 실행하는, 펌웨어 퍼징 방법
|
10 |
10
청구항 8에 있어서,상기 동작을 수행하는 단계는,상기 퍼징이 실행되는 도중 페이지 폴트(page fault)가 발생하는 경우, 상기 페이지 폴트를 유발하는 명령어(instructor)를 상기 사용자 모드 에뮬레이션 환경에서 실행하여 상기 페이지 폴트를 처리하는, 펌웨어 퍼징 방법
|
11 |
11
삭제
|
12 |
12
삭제
|
13 |
13
청구항 8에 있어서,상기 퍼징을 수행하는 단계는,제1 입력 값에 따른 상기 퍼징의 코드 커버리지(code coverage) 증감 결과에 기초하여 제2 입력 값에 대한 퍼징을 수행하는, 펌웨어 퍼징 방법
|
14 |
14
청구항 13에 있어서,상기 퍼징을 수행하는 단계는,상기 제1 입력 값에 따른 상기 퍼징의 코드 커버리지가 감소되는 경우, 상기 사용자 모드 에뮬레이션 환경을 초기화시킨 후, 상기 제2 입력 값에 대한 퍼징을 수행하는, 펌웨어 퍼징 방법
|