[논문 리뷰] Malware Detection with LSTM using Opcode Language
본 논문은 악성코드 opcodes 시퀀스를 언어로 다루고, 워드 임베딩과 mean-pooling이 있는 두 단계 LSTM을 활용하여 정적 분석 환경에서 Windows 실행파일의 탐지 및 분류를 수행한다. 969개의 악성코드와 123개의 정상 파일 데이터셋에서 탐지 AUC가 약 0.99, 분류 AUC가 약 0.987로 높은 값을 보고한다.
Nowadays, with the booming development of Internet and software industry, more and more malware variants are designed to perform various malicious activities. Traditional signature-based detection methods can not detect variants of malware. In addition, most behavior-based methods require a secure and isolated environment to perform malware detection, which is vulnerable to be contaminated. In this paper, similar to natural language processing, we propose a novel and efficient approach to perform static malware analysis, which can automatically learn the opcode sequence patterns of malware. We propose modeling malware as a language and assess the feasibility of this approach. First, We use the disassembly tool IDA Pro to obtain opcode sequence of malware. Then the word embedding technique is used to learn the feature vector representation of opcode. Finally, we propose a two-stage LSTM model for malware detection, which use two LSTM layers and one mean-pooling layer to obtain the feature representations of opcode sequences of malwares. We perform experiments on the dataset that includes 969 malware and 123 benign files. In terms of malware detection and malware classification, the evaluation results show our proposed method can achieve average AUC of 0.99 and average AUC of 0.987 in best case, respectively.
연구 동기 및 목표
- opcodes를 단어로 취급하여 정적 악성코드 분석을 언어 모델링 문제로 고찰한다.
- 수동 피처 엔지니어링을 줄이기 위해 워드 임베딩을 통해 opcode 표현을 자동으로 학습한다.
- 감지와 분류를 위한 opcode 시퀀스 패턴을 포착하기 위해 mean-pooling이 포함된 두 단계 LSTM 아키텍처를 개발한다.
- 혼합 악성코드/정상 데이터셋에서 접근 방식을 평가하고 다른 신경망 모델과 비교한다.
제안 방법
- IDA Pro로 실행 파일을 디스어셈블하여 .text 세그먼트에서 opcode 시퀀스를 추출한다.
- 391-opcode 어휘를 구축하고 차원 100의 CBOW 워드 임베딩을 사용하여 opcode를 표현한다.
- 첫 번째 단계가 opcode 벡터를 함수 수준 표현으로 인코딩하고 두 번째 단계가 함수 표현을 전체 샘플 표현으로 인코딩하는 두 단계 LSTM을 적용한다.
- 둘째 LSTM 뒤에 mean-pooling 계층을 추가하여 특징 표현의 불변성을 높인다.
- 최종 표현에 소프트맥스 분류기를 사용하여 악성코드 탐지(binary)와 악성코드 분류(multi-class)를 수행한다.
실험 결과
연구 질문
- RQ1CBOW 임베딩으로 학습된 opcode 시퀀스가 악성코드와 정상 파일 간의 판별 가능한 패턴을 포착할 수 있는가?
- RQ2mean-pooling이 있는 두 단계 LSTM이 단일 단계 LSTM이나 다른 신경망 베이스라인보다 악성코드 탐지 및 분류에서 더 나은 성능을 보이는가?
- RQ3워드 임베딩 방법(CBOW vs. Skip-gram)과 윈도우 크기가 탐지 정확도에 미치는 영향은 무엇인가?
- RQ4제안된 접근법이 정확도와 학습 시간 측면에서 CNN, RNN, MLP 베이스라인과 어떤 차이가 있는가?
주요 결과
- 윈도우 크기 10의 CBOW가 테스트된 임베딩 구성 중 최상의 성능을 보인다.
- 두 단계 LSTM은 단일 단계 또는 두 번째 LSTM이 없는 베이스라인보다 탐지 및 분류를 지속적으로 개선한다.
- 두 단계 LSTM은 RNN 및 MLP를 능가하고 CNN과도 경쟁력 있으며 학습 시간은 더 짧다.
- 969개의 악성코드와 123개의 정상 파일 데이터셋에서 본 방법은 악성코드 탐지에 대해 평균 AUC 0.99, 악성코드 분류에 대해 0.987를 달성했다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.