An advanced approach for modeling and detecting software vulnerabilities |
| |
Affiliation: | 1. SWAT Lab., Polytechnique Montréal, Canada;2. Soccer Lab., Polytechnique Montréal, Canada;3. Departamento de Lenguajes y Ciencias de la Computación, University of Málaga, Spain;1. Key Laboratory of Dependable Service Computing in Cyber Physical Society, Ministry of Education, Chongqing 400044, PR China;2. School of Software Engineering, Chongqing University, Huxi Town, Shapingba, Chongqing 401331, PR China;3. State Key laboratory of Coal Mine Disaster Dynamics and Control, Chongqing 400044, PR China;1. DIRO, Université de Montréal, Canada;2. CDL-MINT, TU Wien, Austria;1. Department of Computing, Soongsil University, 402 Information Science Building, 369 Sangdo-Ro, Dongjak-Gu, Seoul 156-743, Republic of Korea;2. Department of Computer Science and Engineering, Seoul National University of Science and Technology, Gongneung 2-dong, Nowon-Gu, Seoul 139-743, Republic of Korea |
| |
Abstract: | ContextPassive testing is a technique in which traces collected from the execution of a system under test are examined for evidence of flaws in the system.ObjectiveIn this paper we present a method for detecting the presence of security vulnerabilities by detecting evidence of their causes in execution traces. This is a new approach to security vulnerability detection.MethodOur method uses formal models of vulnerability causes, known as security goal models and vulnerability detection conditions (VDCs). The former are used to identify the causes of vulnerabilities and model their dependencies, and the latter to give a formal interpretation that is suitable for vulnerability detection using passive testing techniques. We have implemented modeling tools for security goal models and vulnerability detection conditions, as well as TestInv-Code, a tool that checks execution traces of compiled programs for evidence of VDCs.ResultsWe present the full definitions of security goal models and vulnerability detection conditions, as well as structured methods for creating both. We describe the design and implementation of TestInv-Code. Finally we show results obtained from running TestInv-Code to detect typical vulnerabilities in several open source projects. By testing versions with known vulnerabilities, we can quantify the effectiveness of the approach.ConclusionAlthough the current implementation has some limitations, passive testing for vulnerability detection works well, and using models as the basis for testing ensures that users of the testing tool can easily extend it to handle new vulnerabilities. |
| |
Keywords: | |
本文献已被 ScienceDirect 等数据库收录! |
|