고려대학교 세종학술정보원

링크메뉴

통합검색

사이트내 검색

부가기능

XML보기XML 
Software Vulnerability Discovery using Code Clone Verification

상세 프로파일

상세정보
상세정보
학위구분 박사
일반장르 E-학위논문
형태사항
     marcform Electronic
서명사항
     서명 Software Vulnerability Discovery using Code Clone Verification
저자사항
     저자명 Li Hongzhe
     저자명 李宏哲
     학과/전공 대학원 컴퓨터·전파통신공학과 컴퓨터학전공
     저자명 이희조
     역할
       역할어 지도교수
자료유형 텍스트
발행사항
     발행기관 고려대학교 대학원
     발행년 2017
     졸업년월 2017. 2
     발행연속성 monographic
언어사항
     본문언어(코드) eng
주제사항
     일반주제어 Software Vulnerability
     일반주제어 Code Clone
     일반주제어 Concolic Testing
     일반주제어 Vulnerability Verification
고대 학위논문분류표 컴퓨터·전파통신공학과/컴퓨터학과(舊전산과학)
소장정보
     소장위치 고려대학교 과학도서관
     원문주소
바로가기 URL 

목차/초록

  Software vulnerability has long been considered an important threat to the system safety and its growth rate is increasing rapidly on yearly basis.
In theory, detecting and removing vulnerabilities before the code gets ever deployed can greatly ensure the quality of software released. However, due to the enormous amount of code being developed as well as the lack of human resource and expertise, severe vulnerabilities still remain concealed or cannot be revealed effectively. 
  Current source code auditing approaches for vulnerability discovery either generate too many false positives or require overwhelming manual efforts to report actual software flaws. While dynamic execution analysis methods can precisely report vulnerabilities, they are ineffective in path exploration, which limits them to scale to large programs. With the purpose of detecting vulnerability in a scalable and automated way with more preciseness, in this paper, we propose a novel mechanism, called software vulnerability discovery using Code Clone Verification (CLORIFI), which scalably discovers vulnerabilities in real world programs using code clone verification.
  CLORIFI uses a fast and scalable syntax-based way to find code clones as vulnerability candidates in program source codes based on released security patches. Subsequently, program source code is being instrumented by the leverage of CIL for vulnerability verification. Finally, code clones are being verified using concolic testing to verify and report the existence of an actual vulnerability. Experiments have been conducted with real-world open-source projects (recent Linux OS distributions and program packages). As a result, we found 7 real vulnerabilities out of 63 code clones from Ubuntu 14.04 LTS (Canonical, London, UK) and 10 vulnerabilities out of 40 code clones from CentOS 7.0 (The CentOS Project (community contributed)). Besides, we performed experiments with nearly 4000 test cases from Juliet Test Suite. The results show that our system can verify over 90% of test cases and it reports buffer overflow flaws with Precision = 100% (0 FP) and Recall = 94.91 %.  In addition, the experiments with other types of vulnerability test cases in Juliet Test Suite indicates the extendability of the mechanism to cover more types of vulnerabilities.

1. Introduction
1.1 Motivation
1.2 Contributions
1.3 Dissertation Overview
2. Related Work
2.1 Static Code Auditing
2.2 Dynamic Execution
2.3 Symbolic and Concolic Execution
3. The Mechanism: CLORIFI
3.1 Finding Code Clones
3.2 Automated Instrumentation
3.2.1 Code Transformation(CIL)
3.2.2 Identification of Security Sinks and Sensitive Variables
3.2.3 Backward Data Tracing
3.2.4 Instrumentation of Source Code
3.3 Code Clone Verification using Concolic Testing
4. Evaluation Results
4.1 Experiemental Setup and Implementation
4.1.1 Environment
4.1.2 Dataset
4.2 Experimental Results
4.2.1 Detection results of different source pools (SP1 to SP6)
4.2.2 Comparison with conventional concolic testing
4.3 Evaluation of Vulnerability Verification
4.4 Extendabiltiy of the mechanism
5. Discussion
5.1 Threats to validity
5.2 False positive and false negative insights
5.3 Future research directions
6. Conclusion

태그

  • 태그

나의 태그

나의 태그 (0)

모든 이용자 태그

모든 이용자 태그 (0) 태그 목록형 보기 태그 구름형 보기
 

서평

  • 서평