8
ISSN 2383-630X(Print) / ISSN 2383-6296(Online) Journal of KIISE, Vol. 42, No. 5, pp. 558-565, 2015. 5 http://dx.doi.org/10.5626/JOK.2015.42.5.558 본 연구는 미래창조과학부 및 정보통신산업진흥원의 대학IT연구센터육성 지 원사업/IT융합고급인력과정지원사업의 연구결과로 수행되었음(NIPA-2014- H0301-14-1022) 논문접수 : 2014721(Received 21 July 2014) 논문수정 : 20141130(Revised 30 November 2014) †† 비 회 원 종신회원 : : 한양대학교 컴퓨터소프트웨어학과 [email protected] [email protected] [email protected] 한양대학교 컴퓨터공학부 교수(Hanyang Univ.) [email protected] (Corresponding author) 심사완료 : 2015123(Accepted 23 January 2015) Copyright2015 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작물 의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위 를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회논문지 제42권 제5(2015. 5) 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구 (A Study on Selecting Key Opcodes for Malware Classification and Its Usefulness) 박정빈 한경수 김태근 임을규 †† (Jeong Been Park) (Kyung Soo Han) (Tae Gune Kim) (Eul Gyu Im) 최근 새롭게 제작되는 악성코드 수의 증가와 악성코드 변종들의 다양성은 악성코드 분석가의 분석에 소요되는 시간과 노력에 많은 영향을 준다. 따라서 효과적인 악성코드 분류는 악성코드 분석가의 악성코드 분석에 소요되는 시간과 노력을 감소시키는 데 도움을 줄 뿐만 아니라, 악성코드 계보 연구 등 다양한 분야에 활용 가능하다. 본 논문에서는 악성코드 분류를 위해 중요 연산부호를 이용하는 방법을 제 안한다. 중요 연산부호란 악성코드 분류에 높은 영향력을 가지는 연산부호들을 의미한다. 실험을 통해서 악성코드 분류에 높은 영향력을 가지는 상위 10개의 연산부호들을 중요 연산부호로 선정할 수 있음을 확 인하였으며, 이를 이용할 경우 지도학습 알고리즘의 학습시간을 약 91% 단축시킬 수 있었다. 이는 향후 다량의 악성코드 분류 연구에 응용 가능할 것으로 기대된다. 키워드: 악성코드 분석, 악성코드 분류, 연산부호, 의사결정나무, 정적분석, 속성 선택 Abstract Recently, the number of new malware and malware variants has dramatically increased. As a result, the time for analyzing malware and the efforts of malware analyzers have also increased. Therefore, malware classification helps malware analyzers decrease the overhead of malware analysis, and the classification is useful in studying the malware’s genealogy. In this paper, we proposed a set of key opcode to classify the malware. In our experiments, we selected the top 10-opcode as key opcode, and the key opcode decreased the training time of a Supervised learning algorithm by 91% with preserving classification accuracy. Keywords: malware analysis, malware classification, opcode, decision tree, static analysis, attribute selection

악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

ISSN 2383-630X(Print) / ISSN 2383-6296(Online)

Journal of KIISE, Vol. 42, No. 5, pp. 558-565, 2015. 5

http://dx.doi.org/10.5626/JOK.2015.42.5.558

․본 연구는 미래창조과학부 정보통신산업진흥원의 학IT연구센터육성 지

원사업/IT융합고 인력과정지원사업의 연구결과로 수행되었음(NIPA-2014-

H0301-14-1022)

논문 수 : 2014년 7월 21일

(Received 21 July 2014)

논문수정 : 2014년 11월 30일

(Revised 30 November 2014)†

††

비 회 원

종신회원

:

:

한양 학교 컴퓨터소 트웨어학과

[email protected]

[email protected]

[email protected]

한양 학교 컴퓨터공학부 교수(Hanyang Univ.)

[email protected]

(Corresponding author임)

심사완료 : 2015년 1월 23일

(Accepted 23 January 2015)

CopyrightⒸ2015 한국정보과학회ː개인 목 이나 교육 목 인 경우, 이 작물

의 체 는 일부에 한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때,

사본은 상업 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처를 반드시

명시해야 합니다. 이 외의 목 으로 복제, 배포, 출 , 송 등 모든 유형의 사용행

를 하는 경우에 하여는 사 에 허가를 얻고 비용을 지불해야 합니다.

정보과학회논문지 제42권 제5호(2015. 5)

악성코드 분류를 한 요 연산부호 선택 그 유용성에 한 연구

(A Study on Selecting Key Opcodes for Malware

Classification and Its Usefulness)

박 정 빈† 한 경 수

† 김 태 근

† 임 을 규

††

(Jeong Been Park) (Kyung Soo Han) (Tae Gune Kim) (Eul Gyu Im)

요 약 최근 새롭게 제작되는 악성코드 수의 증가와 악성코드 변종들의 다양성은 악성코드 분석가의

분석에 소요되는 시간과 노력에 많은 향을 다. 따라서 효과 인 악성코드 분류는 악성코드 분석가의

악성코드 분석에 소요되는 시간과 노력을 감소시키는 데 도움을 뿐만 아니라, 악성코드 계보 연구 등

다양한 분야에 활용 가능하다. 본 논문에서는 악성코드 분류를 해 요 연산부호를 이용하는 방법을 제

안한다. 요 연산부호란 악성코드 분류에 높은 향력을 가지는 연산부호들을 의미한다. 실험을 통해서

악성코드 분류에 높은 향력을 가지는 상 10개의 연산부호들을 요 연산부호로 선정할 수 있음을 확

인하 으며, 이를 이용할 경우 지도학습 알고리즘의 학습시간을 약 91% 단축시킬 수 있었다. 이는 향후

다량의 악성코드 분류 연구에 응용 가능할 것으로 기 된다.

키워드: 악성코드 분석, 악성코드 분류, 연산부호, 의사결정나무, 정 분석, 속성 선택

Abstract Recently, the number of new malware and malware variants has dramatically increased.

As a result, the time for analyzing malware and the efforts of malware analyzers have also increased.

Therefore, malware classification helps malware analyzers decrease the overhead of malware analysis,

and the classification is useful in studying the malware’s genealogy. In this paper, we proposed a set

of key opcode to classify the malware. In our experiments, we selected the top 10-opcode as key

opcode, and the key opcode decreased the training time of a Supervised learning algorithm by 91%

with preserving classification accuracy.

Keywords: malware analysis, malware classification, opcode, decision tree, static analysis, attribute

selection

Page 2: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

악성코드 분류를 한 요 연산부호 선택 그 유용성에 한 연구 559

1. 서 론

최근 몇 년간 IT환경의 발 에 따라 새로이 발견되는

악성코드의 수가 격히 증가되고 있다[1]. 특히 악성코

드의 변종의 증가로 인해 기존의 시그니처 기반 악성코

드 탐지 기법에는 한계가 있기 때문에 이를 해결하기

한 노력으로 악성코드 분류 연구가 이루어졌다[2].

뿐만 아니라 악성코드 분류는 악성코드 분석가들이

악성코드 분석에 소요하는 시간과 노력을 감소시키기

한 한 가지 방안으로써 제안되고 있다.

악성코드 분류에는 크게 정 분석 정보를 이용한 분

류와 동 분석 정보를 이용한 분류, 두 가지로 구분할

수 있다. 정 분석 정보란 악성코드의 실행 없이 악성

코드 바이 리 일 자체를 분석하여 정보를 얻는 것을

의미한다. 이러한 정 정보에는 악성코드가 가지는 문

자열 정보, 해시값, 불러오는 DLL 일의 종류, 등 다양

한 정보가 존재한다. 동 분석 정보란 악성코드를 직

실행하여 얻을 수 있는 정보를 의미한다. 동 분석 정

보에는 악성코드가 생성한 일, 악성코드가 조작한

지스트리, API 호출 시 스 등의 정보가 있다. 이후 얻

어진 정보에 다양한 알고리즘을 용하여 악성코드 분

류를 진행하게 된다.

악성코드 정 분석은 바이 리 일에 포함된 모든

코드를 분석할 수 있으며 동 분석에 비해 분석 시간

이 빠르다는 장 이 있다. 즉 동 분석은 악성코드 실

행을 통해 이루어지기 때문에 악성코드의 실행 없이 분

석하는 정 분석보다 느리다.

최근 5년간의 연구에서는 악성코트 분류의 정확성을

높이는 연구뿐만 아니라 분류 비교 시간을 고려하는

연구[3,4] 분류에 효율 인 악성코드 특징을 추출하

거나 사용하는 악성코드 특징을 최소화하기 한 연구

등 량의 악성코드 샘 에 응하기 한 다양한 연구

가 시도되고 있다[5-7].

본 논문에서는 량의 악성코드 분류를 해 효율

인 악성코드 특징을 추출하기 한 연구를 진행 하 다.

제안하는 기법은 기존에 악성코드 분류를 해 사용

하던 정 분석 정보 하나인 연산부호를 상으로

분류에 효율 인 연산 부호 순 를 측정하고, 순 가 측

정된 연산부호에 하여 실험을 통해 상 몇 개의 연

산부호를 이용하 을 때 가장 악성코드 분류에 효율

인지 평가를 진행하는 것이다. 이를 통해 최종 으로 선

택된 연산부호들이 본 논문에서 제안하는 악성코드 특

징인 요 연산부호이다.

본 논문의 구성은 다음과 같다. 2장에서는 본 논문과

연 된 련 연구에 해 알아본다. 3장에서는 연구와

련된 이론 배경을 설명한다. 4장에서는 본 논문에서

제안하는 알고리즘 기법에 해 설명한다. 5장에서는

4장의 기법에 한 시뮬 이션 실험 고찰을 진행

하며 6장에서는 5장의 실험에 한 성능 평가 분석

을 진행한다. 마지막으로 7장에서 본 논문의 결론을 맺

는다.

2. 련 연구

Ronghua Tian, et al.[8]의 연구에서는 정 분석을

통해 바이 리 일에서 문자열 정보를 추출하고 이를

이용한 분류 기법을 제안하고 있다. 해당 연구에서 제안

하는 기법에서는 문자열 정보 노이즈나 연 성이 떨

어지는 데이터를 가공하는 단계가 추가 으로 용되어

있다. 하지만 기계학습 기법에 용되는 속성의 수가 많

기 때문에 량의 악성코드를 처리하는데 효율성이 떨

어지는 단 이 있다.

Younghee Park, et al.[3]의 연구에서는 악성코드의

행 그래 를 이용한 분류 기법을 제안하고 있다. 해당

연구에서는 행 그래 를 생성이 빠르다는 장 을 언

하고 있었으나, 악성코드 동 분석 정보인 시스템 콜

을 수집하는 데 소요되는 시간은 언 하지 않았다. 즉

동 정보를 얻기 해 소요되는 시간이 클 것으로 추

측된다.

Konrad Rieck, et al.[9]의 연구에서는 샌드박스 환경

에서 악성코드 행 를 추 하고 분류하는 방법을 제안

하 다. 해당 논문에서는 샌드박스 환경을 이용한 실험

을 진행하기 때문에 동 분석 방법이 가지는 단 을

가지고 있다.

Daniel Bilar[10]의 연구에서는 연산 부호가 악성코드

의 측 변수로 사용될 수 있음을 보여주고 있다. 하지

만 해당 연구에서는 악성코드 분류가 아닌 악성코드 탐

지에 이 맞추어져 있었다.

Kyoung Soo Han, et al.[11]의 연구에서는 연산부호

의 빈도수가 악성코드 분류에 유용하게 사용될 수 있음

을 보여 주었다. 해당 연구에서는 악성코드 패 리 간에

연산부호 빈도수 차이가 있음을 통계 으로 보여주기만

했을 뿐 연산부호를 이용한 직 인 분류는 진행되지

않았다.

Philip O'Kane, et al.[12]의 연구에서는 지지기반기계

를 통해 악성코드와 정상 로그램을 구분하는 요한

연산부호가 있음을 실험을 통해 보여주었다. 해당 연구

에서는 악성코드와 정상 로그램 구분에 연 이 높은

연산부호를 연산부호 민감도(opcode sensitivity)로 나

타내었으며, 이는 본 연구에서 제안하는 요 연산부호

개념에 요한 동기를 주었다. 본 논문과의 차이 은

O’Kane 등이 제안한 방법은 동 분석을 이용한 것이

고, 본 논문에서는 정 분석을 기반으로 하기 때문에

Page 3: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

560 정보과학회논문지 제42권 제5호(2015. 5)

O’Kane 등이 제안한 방법 보다 정 분석이 가능한 경

우, 보다 효과 이다. 한 동 분석을 이용한 opcode

빈도수를 이용할 경우, 반복문 등에 의하여 빈도수 정보

가 왜곡될 수 있는 문제 이 있다.

Babak Bashari Rad, et al.[13]의 연구에서는 연산부

호를 이용하여 히스토그램을 생성한 뒤 각 악성코드 패

리별 히스토그램의 차이를 통하여 악성코드를 분류하

는 기법을 제안하고 있다. 해당 연구에서는 연산부호를

이용한 히스토그램이 높은 분류 정확성을 나타내는 것

을 보 으나. 250가지의 연산부호를 부 사용하 기 때

문에 히스토그램을 비교하는 과정에서 많은 연산 시간

이 걸릴 뿐만 아니라, 불필요한 연산부호로 인해 비교

정확성이 낮아질 가능성이 존재한다.

Mamoun Alazb, et al.[14]의 연구에서는 연산부호의

빈도수를 이용한 악성코드 탐지 기법에 하여 제안하

다. 해당 연구에서는 연산부호 빈도수를 악성코드 특징

으로 이용하 으며, 로지스틱 회귀분석(Logistic Regres-

sion)을 통해 정상 로그램과 악성코드 간 빈도수에 많

은 차이가 있는 연산부호가 존재함을 보여주었다. 이를

통해 연산부호 빈도수가 난독화 된 악성코드 탐지에 유

용하게 사용할 수 있음을 보여주었다. 하지만 해당 논문

의 연구는 악성코드 분류가 아닌 탐지에 이 맞추어

져 있을 뿐만 아니라 정상과 악성 로그램에서 빈도수

의 차이가 있는 연산부호만을 이용한 실험은 진행되지

않았다.

Karthick Raman[5]의 연구에서는 PE 형식 분석을

통해 얻을 수 있는 악성코드 특징들을 상으로 악성코

드를 효율 으로 분류하기 한 최소 개수의 특징을 찾

는 연구가 진행되었다. 해당 연구에서는 PE 형식 분석

을 통해 얻어진 악성코드 특징을 기반으로 데이터 마이

닝 기법을 용하여 가장 효율 인 특징 개수를 찾는

기법을 제안하 다. 하지만 해당 논문에서는 악성코드

분류에 사용하는 특징을 PE 형식 분석을 통해 얻어진

정보만을 이용하 기 때문에 난독화 는 패킹 등의 기

법을 통해 해당 특징 정보가 쉽게 조작되는 한계를 가

진다.

3. 이론 배경

3.1 연산부호(Opcode)

연산 부호란 앙처리장치(CPU)가 처리하는 기계어

명령어이며 논리연산, 로그램 흐름제어, 메모리 처리,

산술 연산의 기능을 제공한다. 연산 부호의 시는 표 1

과 같다.

악성코드 정상 로그램은 컴 일 후 바이 리

일이 생성되는데 PE(Portable Executable) 형태의[15]

도우 실행 일인 경우 Text 섹션에 연산 부호와 피연

표 1 연산 부호 시

Table 1 Opcode example

Group Opcode

Arithmetic operations add, sub

Memory manipulation lea, pop, push

Logical operations xor

Program flow control call, cmp, rep

산자가 치한다. 따라서 디스어셈블러를 이용하여 정

으로 연산부호 추출이 가능하다.

연산부호를 이용한 악성코드 분류는 연산부호의 호출

순서, 연산부호 빈도수, 연산부호 사용 히스토그램 등

다양한 형태로 연산부호를 가공하여 진행한다[13,14,16].

이 연산부호의 빈도수를 이용한 악성코드 특징의 경

우 다른 방식의 연산부호 사용에 비해 간단한 연산을 통

하여 연산부호 빈도수를 얻을 수 있는 장 이 존재한다.

연산부호 빈도수는 로그램에서 사용된 체 연산부

호 개수 비 특정 연산부호의 개수를 퍼센트로 나타낸

것이며 형태는 표 2와 같다.

3.2 속성선택 측도(Attribute selection Measure)

속성선택 측도는 지도학습(Supervised Learing) 알고

리즘에서 훈련 데이터를 클래스 별로 “가장 잘” 분리

하는 분리기 을 선택하는 기법이다. 해당 기법에는 정

보이익(Information Gain), 이익비(GainRatio) 등이 존

재하며 본 연구에서는 O'Kane 등의[12]연구에서 연산

부호 민감도 측정에 지지기반기계(Support Vector

Machine)을 활용한 것을 응용하여, 속성선택 측도

지지기반기계를 이용한 SVM-RFE(SVM Recursive

Feature Elimination)을 논문에서 제안하는 요 연산부

호를 추출하기 해 이용하 다[17].

3.3 의사결정나무(Decision Tree)

본 논문에서는 악성코드 연산부호 빈도수 특징을 이

용한 분류 정확성 학습 시간 측정 실험에 지도학습

알고리즘 하나인 의사결정나무를 이용하 다.

의사결정나무는 J.Ross Quilan이 개발한 알고리즘으

로 데이터가 가지는 속성(Attribute) 정보를 이용하여

의사결정나무를 생성하는 알고리즘이다. 의사결정나무는

새로운 데이터가 어떤 범주에 들어가는지 결정할 때 사

용된다.

그림 1은 날씨에 따른 운동여부를 결정하기 해 생

성된 의사결정나무의 이다. 기존에 기록된 날씨에 따

른 운동여부를 학습데이터로 사용해서 생성된 의사결정

나무이다.

의사결정나무의 노드는 속성을 나타내며 잎사귀(leaf)

는 범주이다. 만약 망(outlook)이 화창하고(sunny) 습

도(humidity)가 75이상인 날씨가 있다면 해당 날씨의

범주는 YES 즉, 운동을 해도 좋은날인 것으로 단할

Page 4: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

악성코드 분류를 한 요 연산부호 선택 그 유용성에 한 연구 561

표 2 연산부호 빈도수

Table 2 Opcode frequency example

NO. Opcode Frequency

1 AAA 0.62033

2 AAD 0.126886

3 AAM 0.098689

4 AAS 0.028197

5 ADC 2.49542

6 ADD 31.806

7 AND 2.56591

8 ARPL 0.733117

9 BOUND 0.775412

10 BSF 0

11 BSR 0

12 BSWAP 0.014098

13 BT 0

14 BTC 0

15 BTR 0

16 BTS 0

17 CALL 0.394755

18 CBW 0

19 CDQ 0.098689

20 CLC 0.155082

그림 1 의사결정 나무

Fig. 1 Decision tree

수 있다. 이러한 방식으로 새로운 데이터의 범주를 찾는

목 으로 사용되는 알고리즘이 의사결정나무 알고리즘

이며, 데이터의 속성 수에 의사결정나무 생성비용이 의

존 이기 때문에 데이터 속성 수의 감소는 의사결정나

무 생성 시간 단축을 기 할 수 있다.

본 논문에서는 악성코드의 연산부호 종류가 데이터

속성이며 속성 값은 해당 연산부호 빈도수가 된다. 의사

결정알고리즘은 요 연산부호를 선정하기 한 악성코

드 분류 정확성 지도학습 알고리즘의 모델링 시간

측정을 해서 사용하며 이때 사용하는 의사결정나무

알고리즘은 가장 리 쓰이는 의사결정 알고리즘인

C4.5이다.

4. 제안한 알고리즘 기법

1 에서는 량의 악성코드 분석에 응하기 해 악

성코드 분류에 사용하는 악성코드 특징을 이려는 연

구가 진행됨을 기술하 다. 연산부호를 이용한 악성코드

특징 연구의 경우 악성코드 분류를 해 사용하는 연산

부호의 개수를 이려는 시도는 이루어지지 않았다.

연산부호의 경우 추출 방식이 단순할 뿐만 아니라 각

종 난독화 기법에 응하기 유리한 장 이 있다[14]. 하

지만 기존 악성코드 탐지연구에서 보여주었듯이[12],

400여 가지가 넘는 Intel 연산부호 악성코드 분석에

가치를 지니는 연산부호는 한정 일 가능성이 높다. 따

라서 본 연구에서는 악성코드 분류에 유용한 연산부호

를 요 연산부호로 정의하고 해당 연산부호를 추출하

기 한 기법을 제안한다.

요 연산부호를 추출하는 기법은 그림 2와 같다. 첫

번째 과정에서는 연산부호를 가공하여 연산부호 빈도수

를 생성한다. 두 번째 과정에서는 각 연산부호 별 요

도를 측정하고 마지막 단계에서는 실험을 통해 특정 개

수의 연산부호들을 선택한다. 이때 마지막 단계에서 선

택된 연산부호가 요 연산부호이다.

그림 2 요 연산부호 추출 기법

Fig. 2 Extraction method of key opcode

4.1 연산부호 요도

연산부호 요도란 특정 연산부호를 통한 악성코드

분석 분류 유용성을 수치화 한 것이다. 기계학습 분

야에서는 속성선택(Attribute selection)을 통하여 해당

수치를 측정한다. 본 연구에서는 3 에서 기술한 SVM-

RFE를 이용하여 해당 수치를 측정하고 연산부호별

요도 순 를 악한다.

4.2 요 연산부호

요 연산부호는 본 연구에서 최종 으로 선택한 연

산부호이다. 해당 연산부호는 연산부호 요도 순 를

바탕으로 악성코드 분류에 큰 향력을 가지는 상 N

개의 연산부호를 의미한다. 상 몇 개의 연산부호를

요 연산부호로 선택하 을 때 최 의 효율을 나타내는

지 별하기 해서는 분류 정확성 지도학습 알고리

즘의 학습시간을 고려해야 하며, 본 연구에서는 3 에서

기술한 의사결정나무를 이용하여 이를 측정한다.

5. 시뮬 이션 실험 고찰

Babak Bashari Rad, et al.[13]의 연구에서는 연산부

호를 이용한 히스토그램을 생성하여 악성코드 분류에

Page 5: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

562 정보과학회논문지 제42권 제5호(2015. 5)

그림 3 연산부호 히스토그램 추출 모델

Fig. 3 Methodology of extracting opcode histogram

그림 4 Karthick Raman의 특징 선택 실험 모델

Fig. 4 Methodology of selecting features proposed by

Karthick Raman

사용하는 방안을 제안하 다. 해당 연구의 실험 모델은

그림 3과 같다.

Karthick Raman[5]의 연구에서는 PE 형식의 실행

일 헤더 정보를 악성코드 특징으로 하여 7가지의 요

특징 정보를 선택하는 실험을 진행하 다 해당 연구의

실험 모델은 그림 4와 같다.

본 실험에서는 Babak Bashari Rad, et al.의 연구에

서 연산부호를 추출하는 과정과 Karthick Raman의 연

구에서 악성코드 특징 정보의 수를 선택하기 한 과정

을 응용하여 실험 과정을 고안하 다.

체 인 실험 과정은 그림 5와 같다. 이는 4 에서

제안한 요 연산부호 추출 기법을 구체화한 것이다. 그

림 5에서 화살표는 해당 단계에서 생성된 출력 일이

다른 단계의 입력으로 사용됨을 나타낸다.

그림 5 실험 과정

Fig. 5 Experiment overview

1단계 실험에서는 악성코드 연산부호 빈도수 추출을

진행한다. 이때 악성코드 연산부호 추출을 디스어셈블러

를 이용하여 진행한 뒤 생성된 결과 일을 연산부호

빈도수 추출에 사용한다.

2단계 실험에서는 1단계 이후 생성된 악성코드들의

연산부호 빈도수 일을 이용하여 연산부호 요도 측

정을 수행한다. 이때 요도란 악성코드 분류에 많은 연

이 있는 연산부호를 순 로 표기한 것이며, 측정 방법

은 3 에서 기술한 SVM-RFE를 이용한다. 이를 통해

악성코드 분류에 높은 연 성을 가지는 연산부호의 순

를 결정할 수 있다. 3단계 실험에서는 의사결정나무를

이용하여 악성코드 분류 정확성 의사결정나무 학습

시간을 측정한다. 이를 바탕으로 요 연산부호를 선정

한다.

5.1 실험환경

실험 환경은 표 3과 같다. 의사결정나무 알고리즘을

이용하기 해서 오 소스 기계학습 도구인 WEKA[18]

를 이용하 다. 실험에 쓰인 악성코드 샘 은 VXheaven[19]

에서 받은 2003개이며 116개의 악성코드 패 리로 구성

되어 있다.

Page 6: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

악성코드 분류를 한 요 연산부호 선택 그 유용성에 한 연구 563

표 3 실험 환경

Table 3 Experiment environment

CPU Intel i7-4770 3.40GHz

RAM 8GB

OS windows 8.1k 64bit

5.2 연산부호 요도 측정

연산부호 요도는 SVM-RFE 기법을 이용하여 측정

하 다. 실험을 통해 얻어진 연산부호 요도 순 는

167까지 표시가 되며 측정 결과의 형태는 표 4와 같다.

이후 실험에서는 연산부호 요도 결과를 바탕으로

상 요도를 가지는 N개의 연산부호를 이용하여 악성

코드 분류 정확성 의사결정 나무 학습 시간 측정을

진행한다.

표 4 연산부호 요도 순

Table 4 Ranking of worth opcodes

Rank Opcode Rank Opcode

1 SMSW 21 ROL

2 BSR 22 AAS

3 CMPSB 23 IMUL

4 SHLD 24 POPAD

5 AND 25 LEAVE

6 SUB 26 OUTSD

7 NOT 27 REPNE

8 NEG 28 LOOPE

9 TEST 29 SETLE

10 MOVZX 30 MOV

11 DIV 31 LTR

12 MOVSB 32 XCHG

13 INC 33 JLE

14 SCASW 34 PUSH

15 LEA 35 SBB

16 CLC 36 CMP

17 JNE 37 DEC

18 AAD 38 CMPSD

19 CALL 39 SETNL

20 JO 40 OUTSW

5.3 악성코드 분류 정확성 측정

악성코드 분류 정확성 측정에서는 순 가 높은 연산

부호부터 순차 으로 연산부호 개수를 증가시키며 의사

결정나무를 생성하여 실험을 진행하 다. 정확성은 F-Mea-

sure 척도를 이용하여 측정하고, 각각의 악성코드 종별

분류 정확성을 측정하 다.

연산부호 수에 따른 악성코드 분류 정확성은 각각의

악성코드 종별 분류 정확성의 평균으로 측정하 다. 이

때 각각의 악성코드 종은 다양한 수의 변종들을 가지고

있기 때문에 체 인 평균을 구할 때는 많은 수의 변

그림 6 악성코드 분류 정확성(F-measure)

Fig. 6 Malware classification accuracy (F-measure)

종을 가진 악성코드 종의 정확성에 가 치를 주어야 한

다. 따라서 가 평균(weighted average)[8]를 이용하여

체 인 정확성 평균을 계산하 다.

측정된 정확성은 그림 6과 같다. 측정된 결과에 따르

면 요도가 높은 연산부호 10개를 사용하여 의사결정

나무를 만들었을 때를 기 으로 그 보다 은 수의 연

산부호를 이용할 경우 분류 정확성이 격히 낮아지며,

그 보다 많은 수의 연산부호를 이용할 경우에는 분류

정확성 차이가 다는 것을 알 수 있었다. 즉 요 연산

부호로 요도가 높은 상 10개의 연산부호를 선정할

수 있다.

5.4 의사결정나무 생성시간 측정

의사결정나무의 생성시간 측정은 5.3 의 실험방법과

동일한 방식으로 이루어 졌다. 측정된 결과는 그림 7과

같다.

측정된 결과에 따르면 연산부호의 수가 을수록 의

사결정나무의 생성시간도 어드는 것을 확인할 수 있

었다. 특히 앞서 선정한 요 연산부호를 이용하 을 경

우 의사결정나무 생성 시간은 체 연산부호를 이용하

을 때보다 약 91% 감소하 음을 확인할 수 있었다.

그림 7 의사결정나무 생성 시간

Fig. 7 Generation time of decision tree

Page 7: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

564 정보과학회논문지 제42권 제5호(2015. 5)

6. 성능 평가 분석

기존연구와 요 연산부호를 이용한 악성코드 분류

정확성 비교 결과는 표 5와 같다.

표 5에 의하면 제안하는 요 연산부호를 이용한 기

법이 기존 연구의 분류 정확성과 차이가 크지 않음을

알 수 있다. 뿐만 아니라 제안하는 기법은 지도학습 알

고리즘의 학습 시간을 91% 감소시키는 장 을 가지기

때문에 향후 량의 악성코드 분류를 자동화 하는 연구

에 기여할 수 있다.

표 5 기존연구와 정확성 비교

Table 5 Comparison of our model with existing work

Existing work Accuracy

R. Tian, et al.[8] 97%

K. Rieck et. al [20] 88%

M. Bailey et. al [21] 92%

Z. Shafiq et.al [22] 95%

Tian, R et.al. [23] 87%

V. Moonsamy et. al (IB1 classifier)[24] 90%

Our method 87%

7. 결 론

본 논문에서는 악성코드 분류에 요 연산부호를 이

용한 기법을 제안하 다. 요 연산부호란 악성코드 분

류에 높은 향력을 가지는 상 10개의 연산부호이며,

이를 이용하여 의사결정나무를 통한 악성코드 분류 정

확성은 87.2%가 측정되었다.

제안하는 기법은 악성코드 분류에 사용하는 연산부호

의 수를 감소 시켰으며, 이는 다른 악성코드 특징보다

다량의 악성코드 분류에 합하다. 특히 지도학습 기반

알고리즘을 사용할 경우 체 연산부호를 이용하 을

때보다 학습시간을 91% 일 수 있음을 확인하 다.

본 연구 결과를 통해서 향후 량의 악성코드 분류가

가능한 자동화된 시스템 는 탐지 시스템 등 다양한

연구 활동이 가능할 것으로 기 된다.

References

[ 1 ] Malware statistics, Available: http://www.av-test.org/

en/statistics/malware/

[ 2 ] E. Gandotra, D. Bansal, S. Sofat, "Malware Ana-

lysis and Classification: A Survey," Journal of

Information Security 2014, Vol. 5, No. 2, pp. 9, 2014.

[ 3 ] Y. Park, D. Reeves, V. Mulukutla, B. Sundaravel,

"Fast malware classification by automated beha-

vioral graph matching," Proc. of the Sixth Annual

Workshop on Cyber Security and Information

Intelligence Research, pp. 45, 2010.

[ 4 ] S. Cesare, Y. Xiang, "A fast flowgraph based classi-

fication system for packed and polymorphic malware

on the endhost," Proc. of Advanced Information

Networking and Applications, pp. 721-728, 2010.

[ 5 ] K. Raman, "Selecting features to classify malware,"

Proc. of InfoSec Southwest, 2012.

[ 6 ] Q. Jiang, X. Zhao, K. Huang, "A feature selection

method for malware detection," Proc. of 2011 IEEE

International Conference on Information and Auto-

mation, pp. 890-895, 2011.

[ 7 ] G. E. Dahl, J. W. Stokex, L. Deng, D. Yu, "Large-

scale malware classification using random projec-

tions and neural networks," Proc. of 2013 IEEE

International Conference on Acoustics, Speech and

Signal Processing, pp. 3422-3426. 2013.

[ 8 ] R. Tian, L. Batten, R. Islam, S. Versteeg, "An

automated classification system based on the

strings of trojan and virus families," Proc. of 2009

4th International Conference on Malicious and Un-

wanted Software, pp. 23-30, 2009.

[ 9 ] K. Rieck, T. Holz, C. Willems, P. Düssel, P. Laskov,

"Learning and classification of malware behavior,"

Proc. of 5th International Conference, Detection of

Intrusions and Malware, and Vulnerability Assess-

ment, pp. 108-125, 2008.

[10] D. Bilar, "Opcodes as predictor for malware,"

Journal of Electronic Security and Digital Foren-

sics, Vol. 1, No. 2, pp. 156-168, 2007.

[11] K. S. Han, B. Kang, E. G. Im, "Malware classifi-

cation using instruction frequencies," Proc. of the

2011 ACM Symposium on Research in Applied

Computation, pp. 298-300, 2011.

[12] P. O'Kane, S. Sezer, K. McLaughlin, E. G. Im,

"SVM Training Phase Reduction Using Dataset

Feature Filtering for Malware Detection," Journal

of IEEE transactions on information forensics and

security, Vol. 8, No. 3, pp. 500-509, Mar. 2013.

[13] B. B. Rad, M. Masrom, S. Ibrahim, "Opcodes histo-

gram for classifying metamorphic portable execut-

ables malware," Proc. of 2012 International Confer-

ence on e-Learning and e-Technologies in Education,

pp. 209-213, 2012.

[14] M. Alazab, M. A. Kadiri, S. Venkatraman, A.

Al-Nemrat, "Malicious Code Detection Using Pen-

alized Splines on OPcode Frequency," Proc. of 2012

Third Cybercrime and Trustworthy Computing Work-

shop, pp. 38-47, 2012.

[15] PE format, Available: http://www.microsoft.com/

whdc/system/platform/firmware/PECOFF.mspx

[16] I. Santos, F. Brezo, J. Nieves, Y. K. Penya, B. Sanz,

C. Laorden, P. G. Bringas, "Idea: Opcode-sequence-

based malware detection," Proc. of Second Interna-

tional Symposium on Engineering Secure Software

and Systems, pp. 35-43, 2010.

[17] I. Guyon, J. Weston, S. Barnhill, V. Vapnik, "Gene

selection for cancer classification using support

Page 8: 악성코드 분류를 위한 중요 연산부호 선택 및 그 유용성에 관한 연구kiise.or.kr/e_journal/2015/5/JOK/pdf/02.pdf · 키워드: 악성코드 분석, 악성코드

악성코드 분류를 한 요 연산부호 선택 그 유용성에 한 연구 565

vector machines," Journal of Machine learning,

Vol. 46, No. 1-3, pp. 389-422, Fab. 2002.

[18] Weka, Available: http://www.cs.waikato.ac.nz/ml/weka/

[19] VXheaven, Available: http://vxheavens.com/

[20] K. Rieck, T. Holz, C. Willems, P. Düssel, P. Laskov,

"Learning and classification of malware behavior,"

Proc. of 5th International Conference, Detection of

Intrusions and Malware, and Vulnerability Assess-

ment, pp. 108-125, 2008.

[21] M. Bailey, J. Oberheide, J. Andersen, Z. M. Mao, F.

Jahanian, J. Nazario, "Automated classification and

analysis of internet malware," Proc. of 10th Inter-

national Symposium, Recent Advances in Intrusion

Detection, pp. 178-197, 2007.

[22] M. Z. Shafiq, S. M. Tabish, M. Farooq, "Are evolu-

tionary rule learning algorithms appropriate for

malware detection?" Proc. of the 11th Annual con-

ference on Genetic and evolutionary computation,

pp. 1915-1916, 2009.

[23] R. Tian, L. M.Batten, S. C. Versteeg, "Function

length as a tool for malware classification," Proc. of

2008 3rd International Conference on Malicious and

Unwanted Software, pp. 69-76, 2008.

[24] V. Moonsamy, R. Tian, L. Batten, "Feature reduc-

tion to speed up malware classification," Proc. of the

16th Nordic Conference on Information Security Tech-

nology for Applications, ser. NordSec’11, pp. 176-

188, 2012.

박 정 빈

2013년 한양 학교 컴퓨터공학부 졸업

(학사). 2015년 한양 학교 컴퓨터・소

트웨어공학과 졸업(석사). 심분야는 악

성 로그램 분류, 리버스 엔지니어링,

소 트웨어 보안

한 경 수

2008년 상지 학교 컴퓨터공학 졸업(학

사). 2010년 한양 학교 자컴퓨터통신

공학과 졸업(석사). 2014년 한양 학교

컴퓨터・소 트웨어공학과 졸업(박사).

심분야는 악성 로그램 분석, 네트워크

보안, 정보보호

김 태 근

2011년 한양 학교 컴퓨터 공 졸업(학

사). 2013년 한양 학교 자컴퓨터통신

공학과 졸업(석사). 2013년~ 재 한양

학교 컴퓨터・소 트웨어공학과 박사과정

심분야는 취약 분석, 악성코드 분석,

정보보호

임 을 규

1992년 서울 학교 컴퓨터공학과 졸업

(학사). 1994년 서울 학교 컴퓨터공학과

졸업(석사). 2002년 University of Sou-

thern California Computer Science Dept.

졸업(박사). 2005년~ 재 한양 학교 컴

퓨터공학부 부교수. 심분야는 제어시스

템 보안, 악성코드, 정보보호, 소 트웨어 취약 검