KR100916329B1 - 소프트웨어 취약점 점검 장치 및 방법 - Google Patents

소프트웨어 취약점 점검 장치 및 방법 Download PDF

Info

Publication number
KR100916329B1
KR100916329B1 KR1020070110850A KR20070110850A KR100916329B1 KR 100916329 B1 KR100916329 B1 KR 100916329B1 KR 1020070110850 A KR1020070110850 A KR 1020070110850A KR 20070110850 A KR20070110850 A KR 20070110850A KR 100916329 B1 KR100916329 B1 KR 100916329B1
Authority
KR
South Korea
Prior art keywords
software
vulnerability
file
binary
function
Prior art date
Application number
KR1020070110850A
Other languages
English (en)
Other versions
KR20090044656A (ko
Inventor
김은영
윤영태
박응기
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070110850A priority Critical patent/KR100916329B1/ko
Priority to US12/102,148 priority patent/US8539449B2/en
Priority to JP2008122646A priority patent/JP2009116847A/ja
Priority to CNA2008101256664A priority patent/CN101425035A/zh
Priority to EP08161266.5A priority patent/EP2058747B1/en
Publication of KR20090044656A publication Critical patent/KR20090044656A/ko
Application granted granted Critical
Publication of KR100916329B1 publication Critical patent/KR100916329B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Abstract

본 발명은 소프트웨어의 취약점을 점검하기 위한 장치 및 방법에 관한 것으로서, 보다 상세하게는 소프트웨어의 기능별로 퍼징을 수행하는 소프트웨어 취약점 점검 장치 및 방법에 관한 것이다. 본 발명에 따른 소프트웨어 취약점 점검 장치는 취약점 점검을 수행할 상기 소프트웨어의 기능을 선택하는 대상 기능 선택 모듈; 상기 선택된 기능을 포함하는 제 1 파일 및 상기 선택된 기능을 포함하지 않는 제 2 파일을 생성하는 비교 파일 생성 모듈; 상기 제 1 파일 및 상기 제 2 파일의 바이너리 값을 비교하여 변경 또는 추가된 바이너리 패턴을 검색하는 바이너리 패턴 비교 모듈; 상기 검색된 바이너리 패턴에 기반하여 하나 이상의 테스트 케이스를 생성하는 테스트 케이스 생성 모듈; 및 상기 하나 이상의 테스트 케이스에 기반하여 취약점 점검을 수행하고 취약점 점검 결과를 생성하는 취약점 검증 모듈로 구성된다. 본 발명은 소프트웨어의 기능에 따라 변경 또는 추가되는 부분에 집중적으로 퍼징을 수행함으로써, 소프트웨어의 각각 기능별 취약점을 찾을 수 있을 뿐만 아니라 퍼징의 효율성도 증가시킬 수 있다.
퍼징, 바이너리 비교, 취약점 검증

Description

소프트웨어 취약점 점검 장치 및 방법{Device and Method for Inspecting Vulnerability of Software}
본 발명은 소프트웨어의 취약점을 점검하기 위한 장치 및 방법에 관한 것으로서, 보다 상세하게는 소프트웨어의 기능별로 퍼징을 수행하는 소프트웨어 취약점 점검 장치 및 방법에 관한 것이다.
소프트웨어 개발 과정에서, 소프트웨어에 대한 분석은 일반적으로 디버깅 프로그램를 이용하여 소스 코드에서 취약점이 발생할 가능성이 있는 곳에 브레이크 포인트를 설정하고, 소프트웨어의 실행중에 브레이크 포인트에 따라 실행이 멈추면 소프트웨어의 실행 환경을 관찰하여 분석하는 방식으로 수행된다.
이에 반해, 소프트웨어 취약점 분석은 대부분 소스 코드를 구할 수 없는 환경에서 수행되고 이에 따라 실행파일만으로도 수행가능한 블랙박스 테스트 형태의 방식으로 수행된다. 여기서, 블랙박스 테스트란 소프트웨어 자체를 내부의 동작을 관찰할 수 없는 블랙박스로 가정하고 소프트웨어의 입출력 값에 기반하여 분석을 수행하는 테스트 방식이다.
이러한 블랙박스 테스트 중 하나인 퍼징(Fuzzing)은 해당 소프트웨어에 다양한 랜덤 데이터를 입력하고, 입력 값에 따라 해당 소프트웨어에서 수행되는 비정상적인 동작을 탐지하여 소프트웨어가 처리할 수 없는 결함을 찾아내는 분석 방법이다. 퍼징은 일반적으로 랜덤 데이터를 포함하는 테스트 케이스를 만들고, 생성된 테스트 케이스를 해당 소프트웨어를 순차적으로 실행하여 해당 소프트웨어의 오동작 등을 분석하는 과정으로 수행된다.
이러한 퍼징을 사용하는 종래의 소프트웨어 취약점 점검 방법은 소프트웨어의 기능과 상관없이 입력 데이터의 전체에 대하여 랜덤으로 데이터를 생성하여 분석을 수행할 뿐이고, 이에 따라 소프트웨어의 특정 기능에 의해 발생될 수 있는 취약점에 대한 집중적인 취약점 점검을 제공하기는 어렵다는 단점이 있다.
본 발명에서 해결하고자 하는 과제는, 소프트웨어의 기능별로 집중적으로 퍼징을 수행할 수 있는 소프트웨어 취약점 점검 장치 및 방법을 제공하는 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 측면은 취약점 점검을 수행할 상기 소프트웨어의 기능을 선택하는 대상 기능 선택 모듈; 상기 선택된 기능을 포함하는 제 1 파일 및 상기 선택된 기능을 포함하지 않는 제 2 파일을 생성하는 비교 파일 생성 모듈; 상기 제 1 파일 및 상기 제 2 파일의 바이너리 값을 비교하여 변경 또는 추가된 바이너리 패턴을 검색하는 바이너리 패턴 비교 모듈; 상기 검색된 바이너리 패턴에 기반하여 하나 이상의 테스트 케이스를 생성하는 테스트 케이스 생성 모듈; 및 상기 하나 이상의 테스트 케이스에 기반하여 취약점 점검을 수행하고 취약점 점검 결과를 생성하는 취약점 검증 모듈을 포함하는 소프트웨어 취약점 점검 장치를 제공한다.
본 발명의 다른 측면은 취약점 점검을 수행할 상기 소프트웨어의 기능을 선택하는 단계; 상기 선택된 기능을 포함하는 제 1 파일을 생성하는 단계; 상기 선택된 기능을 포함하지 않는 제 2 파일을 생성하는 단계; 상기 제 1 파일 및 상기 제 2 파일의 바이너리 값을 비교하여 변경 또는 추가된 바이너리 패턴을 검색하는 단계; 상기 검색된 바이너리 패턴에 기반하여 하나 이상의 테스트 케이스를 생성하는 단계; 상기 하나 이상의 테스트 케이스에 기반하여 취약점 점검을 수행하는 단계; 및 상기 취약점 점검의 수행 결과를 생성하는 단계를 포함하는 소프트웨어 취약점 점검 방법을 제공한다.
본 발명은 소프트웨어의 기능에 따라 변경 또는 추가되는 부분에 집중적으로 퍼징을 수행함으로써, 소프트웨어의 각각 기능별 취약점을 찾을 수 있을 뿐만 아니라 퍼징의 효율성도 증가시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 취약점 점검 장치의 구성을 나타내는 블록도이다.
도 1을 참조하면, 소프트웨어 취약점 점검 장치(100)는 점검 대상 기능 선택 모듈(110), 비교 파일 생성 모듈(120), 바이너리 패턴 비교 모듈(130), 테스트 케이스 생성 모듈(140) 및 취약점 검증 모듈(150)을 포함한다.
점검 대상 기능 선택 모듈(110)은 해당 소프트웨어의 기능 중에서 집중적으로 퍼징을 수행할 기능을 선택한다. 비교 파일 생성 모듈(120)은 선택된 기능이 포함된 제 1 파일 및 선택된 기능이 포함되지 않은 제 2 파일을 생성한다.
바이너리 패턴 비교 모듈(130)은 제 1 파일과 제 2 파일의 바이너리 값을 비교하여 서로 상이한 바이너리 패턴을 검색한다. 여기서, 바이너리 패턴이란 일련의 바이너리 값이 형성하는 바이너리 값의 집합을 말한다. 제 1 파일과 제 2 파일의 바이너리 패턴의 차이는 특정 기능의 포함 여부이므로 상기 상이한 바이너리 패턴이 위치하는 주소는 특정 기능에 대응하는 주소를 의미한다. 테스트 케이스 생성 모듈(140)은 바이너리 패턴 비교 모듈(130)을 통해 검색된 부분에 기반하여 퍼징을 수행하기 위한 테스트 케이스를 생성한다. 취약점 검증 모듈(150)은 테스트 케이스 생성 모듈(140)에서 생성된 테스트 케이스를 이용하여 해당 소프트웨어를 실행하고 소프트웨어의 실행중에 발생하는 오동작 등에 기반하여 취약점 점검 결과를 생성하고 출력한다.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 취약점 점검 방법의 과정을 나타내는 순서도이다.
도 2를 참조하면, 점검 대상 기능 선택 모듈은 취약점 점검을 수행할 소프트웨어의 기능을 선택한다(210). 일 실시예에서, 점검 대상 기능 선택 모듈은 사용자 인터페이스를 통해 입력된 사용자의 선택에 따라 점검 대상 기능을 선택하거나 소정 선택 알고리즘에 따라 사용자의 입력없이 점검 대상 기능을 선택할 수 있다.
비교 파일 생성 모듈은 선택된 점검 대상 기능을 포함하는 제 1 파일 및 제 1 파일과 비교하기 위해 점검 대상 기능을 포함하지 않는 제 2 파일을 생성한다(220). 일 실시예에서, 제 2 파일은 워드 프로세서의 빈문서(Empty document)와 같이 해당 소프트웨어에 의해 생성되는 초기화 파일(Initialized file)일 수 있다.
바이너리 패턴 비교 모듈은 제 1 파일 및 제 2 파일의 바이너리 값을 비교하여 변경되거나 추가된 바이너리 패턴을 검색한다(230). 바이너리 패턴 비교 모듈은 비교를 통해 검색된 부분의 주소를 포함하는 위치 정보를 테스트 케이스 생성 모듈에 전달할 수 있다.
테스트 케이스 생성 모듈은 상기 검색된 부분의 주소에 랜덤 데이터를 삽입하여 퍼징을 수행하기 위한 테스트 케이스를 생성한다(240). 일반적으로 하나의 주소에는 두자리의 16진수로 이루어진 바이너리 값이 입력될 수 있다. 따라서, 하나의 주소에는 16x16,즉 256에서 본래 데이터 값을 뺀 255 개의 랜덤 데이터가 삽입될 수 있다. 이에 따라, 총 N 개의 주소가 불일치 부분으로써 검색된 경우, N x 255 개의 테스트 케이스를 생성할 수 있다. 일 실시예에서, 테스트 케이스 생성 모듈은 상기 검색된 부분의 주소에 본래 바이너리 값을 제외한 나머지 바이너리 값을 순차적으로 대입하여 테스트 케이스를 생성할 수 있다. 취약점 검증 모듈은 생성된 테스트 케이스를 입력 데이터로 이용하여 해당 소프트웨어를 실행하고(250), 실행 중 소프트웨어의 오동작 등에 기반하여 취약점 점검 결과를 생성하고 출력한다(260).
도 3a 내지 3c는 본 발명의 일 실시예에 따른 소프트웨어 취약점 점검 장치에 포함된 모듈들의 동작을 설명하기 위한 도면이다.
도 3a를 참조하면, 사용자가 점검 대상 기능 선택 모듈을 통하여 마이크로 소프트 워드 프로세서의 표 그리기 기능에 대한 취약점 점검을 수행을 요청하는 경우, 비교 파일 생성 모듈은 제 1 파일 및 제 2 파일로써 각각 표가 삽입된 문서 파일과 빈문서 파일를 생성할 수 있다.
바이너리 패턴 비교 모듈(310)은 빈문서 파일 및 표 삽입 문서 파일의 바이 너리 값을 순차적으로 비교함으로써 변경 또는 추가된 바이너리 값을 검색할 수 있다. 예를 들어, 빈문서 파일의 바이너리 값이 " D0 CF FF FF FF CC D1 F9 D3 GG 33 DS 91"이고 표 삽입 문서 파일의 바이너리 값이 " D0 CF 2A B0 67 CC D1 F9 D3 GG 33 DS 91 ES FF FF FF B1 E2 "인 경우, 0x01 및 0x02에서는 바이너리 값이 서로 일치하지만 0x03 내지 0x05에서는 바이너리 값이 일치하지 않는다. 또한, 0x06 내지 0x13에서는 두 파일 사이에 바이너리 값이 일치하지만 0x14 내지 0x19에서는 표 삽입 문서 파일에만 바이너리 값이 존재한다. 따라서, 바이너리 패턴 비교 모듈은 바이너리 값이 불일치하는 주소인 0x03 내지 0x05 및 0x14 내지 0x19를 포함하는 위치 정보를 생성하고 이를 테스트 케이스 생성 모듈(320)에 전달할 수 있다.
도 3b를 참조하면, 테스트 케이스 생성 모듈(320)은 바이너리 패턴 비교 모듈로부터 바이너리 값이 불일치하는 주소에 대한 위치 정보를 수신하고, 수신한 위치 정보에 기반하여 랜덤한 데이터를 생성하여 삽입한다. 예를 들어, 0x03 내지 0x05 및 0x14 내지 0x19가 바이너리 값이 불일치하는 부분의 주소로써 테스트 케이스 생성 모듈(320)에 전달되는 경우 테스트 케이스 생성 모듈(320)은 각각의 주소에 대해서 255개의 랜덤 데이터 삽입이 가능하므로 9 x 255 = 2295 개의 문서 파일을 테스트 케이스로 생성하여 취약점 검증 모듈(330)에 전달할 수 있다.
도 3c를 참조하면, 취약점 검증 모듈(330)은 테스트 케이스로 생성된 각각의 문서 파일을 마이크로 소프트 워드 프로세서에서 실행함으로써 실행 중에 발생할 수 있는 오류에 대한 검증을 수행하여 취약점 점검 결과를 출력할 수 있다. 0x03의 바이너리 값 2A를 AA로 치환하여 생성된 문서 파일의 실행 중에 버퍼 오버플로우가 발생한 경우, 취약점 검증 모듈(330)은 "마이크로 소프트 워드 프로세서의 표 그리기 기능이 추가된 경우 0x03의 바이너리 값이 AA로 변경되면 버퍼 오버플로우의 취약점이 발견된다"라는 취약점 점검 결과 메시지를 출력할 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 취약점 점검 장치의 구성을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 취약점 점검 방법의 과정을 나타내는 순서도이다.
도 3a 내지 3c는 본 발명의 일 실시예에 따른 소프트웨어 취약점 점검 장치에 포함된 모듈들의 동작을 설명하기 위한 도면이다.

Claims (11)

  1. 소프트웨어의 취약점을 점검하기 위한 장치에 있어서,
    취약점 점검을 수행할 상기 소프트웨어의 기능을 선택하는 대상 기능 선택 모듈;
    상기 선택된 기능을 포함하는 제 1 파일 및 상기 선택된 기능을 포함하지 않는 제 2 파일을 생성하는 비교 파일 생성 모듈;
    상기 제 1 파일 및 상기 제 2 파일의 바이너리 값을 비교하여 변경 또는 추가된 바이너리 패턴을 검색하는 바이너리 패턴 비교 모듈;
    상기 검색된 바이너리 패턴에 기반하여 하나 이상의 테스트 케이스를 생성하는 테스트 케이스 생성 모듈; 및
    상기 하나 이상의 테스트 케이스에 기반하여 취약점 점검을 수행하고 취약점 점검 결과를 생성하는 취약점 검증 모듈
    을 포함하는 소프트웨어 취약점 점검 장치.
  2. 제 1항에 있어서,
    상기 바이너리 패턴 비교 모듈은 상기 변경 또는 추가된 바이너리 패턴이 위치한 주소를 포함하는 위치 정보를 생성하고,
    상기 테스트 케이스 생성 모듈은 상기 위치 정보에 기반하여 상기 하나 이상 의 테스트 케이스를 생성하는 소프트웨어 취약점 점검 장치.
  3. 제 1항에 있어서,
    상기 하나 이상의 테스트 케이스는 상기 변경 또는 추가된 바이너리 패턴이 위치한 주소에 본래의 바이너리 값을 제외한 나머지 바이너리 값을 순차적으로 치환하여 생성되는 소프트웨어 취약점 점검 장치.
  4. 제 1항에 있어서,
    취약점 검증 모듈은 상기 하나 이상의 테스트 케이스를 입력 데이터로 이용하여 상기 소프트웨어를 실행하고, 상기 소프트웨어의 오동작을 여부에 기반하여 상기 취약점 점검 결과를 생성하는 소프트웨어 취약점 점검 장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 제 2 파일은 상기 소프트웨어에 의해 생성되는 초기화 파일인 소프트웨어 취약점 점검 장치.
  6. 소프트웨어의 취약점을 점검하기 위한 방법에 있어서,
    (a) 취약점 점검을 수행할 상기 소프트웨어의 기능을 선택하는 단계;
    (b) 상기 선택된 기능을 포함하는 제 1 파일을 생성하는 단계;
    (c) 상기 선택된 기능을 포함하지 않는 제 2 파일을 생성하는 단계;
    (d) 상기 제 1 파일 및 상기 제 2 파일의 바이너리 값을 비교하여 변경 또는 추가된 바이너리 패턴을 검색하는 단계;
    (e) 상기 검색된 바이너리 패턴에 기반하여 하나 이상의 테스트 케이스를 생성하는 단계;
    (f) 상기 하나 이상의 테스트 케이스에 기반하여 취약점 점검을 수행하는 단계; 및
    (e) 상기 취약점 점검의 수행 결과를 생성하는 단계
    를 포함하는 소프트웨어 취약점 점검 방법.
  7. 제 6항에 있어서, 상기 단계 (d) 이후에,
    상기 변경 또는 추가된 바이너리 패턴이 위치한 주소를 포함하는 위치 정보를 생성하는 단계를 더 포함하는 소프트웨어 취약점 점검 방법.
  8. 제 7항에 있어서,
    상기 단계 (e)는 상기 위치 정보에 기반하여 상기 하나 이상의 테스트 케이스를 생성하는 소프트웨어 취약점 점검 방법.
  9. 제 6항에 있어서,
    상기 하나 이상의 테스트 케이스는 상기 변경 또는 추가된 바이너리 패턴이 위치한 주소에 본래의 바이너리 값을 제외한 나머지 바이너리 값을 순차적으로 치환하여 생성되는 소프트웨어 취약점 점검 방법.
  10. 제 6항에 있어서,
    상기 단계 (f)는 상기 하나 이상의 테스트 케이스를 입력 데이터로 이용하여 상기 소프트웨어를 실행하고, 상기 소프트웨어의 오동작을 여부에 기반하여 상기 취약점 점검을 수행하는 소프트웨어 취약점 점검 방법.
  11. 제 6항 내지 제 10항 중 어느 한 항에 있어서,
    상기 제 2 파일은 상기 소프트웨어에 의해 생성되는 초기화 파일인 소프트웨어 취약점 점검 방법.
KR1020070110850A 2007-11-01 2007-11-01 소프트웨어 취약점 점검 장치 및 방법 KR100916329B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020070110850A KR100916329B1 (ko) 2007-11-01 2007-11-01 소프트웨어 취약점 점검 장치 및 방법
US12/102,148 US8539449B2 (en) 2007-11-01 2008-04-14 Device and method for inspecting software for vulnerabilities
JP2008122646A JP2009116847A (ja) 2007-11-01 2008-05-08 ソフトウェア脆弱点点検装置及び方法
CNA2008101256664A CN101425035A (zh) 2007-11-01 2008-06-17 用于检查软件的漏洞的设备和方法
EP08161266.5A EP2058747B1 (en) 2007-11-01 2008-07-28 Device and method for inspecting software for vulnerabilities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070110850A KR100916329B1 (ko) 2007-11-01 2007-11-01 소프트웨어 취약점 점검 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090044656A KR20090044656A (ko) 2009-05-07
KR100916329B1 true KR100916329B1 (ko) 2009-09-11

Family

ID=40394217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070110850A KR100916329B1 (ko) 2007-11-01 2007-11-01 소프트웨어 취약점 점검 장치 및 방법

Country Status (5)

Country Link
US (1) US8539449B2 (ko)
EP (1) EP2058747B1 (ko)
JP (1) JP2009116847A (ko)
KR (1) KR100916329B1 (ko)
CN (1) CN101425035A (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US20110016531A1 (en) * 2009-07-16 2011-01-20 Michael Yeung System and method for automated maintenance based on security levels for document processing devices
CN101814053B (zh) * 2010-03-29 2013-03-13 中国人民解放军信息工程大学 一种基于功能模型的二进制代码漏洞发现方法
US9015667B2 (en) * 2010-10-06 2015-04-21 Microsoft Technology Licensing, Llc Fuzz testing of asynchronous program code
CN103023710B (zh) * 2011-09-21 2016-06-08 阿里巴巴集团控股有限公司 一种安全测试系统和方法
CN103034580A (zh) * 2011-09-29 2013-04-10 西门子公司 模糊测试的方法、装置和系统
US8856935B2 (en) * 2012-02-07 2014-10-07 International Business Machines Corporation Automatic synthesis of unit tests for security testing
JP5906855B2 (ja) * 2012-03-19 2016-04-20 富士通株式会社 テストデータ作成方法、テストデータ作成プログラム及びテストデータ作成装置
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
EP2877953A4 (en) * 2012-07-25 2016-02-24 Hewlett Packard Development Co DETERMINATION OF APPLICATION WEAKNESSES
CN102866948B (zh) * 2012-08-30 2015-04-15 中国人民解放军63928部队 一种嵌入式基础软件测试平台及其测试方法
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
KR101458930B1 (ko) 2013-05-23 2014-11-07 한국전자통신연구원 멀티 노드를 이용하는 스마트 단말 퍼징 장치 및 그 방법
CN103268274B (zh) * 2013-06-09 2015-11-18 浙江中控研究院有限公司 一种基于现场总线实验平台的测试方法及装置
US9098352B2 (en) * 2013-07-17 2015-08-04 Deja Vu Security, Llc Metaphor based language fuzzing of computer code
US10534914B2 (en) 2014-08-20 2020-01-14 Nippon Telegraph And Telephone Corporation Vulnerability finding device, vulnerability finding method, and vulnerability finding program
CN104199774B (zh) * 2014-09-05 2017-02-22 北京奇虎科技有限公司 程序安全测试方法和装置
US9921941B2 (en) * 2015-04-10 2018-03-20 Siemens Aktiengesellschaft Verification and validation of third party PLC code
WO2016178816A1 (en) 2015-05-01 2016-11-10 Lookout, Inc. Determining source of side-loaded software
KR101640479B1 (ko) 2015-08-28 2016-07-18 (주)엔키소프트 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
KR101689795B1 (ko) 2015-10-28 2016-12-26 아주대학교산학협력단 통신 프로토콜 소프트웨어의 취약성 검출 방법 및 시스템
CN105447387B (zh) * 2015-11-05 2018-06-19 工业和信息化部电信研究院 基于硬件隔离环境的可信应用检测的方法及装置
CN106815135B (zh) * 2015-11-30 2021-04-06 阿里巴巴集团控股有限公司 漏洞检测方法及装置
US9473523B1 (en) * 2016-02-04 2016-10-18 International Business Machines Corporation Execution of test inputs with applications in computer security assessment
JP6542148B2 (ja) 2016-03-18 2019-07-10 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US9749349B1 (en) * 2016-09-23 2017-08-29 OPSWAT, Inc. Computer security vulnerability assessment
US11522901B2 (en) 2016-09-23 2022-12-06 OPSWAT, Inc. Computer security vulnerability assessment
KR101968544B1 (ko) * 2017-03-10 2019-04-12 아주대학교산학협력단 소프트웨어 취약점 검출 방법 및 장치
JP6880933B2 (ja) * 2017-03-31 2021-06-02 富士通株式会社 プログラムテスト装置、テスト制御方法及びテスト制御プログラム
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
CN107526970B (zh) * 2017-08-24 2020-05-19 安徽大学 基于动态二进制平台检测运行时程序漏洞的方法
KR101904911B1 (ko) 2017-10-13 2018-10-08 한국인터넷진흥원 하이브리드 퍼징 기반 보안 취약점 자동 탐색 방법 및 그 장치
CN108667912B (zh) * 2018-04-23 2021-03-23 中国人民解放军战略支援部队信息工程大学 一种云资源分配方法及装置
KR101981028B1 (ko) * 2018-09-28 2019-05-23 한국인터넷진흥원 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램
JP7139944B2 (ja) * 2018-12-28 2022-09-21 株式会社Jvcケンウッド データ生成装置、データ生成方法、及びプログラム
US11210405B2 (en) 2019-07-31 2021-12-28 Blackberry Limited Binary vulnerability determination
KR20210067745A (ko) 2019-11-29 2021-06-08 한국전자통신연구원 단방향 프로토콜 소프트웨어 퍼징을 위한 퍼징 데이터 전송 장치 및 방법
KR102209676B1 (ko) * 2020-07-20 2021-01-28 세종대학교산학협력단 펌웨어 퍼징 장치 및 방법
CN112347484A (zh) * 2020-10-27 2021-02-09 杭州安恒信息技术股份有限公司 软件漏洞检测方法、装置、设备及计算机可读存储介质
CN112445709B (zh) * 2020-11-30 2022-09-30 安徽工业大学 一种通过gan解决afl测试模型数据不平衡的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736688A (ja) * 1993-07-22 1995-02-07 Toshiba Corp ソフトウェア品質管理システム
KR20070092403A (ko) * 2006-03-10 2007-09-13 한국전자통신연구원 ActiveX Control 취약점 검사 및 검증방법과 ActiveX Control 식별 장치 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232795A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd ソフトウェア部品組み合わせテスト方法
US7051322B2 (en) * 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
US7237231B2 (en) * 2003-03-10 2007-06-26 Microsoft Corporation Automatic identification of input values that expose output failures in a software object
WO2006044835A2 (en) * 2004-10-15 2006-04-27 Kenai Systems, Inc. Method, system and apparatus for assessing vulnerability in web services
JP2006209521A (ja) * 2005-01-28 2006-08-10 Matsushita Electric Ind Co Ltd テスト項目自動生成装置
JP4414373B2 (ja) * 2005-06-30 2010-02-10 富士通株式会社 プログラムの検証プログラム、プログラムの検証装置、プログラムの検証方法
US8468604B2 (en) * 2005-08-16 2013-06-18 Emc Corporation Method and system for detecting malware
US20070203973A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation Fuzzing Requests And Responses Using A Proxy
US8528087B2 (en) * 2006-04-27 2013-09-03 Robot Genius, Inc. Methods for combating malicious software
US7594142B1 (en) * 2006-06-30 2009-09-22 Microsoft Corporation Architecture for automated detection and analysis of security issues
US7904963B2 (en) * 2006-09-26 2011-03-08 Microsoft Corporation Generating code to validate input data
US20080195676A1 (en) * 2007-02-14 2008-08-14 Microsoft Corporation Scanning of backup data for malicious software
US7953674B2 (en) * 2007-05-17 2011-05-31 Microsoft Corporation Fuzzing system and method for exhaustive security fuzzing within an SQL server
US7926114B2 (en) * 2007-05-31 2011-04-12 Microsoft Corporation Testing software applications with schema-based fuzzing
US7873945B2 (en) * 2007-06-29 2011-01-18 Microsoft Corporation Automatically generating test cases for binary code

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736688A (ja) * 1993-07-22 1995-02-07 Toshiba Corp ソフトウェア品質管理システム
KR20070092403A (ko) * 2006-03-10 2007-09-13 한국전자통신연구원 ActiveX Control 취약점 검사 및 검증방법과 ActiveX Control 식별 장치 및 방법

Also Published As

Publication number Publication date
KR20090044656A (ko) 2009-05-07
EP2058747A2 (en) 2009-05-13
CN101425035A (zh) 2009-05-06
US20090119647A1 (en) 2009-05-07
EP2058747A3 (en) 2011-11-16
EP2058747B1 (en) 2017-09-06
JP2009116847A (ja) 2009-05-28
US8539449B2 (en) 2013-09-17

Similar Documents

Publication Publication Date Title
KR100916329B1 (ko) 소프트웨어 취약점 점검 장치 및 방법
Tan et al. relifix: Automated repair of software regressions
Chandra et al. Angelic debugging
US20080126867A1 (en) Method and system for selective regression testing
US7353505B2 (en) Tracing the execution path of a computer program
Agosta et al. Automated security analysis of dynamic web applications through symbolic code execution
US9274930B2 (en) Debugging system using static analysis
Mirzaaghaei et al. Automatically repairing test cases for evolving method declarations
US20150143179A1 (en) System and Method for Progressive Fault Injection Testing
JP6142705B2 (ja) オブジェクト指向言語のための記号テストドライバの反復生成
Mehne et al. Accelerating search-based program repair
Degiovanni et al. µbert: Mutation testing using pre-trained language models
US11275860B2 (en) System and method for software verification
CN114911711A (zh) 一种代码缺陷分析方法、装置、电子设备及存储介质
Jiang et al. Input test suites for program repair: A novel construction method based on metamorphic relations
Kallingal Joshy et al. Validating static warnings via testing code fragments
Mohammadi et al. Automated repair of cross-site scripting vulnerabilities through unit testing
Brito et al. Study of JavaScript Static Analysis Tools for Vulnerability Detection in Node. js Packages
JP4957521B2 (ja) ソフトウェア部分テストシステム、それに用いる方法およびプログラム
Hua et al. A sketching-based approach for debugging using test cases
Wüst et al. Force Open: Lightweight black box file repair
DeMott et al. Systematic bug finding and fault localization enhanced with input data tracking
DeMott et al. Towards an automatic exploit pipeline
Jin et al. Fault injection scheme for embedded systems at machine code level and verification
Van Thuy et al. Automated large program repair based on big code

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130710

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150703

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190918

Year of fee payment: 11