Juliet과 STONESOUP 테스트 모음을 사용한 C/C++ 프로그램의 보안약점 탐지를 위한 정적 분석기 평가
Evaluation of Static Analyzers for Weakness in C/C++ Programs using Juliet and STONESOUP Test Suites
1
조회
0
다운로드
1
인용
0
참고문헌
키워드
초록
In this paper, we compared four analyzers Clang, CppCheck, Compass, and a commercial one from a domestic startup using the NIST’s Juliet test suit and STONESOUP that is introduced recently. Tools showed detection efficacy in the order of Clang, CppCheck, the domestic one, and Compass under Juliet tests; and Clang, the domestic one, Compass, and CppCheck under STONESOUP tests. We expect it would be desirable to utilize symbolic execution for vulnerability analysis in the future. On the other hand, the results of tool evaluation also testifies that Juliet and STONESOUP as a benchmark for static analysis tools can reveal differences among tools. Finally, each analyzer has different CWEs that it can detect all given test programs. This result can be used for selection of proper tools with respect to specific CWEs.
Abstract
In this paper, we compared four analyzers Clang, CppCheck, Compass, and a commercial one from a domestic startup using the NIST’s Juliet test suit and STONESOUP that is introduced recently. Tools showed detection efficacy in the order of Clang, CppCheck, the domestic one, and Compass under Juliet tests; and Clang, the domestic one, Compass, and CppCheck under STONESOUP tests. We expect it would be desirable to utilize symbolic execution for vulnerability analysis in the future. On the other hand, the results of tool evaluation also testifies that Juliet and STONESOUP as a benchmark for static analysis tools can reveal differences among tools. Finally, each analyzer has different CWEs that it can detect all given test programs. This result can be used for selection of proper tools with respect to specific CWEs.
참고문헌 (25)
- 주정민, "사물인터넷(IoT)에 관한 국내 연구 동향 분석", 정보화정책, 22(3), pp.3~15 (2015), 한국정보화진흥원
- "Common Weakness Enumeration"[URL]
- "Common Vulnerabilities and Exposures"[URL]
- C. Cadar, "Symbolic execution for software testing: three decades later", Communications of the ACM, 56(2), pp.82~90 (2013)
- P. Cousot, "Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints", Proceedings of the 4th ACM SIGACTSIGPLAN symposium on Principles of programming languages, pp.238~252 (1977), ACM
- S. Hendrik, "Static analysis of Sequential Function Charts using abstract interpretation", Emerging Technologies and Factory Automation (ETFA) 2016 IEEE 21st International Conference, pp.1~4 (2016)
- "Clang"[URL]
- "CppCheck"[URL]
- "Compass User Manual"[URL]
- "NIST"[URL]
- IARPA, "STONESOUP(Securely Taking On New Executable Software of Uncertain Provenance)", ~
- SAMATE, "Juliet Test Suite v1.2 for C", C++ User Guide
- "IARPA"[URL]
- "MINESTRONE"[URL]
- "PEASOUP"[URL]
- "VIBRANCE"[URL]
- Report on the Static Analysis Tool Exposition (SATE) IV, "NIST", ~
- "LDRA Testbed"[URL]
- "INFER"[URL]
- "Parasoft C++ test"[URL]
- "Red Lizard Software Goanna"[URL]
- C. Lattner, "LLVM: A compilation framework for lifelong program analysis & transformation", Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, pp.75~ (2004), IEEE Computer Society
- B. C. Lopes, "Getting started with LLVM core libraries", pp.73~104 (2014), Packt Publishing Ltd
- K. Cooper, "Engineering a compil- er", pp.231~232 (2011), Elsevier
- "ROSE compiler infrastructure"[URL]
