정적 오염 분석을 활용한 타입스크립트 코드의 보안 취약점 탐지

Vol. 31, No. 2, pp. 263-277, 4월. 2021
10.13089/JKIISC.2021.31.2.263, Full Text:
Keywords: Taint Analysis, Static Analysis, Software Test, TypeScript, Javascript
Abstract

자바스크립트로 작성된 웹 어플리케이션에서 Cross-Site Scripting (XSS), SQL Injection과 같은 검증되지 않은 사용자 입력 데이터로 인해 발생하는 취약점을 탐지하기 위해 오염 분석 기법이 널리 사용되고 있다. 이러한 취약점을 탐지하기 위해서는 사용자 입력 데이터에 영향을 받는 변수들을 추적하는 것이 중요하지만, 자바스크립트의 동적인 특성으로 인해 웹 어플리케이션을 실행해 보지 않고 그러한 변수들을 식별하는 것은 매우 어렵다. 때문에, 기존의 오염 분석 도구들은 대상 어플리케이션을 실행하는 오버헤드가 존재하는 동적 오염 분석을 사용하도록 개발되었다. 본 논문에서는 타입스크립트(자바스크립트의 상위집합) 컴파일러를 활용해 얻은 심볼 정보를 기반으로 데이터의 흐름을 정확히 추적하고, 타입스크립트 코드에서 보안 취약점을 발견하는 새로운 정적 오염 분석 기법을 제안하였다. 제안한 기법은 개발자가 검증되지 않은 사용자 입력 데이터를 포함할 수 있는 변수에 표시를 할 수 있도록 하며, 이를 활용해 사용자 입력 값에 영향을 받는 변수와 데이터를 추적한다. 제안한 기법은 TypeScript 컴파일러에 원활히 통합될 수 있기 때문에, 별도의 도구로 작동하는 기존 분석 도구와 달리 개발자가 개발 과정에서 취약점을 발견할 수 있게 한다. 제안한 기법의 유효성을 확인하기 위해 프로토타입을 구현하였으며, 취약점이 보고된 8개의 웹 어플리케이션을 선정하여 분석을 수행하여 성능을 평가한 결과 기존의 취약점을 모두 탐지할 수 있음을 확인하였다.

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]
문태근 and 김형식, "Detecting Security Vulnerabilities in TypeScript Code with Static Taint Analysis," Journal of The Korea Institute of Information Security and Cryptology, vol. 31, no. 2, pp. 263-277, 2021. DOI: 10.13089/JKIISC.2021.31.2.263.

[ACM Style]
문태근 and 김형식. 2021. Detecting Security Vulnerabilities in TypeScript Code with Static Taint Analysis. Journal of The Korea Institute of Information Security and Cryptology, 31, 2, (2021), 263-277. DOI: 10.13089/JKIISC.2021.31.2.263.