과학연구

기계학습에 기초한 악성프로그람분류 실현

 2020.6.29.

경애하는 김정은동지께서는 다음과 같이 말씀하시였다.

《대학에서는 사회주의강국건설에서 나서는 리론실천적, 과학기술적문제들을 원만히 해결하며 기초과학부문을 발전시키고 첨단과학기술분야를 개척하는데 중심을 두고 과학연구사업을 진행하여야 합니다.》

악성프로그람분류는 악성프로그람제거의 신속성과 정확성을 높이는데서 효과적인 방법으로 된다. 악성프로그람분류에 대한 여러가지 방법들중에서 우리는 기계학습에 기초한 악성프로그람분류방법에 대하여 보기로 한다.

기계학습에 기초한 악성프로그람분류는 두가지 단계 즉 특징추출단계와 적합한 분류모형선택단계로 나눌수 있다. 특징추출은 가상기계모래통에 의한 악성프로그람분석으로 진행되는데 우리는 이러한 분석에서 얻어지는 특징들가운데서 악성프로그람의 본질적행위특성을 반영하는 동적특징만을 추출하기 위하여 다음의 두가지 방법으로 진행한다.

첫째로, 악성행위에서 본질적역할을 하는 체계호출(API호출)들만 특징모임에 포함시키는것인데 여기서 기본적으로 화일 및 레지스트리에 대한 창조, 변경, 삭제와 관련되는 호출들과 프로쎄스기억구역에 쓰기, 원격쓰레드를 창조하는 호출 등으로 구성된다.

둘째로, 체계호출에서 리용하는 인수들가운데서 기계학습에 의미있는 인수들만을 골라서 호출이름과 결합하여 특징으로 추출하였으며 기계학습에서 보편적으로 생기는 과소적합(underfitting)과 과대적합(overfitting)을 극복하기 위하여 하나의 호출에 대한 정보는 호출이름, 인수, 귀환값으로 구성하였다.

이렇게 추출한 특징자료들은 악성프로그람표본들마다 그 차수와 의미가 서로 차이나므로 기계학습을 진행하기 위하여 이 개별적인 특징자료모임을 단일화된 벡토르공간으로 넘겨 특징벡토르들을 생성하였다.

이렇게 생성한 특징값을 리용한 악성프로그람분류를 위하여 감독학습(Supervised Learning)의 여러가지 분류알고리듬가운데서 실험적방법으로 적합한 학습알고리듬을 선택하여야 한다. 여러가지 학습알고리듬중에서 가장 성능이 높은 방법을 선택하기 위하여 평가지표를 설정하고 교차검증을 진행하였으며 여러가지 평가척도를 도입하여 성능을 평가하였다.

기계학습을 진행하기 위하여 2 000개의 악성프로그람표본모임에서 1 600개로 표본자료기지를 구축하고 나머지 400개의 악성프로그람표본과 1 000개의 정상프로그람으로 시험모임을 구성하였다.

분류정확도와 검출률, 학습시간을 평가지표로 정하고 여러가지 분류방법에 기초하여 실험을 진행한 결과 K-NN(K-Nearest Neighbor) 방법에서는 정확도와 검출률이 각각 0.83, 0.84, 학습시간은 0.26s 걸리였으며 SVM(Support Vector Machines)방법에서는 각각 0.89, 0.89, 57.55s가, 결정나무(Decision Trees)방법에서는 0.87, 0.87, 0.89s, 자유나무(Random Forests)방법에서는 0.91, 0.391, 2.41s의 값을 얻었다.

결과로부터 자유나무에 의한 분류모형이 분류정확도에서 가장 우수하며 학습시간도 현실에 적용할수 있을 정도로 짧다는것을 확증하였다.