초록
악성코드 탐지 및 분류는 도전적인 문제이자 활발한 연구 주제이다. 특히 기계학습 알고리즘에 입력할 수 있도록 악성 실행 파일을 어떻게 가장 효과적으로 처리하고 전처리할 것인지가 중요한 과제이다. 기존 문헌에서 제안된 새로운 접근 방식들은 실행 파일을 바이트 시퀀스 또는 어셈블리 언어 명령어 시퀀스로 간주한다. 그러나 이러한 방법들은 프로그램의 계층적 구조를 고려하지 않는다. 실행 파일은 다양한 수준의 공간적 상관성을 나타낸다. 인접한 코드 명령어는 공간적으로 상관관계를 가지지만, 반드시 그렇다고 할 수는 없다. 함수 호출이나 점프 명령어는 프로그램의 제어 흐름을 명령어 스트림의 다른 지점으로 전달한다. 또한, 바이너리 파일을 바이트 값의 시퀀스로 취급할 경우 이러한 비연속성은 유지된다. 게다가, 주소가 올바르게 재조정된 경우 함수의 배치는 임의적으로 이루어질 수 있다. 이러한 문제들을 해결하기 위해 우리는 악성코드 분류를 위한 계층적 합성곱 네트워크(Hierarchical Convolutional Network, HCN)를 제안한다. 이 HCN은 명령어어(메모닉) 수준과 함수 수준에 각각 두 단계의 합성곱 블록을 적용하여, 악성코드 표현을 구성할 때 두 수준에서 n-gram과 유사한 특징을 추출할 수 있도록 한다. 제안한 HCN 방법은 마이크로소프트 악성코드 분류 챌린지에서 공개한 데이터셋을 기반으로 검증되었으며, 문헌에 발표된 거의 모든 딥러닝 방법보다 뛰어난 성능을 보였다.