1 |
1
분석장치가 분석 대상인 프로그램의 소스 코드를 입력받는 단계;상기 분석장치가 상기 소스 코드를 실행하면서 실행 로그를 추출하는 단계;상기 분석장치가 상기 실행 로그 중 호출 함수, 변수명 및 콜스택의 함수를 각각 일정한 식별자로 대체하여 상기 실행 로그를 전처리하는 단계;상기 분석장치가 사전 학습된 제1 학습모델을 이용하여 상기 전처리된 실행 로그를 분석하여 전역 변수와 호출 함수의 쌍들 각각이 초기화 위치인지 여부를 분류하는 단계;상기 분석장치가 사전 학습된 제2 학습모델을 이용하여 상기 전처리된 실행 로그를 분석하여 상기 전역 변수의 변수값의 최대값과 최소값을 예측하는 단계; 및상기 분석장치가 상기 제1 학습모델이 출력하는 정보 및 상기 제2 학습모델이 출력하는 정보로 변수 정보를 생성하고, 상기 변수 정보를 기준으로 상기 전역 변수가 취약한지 여부를 판단하는 단계를 포함하되,상기 변수 정보는 상기 전역 변수의 초기화 위치, 변수의 사용 여부, 변수값의 변화 추세 및 변수값의 증감 패턴을 포함하고,상기 분석장치는 상기 변수 정보를 기준으로 상기 전역 변수의 취약점을 (i)변수의 사용 도중 초기화, (ii) 허용 범위를 벗어나는 변수값 및 (iii) 초기화되지 않은 변수 사용 중 어느 하나로 판단하는 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법
|
2 |
2
제1항에 있어서,상기 분석장치는 상기 실행 로그의 전처리 전에 상기 소스 코드에 대한 정적 분석을 수행하여 변수들의 초기값, 함수 목록 및 함수 간 호출 관계를 추출하는 단계를 더 포함하는 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법
|
3 |
3
제1항에 있어서,상기 분석장치는 상기 전역 변수의 초기값이 존재하는데 실행 도중 초기값이 변경되고, 상기 초기값을 변경한 함수가 초기화 함수가 아닌 경우 상기 전역 변수의 사용 도중 초기화로 결함으로 판단하는 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법
|
4 |
4
제1항에 있어서,상기 분석장치는 실행 중 상기 전역 변수의 변수값이 상기 전역 변수의 자료형의 최댓값 또는 최솟값을 벗어나는 경우 결함으로 판단하는 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법
|
5 |
5
제1항에 있어서,상기 분석장치는 상기 전역 변수가 초기화되지 않은 상태에서 초기화함수가 아닌 다른 함수에 의해 사용되는 경우 결함으로 판단하는 기계학습모델을 이용한 소프트웨어의 변수 취약점을 탐지하는 방법
|