$\require{mediawiki-texvc}$

연합인증

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

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

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

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

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

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

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

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

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

보안 취약점 자동 탐색 및 대응기술 동향 원문보기

情報保護學會誌 = KIISC review, v.28 no.2, 2018년, pp.33 - 42  

장대일 (한국인터넷진흥원 보안기술R&D2팀) ,  김태은 (한국인터넷진흥원 보안기술R&D2팀) ,  김환국 (한국인터넷진흥원 보안기술R&D2팀)

초록
AI-Helper 아이콘AI-Helper

머신러닝인공지능 기술의 발전은 다양한 분야 활용되고 있고, 이는 보안 분야에서도 마찬가지로 로그 분석이나, 악성코드 탐지, 취약점 탐색 및 대응 등 다양한 분야에서 자동화를 위한 연구가 진행되고 있다. 특히 취약점 탐색 및 대응 분야의 경우 2016년 데프콘에서 진행된 CGC를 필두로 바이너리나 소스코드 내의 취약점을 정확하게 탐색하고 패치하기 위해 다양한 연구가 시도되고 있다. 이에 본 논문에서는 취약점을 탐색 및 대응하기 위해 각 연구 별 탐색 기술과 대응 기술을 분류 및 분석한다.

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

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

문제 정의

  • 은 기호실행을 활용하여 C++ 프로그램 대상의 자동화된 테스트케이스를 생성하는 방안을 제안했다[34]. C언어 기반의 기호실행 모듈을 C++로 확장하면서 C++의 예외처리, C++ RTTI, 메모리 모델 등을 특징으로 추가하여 테스트케이스 생성에 효율성을 높이고자 노력하였다. 또한 c++용 라이브러리 최적화와 개체 수준에서 실행 및 추론, 특정 유형의 효율적인 Solver를 구현하였다.
  • 본 논문에서는 지능형 취약점 탐색 및 대응을 위한연구 동향을 소개하였다. 지능형 취약점 탐색 연구는 크게 2가지로 분류할 수 있다.
  • Candea et al.은 마이크로 리부트 개념을 도입하면서세부적으로 재부팅이 가능한 계측정 구성요소를 통해 오류 발생 시 가장 작은 구성요소에서 가장 큰 구성요소로 재부팅 시도를 통해 상태를 패치하기 위한 연구를 수행하였다[30]. Smirnov et al.
  • Walden et al.은 소프트웨어 특성과 텍스트 마이닝을 기반으로 취약한 소프트웨어 구성 요소를 예측하기 위한 연구를 수행하였다. 이를 위해 223개의 취약점이 포함된 3개의 오픈소스를 대상으로 취약점 데이터를 생성한 후 12개의 코드 복잡도 메트릭을 선정하였고, 텍스트 마이닝을 위해 소스 파일을 먼저 토큰화한이후 토큰을 제거하거나 변경하여 최종 토큰의 빈도를 계산하였다.
  • younis et al.은 악용될 가능성이 더 높은 취약점을 포함하는 코드의 속성을 확인하기 위한 연구를 수행하였다[14]. 리눅스커널 및 아파치 웹 서버의 익스플로잇이 가능한 취약점 83개를 포함한 취약점 183개를 수집하여 취약점의 특성에 따라 4가지 카테고리로 나눈 후 소스코드 라인수, 패스 복잡도, 패스 수, 중첩도, 정보 흐름, 호출된 함수, 호출한 함수 및 호출 수 등 8개의 소프트웨어 메트릭을 선정하였다.
  • 취약점을 탐색하기 위해 머신러닝이나 딥러닝 알고리즘을 적용하여 취약점을 예측하거나 기존과 유사한 취약점의 패턴을 탐지하기 위한 연구들이 진행되고 있고, 탐색된 취약점에 자동으로 대응하기 위해 소프트웨어의 행위나 상태를 패치하기 위한 많은 연구가 진행되고 있다. 이에 본 논문에서는 소프트웨어를 분석하기 위한 기법들을 언급하고 자동으로 취약점을 찾고 대응하기 위한 지능형 취약점 탐색 및 대응 연구에 대한 동향을 분석하고자 한다.
  • 취약점 예측 모델은 알려진 소프트웨어 메트릭을 기반으로 한 예측 모델을 구축하고 소프트웨어 아티팩트의 취약 상태를 평가하기 위한 연구이다.
  • 퍼징 테스트는 소프트웨어 테스트 기법으로 테스트 대상에 다양하고 무작위의 데이터를 입력하여 소프트웨어 내부의 충돌, 검증 실패 및 메모리 누수 등의 예외를 발생시키는 것을 목적으로 한다. 이를 위해 화이트박스, 블랙박스, 그레이 박스 등 다양한 방법을 활용한다[4,5].

가설 설정

  • 은 소프트웨어 입력값의 제어를 통해 오류를 수정하기 위한 연구를 수행하였다[32]. 프로그램의 일부 입력이 실패하였을 때 상태를 변경하기 위한 방법 중 하나는 입력값을 수정하는 것으로, 수정된 입력값은 오류를 발생시키지 않는다는 것을 가정한다. Lewis et al.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
동적 분석이란? 동적 분석은 통제 가능한 가상 환경에서 소스코드나 바이너리를 실행시켜 오류를 찾아내는 방법이다. 바이너리에서 사용하는 API, 네트워크 활동 정보, 접근하는 파일, 레지스트리, 메모리 정보 등 다양한 정보를 확인할 수 있다.
정적분석이란? 정적분석은 소프트웨어의 소스코드나 바이너리를 실행하지 않은 상태에서 대상에 맞는 분석을 수행하였을 때 나타나는 오류나 논리적인 문제 혹은 취약점을 찾아내는 방법이다. 이를 위해 대상 소프트웨어의 실행 가능한 경로, 변수가 가질 수 있는 값의 범위 등을 분석하고, 대상 내 탐색이 가능한 실행 경로나 값의 범위가 프로그램의 오류를 발생시키는 조건을 만족하는 지 검사하여 오류가 발생하는 소스코드나 바이너리의 인스트럭션을 찾아내는 기술이 정적 분석 기술이다.
지능형 취약점 탐색 연구에는 무엇이 있는가? 지능형 취약점 탐색 연구는 크게 2가지로 분류할 수 있다. 첫째는 취약점 예측 모델을 통해 취약점을 탐색하는 연구이고, 둘째는 기존 취약점을 활용하여 대상 소스코드나 바이너리 내에 동일한 패턴의 취약점이 존재하는지 탐색하는 연구이다. 지능형 취약점 대응에 관한 연구도 크게 2가지로 나눌 수 있는데, 첫 번째는 소프트웨어의 행위를 패치하는 연구이다.
질의응답 정보가 도움이 되었나요?

참고문헌 (36)

  1. CVE Details, https://www.cvedetails.com/ 

  2. B. Arkin, S. Stender, G. McGraw, "Software penetration testing," IEEE Security and Privacy, 3(1), pp. 84-87, 2005. 

  3. Matt Bishop, "About penetration testing", IEEE Security & Privacy, pp.84-87, 2007. 

  4. Patrice Godefroid, "Random testing for security: Blackbox vs. whitebox fuzzing", In Proceedings of the 2nd International Workshop on Random Testing (RT'07), 2007. 

  5. M. E. Khan, F. Khan, "A comparative study of white box, black box and grey box testing techniques", International Journal of Advanced Computer Science and Applications (IJACSA), 2012. 

  6. Thomas Zimmermann, Nachiappan Nagappan, Laurie Williams, "Searching for a needle in a haystack: Predicting security vulnerabilities for windows vista", In Proceedings of the 3rd International Conference on Software Testing, Verification and Validation (ICST'10), pp. 421-428, 2010. 

  7. Andrew Meneely, Laurie Williams, "Strengthening the empirical analysis of the relationship between linus' law and software security", In Proceedings of the ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM'10), 2010. 

  8. MaureenDoyle, JamesWalden, "An empirical study of the evolution of PHPweb application security", In Proceedings of the 3rd International Workshop on Security Measurements and Metrics (MetriSec'11), pp.11-20, 2011. 

  9. Yonghee Shin, Laurie Williams, "Can traditional fault prediction models be used for vulnerability prediction?", Empir. Softw. Eng, pp.25-59, 2013. 

  10. Yonghee Shin, Laurie Williams, "An initial study on the use of execution complexity metrics as indicators of software vulnerabilities", In Proceedings of the 7th International Workshop on Software Engineering for Secure Systems(SESS'11), pp.1-7, 2011. 

  11. Sara Moshtari, Ashkan Sami, Mahdi Azimi, "Using complexity metrics to improve software security", Computer Fraud & Security, pp.8-17, May 2011. 

  12. James Walden, Jeffrey Stuckman, Riccardo Scandariato, "Predicting vulnerable components: Software metrics vs text mining",In Proceedings of the 25th International Symposium on Software Reliability Engineering (ISSRE'14), pp.23-33, 2014. 

  13. Henning Perl, Sergej Dechand, Matthew Smith, Daniel Arp, Fabian Yamaguchi, Konrad Rieck, Sascha Fahl, Yasemin Acar, "VccFinder: Finding potential vulnerabilities in open-source projects to assist code audits", In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (CCS'15), pp.426-437, 2015. 

  14. Awad Younis, Yashwant Malaiya, Charles Anderson, Indrajit Ray, "To fear or not to fear that is the question: Code characteristics of a vulnerable function with an existing exploit", In Proceedings of the 6th ACM Conference on Data and Application Security and Privacy (CODASPY'16), pp.97-104, March 2016. 

  15. Fabian Yamaguchi, Felix Lindner, Konrad Rieck, "Vulnerability extrapolation : Assisted discovery of vulnerabilities using machine learning", In Proceedings of the 5th USENIX Workshop on Offensive Technologies, 2011. 

  16. Fabian Yamaguchi, Felix Lindner, Konrad Rieck. "Generalized vulnerability extrapolation using abstract syntax trees", In Proceedings of the 28th Annual Computer Security Applications Conference (ACSAC'12), pp.359-368, 2012. 

  17. Sean Heelan, "Vulnerability detection systems: Think cyborg, not robot", IEEE Security and Privacy, pp.74-77, 2011. 

  18. Lwin Khin Shar, Hee Beng Kuan Tan, Lionel C. Briand, "Mining SQL injection and cross site scripting vulnerabilities using hybrid program analysis", In Proceedings of the 35th International Conference on Software Engineering (ICSE'13), pp.642-651, 2013. 

  19. Lwin Khin Shar, Lionel C Briand, Hee Beng Kuan Tan, "Web application vulnerability prediction using hybrid program analysis and machine learning", IEEE Transactions on Dependable and Secure Computing, pp.688-707, 2015. 

  20. Gustavo Grieco, Guillermo Luis Grinblat, Lucas Uzal, Sanjay Rawat, Josselin Feist, Laurent Mounier, "Toward Large-scale Vulnerability Discovery Using Machine Learning", In Proceedings of the Sixth ACM Conference on Data and Application Security and Privacy (CODASPY'16), pp.85-96, March 2016. 

  21. Dumidu Wijayasekara, Milos Manic, Jason L. Wright, Miles McQueen, "Mining bug databases for unidentified software vulnerabilities", In Proceedings of the 5th International Conference on Human System Interactions (HSI'12), pp.89-96, 2012. 

  22. Dumidu Wijayasekara, Milos Manic, Jason L. Wright, Miles McQueen, "Vulnerability identification and classification via text mining bug databases", In Proceedings of the 40th Annual Conference of the IEEE Industrial Electronics Society (IECON'14), 2014. 

  23. Dumidu Wijayasekara, Milos Manic, Jason L. Wright, Miles McQueen, "Applications of computational intelligence for static software checking against memory corruption vulnerabilities", In Proceedings of the IEEE Symposium on Computational Intelligence in Cyber Security (CICS'13), pp. 59-66, 2013. 

  24. Iberia Medeiros, Nuno F. Neves, Miguel Correia, "Automatic detection and correction of web application vulnerabilities using data mining to predict false positives", In Proceedings of the 23rd International Conference on World Wide Web (WWW'14), pp. 63-74, 2014. 

  25. W.Weimer, T. Nguyen, C. Le Goues, and S. Forrest, "Automatically Finding Patches Using Genetic Programming", In Proceedings of the International Conference on Software Engineering, 2009. 

  26. Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, "GenProg: A Generic Method for Automatic Software Repair", IEEE transactions on software engineering, pp 54-72, 2012. 

  27. A. Arcuri, "Automatic Software Generation and Improvement Through Search Based Techniques", PhD thesis. The University of Birmingham, 2009. 

  28. V. Debroy, W.Wong, "Using Mutation to Automatically Suggest Fixes for Faulty Programs", In Proceedings of the International Conference on Software Testing, Verification and Validation, pp. 65-74, 2010. 

  29. D. Kim, J. Nam, J. Song, S. Kim, "Automatic Patch Generation Learned From Human-Written Patches", In: Proceedings of ICSE, 2013. 

  30. G. Candea, S. Kawamoto, Y. Fujiki, G. Friedman, A. Fox, "Microreboot: a Technique for Cheap Recovery", In: Proceedings of the 6th Conference on Symposium on Operating Systems Design & Implementation, pp. 31-44, 2004. 

  31. A. Smirnov, T. Chiueh, "DIRA: Automatic Detection, Identification, and Repair of Control-hijacking Attacks", The 12th Annual Network and Distributed System Security Symposium, 2005. 

  32. P. E. Ammann, J. C. Knight, "Data Diversity: An Approach to Software Fault Tolerance", Ieee transactions on computers, pp. 418-425, 2005. 

  33. C. Lewis, J. Whitehead, "Runtime Repair of Software Faults Using Event-driven Monitoring", In Proceedings of the 32nd acm/ieee international conference on software engineering(icse '10), pp. 275-280, 2010. 

  34. Guodong Li, Indradeep Ghosh, and Sreeranga P. Rajan, "KLOVER: A Symbolic Execution and Automatic Test Generation Tool for C++ Programs", IEEE Software, pp. 33-37, 2017. 

  35. L. Luo, Q. Zeng, C. Cao, K. Chen, J. Liu, L. Liu, N. Gao, M. Yang, X. Xing, and P. Liu, "System service call-oriented symbolic execution of android framework with applications to vulnerability discovery and exploit generation," In Proceedings of the 15th Annual International Conference on Mobile Systems, Applications, and Services. ACM, pp. 225-238, 2017. 

  36. S. Rawat, V. Jain, A.Kumar, L. Cojocar, C. Giuffrida, H. Bos, "Vuzzer: Application-aware evloutionary fuzzing," In Proceedings of the Network and Districuted System Security Symposium(NDSS), 2017. 

저자의 다른 논문 :

관련 콘텐츠

섹션별 컨텐츠 바로가기

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

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

선택된 텍스트

맨위로