透過您的圖書館登入
IP:18.217.6.114
  • 學位論文

分析JavaScript網頁應用程式之框架

A Framework for JavaScript Web Applications Analysis

指導教授 : 蔡益坤

摘要


在人們已經非常習慣於網路服務,並且將許多個人機敏資料儲存在雲端的現在, 網頁應用程式安全的重要性已是不可言喻, 而程式分析是確保網頁應用程式的安全性中,非常有效的一種方法。 在網頁應用程式的發展史中,JavaScript自1995年發明之後, 現在已經成為了網頁應用程式的前端頁面中,最廣為使用而且不可或缺的語言。 2009年Node.js的問世,讓後端的伺服器也能開始使用JavaScript撰寫, JavaScript的使用率因此更上層樓,分析JavaScript網頁應用程式的重要性也隨之又再提升了一層。 但JavaScript極其動態的特性,卻讓程式分析的難度提升不少。 如果分析時使用的方法屬於靜態程式分析,因為分析時不實際執行程式, 想要得出準確的結果又加倍地不容易。 本論文中提出了一個分析JavaScript網頁應用程式的框架, 我們非常希望提出的框架,能夠實際應用在真實的網頁應用程式中, 而實務上,網頁應用程式通常都會同時包含用戶端以及伺服器端的程式碼, 程式設計師可能會將某些檢查變數的函數放在用戶端,而非伺服器端, 因此不論是哪一端的程式碼,都有可能會包含我們進行程式分析時,所需的重要資訊。 為了能夠有更準確的分析結果,我們的框架會同時收集兩端程式碼的資訊之後再進行分析。 我們目前使用了汙點分析方法(taint analysis)作為實作框架時的分析方法。 汙點分析方法最主要的功能是能夠偵測OWASP在2017年公布的十大資安風險中的第一名:注入攻擊(Injection)。 最後,具備良好的擴充性,也是我們設計框架時的一個重點考量。 我們花了非常多的時間,在討論如何能夠讓這套框架需要進行擴充時(比如增加新的分析方法),能夠更加順利的完成任務。 我們很期待這套框架,能夠成為未來打造完整分析工具時的良好基石。

並列摘要


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.

參考文獻


References
[1] 10BestNodeFrameworks2018. https://da-14.com/blog/10-best-nodejs-frameworks.
Online; accessed 5-July-2018.
[2] 5BestNodeFrameworks2018. https://www.kelltontech.com/kellton-tech-blog/
top-5-nodejs-frameworks-2018. Online; accessed 5-July-2018.

延伸閱讀