$\require{mediawiki-texvc}$

연합인증

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

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

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

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

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

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

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

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

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

[국내논문] 동적 기호 실행을 이용한 윈도우 시스템 콜 Use-After-Free 취약점 자동 탐지 방법
Automated Method for Detecting Use-After-Free Vulnerability of Windows System Calls Using Dynamic Symbolic Execution 원문보기

情報保護學會論文誌 = Journal of the Korea Institute of Information Security and Cryptology, v.27 no.4, 2017년, pp.803 - 810  

강상용 (전남대학교 정보보안협동과정) ,  이권왕 (전남대학교 정보보안협동과정) ,  노봉남 (전남대학교 정보보안협동과정)

초록
AI-Helper 아이콘AI-Helper

최근 소프트웨어 산업의 발달에 따른 사회적 보안 문제가 지속적으로 발생하고 있으며, 소프트웨어 안정성 검증을 위해 다양한 자동화 기법들이 사용되고 있다. 본 논문에서는 소프트웨어 테스팅 기법 중 하나인 동적 기호 실행을 이용해 윈도우 시스템 콜 함수를 대상으로 Use-After-Free 취약점을 자동으로 탐지하는 방법을 제안한다. 먼저, 목표 지점을 선정하기 위한 정적 분석 기반 패턴 탐색을 수행한다. 탐지된 패턴 지점을 바탕으로 관심 밖의 영역으로의 분기를 차단하는 유도된 경로 탐색 기법을 적용한다. 이를 통해 기존 동적 기호 실행 기술의 한계점을 극복하고, 실제 목표 지점에서의 취약점 발생 여부를 검증한다. 제안한 방법을 실험한 결과 기존에 수동으로 분석해야 했던 Use-After-Free 취약점을 제안한 자동화 기법으로 탐지할 수 있음을 확인하였다.

Abstract AI-Helper 아이콘AI-Helper

Recently, social security problems have been caused by the development of the software industry, and a variety of automation techniques have been used to verify software stability. In this paper, we propose a method of automatically detecting a use-after-free vulnerability on Windows system calls us...

Keyword

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

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 본 논문에서는 DSE 기술의 장점을 이용한 새로운 윈도우 시스템 콜 UAF 취약점(이하, UAF) 자동 탐지 방법을 제안한다. 먼저 목표 지점을 선정하기 위해 정적 분석 기반 패턴 탐색을 수행한다.
  • Step1에서는 DSE 수행하기 앞서 목표 지점을 선정하는 작업을 수행한다. 본 논문에서는 유저모드콜백에 의해 발생하는 윈도우 커널 UAF 취약점을 탐지하기 위한 패턴을 정의한다. 정의된 패턴을 바탕으로 정적 분석을 통해 크래시가 발생할 가능성이 있는 후보 지점을 추출한다.
  • 본 논문에서 제안한 DSE 기반 윈도우 시스템 콜UAF 취약점 자동 탐지 방법의 우수성을 입증하기 위한 실험 및 평가를 수행한다. 평가의 용이성을 위해 2011년부터 2015까지 발생한 UAF 취약점 중 분석이 완료된 취약점을 대상으로 실험을 수행한다.
  • 본 논문에서 윈도우 시스템 콜의 유저모드 콜백에 의한 UAF 취약점을 자동으로 탐지하는 방법을 제안하였다. 취약점 탐지의 자동화를 위해 정적 분석기반 UAF 취약점 탐지 모델을 개발하였으며, 이를 활용해 잠재적 크래시 유발 지점을 추출하였다.

가설 설정

  • 유저모드 콜백 발생을 탐지하기 위해 KeUserModeCallback 함수의 크로스 레퍼런스(Xref to KeUserModeCallback)를 추출한다. 만약 추출된 함수가 추적 중인 객체를 파라미터로 사용한다면, 유저모드 콜백이 발생했다고 가정한다.
  • 가지치기 대상 코드블록을 식별하기 위해 먼저, 단일함수 내에 존재하는 모든 코드블록을 추출한다. Fig. 2에서 총 11개의 코드블록이 존재하고, 마킹된 블록(CBt)이 목표 지점이라 가정한다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
동적 기호 실행이란? 동적 기호 실행(Dynamic symbolic execution, 이하 DSE)은 소프트웨어의 입력 데이터를 심볼릭 변수로 정의함으로써 실행 가능한 모든 경로를 빠르게 탐색하는 분석 방법이다[6]. 높은 코드 커버리지와 높은 정확성을 모두 가지는 DSE는 소프트웨어 취약점 탐지에 활용될 수 있으며, 지난 몇 년 동안 EXE[7], KLEE[8], FuzzBALL[9], SAGE[10], S2E[11]와 같은 자동화 도구들이 연구되었다.
동적 기호 실행의 특징은? 동적 기호 실행(Dynamic symbolic execution, 이하 DSE)은 소프트웨어의 입력 데이터를 심볼릭 변수로 정의함으로써 실행 가능한 모든 경로를 빠르게 탐색하는 분석 방법이다[6]. 높은 코드 커버리지와 높은 정확성을 모두 가지는 DSE는 소프트웨어 취약점 탐지에 활용될 수 있으며, 지난 몇 년 동안 EXE[7], KLEE[8], FuzzBALL[9], SAGE[10], S2E[11]와 같은 자동화 도구들이 연구되었다. 하지만 기존의 DSE 기술은 상용 소프트웨어에 대한 적용을 방해하는 경로 폭발 문제(path explosion)에 직면해있다.
소프트웨어 취약점을 탐지 시 가진 단점을 극복하기 위한 방법은 어떻게 나뉘는가? 하지만 소프트웨어 취약점을 탐지하기 위해서는 전문 지식이 요구될 뿐만 아니라 많은 시간과 비용이 소모된다. 이를 극복하기 위해 많은 자동 테스팅 기법에 대한 연구가 진행되고 있으며, 이러한 연구들은 정적 탐지 방법과 동적 탐지 방법으로 나눌 수 있다. GUEB[3]와 같은 정적 탐지 도구는 높은 코드 커버리지를 가지지만 정확성은 떨어진다.
질의응답 정보가 도움이 되었나요?

참고문헌 (25)

  1. SPri, "Software Industry Annual Report", http://spri.kr/post/11313, 2015. 

  2. NIST, "National Vulnerability Database: Statistics Results Page", https://web.nvd.nist.gov/view/vuln/statistics-results?adv_searchtrue&cveson&queryuse+after+free&cvss_version3, 2017 

  3. J Feist, L Mounier and ML Potet, "Statically detecting use after free on binary code", Springer, Vol. 10, Aug. 2014. 

  4. J. Caballero, G. Grieco et al, "Undangle:Early Detection of Dangling Pointers in Use-after-free and Double-free Vulnerabilities," ISSTA, 2012. 

  5. B Lee, C Song, Y Jang, T Wang, T Kim, L Lu, W Lee, "Preventing Use-after-free with Dangling Pointers Nullification", NDSS, 2015 

  6. James C. King, "Symbolic Execution and Program Testing", Communications of the ACM, Volume 19 Issue 7, July. 1976. 

  7. Cadar C, Ganesh V, Pawlowski P M, et al. "EXE:Automatically generating inputs of death", Computer Andcommunications Security, 2006, 12(2):3296-3306. 

  8. Cadar C, Dunbar D, Engler D R. "KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs", USENIX, 2008. 

  9. D Babic, L Martignoni, S McCamant, and D Song, "Statically-Directed Dynamic Automated Test Generation", In Proceedings of the ACM/SIGSOFT (ISSTA), July. 2011. 

  10. E. Bounimova, P. Godefroid, and D. Molnar, "Billions and Billions of Constraints: Whitebox Fuzz Testing in Production", IEEE, 2013. 

  11. Vitaly Chipounov, Volodymyr Kuznetsov, George Candea. "S2E: A Platform for In Vivo Multi-Path Analysis of Software Systems", 16th Intl. ASPLOS, Newport Beach, CA, March. 2011. 

  12. GitHub, "dslab-epfl/s2e", https://github.com/dslab-epfl/s2e 

  13. Google Groups, "S2E Developer Forum", https://groups.google.com/d/forum/s2e-dev 

  14. VT Pham, WB Ng, K Rubinov et al, "Hercules : Reproducing Crashes in Real-World Application Binaries", ACM, 2015. 

  15. C Yeh, H Lu, C Chen et al, "CRAXDroid: Automatic android system testing by selective symbolic execution", 8th International Conference on Software Security and Reliability, 2014. 

  16. N Stephens, J Grosen, C Salls et al, "Driller : Augmenting Fuzzing Through Selective Symbolic Execution", Internetsociety, 2016. 

  17. B Zhang, C Feng, B Wu et al, "Detecting integer overflow in Windows binary executables based on symbolic execution", IEEE/ACIS. 2016. 

  18. Yu Wang, "A New CVE-2015-0057 Exploit Technology", BlackHat, Sep. 2015. 

  19. Aaron Adams, "Exploiting the win32k!xxxEnableWndSBArrows use-after-free (CVE-2015-0057) bug on both 32-bit and 64-bit", An NCC Group Publication, 2015. 

  20. Dominic Wang, "Exploiting MS15-061 Microsoft Windows Kernel Use-After-Free(win32!xxxSetClassLong), nccgroup, 2015. 

  21. Udi Yavo, "Class Dismissed: 4 Use-After-Free Vulnerabilities in Windows", http://breakingmalware.com/vulnerabilities/class-dismissed-4-use-after-free-vulnerabilities-in-windows, July. 2015. 

  22. Tarjei Mandt, "Kernel Attacks through User-Mode Callbacks", BlackHat USA, Aug. 2011. 

  23. Godefroid, Patrice, Nils Klarlund, and Koushik Sen, "DART: directed automated random testing", ACM Sigplan Notices, Vol. 40, No. 6, ACM, 2005. 

  24. Sen, Koushik, Darko Marinov, and Gul Agha, "CUTE: a concolic unit testing engine for C", Vol. 30, No. 5, ACM, 2005. 

  25. Kunal Taneja, "Guided Path Exploration for Regression Test Generation", ICSE Companion, 2009. 

저자의 다른 논문 :

관련 콘텐츠

오픈액세스(OA) 유형

FREE

Free Access. 출판사/학술단체 등이 허락한 무료 공개 사이트를 통해 자유로운 이용이 가능한 논문

이 논문과 함께 이용한 콘텐츠

저작권 관리 안내
섹션별 컨텐츠 바로가기

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

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

선택된 텍스트

맨위로