DOI QR코드

DOI QR Code

A Study on Hybrid Fuzzing using Dynamic Analysis for Automatic Binary Vulnerability Detection

바이너리 취약점의 자동 탐색을 위한 동적분석 정보 기반 하이브리드 퍼징 연구

  • Received : 2019.05.08
  • Accepted : 2019.06.07
  • Published : 2019.06.30

Abstract

Recent developments in hacking technology are continuing to increase the number of new security vulnerabilities. Approximately 80,000 new vulnerabilities have been registered in the Common Vulnerability Enumeration (CVE) database, which is a representative vulnerability database, from 2010 to 2015, and the trend is gradually increasing in recent years. While security vulnerabilities are growing at a rapid pace, responses to security vulnerabilities are slow to respond because they rely on manual analysis. To solve this problem, there is a need for a technology that can automatically detect and patch security vulnerabilities and respond to security vulnerabilities in advance. In this paper, we propose the technology to extract the features of the vulnerability-discovery target binary through complexity analysis, and select a vulnerability-discovery strategy suitable for the feature and automatically explore the vulnerability. The proposed technology was compared to the AFL, ANGR, and Driller tools, with about 6% improvement in code coverage, about 2.4 times increase in crash count, and about 11% improvement in crash incidence.

최근 자동화 되는 해킹 및 분석 기술의 발전으로 인하여 수많은 소프트웨어 보안 취약점이 빠르게 발표되고 있다. 대표적인 취약점 데이터베이스인 NVD(National Vulnerability Database)에는 2010년부터 2015년까지 보안 취약점(CVE: Common Vulnerability Enumeration) 약 8만 건이 등록되었으며, 최근에도 점차 증가하고 있는 추세이다. 보안 취약점은 빠른 속도로 증가하고 있는 반면, 보안 취약점을 분석하고 대응하는 방법은 전문가의 수동 분석에 의존하고 있어 대응 속도가 느리다. 이런 문제점을 해결하기 위해 자동화된 방법으로 보안 취약점을 탐색하고, 패치하여 악의적인 공격자에게 공격 기회를 줄 수 있는 보안 취약점을 사전에 대응 할 수 있는 기술이 필요하다. 본 논문에서는 복잡도 분석을 통해 취약점 탐색 대상 바이너리의 특징을 추출하고, 특징에 적합한 취약점 탐색 전략을 선정하여 취약점을 자동으로 탐색하는 기술을 제안한다. 제안 기술은 AFL, ANGR, Driller 도구와 비교 검증 하였으며 코드 커버리지는 약 6% 향상, 크래시 개수는 약 2.4배 증가, 크래시 발생율 약 11% 향상 효과를 볼 수 있었다.

Keywords

SHGSCZ_2019_v20n6_541_f0001.png 이미지

Fig. 1. Structure of Hybrid Fuzzing using Dynamic Analysis

SHGSCZ_2019_v20n6_541_f0002.png 이미지

Fig. 2. Flow Chart of Vulnerabilities Explore Module

SHGSCZ_2019_v20n6_541_f0003.png 이미지

Fig. 3. Structure of Path Information Analysis Module

SHGSCZ_2019_v20n6_541_f0004.png 이미지

Fig. 4. Flow Chart of Vulnerabilities Explore Control Module

SHGSCZ_2019_v20n6_541_f0005.png 이미지

Fig. 5. Compare of Code Coverage

SHGSCZ_2019_v20n6_541_f0006.png 이미지

Fig. 6. Compare of Crash Counts

SHGSCZ_2019_v20n6_541_f0007.png 이미지

Fig. 7. Compare of Crash Ratio

Table 1. Compare Vulnerability Exploration Tools

SHGSCZ_2019_v20n6_541_t0001.png 이미지

Table 2. Definition of Crash Informations

SHGSCZ_2019_v20n6_541_t0002.png 이미지

Table 3. Complexity Analysis Variables and Equations

SHGSCZ_2019_v20n6_541_t0003.png 이미지

Table 4. Vulnerable Function List

SHGSCZ_2019_v20n6_541_t0004.png 이미지

References

  1. U.S. National Vulnerability Database. Available online: http://cve.mitre.org/cve/ (accessed April 30, 2019).
  2. S.H. Oh, T.E. Kim, H.W. Kim, "Technology Analysis on Automatic Detection and Defense of SW Vulnerabilities", Journal of the Korea Academia-Industrial cooperation Society, Vol. 18, No. 11, pp. 94-103, 2017. DOI: https://doi.org/10.5762/KAIS.2017.18.11.94
  3. Defense Advanced Research Projects Agency(DARPA), Program, DARPA, c2016, From: https://www.darpa.mil/program/cyber-grand-challenge, (accessed Oct., 11, 2017).
  4. Miller, B.P.; Fredriksen, L.; So, B. "An empirical study of the reliability of UNIX utilities", Commun. ACM 1990, 33, 32.44. https://doi.org/10.1145/96267.96279
  5. Bekrar, S.; Bekrar, C.; Groz, R.; Mounier, L. "A taint based approach for smart fuzzing". In Proceedings of the IEEE Fifth International Conference on Software Testing, Verification and Validation, Montreal, QC, Canada, 17-21 April 2012; pp. 818-825.
  6. American Fuzzy Lop. Available online: http://lcamtuf.coredump.cx/afl/ (accessed April 30, 2018).
  7. King, J.C. "Symbolic execution and program testing". Commun. ACM 1976, 19, 385-394. https://doi.org/10.1145/360248.360252
  8. Cha, S.K.; Avgerinos, T.; Rebert, A.; Brumley, "D. Unleashing mayhem on binary code". In Proceedings of the IEEE Symposium on Security and Privacy, San Francisco, CA, USA, 20-23 May 2012; pp. 380-394.
  9. Stephens, N.; Grosen, J.; Salls, C.; Dutcher, A.;Wang, R.; Corbetta, J.; Shoshitaishvili, Y.; Kruegel, C.; Vigna, G. "Driller: Augmenting Fuzzing through Selective Symbolic Execution". NDSS 2016, 16, 1-16.