Abstract
Business’ dependency on a software or computer program is getting higher. In such an environment, eliminating security vulnerabilities have become increasingly important and difficult as programs are more complicated and have greater impacts on businesses. We analyzed the security vulnerabilities of code using a symbolic execution engine that tracks data which would kill or might make the program vulnerable. We also present smart fuzzing using the data from the symbolic execution engine, an effective software vulnerability-finding testing that automatically generates inputs that crash or penetrate the program. By using symbolic execution engine, we can produce the automatically-generated data that are strong against vulnerability issues. In the case when program verification tools fail to verify a program, either the program is buggy or the report is a false alarm. In this case, the burden is put on users in manually classifying the report, which is a time-consuming, error-prone task and it does not utilize facts already proven by the analysis. We present a new technique for assisting users in classifying error reports. Our technique computes small, relevant queries presented to a user, which capture exact information that the analysis misses to either discharge or validate the error. In this paper, a methodology proper to detecting the security vulnerability is suggested by engrafting the symbol-based engine into the secure coding. Also, its effect was verified through the security vulnerability inspection test using the suggested symbolic execution engine. A notion of symbolically executing the program has been presented, which is closely related to the normal notion of program execution. It offers the advantage that one symbolic execution may represent a large, usually infinite, class of normal executions. This can be used for great advantages in the program inspecting and debugging.





Notes
CWE provides a unified, measurable set of software vulnerabilities that is enabling more effective discussion, description, selection, and use of software security tools and services that can find these vulnerabilities in source code and operational systems as well as better understanding and management of software vulnerabilities related to architecture and design. CWE has the following vulnerabilities associated with race conditions. CWE-121: stack-based Buffer Overflow, CWE-122: Heap-based Buffer Overflow, CWE-131: Incorrect Calculation of Buffer Size, CWE-680: Integer Overflow to Buffer Overflow.
References
Petukhov, A., Kozlov, D.: Detecting security vulnerabilities in web applications using dynamic analysis with penetration testing. In: Application Security Conference, pp. 1–6. Ghent, Belgium (2008)
Dougherty, C.: Practical identification of SQL injection vulnerabilities. US-CERT (United States Computer Emergency Readiness Team), pp. 1–13 (2015)
http://cwe.mitre.org/data/definitions/89.html. Accessed 7 Sept 2015
http://cwe.mitre.org/data/definitions/79.html. Accessed 12 Aug 2015
Godefroid, P., Levin, M.Y., Molnar, D.: Automated whitebox fuzz testing. In: Proceedings of network and distributed systems security, pp. 1–8 (2008)
Nidhral, S., Dondeti, J.: Black box and white box testing techniques: a literature review. Int. J. Embed. Syst. Appl. (IJESA) 2(2), 33–47 (2012)
Cadar, C., Dunbar, D., Engler, D.: KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, pp. 4–12. Stanford University, USA (2008)
Kebbal, D.: Automatic Flow Analysis Using Symbolic Execution and Path Enumeration. Institut de Recherche en Informatique de Toulouse, USA, pp. 2–15
Trtík, M.: Symbolic Execution and Program Loops. Ph.D. Thesis, pp. 2–15. Faculty of Informatics Masaryk University, Czech Republic (2013)
http://babelfish.arc.nasa.gov/trac/jpf. Accessed 25 Aug 2015
Acknowledgments
This work was supported by the ICT R&D program of MSIP/IITP [R0112-14-1061, the analysis technology of vulnerability on open-source software, and the development of platform].
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kim, JH., Ma, MC. & Park, JP. An analysis on secure coding using symbolic execution engine. J Comput Virol Hack Tech 12, 177–184 (2016). https://doi.org/10.1007/s11416-016-0263-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11416-016-0263-5