$\require{mediawiki-texvc}$

연합인증

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

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

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

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

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

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

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

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

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

신경망을 이용한 소프트웨어 취약 여부 예측 시스템
Software Vulnerability Prediction System Using Neural Network 원문보기

情報保護學會論文誌 = Journal of the Korea Institute of Information Security and Cryptology, v.29 no.3, 2019년, pp.557 - 564  

최민준 (세종대학교) ,  구동영 (한성대학교) ,  윤주범 (세종대학교)

초록
AI-Helper 아이콘AI-Helper

소프트웨어의 증가에 따라 소프트웨어의 취약점도 함께 증가하고 있다. 다양한 소프트웨어는 다수의 취약점이 존재할 수 있으며 취약점을 통해 많은 피해를 받을 수 있기 때문에 빠르게 탐지하여 제거해야 한다. 현재 소프트웨어의 취약점을 발견하기 위해 다양한 연구가 진행되고 있지만, 수행 속도가 느리거나 예측 정확도가 높지 않다. 따라서 본 논문에서는 신경망 알고리즘을 이용하여 소프트웨어의 취약 여부를 효율적으로 예측하는 방법을 제안하며 나아가 기계학습 알고리즘을 이용한 기존의 시스템과 예측 정확도를 비교한다. 실험 결과 본 논문에서 제안하는 예측 시스템이 가장 높은 예측률을 보였다.

Abstract AI-Helper 아이콘AI-Helper

As the number and type of software increases, those security vulnerabilities are also increasing. Various types of software may have multiple vulnerabilities and those vulnerabilities as they can cause irrecoverable significant damage must be detected and deleted quickly. Various studies have been c...

주제어

표/그림 (12)

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

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

문제 정의

  • 위 단점을 극복하기 위해 기계학습과 신경망 알고리즘을 이용하여 취약 여부를 예측하는 연구들[5][6][7][8][9][10][11]이 있지만, 예측정확도가 높지 않거나 소스코드가 필요한 한계점 등이 존재한다. 따라서 본 논문에서는 기존 연구의 한계점을 개선한, 소프트웨어 취약 여부 예측 시스템을 제안한다.
  • 해당 방법은 소스코드가 없어도 취약 여부를 예측할 수 있는 장점이 있지만, 다른 방법에 비해 예측률이 낮다. 따라서 본 논문에서는 바이너리를 이용한 예측방법에 기계학습이 아닌 신경망을 적용하여 예측률을 높이기 위한 실험을 진행하였다.
  • 또한 기호실행을 이용한 소프트웨어 검사 도구는 소프트웨어를 검사할 때마다 검사하고자 하는 소프트웨어 분기문의 미지수 값을 기호로 나타내어 모든 분기를 검사하기 때문에 대규모 소프트웨어의 경우 메모리 부족으로 인한 오류가 발생할 수 있고 시간이 오래 걸린다는 단점이 있다. 따라서 소프트웨어의 구조를 분석하지 않고 빠른 시간 내 취약하다고 예측되는 소프트웨어를 파악하기 위해 신경망과 기계학습을 이용한 기존의 취약 여부 예측 방법에 대해 살펴본다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
소프트웨어 취약점을 검사하는 도구에는 대표적으로 무엇이 있는가? 이러한 소프트웨어 취약점을 통해 해커들이 시스템을 공격할 경우 개인이나 기업은 막대한 피해를 받을 수 있기 때문에 소프트웨어 취약점은 사전에 탐지하여 제거해야 한다. 현재 소프트웨어 취약점을 검사하는 도구는 대표적으로 퍼징(fuzzing)[3] 기법과 기호실행(symbolic execution)[4]을 이용한 도구들이 있다. 하지만 기존의 도구들은 복잡하고 시간이 오래 걸리는 치명적인 단점이 있다.
바이너리를 이용한 예측 방법은 어떠한 장단점을 가지는가? 그리고, 취약한 바이너리 함수 호출 리스트와 취약하지 않은 함수 호출리스트를 분류한 후 학습하고 새로운 함수 호출 값을 입력으로 주었을 때, 예측 모델을 통해 취약 여부를 예측한다. 해당 방법은 소스코드가 없어도 취약 여부를 예측할 수 있는 장점이 있지만, 다른 방법에 비해 예측률이 낮다. 따라서 본 논문에서는 바이너리를 이용한 예측방법에 기계학습이 아닌 신경망을 적용하여 예측률을 높이기 위한 실험을 진행하였다.
신경망을 이용한 취약 여부 예측 방법은 어떻게 취약 여부를 예측하는가? 신경망을 이용한 취약 여부 예측 방법[9]은 Juliet test suite[18]를 사용해 취약한 어셈블리 코드와 취약하지 않은 어셈블리 코드를 학습하고 새로운 어셈블리 코드를 입력 값으로 주었을 때, 신경망을 통해 취약 여부를 예측한다. 실험을 통해 높은 예측률을 보여주었지만, CPU 구조가 다를 경우 어셈블리 코드도 달라질 수 있기 때문에 다시 학습 데이터를 추출해야 한다.
질의응답 정보가 도움이 되었나요?

참고문헌 (28)

  1. SPRI, "Software Policy & Research Institute" https://www.spri.kr/download/21696, Sep. 2018. 

  2. AVECTO, "Microsoft Vulnerabilities Report 2017" https://www.avecto.com/resources/reports/microsoft-vulnerabilities-report-2017, Sep. 2018. 

  3. Miller, Barton P., Louis Fredriksen, and Bryan So. "An empirical study of the reliability of UNIX utilities." Communications of the ACM, vol. 33, no. 12, pp. 32-44, Dec. 1990. 

  4. King, James C. "Symbolic execution and program testing." Communications of the ACM, vol. 19, no. 7, pp. 385-394, Jul. 1976. 

  5. S. Neuhaus, T. Zimmermann, C. Holler, and A. Zeller. "Predicting vulnerable software components." ACM, pp. 529-540, Oct. 2007. 

  6. Nguyen, Viet Hung, and Le Minh Sang Tran. "Predicting vulnerable software components with dependency graphs." Proceedings of the 6th International Workshop on Security Measurements and Metrics. ACM, pp. 3:1-3:8. Sep. 2010. 

  7. Yonghee Shin, and Laurie Williams. "An empirical model to predict security vulnerabilities using code complexity metrics." Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement. ACM, pp. 315-317. Oct. 2008. 

  8. Yonghee Shin, and Laurie Williams. "Is complexity really the enemy of software security?." Proceedings of the 4th ACM workshop on Quality of protection. ACM, pp. 47-50, Oct. 2008. 

  9. Young Jun Lee, Sang-Hoon Choi, Chulwoo Kim and Ki-Woong Park. "Learning Binary Code with Deep Learning to Detect Software Weakness." KSII The 9th International Conference on Internet (ICONI) 2017 Symposium, 2017. 

  10. Grieco, G., Grinblat, G. L., Uzal, L., Rawat, S., Feist, J., and Mounier, L. "Toward large-scale vulnerability discovery using Machine Learning." Proceedings of the Sixth ACM Conference on Data and Application Security and Privacy. ACM, pp. 85-96, Mar. 2016. 

  11. Minjun Choi, Juhwan Kim and Joobeom Yun, "Software Vulnerability Prediction System Using Machine Learning Algorithm." Journal of the Korea Institute of Information Security & Cryptology, 28(3), pp. 635-642, Jun, 2018. 

  12. Kang Yoon Lee and Junhewk Kim. "Artificial Intelligence Technology Trends and IBM Watson References in the Medical Field" Korean Medical Education Review, 18(2), pp. 51-57, 2016. 

  13. Seonhwa Choi. "Neural Network Model for Prediction of Damage Cost from Storm and Flood" Journal of KIISE, 38(3), pp. 115-123, Mar. 2011 

  14. Silver, David, et al. "Mastering the game of Go with deep neural networks and tree search", nature, vol. 529, no. 7587, pp. 484-489. 2016 

  15. Deawon Kim, et al. "How AlphaGo does Change People's Perception of Introduction of Artificial Intelligence into Intellectual Work?" Cybercommunication Academic Society, 33(4), pp. 107-158, Oct. 2016. 

  16. Iltaek Kwon and Eul Gyu Im. "Study on Application of Recurrent Neural Network to Extract Malware API Call Pattern", Communications of KIISE, pp. 1081-1083, Jun. 2017. 

  17. Jae-Hyun Seo, "A Comparative Study on the Classification of the Imbalanced Intrusion Detection Dataset Based on Deep Learning" Journal of KIIS, 28(2), pp. 152-159, Apr. 2018. 

  18. NIST, "Juliet Test Sutie" https://samate.nist.gov/SRD/testsuite.php, Mar. 2019. 

  19. python-ptrace, "python-ptrace" http://python-ptrace.readthedocs.org, Jul. 2018. 

  20. zzuf, "zzuf-multi-purpose fuzzer" http://caca.zoy.org/wiki/zzuf, Jul. 2018. 

  21. Witten, Ian H., et al. "Data Mining: Practical machine learning tools and techniques.", Morgan Kaufmann, 2016. 

  22. Euijoong Kim "Introduction to Artificial Intelligence, Machine Learning, Deep Learning with Algorithms." 2016. 

  23. Szymanski, P., & Kajdanowicz, T. "Scikit-multilearn: a scikit-based Python environment for performing multi-label classification." The Journal of Machine Learning Research, 20(1), pp. 209-230, Feb. 2019. 

  24. Pedregosa, Fabian, et al. "Scikit-learn: Machine learning in Python." Journal of Machine Learning Research, pp. 2825-2830, Oct. 2011. 

  25. Domingos, Pedro. "A few useful things to know about machine learning." Communications of the ACM, vol. 55, no. 10, pp. 78-87, Oct. 2012. 

  26. Hsu, Chih-Wei, Chih-Chung Chang, and Chih-Jen Lin. "A practical guide to support vector classification.", pp. 1-16, 2003. 

  27. Batista, Gustavo EAPA, Ronaldo C. Prati, and Maria Carolina Monard. "A study of the behavior of several methods for balancing machine learning training data." ACM Sigkdd Explorations Newsletter, vol. 6, no. 1, pp. 20-29, Jun. 2004. 

  28. Muller, Andreas C., and Sarah Guido. "Introduction to machine learning with Python: a guide for data scientists." 2016. 

저자의 다른 논문 :

LOADING...

관련 콘텐츠

오픈액세스(OA) 유형

FREE

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

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

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

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

선택된 텍스트

맨위로