OAK

기계학습에 기반한 보안약점의 탐지 및 분류에 관한 연구

Metadata Downloads
Abstract
소프트웨어에 내재되어있는 결함을 통해 발생하는 보안 사고가 늘어나고 있는 추세이다. 이에 소프트웨어 보안 사고는 발생 후에 대처를 하는 것보다 사전에 소프트웨어의 결함을 제거함으로써 예방하는 것이 그에 따른 피해를 줄이는 데 효과적이라는 인식이 전반적으로 공감대를 얻고 있으며, 이러한 인식의 일환으로 우리나라는 2012년 소프트웨어 개발 보안 제도를 만들어 시행 중이다. 소프트웨어 개발보안제도의 핵심은 프로그램의 구현단계에서의 보안 활동인 시큐어코딩이다. 시큐어코딩과 연계된 개발보안 활동은 보안 취약점이 내재되어 있는 소스코드의 특징과 패턴을 찾아내는 것이며, 소스코드의 정확한 분석을 위해 자동화된 정적 분석기의 활용을 권고하고 있다.
그러나 현실적으로는 코딩 방법과 개발자의 스타일에 따라 다양한 형태로 소스코드가 작성 될 수 있기 때문에 보안에 취약하다고 판단되는 패턴을 탐지하기 위한 룰셋을 만들어주고 정적 분석 도구에 적용 시키는 일은 여전히 전문가의 개입을 필요로 한다. 또한 소스코드 분석은 고려해야 될 변수가 많으며, 어떤 취약점을 탐지할 건지에 따라 소스코드를 분석하는 관점을 달리해야하기 때문에 정적분석 도구의 복잡성을 높이고 정확한 진단을 어렵게 만든다는 문제가 있다.
본 연구에서는 이러한 문제를 완화시키기 위한 방법으로 기계학습 알고리즘의 도입을 제안하는 바이다. 기계학습은 최근 음성신호, 자연어 처리, 사물개체 인식 등과 같이 사람의 인지 능력으로 판단할 수 있던 문제 영역을 해결하는 성과를 보이고 있다. 이와 같은 최근 연구 사례를 보았을 때, 전문가의 의해 정의되었던 안전하지 않은 소스코드의 룰셋을 기계학습을 이용해 보안 취약점을 식별하고 탐지할 수 있는지 실험 결과를 통해 알아보고자 한다. 또한 실험 결과를 기반으로 기계학습을 이용한 정적분석의 가능성을 평가하고 발전방향을 제시하고 연구를 마친다.
Author(s)
이원경
Issued Date
2018
Awarded Date
2018-08
Type
Dissertation
URI
https://repository.sungshin.ac.kr/handle/2025.oak/2547
http://dcollection.sungshin.ac.kr/jsp/common/DcLoOrgPer.jsp?sItemId=000000012896
Department
일반대학원 컴퓨터학과
Advisor
서동수
Table Of Contents
논문개요
Ⅰ. 서론
1. 연구의 배경 및 목적 1
2. 논문의 구성 3

Ⅱ. 관련연구
1. 시큐어코딩 5
1) 소프트웨어 개발 보안 방법론 5
2) 시큐어 코딩 6
3) 보안 취약점 유형 7
4) 정적분석 12
2. 기계학습 (Machine Learning) 19
1) 기계학습의 정의 19
2) 기계학습의 유형 21
3) 심층신경망 (DNN, Deep Neural Network) 23
4) 합성곱 신경망 (CNN, Convolutional Neural Network) 25
5) 기계학습을 이용한 취약점 탐지 연구 사례 28

Ⅲ. 실험 설정
1. 실험 개요 31
2. 실험 데이터 설정 32
1) 실험 데이터 개수 설정 32
2) 과적합과 검증 데이터 설정 35
3) 데이터 변환 과정 36
3. 심층신경망을 이용한 보안 취약점 식별 실험 설정 37
4. 합성곱 신경망을 이용한 보안 취약점 식별 실험 설정 39

Ⅳ. 실험 결과
1. 심층신경망을 이용한 보안 취약점 식별 결과 42
2. 합성곱 신경망을 이용한 보안 취약점 식별 결과 43

Ⅴ. 결론 및 향후 연구 45

참고문헌
ABSTRACT
부록
Degree
Master
Publisher
성신여자대학교
Appears in Collections:
컴퓨터학과 > 학위논문
공개 및 라이선스
  • 공개 구분공개
  • 엠바고2018-09-04
파일 목록

Items in Repository are protected by copyright, with all rights reserved, unless otherwise indicated.