자바스크립트 엔진에 대한 시맨틱 보존적 변이기반 퍼징

Vol. 30, No. 4, pp. 573-582, 8월. 2020
10.13089/JKIISC.2020.30.4.573, Full Text:
Keywords:
Abstract

퍼징은 입력값을 무작위로 생성해 소프트웨어를 테스팅하는 방법으로, 처음 고안된 이래로 다양한 방식의 퍼징이 연구되고 있다. 그중 변이기법을 적용한 퍼징은 확률에 따른 비트 반전이나 특별 값 치환과 같이 비교적 간단한 접 근법을 사용함에도, 많은 버그를 발견해온 만큼 효율적인 방법이라고 할 수 있다. 하지만 인터프리터는 문법, 시맨틱 이 올바른 입력값을 요구하기 때문에 일반적인 변이기법을 적용하기에는 어려움이 있다. 이에 본 연구에서는 동적 데이터 흐름 분석을 통해 변이기법을 인터프리터 퍼징에 적용할 수 있는 방법에 대해 제시하고자 한다. 본 연구에서 제시하는 JMFuzzer는 문법, 시맨틱의 올바름을 고려해 자바스크립트 인터프리터에서 오류 없이 정상적으로 동작 하는 다양한 유형의 테스트케이스를 생성할 수 있다. 최종적으로 본 연구에서는 최신 버전의 자바스크립트 인터프리 터에서 알려지지 않은 취약점들을 찾았으며, 이를 각 회사에 제보했다.

Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from December 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
D. Oh, J. Choi, S. Cha, "Semantics-Preserving Mutation-Based Fuzzing on JavaScript Interpreters," Journal of The Korea Institute of Information Security and Cryptology, vol. 30, no. 4, pp. 573-582, 2020. DOI: 10.13089/JKIISC.2020.30.4.573.

[ACM Style]
DongHyeon Oh, JaeSeung Choi, and SangKil Cha. 2020. Semantics-Preserving Mutation-Based Fuzzing on JavaScript Interpreters. Journal of The Korea Institute of Information Security and Cryptology, 30, 4, (2020), 573-582. DOI: 10.13089/JKIISC.2020.30.4.573.