메뉴 건너뛰기
.. 내서재 .. 알림
소속 기관/학교 인증
인증하면 논문, 학술자료 등을  무료로 열람할 수 있어요.
한국대학교, 누리자동차, 시립도서관 등 나의 기관을 확인해보세요
(국내 대학 90% 이상 구독 중)
로그인 회원가입 고객센터 ENG
주제분류

추천
검색

논문 기본 정보

자료유형
학위논문
저자정보

이재서 (전남대학교, 전남대학교 대학원)

지도교수
김용민
발행연도
2013
저작권
전남대학교 논문은 저작권에 의해 보호받습니다.

이용수1

표지
AI에게 요청하기
추천
검색

이 논문의 연구 히스토리 (2)

초록· 키워드

오류제보하기
인터넷의 발달과 더불어서 서비스거부공격, 해킹, 개인정보 유출 그리고 사이버 테러 등 역기능 또한 증가하고 있다. 이러한 인터넷 역기능은 인터넷에 연결되어 있는 서버 및 네트워크 시스템이나 통신 프로토콜 등의 취약점뿐만 아니라 소프트웨어의 취약점을 기반으로 한다. 특히 최근에는 소프트웨어의 취약점을 이용한 공격이 증가하고 있다. 이러한 상황에서 소프트웨어 개발사를 비롯한 많은 연구자들은 사전에 소프트웨어의 취약점을 찾고 대응하기 위해 노력하고 있으며 이와 관련된 기술도 활발히 연구되고 있다. 그럼에도 불구하고 여전히 많은 소프트웨어에 아직까지 발견되지 않은 취약점이 존재하고 있으며 향후에도 지속적으로 소프트웨어의 취약점은 인터넷 환경의 위협 요소가 될 것으로 전망된다.

최근 퍼징과 같은 자동화된 테스팅 방법을 이용하여 소프트웨어의 취약점을 찾으려는 연구가 활발히 진행되고 있으며 실제로 퍼징을 통해 발견한 소프트웨어의 취약점도 다수 보고되고 있다. 퍼징은 소프트웨어의 입력을 특정 규칙에 따라 자동으로 변형시켜 소프트웨어의 오작동 여부를 자동으로 탐지하고 그 결과로부터 취약점을 발견한다. 이 때 소프트웨어에 입력되는 입력 값, 즉 테스트 케이스에 따라 취약점을 발견할 수 있는 확률이 달라지기 때문에 취약점 발견 확률을 높이기 위해서는 퍼징 전략을 수립하는 것과 함께 좋은 테스트 케이스를 선정해야 하며 이를 위해서는 테스트 케이스의 집합인 테스트 슈트 축약 및 우선순위 결정 문제를 해결하여야 한다. 특히 글로벌하게 이용되는 소프트웨어의 테스트 케이스는 복잡하고 다양한 기능을 제공하기 위해 대용량의 특징을 갖는다. 이러한 테스트 케이스를 대상으로 축약 및 우선순위 결정이 가능한 효과적인 방법이 요구되고 있다.

이에 본 논문에서는 파일과 같은 대용량 테스트 케이스를 대상으로 효과적으로 축약 및 우선순위 결정이 가능한 방법을 제안한다. 먼저 테스트 케이스의 길이와 커버리지간의 관계를 분석하고 이를 근거로 테스트 케이스의 길이를 척도로 제시한다. 그리고 제안한 척도를 이용하여 테스트 케이스의 길이는 최소화하면서 커버리지는 최대화하는 축약 알고리즘을 제안하고 축약한 테스트 슈트를 대상으로 커버리지 증가속도를 가장 빠르게 하는 우선순위 결정 알고리즘을 제안한다.

제안한 척도와 알고리즘의 효용성을 증명하기 위해 본 논문에서 평가 항목으로 이용하는 축약율과 바이트당 커버리지, 코드 커버리지 평균율 그리고 결함 탐지 능력에 대해서 각각 비교 실험을 진행하였다. 실험 결과, 본 논문에서 제안한 알고리즘이 축약율 및 결함 탐지 능력 등 대부분의 평가 항목에서 기존 연구보다 효율적임을 보였다. 이러한 실험 결과를 바탕으로 제안하는 알고리즘이 퍼징과 같은 테스트 케이스의 길이에 따라 성능에 영향을 미치는 소프트웨어 테스팅에 있어서 기존 연구들과 비교하여 가장 효율적인 축약 및 우선순위 결정 알고리즘임을 증명할 수 있었다.

본 연구의 결과는 대용량 테스트 케이스를 대상으로 하는 퍼징의 효율성을 높여 소프트웨어에 내재된 취약점을 위협이 되기 전에 사전에 더 많이 찾아 대응할 수 있게 함으로써 보다 안전한 인터넷 환경을 구성하는 데에 기여할 것으로 기대된다.

목차

목 차 ⅰ
그림목차 ⅲ
표 목 차 ⅴ
국문초록 ⅵ
1. 서론 1
가. 연구의 배경 1
나. 연구의 목적 및 내용 5
다. 논문의 구성 7
2. 관련 연구 8
가. 소프트웨어 테스팅과 퍼징 8
1) 소프트웨어 테스팅 8
2) 퍼징 10
나. 코드 커버리지 16
1) 코드 커버리지의 종류 17
2) 코드 커버리지 측정 도구 17
3) 본 논문에서의 코드 커버리지 측정 19
다. 테스트 슈트 문제 19
1) 테스트 슈트 축약 문제 20
2) 테스트 슈트 우선순위 결정 문제 25
3. 길이기반 퍼징 테스트 슈트 선정 알고리즘 32
가. 개요 32
나. 제안 척도: 테스트 케이스 길이 33
다. 제안 테스트 슈트 축약 알고리즘 46
1) 알고리즘 의사 코드 47
2) 알고리즘 설명 48
3) 내부 함수 설명 49
4) 알고리즘 예제 49
라. 제안 테스트 슈트 우선순위 결정 알고리즘 50
1) 알고리즘 의사 코드 51
2) 알고리즘 설명 52
3) 알고리즘 예제 52
4. 실험 및 평가 54
가. 실험 환경 및 구현 54
1) 커버리지 측정 환경 54
2) 축약 및 우선순위 결정 실험 환경 54
3) 결함 탐지 실험 환경 55
나. 실험 데이터셋 56
1) 테스트 케이스 수집 56
2) 버킷 정의와 실험 데이터셋 구성 57
다. 축약 실험 및 평가 59
1) 개수 및 길이 축약율 실험 결과 59
2) 개수 및 길이 축약율에 대한 분산 분석 63
3) 바이트당 커버리지 분석 65
라. 우선순위 결정 실험 및 평가 66
마. 퍼징 실험 및 평가 69
1) 마이크로소프트 워드 뷰어 퍼징 실험 결과 70
2) 어도비 아크로뱃 리더 퍼징 실험 결과 77
5. 결론 84
참고문헌 86
영문초록 92
부록. 기존 연구 알고리즘 의사 코드 94
가. HGS 알고리즘 의사 코드 94
나. GRE 알고리즘 의사 코드 96
다. BOG 알고리즘 의사 코드 98

최근 본 자료

전체보기

댓글(0)

0