$\require{mediawiki-texvc}$

연합인증

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

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

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

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

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

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

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

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

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

소스코드 취약성 분류를 위한 기계학습 기법의 적용
Application of Machine Learning Techniques for the Classification of Source Code Vulnerability 원문보기

情報保護學會論文誌 = Journal of the Korea Institute of Information Security and Cryptology, v.30 no.4, 2020년, pp.735 - 743  

이원경 (성신여자대학교) ,  이민주 (성신여자대학교) ,  서동수 (성신여자대학교)

초록
AI-Helper 아이콘AI-Helper

시큐어코딩은 악의적인 공격 혹은 예상치 못한 오류에 대한 강인함을 제공해줄 수 있는 안전한 코딩 기법으로 정적분석도구의 지원을 통해 취약한 패턴을 찾아내거나 오염 데이터의 유입 가능성을 발견한다. 시큐어코딩은 정적기법을 적극적으로 활용하는 만큼 룰셋에 의존적이라는 단점을 가지며, 정적분석 도구의 복잡성이 높아지는 만큼 정확한 진단이 어렵다는 문제점을 안고 있다. 본 논문은 시큐어코딩을 지원하는 목적으로 기계학습 기법 중 DNN과 CNN, RNN 신경망을 이용하여 개발보안가이드 상의 주요 보안약점에 해당하는 패턴을 학습시키고 분류하는 모델을 개발하며 학습 결과를 분석한다. 이를 통해 기계학습 기법이 정적분석과 더불어 보안약점 탐지에 도움을 줄 수 있을 것으로 기대한다.

Abstract AI-Helper 아이콘AI-Helper

Secure coding is a technique that detects malicious attack or unexpected errors to make software systems resilient against such circumstances. In many cases secure coding relies on static analysis tools to find vulnerable patterns and contaminated data in advance. However, secure coding has the disa...

주제어

표/그림 (16)

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

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

문제 정의

  • 본 논문에서는 시큐어코딩 활동을 하는 과정에서 생성된 텍스트 데이터를 기계학습을 통해 학습시킴으로써 개발자의 시큐어코딩 활동이 기계학습을 통해 학습이 가능한지를 알아보고자 한다. 특히 빈번하게 발견되는 보안취약점 중 크로스사이트 스크립트 공격, 널 포인터 역참조 에러 등의 소스코드 내의 보안 취약점을 중심으로 기계학습을 진행하여 학습의 특성을 관찰하고 결과를 분석한다.
  • 본 논문은 Russell, Kolosnjaji 등의 연구와 맥을 같이하여 소스코드에 내재되어 있는 기계학습을 기반으로 한 취약점 탐지의 목적을 두고 있으나, Ja va 코드를 대상으로 국내 실정에 맞도록 행정안전부 개발보안가이드에 나타난 주요 보안약점을 분류 대상으로 하는 차별화된 접근을 한다. 이는 국내 시큐어 코딩 및 개발보안 활동에 기계학습을 적용하는 실험적인 시도로 의미가 있으며 학습 과정에서 다양한 학습모델을 이용함으로써 취약성 패턴의 학습 가능여부를 살펴보고자 한다.
  • 이미지 식별에 효과를 보이는 심층 신경망과 합성곱 신경망이 순환신경망과 유사하게 텍스트 형태의 데이터에 대해서도 효과적이라는 점은 여러 사례를 통해 보고되고 있다[11]. 본 논문의 실험에서는 소스코드와 같은 잘 정의된 구조를 갖는 텍스트 데이터에 대해서도 학습이 가능하다면 Fig. 3.과 같이 기계학습을 활용해서도 정적분석의 일정 부분기능을 수행할 수 있음을 보이고자 한다.
  • 본 논문은 Russell, Kolosnjaji 등의 연구와 맥을 같이하여 소스코드에 내재되어 있는 기계학습을 기반으로 한 취약점 탐지의 목적을 두고 있으나, Ja va 코드를 대상으로 국내 실정에 맞도록 행정안전부 개발보안가이드에 나타난 주요 보안약점을 분류 대상으로 하는 차별화된 접근을 한다. 이는 국내 시큐어 코딩 및 개발보안 활동에 기계학습을 적용하는 실험적인 시도로 의미가 있으며 학습 과정에서 다양한 학습모델을 이용함으로써 취약성 패턴의 학습 가능여부를 살펴보고자 한다.
  • 넷째, 가공되지 않은 데이터로 학습한 경우는 유의미한 수준의 정확도가 도출되지 않았다. 이를 개선하기 위한 본 연구에서는 토큰 단위의 구분을 통해 벡터화시키는 전처리를 수행하였으며, 결과적으로 의미있는 학습이 진행될 수 있음을 관찰하였다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
기계학습의 핵심은 무엇인가? 최근 활발히 연구되고 있는 기계학습은 다양한 분야로 그 적용범위를 넓혀가고 있다. 기계학습의 핵심은 방대한 양의 데이터를 바탕으로 유의미한 수준의 학습을 수행함으로써 사람이 행하는 판단을 확률적으로 시뮬레이션 한다는 점이다. 특히 자율주행자동차[1], IoT, 스마트 팩토리[2] 등 이미지로부터 학습된 결과를 적용하는 분야에 효과적인 것으로 알려졌으며 대규모 데이터에 의존한 응용분야에 성공적으로 적용되고 있다.
소스코드에 유입된 보안 약점 및 취약점을 자동 분석하는 기법으로 정적 분석이 활용되는 이유는 무엇인가? 정적분석은 프로그램 실행을 기반으로 오류를 탐지하는 테스팅 기법과는 달리 비실행 기반의 소스코드 특성분석 분석기법이다[10]. 그러한 이유로 정적 분석은 소스코드에 유입된 보안 약점 및 취약점을 자동 분석하는 기법으로 활용되고 있다.
시큐어코딩의 단점은 무엇인가? 시큐어코딩은 악의적인 공격 혹은 예상치 못한 오류에 대한 강인함을 제공해줄 수 있는 안전한 코딩 기법으로 정적분석도구의 지원을 통해 취약한 패턴을 찾아내거나 오염 데이터의 유입 가능성을 발견한다. 시큐어코딩은 정적기법을 적극적으로 활용하는 만큼 룰셋에 의존적이라는 단점을 가지며, 정적분석 도구의 복잡성이 높아지는 만큼 정확한 진단이 어렵다는 문제점을 안고 있다. 본 논문은 시큐어코딩을 지원하는 목적으로 기계학습 기법 중 DNN과 CNN, RNN 신경망을 이용하여 개발보안가이드 상의 주요 보안약점에 해당하는 패턴을 학습시키고 분류하는 모델을 개발하며 학습 결과를 분석한다.
질의응답 정보가 도움이 되었나요?

참고문헌 (17)

  1. X. Chen, H. Ma, J. Wan, B. Li, and T. Xia, "Multi view 3D object detection network for autonomous driving," 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 6526-6534, July. 2017. 

  2. J. Wang, Y Ma, L. Zhang, R.X. Gao, and D. Wu, "Deep learning for smart manufacturing: methods and applications," Journal of Manufacturing Systems, vol. 48, part C, pp. 144-156, Jan. 2018. 

  3. V.B. Livshits and M.S Lam, "Finding security vulnerabilities in java applications with static analysis," Proceedings of the 14th conference on USENIX Security Symposium, vol. 14, pp. 18-18, Aug. 2005. 

  4. Y.W. Huang, F. Yu, C. Hang, C.H. Tsai, D.T. Lee, and S.Y. Kuo, "Securing web application code by static analysis and runtime protection," Proceedings of the 13th international conference on World Wide Web, pp. 40-52, May. 2004. 

  5. A.M. Delaiter, B.C. Stivalet, P.E. Black, V. Okun, T.S. Cohen, and A. Ribeiro, "Sate v report: ten years of static analysis tool expositions," No. Special Publication, (NIST SP)-500-326, 2018 

  6. Ministry of the Interior and Safety and Korea Internet & Security Agency, "Development security guide for sw developers and operators of e-government," 11-1311000-000330-10, Jan. 2017 

  7. V. Barstad, M Goodwin, and T Gjoseter, "Predicting source code quality with static analysis and machine learning," Norsk IKT-konferanse for forskning og utdanning, Jan. 2015. 

  8. R. Russell, L. Kim, L. Hamilton, T. Lazovich, J. Harer, O. Ozdemir, P. Ellingwood, and M. McConley, "Automated vulnerability detection in source code using deep representation learning," 2018 17th IEEE International Conference on Machine Learning and Applications (ICMLA), IEEE, pp. 757-762, Dec. 2018 

  9. B. Kolosnjaji, A. Zarras, G. Webster, and C. Eckert, "Deep learning for classification of malware system call sequences," Australasian Joint Conference on Artificial Intelligence, Springer, Cham, pp. 137-149, Nov. 2016. 

  10. L. Zhen, Z. Deqing, X. Shouhuai, O. Xinyu, J. Hai, W. Sujuan, D. Zhijun, and Z. Yuyi, "Vuldeepecker : a deep learning-based system for vulnerability detection," Proceedings 2018 Network and Distributed System Security Symposium, 2018, Jan. 2018. 

  11. B. Chess, and J. West, Secure programming with static analysis, Pearson Education, Jun. 2007 

  12. Y. Kim, "Convolutional neural networks for sentence classification," Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNL), 2014, pp. 1746-1751, Aug. 2014 

  13. S. Christey, and R.A. Martin, "Vulnerability type distributions in cve," Mitre report, May. 2007 

  14. J. Williams, and D. Wichers, "The ten most critical web application security risks," rc1, OWASP Foundation, 2017 

  15. W.K. Lee, "A study on detection and classification of security vulnerabilities based on machine learning," MSc Thesis, Sungshin University, Aug. 2018 

  16. R. Nallapati, B. Zhou, C.N. santos , C. Gulcehre, and B. Xiang. "Abstractive text summarization using sequence-to-sequence rnns and beyond," Proceedings of The 20th SIGNLL Conference on Computational Natural Language Learning, 2016, pp. 280-290, 2016 

  17. Y. Tom, H. Devamanyu, P. Soujanya, and C. Erik, "Recent trends in deep learning based natural language processing," IEEE Computational Intelligence Magazine, vol. 13, no. 3, pp. 55-75, Aug. 2018 

저자의 다른 논문 :

관련 콘텐츠

오픈액세스(OA) 유형

FREE

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

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

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

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

선택된 텍스트

맨위로