Browse > Article
http://dx.doi.org/10.9708/jksci.2017.22.03.081

Classification of Diagnostic Information and Analysis Methods for Weaknesses in C/C++ Programs  

Han, Kyungsook (Dept. of Computer Engineering, Korea Polytechnic University)
Lee, Damho (Dept. of Computer Engineering, Hongik University)
Pyo, Changwoo (Dept. of Computer Engineering, Hongik University)
Abstract
In this paper, we classified the weaknesses of C/C++ programs listed in CWE based on the diagnostic information produced at each stage of program compilation. Our classification identifies which stages should be responsible for analyzing the weaknesses. We also present algorithmic frameworks for detecting typical weaknesses belonging to the classes to demonstrate validness of our scheme. For the weaknesses that cannot be analyzed by using the diagnostic information, we separated them as a group that are often detectable by the analyses that simulate program execution, for instance, symbolic execution and abstract interpretation. We expect that classification of weaknesses, and diagnostic information accordingly, would contribute to systematic development of static analyzers that minimizes false positives and negatives.
Keywords
Security; Weakness; Static Analysis; Diagnostic Information; Analysis Method;
Citations & Related Records
연도 인용수 순위
  • Reference
1 SAMATE, Juliet Test Suite v1.2 for C/C++ User Guide, National Security Agency
2 SecurityPrism, http://www.gtone.co.kr/kr/security-static-analysis-tools.php
3 Hyun-Joon Kwon, Hyunha Kim, Kyung-Goo Doh, "Developing An Automatic Tool for Static Detection of Software Security Vulnerabilities", pp.37-40, KIISE, Vol. 28.2, Feburary 2010 (in Korean)
4 Hyunha Kim, Tae-Hyoung Choi, Seung-Cheol Jung, Oukseh Lee, Kyung-Goo Doh, Soo-Yong Lee, "Rule-based Source-code Analysis for Detection of Security Vulnerability", WISA2009:The 10th International Workshop on Information Security Applications, Busan, South Korea, August 25-27, 2009
5 Fortify Static Code Analyzer, https://saas.hpe.com/en-us/software/sca
6 Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, "Compilers: Principled, Techniques, and Tools", Addison Wesley, 1986
7 Steven S. Muchnick, "Advanced Compiler Design and Implementation", Morgan Kaufmann, pp.169-265, 1997
8 C. Cadar, and K. Sen, "Symbolic execution for software testing: three decades later," Communications of the ACM, 56.2, pp.82-90, July 2013.   DOI
9 P. Cousot, and R. Cousot, "Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints," Proceedings of the 4th ACM SIGACT- SIGPLAN symposium on Principles of programming languages, pp.238-252, ACM, January 1977.
10 CWE, Common Weakness Enumeration, http://cwe.mitre.org/
11 NIST, https://samate.nist.gov/