A secure software demands effective techniques for vulnerability detection during its development cycle. The practice of detecting security flaws before the deployment phase eliminates the risks that vulnerabilities may impose for the company. Static analysis and dynamic analysis techniques offer two complimentary approaches for checking vulnerabilities. Static analysis involves the scanning of source code or binary eliminating the need of executing it. This approach is fast and has no run time overhead. However, static analysis are quite imprecise and generate huge false positives and false negatives. On the other hand, dynamic analysis involves the running of the software. The problem of false positives and negatives is less in case of dynamic analysis because they analyze by running the test cases. But this approach requires large number of test cases to ensure a certain confidence level in detecting security bugs. This paper describes a methodology which integrates the two approaches in a complimentary manner. It adopts the strengths of the two and eliminates their weaknesses. We are currently dealing with buffer overflow vulnerability with pointer aliasing. However the idea can be extended to other vulnerabilities also for e.g memory related errors, race conditions(time of check to time to use vulnerability), dangling pointer vulnerability, integer errors etc
[1]
William R. Bush,et al.
A static analyzer for finding dynamic programming errors
,
2000
.
[2]
David A. Wagner,et al.
A First Step Towards Automated Detection of Buffer Overrun Vulnerabilities
,
2000,
NDSS.
[3]
David Evans,et al.
Statically Detecting Likely Buffer Overflow Vulnerabilities
,
2001,
USENIX Security Symposium.
[4]
Robert O. Hastings,et al.
Fast detection of memory leaks and access errors
,
1991
.
[5]
Matt Bishop,et al.
Testing C Programs for Buffer Overflow Vulnerabilities
,
2003,
NDSS.
[6]
Gary McGraw,et al.
ITS4: a static vulnerability scanner for C and C++ code
,
2000,
Proceedings 16th Annual Computer Security Applications Conference (ACSAC'00).
[7]
James R. Larus,et al.
Righting software
,
2004,
IEEE Software.
[8]
Wouter Joosen,et al.
Code injection in C and C++: a survey of vulnerabilities and countermeasures
,
2004
.
[9]
William R. Bush,et al.
A static analyzer for finding dynamic programming errors
,
2000,
Softw. Pract. Exp..
[10]
Gary McGraw,et al.
An automated approach for identifying potential vulnerabilities in software
,
1998,
Proceedings. 1998 IEEE Symposium on Security and Privacy (Cat. No.98CB36186).