서지주요정보
Towards secure web applications with static analysis = 안전한 웹 어플리케이션 개발을 위한 JavaScript 정적 분석 디자인 및 응용
서명 / 저자 Towards secure web applications with static analysis = 안전한 웹 어플리케이션 개발을 위한 JavaScript 정적 분석 디자인 및 응용 / Yoonseok Ko.
발행사항 [대전 : 한국과학기술원, 2018].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8032727

소장위치/청구기호

학술문화관(문화관) 보존서고

DCS 18027

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

Current static analysis techniques for JavaScript programs are often ineffective and inefficient in detecting security vulnerabilities in web applications due to the dynamic nature of the JavaScript language. One of the most challenging dynamic features that complicate the inference of static properties is read/write accesses to object fields the names of which are computed at runtime. Such code patterns are difficult to analyze precisely, due to weak updates and limitations of unrolling techniques. Furthermore, JavaScript programs are growing due to the complex logic and especially due to the extensive uses of multiple libraries; existing static analysis techniques cannot yet analyze such programs effectively. In this dissertation, we observe that local reasoning about object copies can infer precise field correspondence relations, and we propose an abstraction which allows to separately reasoning about field read/write access patterns in different fields. We formalize and implement an analysis based on this technique, and evaluate the performance and precision of the analysis on the computation of call-graph information for examples from jQuery tutorials. Then, we present a novel approach to analyze large-scale JavaScript programs statically by tuning the analysis scalability possibly giving up its soundness. We formally describe our framework, present two instances of the framework, and implement them using two open-source JavaScript analyzers. We evaluate the performance and precision of two instances for large-scale real-world JavaScript applications. At last, we implement a static taint analysis, which can detect security vulnerabilities in web applications, as a client analysis, and evaluate the usefulness of our analysis techniques on detection of security vulnerabilities for jQuery examples and real-world programs. Our analysis tool automatically proved the absence of security vulnerability from 60 out of 71 jQuery tutorial programs. Our tuned analysis tool detected nine alarms of security vulnerability from 16 websites, and only one of nine alarms was false positive.

현재의 자바스크립트 정적 분석 기술은 자바스크립트 언어의 동적인 특정 때문에 웹 프로그램의 보안 취약점을 찾아내는데 비효율적이다. 자바스크립트의 정적 분석을 가장 어렵게 하는 동적인 특성은 객체 필드에 대한 읽기/쓰기 패턴이다. 자바스크립트 객체는 실행 중에 계산되는 값으로 객체의 필드를 쓰거나 읽을 수 있기 때문에 정적 분석 중에는 종종 필드의 이름을 명확하게 알 수 없다. 따라서, 읽기/쓰기 패턴에 대한 분석 결과는 종종 필드의 이름과 값을 정확하게 추론하지 못한다. 게다가, 자바스크립트 프레임워크 라이브러리의 사용이 보편화 됨에 따라, 단일 어플리케이션이 다수의 프레임워크 라이브러리를 사용하여 개발되고, 그 크기가 거대해지고 있다. 지금까지 알려진 정적 분석 기술로는 이렇게 거대해진 프로그램들을 효과적으로 분석하지 못한다. 이 논문에서는 객체 필드에 대한 읽기/쓰기 패턴에 집중하여 정확한 필드 사이의 관계를 계산할 수 있음을 관찰하고, 해당 패턴 안에서 읽고 쓰는 필드에 따라 실행 흐름들을 나누어 추론할 수 있는 요약 분석 방식을 제시한다. 이 분석 방식을 엄밀하게 정의하고 구현해서 자바스크립트 라이브러리 jQuery의 예제코드에 대한 함수 호출 그래프를 계산하고 이 결과로 분석 정확도와 성능을 평가했다. 그 다음, 정적 분석의 안전성과 성능 사이를 조율하여 거대한 자바스크립트 프로그램을 정적으로 분석하기 위한 새로운 접근방식을 제안한다. 이 접근방식을 일반적인 프레임워크로 엄밀하게 정의하고, 두 개의 소스가 공개된 자바스크립트 분석기를 사용하여 우리가 제시한 프레임워크 위에서 안전성과 성능 사이를 조율한 두 개의 새로운 분석을 생성한다. 그리고, 조율된 두 분석을 거대한 실제 자바스크립트 어플리케이션에 적용하여 성능과 정확도를 평가한다. 마지막으로, 웹 어플리케이션의 보안 취약점을 찾아낼 수 있는 정적 오염분석을 디자인하고, 앞에서 제시한 두 가지 분석 방식을 기반으로 jQuery의 예제코드와 실제 자바스크립트 어플리케이션을 분석함으로써 논문에서 제시한 분석 방식들의 유용함을 평가한다. 정적 오염분석은 71개의 jQuery 예제코드 중 60개의 예제코드에서 보안 취약점이 없음을 자동으로 증명하였다. 조율된 정적 오염분석은 16개의 웹 사이트 중 8개의 웹사이트에서 9개의 경보를 보고하였고, 그 중 오직 1개의 경보만이 거짓경보임이 밝혀졌다.

서지기타정보

서지기타정보
청구기호 {DCS 18027
형태사항 v, 77 p. : 삽화 ; 30 cm
언어 영어
일반주기 저자명의 한글표기 : 고윤석
지도교수의 영문표기 : Sukyoung Ryu
지도교수의 한글표기 : 류석영
학위논문 학위논문(박사) - 한국과학기술원 : 전산학부,
서지주기 References : p. 74-77
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서