XSS has been around for a very long time and is still one of the most used vulnerabilities in web application attacks. DOM-based Cross site-scripting (DOM-based XSS) vulnerability is a bug in web applications that allows arbitrary JavaScript injection while the client's JavaScript is running. There have been numerous studies in the past for XSS defense and detection, but unlike other types of XSS, DOM-based XSS vulnerability occurs entirely on the client-side. Therefore, detection tools that target general types of XSS cannot find them effectively. Against this background, we would like to propose a new detection tool that can operate by combining only the advantages of each DOM-based XSS vulnerability detection tool from several studies. We propose JMForce, a detection tool that can find vulnerable flows by performing dynamic taint analysis of web applications through Forced Execution, we share the results of analyzing the recent tendency of DOM-based XSS vulnerability.
사이트 간 스크립팅(Cross-site Scrpting, XSS) 취약점은 공격자가 임의의 자바스크립트 코드를 피해자의 브라우저에서 실행되도록 삽입하는 취약점이다. 동시에 아직까지도 웹 애플리케이션 공격에 가장 많이 쓰이는 취약점 중 하나이다. DOM-based XSS 취약점은 클라이언트의 자바스크립트(JavaScript)가 실행되는 과정에서 임의의 자바스크립트 인젝션(injection)이 가능한 웹 애플리케이션 상의 버그이다. XSS 취약점 방어 및 탐지를 위해 수많은 연구들이 이전에 있었지만, DOM-based XSS 취약점은 다른 종류의 XSS와는 다르게 전적으로 사용자 측(client-side)에서 발생하기에 일반적인 종류의 XSS 취약점을 타겟으로 삼는 탐지도구에서는 이를 효과적으로 찾을 수 없다. 이러한 배경 속에서, 우리는 여러 연구에서 나온 각각의 DOM-based XSS 취약점 탐지 도구로부터 장점만을 취합하여 동작할 수 있는 새로운 탐지 도구를 제시하고자 한다. 우리는 강제실행(Forced Execution)을 통해 웹 애플리케이션 동적오염분석(Dynamic Taint Analysis)을 수행하여 취약한 플로우(flow)를 찾아낼 수 있는 탐지 도구인 JMForce를 제안하고, JMForce를 이용해서 수년간의 DOM-based XSS 취약점 경향성을 분석한 결과를 공유하고자 한다.