KR101963756B1 - 소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법 - Google Patents

소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법 Download PDF

Info

Publication number
KR101963756B1
KR101963756B1 KR1020180142533A KR20180142533A KR101963756B1 KR 101963756 B1 KR101963756 B1 KR 101963756B1 KR 1020180142533 A KR1020180142533 A KR 1020180142533A KR 20180142533 A KR20180142533 A KR 20180142533A KR 101963756 B1 KR101963756 B1 KR 101963756B1
Authority
KR
South Korea
Prior art keywords
vulnerability
software
feature information
prediction model
learning
Prior art date
Application number
KR1020180142533A
Other languages
English (en)
Inventor
윤주범
최민준
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to KR1020180142533A priority Critical patent/KR101963756B1/ko
Application granted granted Critical
Publication of KR101963756B1 publication Critical patent/KR101963756B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Virology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치는, 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출하는 특징 추출부; 및 상기 복수의 바이너리 파일 각각에 대한 상기 특징 정보 및 취약 여부를 학습 데이터로 이용하여 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 학습시키는 학습부를 포함한다.

Description

소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법{APPARATUS AND METHOD FOR LEARNING SOFTWARE VULNERABILITY PREDICTION MODEL, APPARATUS AND METHOD FOR ANALYZING SOFTWARE VULNERABILITY}
본 발명의 실시예들은 소프트웨어 취약점 분석 기술과 관련된다.
4차 산업혁명 시대를 맞아 인공지능, 빅데이터, IoT, 클라우드 등과 같이 다양한 분야를 위한 많은 소프트웨어가 새롭게 개발되고 있다. 하지만, 소프트웨어의 증가에 따라 필연적으로 소프트웨어 취약점도 증가하고 있다. 이러한 소프트웨어 취약점을 통해 해커들이 시스템을 공격할 경우 개인이나 기업은 막대한 피해를 받을 수 있기 때문에 소프트웨어 취약점은 사전에 탐지하여 제거해야 한다.
현재 소프트웨어 취약점 검사를 위한 대표적 기술로는 퍼징(fuzzing) 기법과 심볼릭 익스큐션(symbolic execution)을 사용한 기술들이 있다. 하지만, 이러한 종래 기술들은 복잡하고 시간이 오래 걸리는 치명적인 단점이 있다. 이러한 단점을 극복하기 위해 기계학습과 신경망 알고리즘을 사용하여 취약 여부를 예측하는 연구들이 있지만, 예측 정확도가 높지 않거나 소프트웨어의 소스 코드가 필요하다는 한계점이 존재한다.
대한민국 등록특허 제10-1640479호 (2018.07.18. 공고)
본 발명의 실시예들은 소프트웨어 취약점 예측 모델 학습 장치 및 방법과 소프트웨어 취약점 분석 장치 및 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치는, 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출하는 특징 추출부; 및 상기 복수의 바이너리 파일 각각에 대한 상기 특징 정보 및 취약 여부를 학습 데이터로 이용하여 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 학습시키는 학습부를 포함한다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
상기 복수의 소프트웨어 바이너리 각각에 대한 취약 여부를 분류하는 분류부를 더 포함하고, 상기 학습부는, 상기 특징 정보 및 상기 취약 여부 분류 결과를 학습 데이터로 이용하여 상기 취약점 예측 모델을 학습시킬 수 있다.
상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델일 수 있다.
본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 방법은, 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출하는 단계; 및 상기 복수의 바이너리 파일 각각에 대한 상기 특징 정보 및 취약 여부를 학습 데이터로 이용하여 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 학습시키는 단계를 포함한다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
상기 복수의 소프트웨어 바이너리 각각에 대한 취약 여부를 분류하는 단계를 더 포함하고, 상기 학습시키는 단계는, 상기 특징 정보 및 상기 취약 여부 분류 결과를 학습 데이터로 이용하여 상기 취약점 예측 모델을 학습시킬 수 있다.
상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델일 수 있다.
본 발명의 일 실시예에 따른 소프트웨어 취약점 분석 장치는 취약점 분석 대상인 소프트웨어 바이너리 파일에 대한 특징 정보를 추출하는 특징 추출부; 및 기 학습된 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 이용하여 상기 추출된 특징 정보로부터 상기 소프트웨어 바이너리 파일의 취약 여부를 판단하는 취약점 판단부를 포함한다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
상기 취약점 예측 모델은, 사전 수집된 복수의 소프트웨어 바이너리 각각에 대한 특징 정보 및 취약 여부를 학습 데이터로 이용하여 사전 학습될 수 있다.
상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델일 수 있다.
본 발명의 일 실시예에 따른 소프트웨어 취약점 분석 방법은, 취약점 분석 대상인 소프트웨어 바이너리 파일에 대한 특징 정보를 추출하는 단계; 및 기 학습된 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 이용하여 상기 추출된 특징 정보로부터 상기 소프트웨어 바이너리 파일의 취약 여부를 판단하는 단계를 포함한다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다.
상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
상기 취약점 예측 모델은, 사전 수집된 복수의 소프트웨어 바이너리 각각에 대한 특징 정보 및 취약 여부를 학습 데이터로 이용하여 사전 학습될 수 있다.
상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델일 수 있다.
본 발명의 실시예들에 따르면, 사전 수집된 소프트웨어 바이너리 파일로부터 추출된 특징 정보 및 해당 소프트웨어 바이너리 파일에 대한 취약 여부를 이용하여 인공 신경망 기반의 취약점 예측 모델을 학습시키고, 학습된 취약점 예측 모델을 이용하여 임의의 소프트웨어 바이너리 파일에 대한 취약점을 분석함으로써, 소프트웨어의 소스 코드 없이도 정확하고 신속한 취약점 분석이 가능하게 된다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치의 구성도
도 2는 본 발명의 추가적인 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치의 구성도
도 3은 본 발명의 일 실시예에 따른 소프트웨어 취약점 분석 장치의 구성도
도 4는 본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 방법의 순서도
도 5는 본 발명의 추가적인 실시예에 따른 취약점 예측 모델 학습 방법의 순서도
도 6은 본 발명의 일 실시예에 따른 소프트웨어 취약점 분석 방법의 순서도
도 7은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치(100)는 특징 추출부(110) 및 학습부(120)를 포함한다.
특징 추출부(110)는 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출한다.
이때, 본 발명의 일 실시예에 따르면, 특징 정보는 각 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다. 구체적인 예로, 특징 정보는 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 호출되는 각 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 특징 정보는 예를 들어, ptrace를 이용하여 추출될 수 있으나, 반드시 이에 한정되는 것은 아니며, 프로세스의 실행 흐름을 추적할 수 있는 공지된 다양한 방법에 의해 추출될 수 있다.
학습부(120)는 각 소프트웨어 바이너리 파일에서 추출된 특징 정보 및 각 소프트웨어 바이너리 파일의 취약 여부를 학습 데이터로 이용하여 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 학습시킨다.
구체적으로, 학습부(120)는 수집된 특정 소프트웨어 바이너리 파일에서 추출된 특징 정보에 기초하여 생성된 특징 벡터를 입력 값으로 이용하고, 해당 소프트웨어 바이너리 파일의 취약 여부에 대한 분류 값을 목표 값으로 이용한 지도 학습(supervised learning)을 이용하여 취약점 예측 모델을 학습시킬 수 있다. 이를 통해, 취약점 예측 모델은 임의의 소프트웨어 바이너리 파일의 특징 벡터를 입력하였을 때, 해당 소프트웨어 바이너리 파일의 취약 여부에 대한 분류 값을 출력하도록 학습될 수 있다.
한편, 학습부(120)는 실시예에 따라 특징 추출부(110)에 의해 추출된 소프트웨어 바이너리 파일의 특징 정보로부터 특징 벡터를 생성하기 위해 예를 들어, bag-of-words 알고리즘, word2vec 알고리즘 등을 이용한 전처리 과정을 수행할 수 있다.
또한, 사전 수집된 소프트웨어 바이너리 파일 각각에 대한 취약 여부는 해당 소프트웨어 바이너리 파일에 대해 사전에 알려진 취약점 정보 등을 이용하여 사용자에 의해 미리 설정될 수 있다.
한편, 본 발명의 일 실시예에 따르면, 취약점 예측 모델은 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델일 수 있다. 이때, 다층 퍼셉트론은 단층 퍼셉트론으로 해결할 수 없는 XOR 문제를 해결하기 위한 퍼셉트론으로서, 입력 층과 출력 층 사이에 은닉 층(hidden layer)을 구비한 인공 신경망 모델을 의미한다.
도 2는 본 발명의 추가적인 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치의 구성도이다.
도 2를 참조하면, 본 발명의 추가적인 실시예에 따른 소프트웨어 취약점 예측 모델 학습 장치(100)는 분류부(130)를 더 포함할 수 있다.
구체적으로, 분류부(130)는 취약점 예측 모델 학습을 위해 사전 수집된 소프트웨어 바이너리 파일 각각에 대한 취약 여부를 분류할 수 있다.
구체적으로, 분류부(130)는 예를 들어, zzuf 퍼저와 같이 유효하면서 예상치 않은(unexpected) 임의의 데이터를 입력하여 소프트웨어의 취약점 존재 가능성을 판단하기 위한 다양한 방식의 퍼징(fuzzing) 기법을 이용하여 각 소프트웨어 바이너리 파일에 대한 취약 여부를 분류할 수 있다.
이 경우, 학습부(120)는 특징 추출부(110)에 의해 추출된 각 소프트웨어 바이너리 파일의 특징 정보에 기초하여 생성된 특징 벡터를 입력 값으로 이용하고, 분류부(130)에 의해 결정된 각 소프트웨어 바이너리 파일의 취약 여부에 대한 분류 결과를 목표 값으로 이용한 지도 학습을 이용하여 취약점 예측 모델을 학습시킬 수 있다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 취약점 분석 장치의 구성도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 취약점 분석 장치(300)는 특징 추출부(310) 및 취약점 판단부(320)를 포함한다.
특징 추출부(310)는 취약점 분석 대상인 소프트웨어 바이너리 파일에 대한 특징 정보를 추출한다.
이때, 특징 추출부(310)에 의해 추출되는 특징 정보 및 특징 정보 추출 방식은 도 1에 도시된 특징 추출부(110)와 동일하므로, 이에 대한 중복적인 설명은 생략한다.
취약점 판단부(320)는 기 학습된 인공 신경망 기반의 취약점 예측 모델을 이용하여 특징 추출부(310)에 의해 추출된 특징 정보로부터 취약점 분석 대상인 소프트웨어 바이너리 파일의 취약 여부를 판단한다.
이때, 취약점 예측 모델은 예를 들어, 도 1 또는 도 2에 도시된 취약점 예측 모델 학습 장치(100)에 의해 사전 학습될 수 있다.
구체적으로, 취약점 판단(320)는 취약점 판단 대상인 소프트웨어 바이너리 파일에서 추출된 특징 정보에 기초하여 생성된 특징 벡터를 취약점 예측 모델로 입력하고, 취약점 예측 모델로부터 출력되는 취약 여부에 대한 분류 결과에 기초하여 취약점 판단 대상인 소프트웨어 바이너리 파일의 취약 여부를 판단할 수 있다.
한편, 취약점 판단부(320)는 실시예에 따라 특징 추출부(310)에 의해 추출된 특정 바이너리 파일의 특징 정보로부터 특징 벡터를 생성하기 위해 예를 들어, bag-of-words 알고리즘, word2vec 알고리즘 등을 이용한 전처리 과정을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 취약점 예측 모델 학습 방법의 순서도이다.
도 4에 도시된 방법은 예를 들어, 도 1에 도시된 소프트웨어 취약점 예측 모델 학습 장치(100)에 의해 수행될 수 있다.
도 4를 참조하면, 우선, 소프트웨어 취약점 예측 모델 학습 장치(100)는 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출한다(410).
이때, 본 발명의 일 실시예에 따르면, 특징 정보는 각 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다. 구체적인 예로, 특징 정보는 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 호출되는 각 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
이후, 소프트웨어 취약점 예측 모델 학습 장치(100)는 각 소프트웨어 바이너리 파일에 대한 특징 정보 및 취약 여부를 학습 데이터로 이용하여 인공 신경망기반의 취약점 예측 모델을 학습시킨다(420).
이때, 각 소프트웨어 바이너리 파일의 취약 여부는 사용자에 의해 미리 설정될 수 있다.
도 5는 본 발명의 추가적인 실시예에 따른 취약점 예측 모델 학습 방법의 순서도이다.
도 5에 도시된 방법은 예를 들어, 도 2에 도시된 소프트웨어 취약점 예측 모델 학습 장치(100)에 의해 수행될 수 있다.
도 5를 참조하면, 우선, 소프트웨어 취약점 예측 모델 학습 장치(100)는 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출한다(510).
이때, 본 발명의 일 실시예에 따르면, 특징 정보는 각 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다. 구체적인 예로, 특징 정보는 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 호출되는 각 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
이후, 소프트웨어 취약점 예측 모델 학습 장치(100)는 복수의 소프트웨어 바이너리 파일 각각에 대한 취약 여부를 분류할 수 있다(520).
이후, 소프트웨어 취약점 예측 모델 학습 장치(100)는 각 소프트웨어 바이너리 파일에 대한 특징 정보 및 취약 여부 분류 결과를 학습 데이터로 이용하여 인공 신경망 기반의 취약점 예측 모델을 학습시킨다(530).
도 6은 본 발명의 일 실시예에 따른 소프트웨어 취약점 분석 방법의 순서도이다.
도 6에 도시된 방법은 예를 들어, 도 3에 도시된 소프트웨어 취약점 분석 장치(300)에 의해 수행될 수 있다.
도 6을 참조하면, 우선, 소프트웨어 취약점 분석 장치(300)는 취약점 분석 대상인 소프트웨어 바이너리 파일에 대한 특징 정보를 추출한다(610).
이때, 본 발명의 일 실시예에 따르면, 특징 정보는 각 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함할 수 있다. 구체적인 예로, 특징 정보는 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 호출되는 각 함수들의 호출 순서 중 적어도 하나를 포함할 수 있다.
이후, 소프트웨어 취약점 분석 장치(300)는 기 학습된 인공 신경망 기반의 취약점 예측 모델을 이용하여, 추출된 특징 정보로부터 취약점 분석 대상인 소프트웨어 바이너리 파일의 취약 여부를 판단한다(620).
이때, 본 발명의 일 실시예에 따르면, 취약점 예측 모델은 예를 들어, 도 4 또는 도 5에 도시된 방법에 의해 사전 학습될 수 있다.
한편, 도 4 내지 도 6에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 7은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 않은 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 취약점 예측 모델 학습 장치(100) 또는 소프트웨어 취약점 분석 장치(300)에 포함되는 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 소프트웨어 취약점 예측 모델 학습 장치
110: 특징 추출부
120; 학습부
130: 분류부
300: 소프트웨어 취약점 분석 장치
310: 특징 추출부
320: 취약점 판단부

Claims (20)

  1. 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출하는 특징 추출부; 및
    상기 복수의 바이너리 파일 각각에 대한 상기 특징 정보 및 취약 여부를 학습 데이터로 이용하여 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 학습시키는 학습부를 포함하며,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함하는 소프트웨어 취약점 예측 모델 학습 장치.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함하는 소프트웨어 취약점 예측 모델 학습 장치.
  4. 청구항 1에 있어서,
    상기 복수의 소프트웨어 바이너리 각각에 대한 취약 여부를 분류하는 분류부를 더 포함하고,
    상기 학습부는, 상기 특징 정보 및 상기 취약 여부 분류 결과를 학습 데이터로 이용하여 상기 취약점 예측 모델을 학습시키는 소프트웨어 취약점 예측 모델 학습 장치.
  5. 청구항 1에 있어서,
    상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델인 소프트웨어 취약점 예측 모델 학습 장치.
  6. 사전 수집된 복수의 소프트웨어 바이너리 파일 각각에 대한 특징 정보를 추출하는 단계; 및
    상기 복수의 바이너리 파일 각각에 대한 상기 특징 정보 및 취약 여부를 학습 데이터로 이용하여 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 학습시키는 단계를 포함하며,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함하는 소프트웨어 취약점 예측 모델 학습 방법.
  7. 삭제
  8. 청구항 6에 있어서,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함하는 소프트웨어 취약점 예측 모델 학습 방법.
  9. 청구항 6에 있어서,
    상기 복수의 소프트웨어 바이너리 각각에 대한 취약 여부를 분류하는 단계를 더 포함하고,
    상기 학습시키는 단계는, 상기 특징 정보 및 상기 취약 여부 분류 결과를 학습 데이터로 이용하여 상기 취약점 예측 모델을 학습시키는 소프트웨어 취약점 예측 모델 학습 방법.
  10. 청구항 6에 있어서,
    상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델인 소프트웨어 취약점 예측 모델 학습 방법.
  11. 취약점 분석 대상인 소프트웨어 바이너리 파일에 대한 특징 정보를 추출하는 특징 추출부; 및
    기 학습된 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 이용하여 상기 추출된 특징 정보로부터 상기 소프트웨어 바이너리 파일의 취약 여부를 판단하는 취약점 판단부를 포함하며,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함하는 소프트웨어 취약점 분석 장치.
  12. 삭제
  13. 청구항 11에 있어서,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함하는 소프트웨어 취약점 분석 장치.
  14. 청구항 11에 있어서,
    상기 취약점 예측 모델은, 사전 수집된 복수의 소프트웨어 바이너리 각각에 대한 특징 정보 및 취약 여부를 학습 데이터로 이용하여 사전 학습되는 소프트웨어 취약점 분석 장치.
  15. 청구항 11에 있어서,
    상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델인 소프트웨어 취약점 분석 장치.
  16. 취약점 분석 대상인 소프트웨어 바이너리 파일에 대한 특징 정보를 추출하는 단계; 및
    기 학습된 인공 신경망(artificial neural network) 기반의 취약점 예측 모델을 이용하여 상기 추출된 특징 정보로부터 상기 소프트웨어 바이너리 파일의 취약 여부를 판단하는 단계를 포함하며,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들에 대한 정보를 포함하는 소프트웨어 취약점 분석 방법.
  17. 삭제
  18. 청구항 16에 있어서,
    상기 특징 정보는, 상기 소프트웨어 바이너리 파일이 실행될 때 호출되는 함수들의 리스트 및 상기 호출되는 함수들의 호출 순서 중 적어도 하나를 포함하는 소프트웨어 취약점 분석 방법.
  19. 청구항 16에 있어서,
    상기 취약점 예측 모델은, 사전 수집된 복수의 소프트웨어 바이너리 각각에 대한 특징 정보 및 취약 여부를 학습 데이터로 이용하여 사전 학습되는 소프트웨어 취약점 분석 방법.
  20. 청구항 16에 있어서,
    상기 취약점 예측 모델은, 다층 퍼셉트론(Multi-Layer Perceptron) 기반의 인공 신경망 모델인 소프트웨어 취약점 분석 방법.
KR1020180142533A 2018-11-19 2018-11-19 소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법 KR101963756B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180142533A KR101963756B1 (ko) 2018-11-19 2018-11-19 소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180142533A KR101963756B1 (ko) 2018-11-19 2018-11-19 소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101963756B1 true KR101963756B1 (ko) 2019-03-29

Family

ID=65898915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180142533A KR101963756B1 (ko) 2018-11-19 2018-11-19 소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101963756B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074909B1 (ko) 2019-09-06 2020-02-07 세종대학교산학협력단 소프트웨어 취약점 분류 장치 및 방법
WO2020252529A1 (en) * 2019-06-19 2020-12-24 Swinburne University Of Technology System for automatically detecting software vulnerability
KR102235690B1 (ko) * 2020-06-05 2021-04-02 주식회사 코딩로봇연구소 인공지능 기반의 프로그램 코드 평가 시스템 및 방법
KR102598691B1 (ko) * 2022-12-15 2023-11-06 이화여자대학교 산학협력단 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법
WO2024128456A1 (ko) * 2022-12-15 2024-06-20 이화여자대학교 산학협력단 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법 및 분석장치
KR102682746B1 (ko) * 2021-05-18 2024-07-12 한국전자통신연구원 비휘발성 메모리 공격 취약점 탐지 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101640479B1 (ko) 2015-08-28 2016-07-18 (주)엔키소프트 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
KR20170003356A (ko) * 2015-06-30 2017-01-09 이윤티안 시오., 엘티디. 악성 취약점 파일을 검출하기 위한 방법, 장치 및 단말기
KR20180060497A (ko) * 2016-11-29 2018-06-07 한국전력공사 바이너리 코드 기반 임베디드 소프트웨어 취약점 분석 장치 및 그 방법
US10114954B1 (en) * 2017-11-30 2018-10-30 Kenna Security, Inc. Exploit prediction based on machine learning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170003356A (ko) * 2015-06-30 2017-01-09 이윤티안 시오., 엘티디. 악성 취약점 파일을 검출하기 위한 방법, 장치 및 단말기
KR101640479B1 (ko) 2015-08-28 2016-07-18 (주)엔키소프트 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
KR20180060497A (ko) * 2016-11-29 2018-06-07 한국전력공사 바이너리 코드 기반 임베디드 소프트웨어 취약점 분석 장치 및 그 방법
US10114954B1 (en) * 2017-11-30 2018-10-30 Kenna Security, Inc. Exploit prediction based on machine learning

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020252529A1 (en) * 2019-06-19 2020-12-24 Swinburne University Of Technology System for automatically detecting software vulnerability
KR102074909B1 (ko) 2019-09-06 2020-02-07 세종대학교산학협력단 소프트웨어 취약점 분류 장치 및 방법
KR102235690B1 (ko) * 2020-06-05 2021-04-02 주식회사 코딩로봇연구소 인공지능 기반의 프로그램 코드 평가 시스템 및 방법
WO2021246742A1 (ko) * 2020-06-05 2021-12-09 주식회사 코딩로봇연구소 인공지능 기반의 프로그램 코드 평가 시스템 및 방법
KR102682746B1 (ko) * 2021-05-18 2024-07-12 한국전자통신연구원 비휘발성 메모리 공격 취약점 탐지 장치 및 방법
KR102598691B1 (ko) * 2022-12-15 2023-11-06 이화여자대학교 산학협력단 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법
WO2024128456A1 (ko) * 2022-12-15 2024-06-20 이화여자대학교 산학협력단 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법 및 분석장치

Similar Documents

Publication Publication Date Title
KR101963756B1 (ko) 소프트웨어 취약점 예측 모델 학습 장치 및 방법, 소프트웨어 취약점 분석 장치 및 방법
Uwagbole et al. Applied machine learning predictive analytics to SQL injection attack detection and prevention
US20230206131A1 (en) Clustering analysis for deduplication of training set samples for machine learning based computer threat analysis
US10581888B1 (en) Classifying software scripts utilizing deep learning networks
McDole et al. Analyzing CNN based behavioural malware detection techniques on cloud IaaS
Han et al. Malware analysis using visualized image matrices
US20190258648A1 (en) Generating asset level classifications using machine learning
US11397891B2 (en) Interpretability-aware adversarial attack and defense method for deep learnings
Zhu et al. Android malware detection based on multi-head squeeze-and-excitation residual network
US20220222372A1 (en) Automated data masking with false positive detection and avoidance
KR102074909B1 (ko) 소프트웨어 취약점 분류 장치 및 방법
US11593473B2 (en) Stack pivot exploit detection and mitigation
US11625483B2 (en) Fast identification of trustworthy deep neural networks
CN110298171A (zh) 移动互联网大数据应用的智能检测与安全防护方法
CN113408558A (zh) 用于模型验证的方法、装置、设备和介质
Wei et al. Toward identifying APT malware through API system calls
CN116305103A (zh) 一种基于置信度差异的神经网络模型后门检测方法
US20200302017A1 (en) Chat analysis using machine learning
Mishra et al. Vmprotector: Malign process detection for protecting virtual machines in cloud environment
Shi et al. SFCGDroid: android malware detection based on sensitive function call graph
Kutlay et al. Static based classification of malicious software using machine learning methods
Bhusal et al. Sok: Modeling explainability in security analytics for interpretability, trustworthiness, and usability
Sourav et al. Deep learning based android malware detection framework
Pardhi et al. Classification of malware from the network traffic using hybrid and deep learning based approach
Rimon et al. Malware detection and classification using hybrid machine learning algorithm

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant