$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

[국내논문] 바이너리 정적 분석 기반 Out-of-Bounds Read 취약점 유형 탐지 연구
A Out-of-Bounds Read Vulnerability Detection Method Based on Binary Static Analysis 원문보기

情報保護學會論文誌 = Journal of the Korea Institute of Information Security and Cryptology, v.31 no.4, 2021년, pp.687 - 699  

유동민 (한양대학교 컴퓨터공학과 바이오인공지능융합전공) ,  김문회 (한양대학교 컴퓨터공학과) ,  오희국 (한양대학교 컴퓨터공학과)

초록
AI-Helper 아이콘AI-Helper

프로그램에서 취약점이 발생하면 그에 대한 정보가 문서화되어 공개된다. 그러나 일부 취약점의 경우 발생한 원인과 그 소스코드를 공개하지 않는다. 이러한 정보가 없는 상황에서 취약점을 찾기 위해서는 바이너리 수준에서 코드를 분석해야 한다. 본 논문에서는 Out-of-bounds Read 취약점 유형을 바이너리 수준에서 찾는 것을 목표로 한다. 바이너리에서 취약점을 탐지하는 기존의 연구는 주로 동적 분석을 이용한 도구로 발표되었다. 동적 분석의 경우 프로그램 실행 정보를 바탕으로 취약점을 정확하게 탐지할 수 있지만, 모든 실행 경로를 탐지하지 못할 가능성이 있다. 모든 프로그램 경로를 분석하기 위해서는 정적 분석을 사용해야 한다. 기존의 정적 도구의 경우 소스코드 기반의 도구들이며, 바이너리에 수준의 정적 도구는 찾기 어렵다. 본 논문에서는 바이너리 정적 분석을 통해 취약점을 탐지하며, 메모리 구조를 모델링하는 방법으로 Heap, Stack, Global 영역의 취약점을 탐지한다. 실험 결과 기존의 탐지도구인 BAP_toolkit과 비교하였을 때 탐지 정확도 및 분석 시간에서 의미 있는 결과를 얻었다.

Abstract AI-Helper 아이콘AI-Helper

When a vulnerability occurs in a program, it is documented and published through CVE. However, some vulnerabilities do not disclose the details of the vulnerability and in many cases the source code is not published. In the absence of such information, in order to find a vulnerability, you must find...

주제어

표/그림 (19)

AI 본문요약
AI-Helper 아이콘 AI-Helper

문제 정의

  • 기존의 OOB를 탐지하는 바이너리 정적도구는 찾기 어려우며, 동적도구의 경우에도 Stack영역과 모든 코드커버리지를 만족하지 않는 경우가 존재한다. 본 논문에서는 기존에 연구되지 않았던 바이너리 정적 분석을 이용하여 OOB 취약점을 찾는 자동화도구를 개발하였다.
  • 본 논문에서는 바이너리 정적 분석을 이용하여 Heap영역뿐만 아니라 Stack 영역에서 Out-ofbounds 취약점을 찾는 것을 목표로 한다.
  • 탐지 전략 본 논문의 목적은 Heap 영역뿐만 아니라 Stack 영역에서 Out-of-bounds Read 취약점을 탐지하는 것을 목표로 한다. 취약점 탐지의 순서는 다음과 같다.
본문요약 정보가 도움이 되었나요?

참고문헌 (31)

  1. Common Weakness Enumeration, "CWE Ranking" https://cwe.mitre.org/top25/archive/2020/2020_cwe_top25.html. 2021-04-30. 

  2. K. Serebryany, D. Bruening, A. Potapenko, and D. Vyukov, "Addresssanitizer: A fast address sanity checker." in USENIX Annual Technical Conference, pp.309-318, 2012. 

  3. S. Nagarakatte, J. Zhao, M. M. Martin, and S. Zdancewic, "Softbound: Highly compatible and complete spatial memory safety for c," ACM Sigplan Notices, vol. 44, no. 6, pp. 245-258, 2009. 

  4. N. Nethercote and J. Seward, "Valgrind: a framework for heavyweight dynamic binary instrumentation," in ACM Sigplan notices, vol. 42, no. 6. ACM, pp.89-100, 2007. 

  5. S. Nagarakatte, J. Zhao, M. M. Martin, and S. Zdancewic, "Cets: compiler enforced temporal safety for c," in ACM Sigplan Notices, vol. 45, no. 8. ACM, pp.31-40, 2010. 

  6. cwe_checker github repo, "cwe checker" https://github.com/fkie-cad/cwe_checker, 2021-07-19. 

  7. American fuzzy lop, "American fuzzylop" http://lcamtuf.coredump.cx/afl/.", 2021-04-30. 

  8. C. Lemieux, R. Padhye, K. Sen, and D. Song, "Perffuzz: automatically generating pathological inputs," in Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, pp. 254-265, 2018. 

  9. C. Lemieux and K. Sen, "Fairfuzz: A targeted mutation strategy for increasing greybox fuzz testing coverage," in Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering. ACM, pp. 475-485, 2018. 

  10. M. Bohme, V.-T. Pham, M.-D. Nguyen, and A. Roychoudhury, "Directed greybox fuzzing," in Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. ACM, pp. 2329-2344, 2017. 

  11. M. Bohme, V.-T. Pham, and A. Roychoudhury, "Coverage-based greybox fuzzing as markov chain," in Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, pp. 1032-1043, 2016. 

  12. bap-toolkit github repo, "BAP Toolkit" https://github.com/BinaryAnalysisPlatform/bap-toolkit-manager, 2021-04-30 

  13. BRUMLEY, David, et al, "BAP: A binary analysis platform," International Conference on Computer Aided Verification. Springer, Berlin, Heidelberg, p. 463-469, 2011. 

  14. Binary Analysis Platform github repo, "Binary Analysis Platform" https://github.com/BinaryAnalysisPlatform/bap, 2021-04-30. 

  15. Address Sanitizer Comparison Of Memory Tools, "sanitizers" https://github.com/google/sanitizers/wiki/AddressSanitizerComparisonOfMemoryTools, 2021-04-30. 

  16. A. Filieri, C. S. Pasareanu, and W. Visser, "Reliability analysis in symbolic pathfinder," in 2013 35th International Conference on Software Engineering. IEEE, pp.622-631, 2013. 

  17. S. Person, G. Yang, N. Rungta, and S. Khurshid, "Directed incremental symbolic execution," in Acm Sigplan Notices, vol. 46, no. 6. ACM, pp. 504-515, 2011. 

  18. J. H. Siddiqui and S. Khurshid, "Staged symbolic execution," in Proceedings of the 27th Annual ACM Symposium on Applied Computing. ACM, pp. 1339-1346, 2012. 

  19. Y. Li, Z. Su, L. Wang, and X. Li, "Steering symbolic execution to less traveled paths," in ACM SigPlan Notices, vol. 48, no. 10. ACM, pp. 19-32, 2013. 

  20. T. Xie, N. Tillmann, J. de Halleux, and W. Schulte, "Fitness-guided path exploration in dynamic symbolic execution," in IEEE/IFIP International Conference on Dependable Systems & Networks. Citeseer, pp. 359-368, 2009. 

  21. B. C. Parrino, J. P. Galeotti, D. Garbervetsky, and M. F. Frias, "Tacoflow: optimizing sat program verification using dataflow analysis," Software & Systems Modeling, vol. 14, no. 1, pp. 45-63, 2015. 

  22. C. Cadar, D. Dunbar, D. R. Engler et al., "Klee: Unassisted and automatic generation of high-coverage tests for complex systems programs." in USENIX Symposium on Operating Systems Design and Implementation, vol. 8, pp. 209-224, 2008. 

  23. W. Visser, C. S. Pasareanu, and S. Khurshid, "Test input generation with java pathfinder," ACM SIGSOFT Software Engineering Notes, vol. 29, no. 4, pp. 97-107, 2004. 

  24. S. Anand, C. S. Pasareanu, and W. Visser, "Jpf-se: A symbolic execution extension to java pathfinder," in International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, pp. 134-138, 2007. 

  25. WANG, Haijun, et al, "Locating vulnerabilities in binaries via memory layout recovering," Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp. 718-728, 2019. 

  26. G. Balakrishnan and T. Reps, "Analyzing memory accesses in x86 executables," in International conference on compiler construction. Springer, pp. 5-23, 2004. 

  27. J. Lee, T. Avgerinos, and D. Brumley, "Tie: Principled reverse engineering of types in binary programs," 2011. 

  28. Z. Lin, X. Zhang, and D. Xu, "Automatic reverse engineering of data structures from binary execution," in Proceedings of the 11th Annual Information Security Symposium, pp. 1-1, 2010. 

  29. Slowinska, Asia, Traian Stancescu, and Herbert Bos, "Howard: A Dynamic Excavator for Reverse Engineering Data Structures," NDSS, 2011. 

  30. "Body armor for binaries: Preventing buffer overflows without recompilation." in USENIX Annual Technical Conference, pp. 125-137, 2012. 

  31. NIST, "Juliet Test Suite" https://samate.nist.gov/SARD/testsuite.php, 2021-04-30 

저자의 다른 논문 :

섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로