Towards automatic generation of vulnerability-based signatures
Top Cited Papers
- 1 January 2006
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 15 pp.-16
- https://doi.org/10.1109/sp.2006.41
Abstract
In this paper we explore the problem of creating vulnerability signatures. A vulnerability signature matches all exploits of a given vulnerability, even polymorphic or metamorphic variants. Our work departs from previous approaches by focusing on the semantics of the program and vulnerability exercised by a sample exploit instead of the semantics or syntax of the exploit itself. We show the semantics of a vulnerability define a language which contains all and only those inputs that exploit the vulnerability. A vulnerability signature is a representation (e.g., a regular expression) of the vulnerability language. Unlike exploit-based signatures whose error rate can only be empirically measured for known test cases, the quality of a vulnerability signature can be formally quantified for all possible inputs. We provide a formal definition of a vulnerability signature and investigate the computational complexity of creating and matching vulnerability signatures. We also systematically explore the design space of vulnerability signatures. We identify three central issues in vulnerability-signature creation: how a vulnerability signature represents the set of inputs that may exercise a vulnerability, the vulnerability coverage (i.e., number of vulnerable program paths) that is subject to our analysis during signature creation, and how a vulnerability signature is then created for a given representation and coverage. We propose new data-flow analysis and novel adoption of existing techniques such as constraint solving for automatically generating vulnerability signatures. We have built a prototype system to test our techniques. Our experiments show that we can automatically generate a vulnerability signature using a single exploit which is of much higher quality than previous exploit-based signatures. In addition, our techniques have several other security applications, and thus may be of independent interestKeywords
This publication has 26 references indexed in Scilit:
- Efficient chaotic iteration strategies with wideningsPublished by Springer Nature ,2006
- Fast and automated generation of attack signaturesPublished by Association for Computing Machinery (ACM) ,2005
- PinPublished by Association for Computing Machinery (ACM) ,2005
- A Tool for Checking ANSI-C ProgramsLecture Notes in Computer Science, 2004
- Modeling and Verifying Systems Using a Logic of Counter Arithmetic with Lambda Expressions and Uninterpreted FunctionsLecture Notes in Computer Science, 2002
- Automatic test data generation using constraint solving techniquesPublished by Association for Computing Machinery (ACM) ,1998
- Trace-driven memory simulationACM Computing Surveys, 1997
- Programmers use slices when debuggingCommunications of the ACM, 1982
- Symbolic execution and program testingCommunications of the ACM, 1976
- A unified approach to global program optimizationPublished by Association for Computing Machinery (ACM) ,1973