Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications

碩士 === 國立政治大學 === 資訊科學學系 === 99 === Due to the rapid development of the internet in recent years, web applications have become very popular and ubiquitous. However, developers may neglect the issues of security while designing a program so that web applications become the targets of attackers. Hence...

Full description

Bibliographic Details
Main Authors: Huang, Yu Yu, 黃于育
Other Authors: Chen, Kung
Format: Others
Language:zh-TW
Published: 2011
Online Access:http://ndltd.ncl.edu.tw/handle/77475124825794490348
id ndltd-TW-099NCCU5394020
record_format oai_dc
spelling ndltd-TW-099NCCU53940202015-10-26T04:03:57Z http://ndltd.ncl.edu.tw/handle/77475124825794490348 Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications Java網頁程式安全弱點驗證之測試案例產生工具 Huang, Yu Yu 黃于育 碩士 國立政治大學 資訊科學學系 99 Due to the rapid development of the internet in recent years, web applications have become very popular and ubiquitous. However, developers may neglect the issues of security while designing a program so that web applications become the targets of attackers. Hence, the issue of web application vulnerabilities has become very crucial. There have been many research results of web application security vulnerabilities and many of them exploit the technique of program analysis to detect vulnerabilities. These analysis approaches can be can basically be categorized into dynamic analysis and static analysis. However, both of them still have their own problems to be improved. Specifically static analysis supports high coverage of vulnerabilities, but causes too many false positives. As for the dynamic analysis, although it produces high confident results, yet it may cause false negatives without complete test cases. In this thesis, we integrate both static analysis and dynamic analysis to achieve the objectives that no false negatives are produced and reduce false positives. We develop a test case generation tool by the static analysis approach and a program execution tool that dynamically track the execution of the target program with those test data to detect its vulnerabilities. Our test case generation tool first employs both intra- and inter-procedural analysis to cover all vulnerable paths in a program, and then apply the symbolic execution technique to collect all path constraints. With these collected constraints, we use a constraint solver to solve them and finally generate the test cases. As to the execution tool, it utilizes the instrumentation mechanism provided by the aspect-oriented programming language AspectJ to implement a dynamic taint analysis that tracks the flow of tainted data derived from those generated test cases. As a result, all vulnerable program paths will be detected by our tools. Chen, Kung 陳恭 2011 學位論文 ; thesis 108 zh-TW
collection NDLTD
language zh-TW
format Others
sources NDLTD
description 碩士 === 國立政治大學 === 資訊科學學系 === 99 === Due to the rapid development of the internet in recent years, web applications have become very popular and ubiquitous. However, developers may neglect the issues of security while designing a program so that web applications become the targets of attackers. Hence, the issue of web application vulnerabilities has become very crucial. There have been many research results of web application security vulnerabilities and many of them exploit the technique of program analysis to detect vulnerabilities. These analysis approaches can be can basically be categorized into dynamic analysis and static analysis. However, both of them still have their own problems to be improved. Specifically static analysis supports high coverage of vulnerabilities, but causes too many false positives. As for the dynamic analysis, although it produces high confident results, yet it may cause false negatives without complete test cases. In this thesis, we integrate both static analysis and dynamic analysis to achieve the objectives that no false negatives are produced and reduce false positives. We develop a test case generation tool by the static analysis approach and a program execution tool that dynamically track the execution of the target program with those test data to detect its vulnerabilities. Our test case generation tool first employs both intra- and inter-procedural analysis to cover all vulnerable paths in a program, and then apply the symbolic execution technique to collect all path constraints. With these collected constraints, we use a constraint solver to solve them and finally generate the test cases. As to the execution tool, it utilizes the instrumentation mechanism provided by the aspect-oriented programming language AspectJ to implement a dynamic taint analysis that tracks the flow of tainted data derived from those generated test cases. As a result, all vulnerable program paths will be detected by our tools.
author2 Chen, Kung
author_facet Chen, Kung
Huang, Yu Yu
黃于育
author Huang, Yu Yu
黃于育
spellingShingle Huang, Yu Yu
黃于育
Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications
author_sort Huang, Yu Yu
title Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications
title_short Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications
title_full Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications
title_fullStr Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications
title_full_unstemmed Test Case Generation for Verifying Security Vulnerabilities in Java Web Applications
title_sort test case generation for verifying security vulnerabilities in java web applications
publishDate 2011
url http://ndltd.ncl.edu.tw/handle/77475124825794490348
work_keys_str_mv AT huangyuyu testcasegenerationforverifyingsecurityvulnerabilitiesinjavawebapplications
AT huángyúyù testcasegenerationforverifyingsecurityvulnerabilitiesinjavawebapplications
AT huangyuyu javawǎngyèchéngshìānquánruòdiǎnyànzhèngzhīcèshìànlìchǎnshēnggōngjù
AT huángyúyù javawǎngyèchéngshìānquánruòdiǎnyànzhèngzhīcèshìànlìchǎnshēnggōngjù
_version_ 1718111077031477248