1 |
1
프로그램 경로에 기반한 소프트웨어 취약점 검출 방법에 있어서,시드풀로부터 하나의 시드를 임의로 선정하는 단계;상기 선정된 시드에 대해 기 설정된 공격 규칙을 적용하여 테스트 입력을 생성하는 단계;상기 테스트 입력을 대상 소프트웨어에 입력하는 단계;상기 테스트 입력에 의해 소프트웨어의 새로운 프로그램 경로가 탐색되었는지 여부를 판단하는 단계; 및새로운 프로그램 경로가 탐색되었을 경우, 상기 테스트 입력을 상기 시드풀에 추가하는 단계,를 포함하는 프로그램 경로에 기반한 소프트웨어 취약점 검출 방법
|
2 |
2
제1항에 있어서,상기 선정된 시드를 이용하여 테스트 입력을 생성할 수 있는지 여부를 판단하는 단계,를 더 포함하는 것인, 프로그램 경로에 기반한 소프트웨어 취약점 검출 방법
|
3 |
3
제 1항에 있어서,상기 시드는 대상 소프트웨어의 정상입력 데이터 또는 비정상입력 데이터인 것인, 프로그램 경로에 기반한 소프트웨어 취약점 검출 방법
|
4 |
4
제 1항에 있어서,상기 기 설정된 공격규칙은,무작위의 비트 연산, 경계값(border values)의 적용 및 필드 크기 변경 중 적어도 하나인 프로그램 경로에 기반한 소프트웨어 취약점 검출 방법
|
5 |
5
제 1항에 있어서,상기 새로운 프로그램 경로가 탐색되었는지 여부를 판단하는 단계는,선행된 테스트 입력을 대상 소프트웨어에 입력하는 단계에 의해 실행된 바 없는 상기 대상 소프트웨어에 포함된 새로운 소스코드 영역이 실행되었는지 여부를 판단하는 것인 프로그램 경로에 기반한 소프트웨어 취약점 검출 방법
|
6 |
6
제 5항에 있어서,상기 새로운 소스코드 영역이 실행되었는지 여부를 판단하는 것은,대상 소프트웨어의 코드 커버리지(Code Coverage) 변화량, 입출력 응답시간의 변화, 출력값의 변화, 메모리 활용량 및 기타 시스템 정보 중 적어도 하나의 정보를 분석함으로써 수행되는 것을 특징으로 하는 프로그램 경로에 기반한 소프트웨어 취약점 검출 방법
|
7 |
7
제 1항에 있어서,상기 테스트 입력을 대상 소프트웨어에 입력하는 단계 후, 크래시를 검출하는 단계를 더 포함하고,상기 크래시를 검출하는 단계는 상기 테스트 입력을 대상 소프트웨어에 입력하는 단계로 인해 대상 소프트웨어에서 크래시가 발생한 경우, 해당 테스트 입력을 로그로 저장하는 것인 프로그램 경로에 기반한 소프트웨어 취약점 검출 방법
|
8 |
8
프로그램 경로에 기반한 소프트웨어 취약점 검출 장치에 있어서,대상 소프트웨어의 정상입력 또는 비정상입력인 시드에 대한 정보를 저장하는 제1저장부;상기 제1저장부로부터 시드 정보를 수신하여 상기 시드 정보를 기반으로 새로운 테스트 입력을 생성하는 입력생성부;상기 테스트 입력을 대상 소프트웨어에 입력하고 대상 소프트웨어의 응답을 분석하는 테스트부; 및상기 테스트 입력에 의해 대상 소프트웨어의 새로운 프로그램 경로가 탐색되었는지를 탐지하는 프로그램 경로 탐지부,를 포함하는 프로그램 경로에 기반한 소프트웨어 취약점 검출 장치
|
9 |
9
제8항에 있어서,상기 테스트부가 소프트웨어의 응답을 분석하는 과정에서 크래시가 발생한 경우, 해당 테스트 입력에 대한 정보를 로그 형태로 저장하는 제2저장부,를 더 포함하는 것을 특징으로 하는 프로그램 경로에 기반한 소프트웨어 취약점 검출 장치
|
10 |
10
제8항에 있어서,상기 프로그램 경로 탐지부는,상기 테스트 입력에 따른 소프트웨어의 응답에 관하여, 코드 커버리지(Code Coverage) 변화량, 입출력 응답시간의 변화, 출력값의 변화, 메모리 활용량 및 기타 시스템 정보 중 적어도 하나의 정보를 분석함으로써 상기 대상 소프트웨어의 새로운 프로그램 경로가 탐색되었는지를 탐지하는 것을 특징으로 하는 프로그램 경로에 기반한 소프트웨어 취약점 검출 장치
|