VDC-Based Dynamic Code Analysis: Application to C Programs

 

Wissam Mallouli1, Amel Mammar2, Ana Cavalli2 and Willy Jimenez2

 

1Montimage

39 rue Bobillot

75013, Paris Cedex, France

wissam.mallouli@montimage.com

 

2Amel Mammar

Telecom SudParis. 9, Rue Charles Fourier

91000 Evry, France

{amel.mammar, ana.cavalli, willy.jimenez}@it-sudparis.eu

 

 

Abstract

Dynamic code analysis attempts to find errors or vulnerabilities while a program is executing on

a real or virtual processor. The objective of dynamic analysis is to reduce debugging time by automatically

pinpointing and informing on errors as they occur. The use of dynamic analysis tools can reduce

the need for the developer to recreate the precise conditions under which an error, a vulnerability or

a security flow occurs. This paper presents a formal approach to detect software vulnerabilities in

C programs relying on formal models of vulnerabilities causes called ¡°Vulnerability Detection Conditions¡±

(VDCs). These models provide a formal interpretation of a vulnerability to facilitate its

automatic detection using dynamic code analysis tool. To illustrate our approach, a prototype tool

TestInv-Code has been developed. It allows to detect the presence of vulnerabilities by checking the

VDCs on the execution trace of the studied C program. By traces we mean here the disassembled

instructions that are being executed. The tool has been applied on an open source application XINE

that contains a known vulnerability to demonstrate its effectiveness.

 

Keywords: Dynamic Code Analysis, Vulnerabilities Detection, Security Modelling, Passive Testing

 

Journal of Internet Services and Information Security (JISIS), 1(2/3): 4-20, August 2011 [pdf]