A Framework for JavaScript Web Applications Analysis

碩士 === 國立臺灣大學 === 資訊管理學研究所 === 106 === The security of Web applications is very important because numerous people rely on services on the Web daily, storing their private personal data online for convenience. Automatic program analysis is a cost-effective way to secure Web applications. In Web appli...

Full description

Bibliographic Details
Main Authors: Yung-Jui Chang, 張永叡
Other Authors: Yih-Kuen Tsay
Format: Others
Language:en_US
Published: 2018
Online Access:http://ndltd.ncl.edu.tw/handle/89z6uj
Description
Summary:碩士 === 國立臺灣大學 === 資訊管理學研究所 === 106 === The security of Web applications is very important because numerous people rely on services on the Web daily, storing their private personal data online for convenience. Automatic program analysis is a cost-effective way to secure Web applications. In Web applications development, JavaScript has long been a widely-used language for front-end Web pages. Since Node.js was created in 2009, JavaScript has become a server-side language as well. It is now feasible to build a Web application by using only JavaScript. As the usage of JavaScript increases, the importance of JavaScript Web applications analysis increases. However, it is very hard to analyze JavaScript programs, especially with static program analysis, because of the dynamic nature of JavaScript. In this thesis, we propose a framework for JavaScript Web applications analysis. Making our framework practically usable is our ultimate goal. In real-world Web applications, both client-side code and server-side code usually exist at the same time. Both of them may contain vital information for analysis. For example, an input sanitization function may be placed on the client side instead of the server side. If an analysis tool only analyzes the server-side program, false positives may occur. In order to reduce false positives, we try to collect as much information as we can. Currently, we select taint analysis to demonstrate how the proposed framework may be implemented. Taint analysis is an effective way of detecting `Injection'', which is the first on the list of OWASP top 10 security risks in 2017. Good expandability is another emphasis of our framework. We design a structure which is easy to be refined to accommodate other analysis methods. We hope this framework will be a good basis for more comprehensive Web applications analysis tools.