최근 인터넷 기술을 악용하는 행위로 인하여 경제적, 정신적 피해가 증가하고 있다. 특히, 신규로 제작되거나 변형된 악성코드는 기존의 정보보호 체계를 우회하여 사이버 보안 위협의 기본 수단으로 활용되고 있다. 이를 억제하기 위한 다양한 연구가 진행되었지만, 실제 악성코드의 많은 비중을 차지하는 소규모 실행 파일에 대한 연구는 미진한 편이다. 본 연구에서는 기존에 알려진 소규모 실행 파일의 특징을 데이터마이닝 기법으로 분석하여 알려지지 않은 악성코드 탐지에 활용할 수 있는 모델을 제안한다. 데이터 마이닝 분석 기법에는 나이브베이지안, SVM, 의사결정나무, 랜덤포레스트, 인공신경망 등 다양하게 수행하였으며, 바이러스토탈의 악성코드 검출 수준에 따라서 개별적으로 정확도를 비교하였다. 결과적으로 분석 파일 34,646개에 대하여 80% 이상의 분류 정확도를 검증하였다.
최근 인터넷 기술을 악용하는 행위로 인하여 경제적, 정신적 피해가 증가하고 있다. 특히, 신규로 제작되거나 변형된 악성코드는 기존의 정보보호 체계를 우회하여 사이버 보안 위협의 기본 수단으로 활용되고 있다. 이를 억제하기 위한 다양한 연구가 진행되었지만, 실제 악성코드의 많은 비중을 차지하는 소규모 실행 파일에 대한 연구는 미진한 편이다. 본 연구에서는 기존에 알려진 소규모 실행 파일의 특징을 데이터마이닝 기법으로 분석하여 알려지지 않은 악성코드 탐지에 활용할 수 있는 모델을 제안한다. 데이터 마이닝 분석 기법에는 나이브베이지안, SVM, 의사결정나무, 랜덤포레스트, 인공신경망 등 다양하게 수행하였으며, 바이러스토탈의 악성코드 검출 수준에 따라서 개별적으로 정확도를 비교하였다. 결과적으로 분석 파일 34,646개에 대하여 80% 이상의 분류 정확도를 검증하였다.
Recently, the abuse of Internet technology has caused economic and mental harm to society as a whole. Especially, malicious code that is newly created or modified is used as a basic means of various application hacking and cyber security threats by bypassing the existing information protection syste...
Recently, the abuse of Internet technology has caused economic and mental harm to society as a whole. Especially, malicious code that is newly created or modified is used as a basic means of various application hacking and cyber security threats by bypassing the existing information protection system. However, research on small-capacity executable files that occupy a large portion of actual malicious code is rather limited. In this paper, we propose a model that can analyze the characteristics of known small capacity executable files by using data mining techniques and to use them for detecting unknown malicious codes. Data mining analysis techniques were performed in various ways such as Naive Bayesian, SVM, decision tree, random forest, artificial neural network, and the accuracy was compared according to the detection level of virustotal. As a result, more than 80% classification accuracy was verified for 34,646 analysis files.
Recently, the abuse of Internet technology has caused economic and mental harm to society as a whole. Especially, malicious code that is newly created or modified is used as a basic means of various application hacking and cyber security threats by bypassing the existing information protection system. However, research on small-capacity executable files that occupy a large portion of actual malicious code is rather limited. In this paper, we propose a model that can analyze the characteristics of known small capacity executable files by using data mining techniques and to use them for detecting unknown malicious codes. Data mining analysis techniques were performed in various ways such as Naive Bayesian, SVM, decision tree, random forest, artificial neural network, and the accuracy was compared according to the detection level of virustotal. As a result, more than 80% classification accuracy was verified for 34,646 analysis files.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 실제의 악성코드에서 많은 비중을 차지하는 소규모 EXE 파일(1Mbyte 미만)의 특징을 데이터마이닝 기법으로 분석하여 기존의 정보보호체계에서 탐지할 수 없었던 신종 및 변종 악성코드를 사전에 식별할 수 있는 최적의 모델을 제시한다.
본 연구에서는 기존에 알려진 바이러스의 특징 데이터베이스를 구축하고, 데이터 마이닝 기법을 활용하여 정상 파일과 악성 파일의 예측하여 분류하고자 한다.
제안 방법
따라서 금번 연구에서는 바이러스토탈에서 판별한 바이러스 탐지 개수에 따라서 차등적으로 악성코드 분류 모델을 수행하였다.
두 번째, 분석대상파일 34,646개의 특성을 134개 항목으로 분류하여 데이터베이스화 하였다.
따라서, 본 연구에서는 소규모 악성코드에 대한 식별을 위해서 온라인 분석, 정적 분석, 동적 분석을 혼합하여 메타 데이터를 생성하고, 이들 데이터에 데이터 마이닝 기법을 적용하여 바이러스를 식별하는 모델을 설계한다.
또한, 학습데이터는 악성코드 유무에 대한 불균형 편차를 줄이기 위해서 R 패키지에서 제공하는 SMOTE 함수를 활용하여 1:1 샘플링을 수행하였다.
학습데이터를 기반으로 분석 모델을 생성하고, 검증데이터에서 모델의 성능을 검증하였다. 모델의 성능을 평가하는 주요 지표에는 정상과 악성을 판별하는 비율인 Accuracy와 Precision과 Recall의 균형을 평가하는 F1 Score를 활용하였다.
데이터마이닝은 방대한 데이터에서 의사 결정에 도움이 되는 일정한 규칙과 패턴을 밝혀내는 과정이다. 본 논문에서 바이러스를 식별하고자 데이터마이닝 분석 기법 중 나이브 베이즈 분류, 서포트 벡터 머신, 의사결정나무, 랜덤포레스트, 인공신경망 등을 이용하였다.
본 연구에서는 기존에 알려진 소규모 파일의 특징을 데이터베이스화 하고, 다양한 머신러닝 기법을 활용하여 정상 파일과 악성 파일을 분류할 수 있는 효과적인 모형을 제안하였다.
선행 연구를 통하여 다양한 유형의 바이러스 분석 방법을 살펴보았다.
실험 데이터를 생성하기 위해서 기존에 알려진 정상 파일과 악성 파일을 사전에 분류하였으며, 파일의 동적/정적 특징을 바이너리 변수로 변환하여 데이터베이스화하였다.
이때 서로 독립적인 트리들을 생성하기 위해 데이터의 부트스트랩 샘플을 생성하며, 또한 특정노드에서 자식 노드를 생성할 때 전체 특성을 대상으로 지니 지수 감소량을 비교하는 대신에 랜덤하게 선택되는 후보 특성들에 대해서만 지니 지수 감소량을 비교한다.
하지만, 동적 분석 과정에서 실험 환경이 악성코드에 감염될 수 있으며, 분석되는 행위를 관찰하는데 일정 시간이 소요되는 단점이 있다. 이를 보완하기 위하여 온라인 분석, 하이브리드 분석 등을 수행한다.
첫 번째, 온라인 분석 서비스인 바이러스토탈을 활용하여 총 34,646개 파일에 대하여 50여개 백신의 검출 여부를 조회하였다.
머신러닝 알고리즘은 나이브 베이즈 분류, 서포트 벡터 머신, 의사결정나무, 랜덤포레스트, 인공신경망을 활용하였다. 학습데이터를 기반으로 분석 모델을 생성하고, 검증데이터에서 모델의 성능을 검증하였다. 모델의 성능을 평가하는 주요 지표에는 정상과 악성을 판별하는 비율인 Accuracy와 Precision과 Recall의 균형을 평가하는 F1 Score를 활용하였다.
대상 데이터
분석 대상은 2012년부터 2014년까지 해외에서 국내로 유입하는 1M 바이트 사이즈 미만의 EXE 확장자 파일 34,646개이다.
악성코드 예측 모델의 성능을 검증하기 위해서 전체 분석 파일 34,646개에 대하여 학습데이터와 검증데이터를 각각 7대 3으로 분류하였다.
이론/모형
소규모 파일에 대한 바이러스 예측 분석을 수행하기 위해서 <표 1>과 같은 분석 환경을 구축하였다. Linux 운영체제 환경에서 Python와 PHP프로그램으로 파일의 특징을 추출하였으며, 데이터마이닝도구에는 R-Studio을 활용하였다.
머신러닝 알고리즘은 나이브 베이즈 분류, 서포트 벡터 머신, 의사결정나무, 랜덤포레스트, 인공신경망을 활용하였다. 학습데이터를 기반으로 분석 모델을 생성하고, 검증데이터에서 모델의 성능을 검증하였다.
학습 과정에서는 분류 오류를 최소화하기 위해서 오차의 역전파(Back-Progagation) 알고리즘을 통하여 가중치를 갱신한다.
성능/효과
결과적으로 랜덤포레스트 알고리즘의 성능이 가장 우수한 것으로 나타났다. F1 Score 평가 기준으로 악성코드에 대한 판단이 1개 이상일 경우에 56%, 5개 이상일 경우에 89%, 20개 이상일 경우에 84%의 높은 성능을 보여줬다.
결과적으로 랜덤포레스트 알고리즘의 성능이 가장 우수한 것으로 나타났다.
결과적으로 악성코드에 의한 사이버 위협이 지속적으로 증가하고 있으며, 마이크로소프트 Windows 운영체제의 1M 바이트 이하의 EXE 실행 파일이 주요한 바이러스 대상 군이라는 것을 추정할 수 있다.
결과적으로 기존에 5개의 백신이 바이러스로 판별하였을 경우에 랜덤포레스트 알고리즘으로 정확도(82%), F1 Score(89%)의 높은 성능을 검증하였다.
후속연구
향후에는 모바일 APK 파일, 문서파일 등 분석 대상을 확대하여 적합한 머신러닝 모델의 개발이 필요하다.
이를 통하여 대량으로 생산되는 신종 악성코드를 사전에 검출하는데 활용할 수 있을 것이다. 또한, 악성코드를 자동으로 빠르게 분류하여 분석 과정에 소요되는 시간과 인력을 최소화할 수 있을 것이다.
향후에는 모바일 APK 파일, 문서파일 등 분석 대상을 확대하여 적합한 머신러닝 모델의 개발이 필요하다. 마지막으로 본 연구의 결과가 지속해서 증가하는 신종 악성코드 유입을 예방하여 국가와 기업의 사회적·경제적 피해를 줄일 수 있기를 기대한다.
연구의 한계점으로는 소규모 EXE 파일에 한정하여 악성코드에 대한 분류 모델을 제안하였다. 향후에는 모바일 APK 파일, 문서파일 등 분석 대상을 확대하여 적합한 머신러닝 모델의 개발이 필요하다.
이를 통하여 대량으로 생산되는 신종 악성코드를 사전에 검출하는데 활용할 수 있을 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
기존에 알려진 악성코드는 무엇을 통해서 식별할 수 있나?
악성코드에 의한 피해를 줄이기 위해서 다양한 연구가 진행되어 왔다. 기존에 알려진 악성코드는 안티바이러스 백신, 온라인 분석 시스템, 시그니처 분석 등을 통해서 식별할 수 있으며, 알려지지 않은 악성코드는 정적 분석, 동적 분석, 하이브리드 분석으로 유해성을 식별할 수 있다[15].
동적 분석은 무엇을 관찰하여 유해성을 식별하나?
그러나, 숙련된 기술이 필요하며, 패킹 기법으로 파일이 보호되어 있을 경우에 분석이 어려운 단점이 있다. 동적 분석은 악성코드의 실행 전 후의 상태 변화를 관찰하여 유해성을 식별한다. 하지만, 동적 분석 과정에서 실험 환경이 악성코드에 감염될 수 있으며, 분석되는 행위를 관찰하는데 일정 시간이 소요되는 단점이 있다.
정적 분석은 어떤 단점이 있나?
정적 분석은 파일을 수행하지 않고 내부 구조를 깊이 있게 분석할 수 있다. 그러나, 숙련된 기술이 필요하며, 패킹 기법으로 파일이 보호되어 있을 경우에 분석이 어려운 단점이 있다. 동적 분석은 악성코드의 실행 전 후의 상태 변화를 관찰하여 유해성을 식별한다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.