Identifying and Preventing Weaknesses in Software Programs

1512 Words4 Pages

Test case similarity based fuzzing
Information technology is growing rapidly. Along with the rapid advancements, a large number of software security violations are taking place, which are causing an overwhelming impact on the organizations and the individuals. In the past few years many methods have been proposed to identify and prevent weaknesses in software programs. “Fuzzing was first proposed by Miller et.al in the year 1990 to detect software vulnerabilities” (Zhang, Liu, Lei, Kung, Csallner, Nystrom & Wang, 2012, p.102). In the process of detecting vulnerabilities the program inputs are changed to form different inputs to identify the various possible paths present in the program. The run time behavior of the programs are monitored on the different inputs to detect exceptions. If any exceptions are found then it can be said that weaknesses are present in the program and the software program is vulnerable.
There are two different kinds of fuzzing namely black box and white box fuzzing. Black box testing does not take the program source code into consideration. It is only used to identify weaknesses in the different inputs that can be given to the program. Whereas, white box testing is used to test all the different possible paths of a program. However many challenges exist for both the categories of fuzzing. According to Zhang et.al, (2012) white box testing fails in identifying the paths that contain complex data structures and unsolvable branch conditions and black box testing fails in testing complex program semantics which are deeper (p.103).
Therefore, to address the challenges of the two kinds of testing Zhang et.al, (2012) proposed a two stage fuzzing process to effectively test complex program semantics (p.103). The...

... middle of paper ...

...to detect security vulnerabilities. Whereas, binary level extensions can be placed, vulnerabilities can be modified with application of non-parallel statistical tests which makes the fuzzing process efficient in determining the weaknesses in the software programs and in identification of bugs.
References
Anon., 2011a. Available: http://nvd.nist.gov (Online).
Ganesh, V., Leek, T., Rinard, M., 2009. Taint-based directed white box fuzzing. In:
Proceedings of the IEEE 31st International Conference on Software Engineering
(ICSE).

Godefroid, P., Levin, M.Y., Molnar, D., 2008. Automated white box fuzz testing. In:
Proceedings of the Network and Distributed Systems Security (NDSS).

Zhang, D., Liu, D., Lei, Y., Kung, D., Csallner, C., Nystrom, N., Wang, W. (2012). Sim Fuzz:
Test case similarity based deep fuzzing, The Journal of Systems and Software, 85,102-
111.

More about Identifying and Preventing Weaknesses in Software Programs

Open Document