Mobile QR Code QR CODE : The Transactions P of the Korean Institute of Electrical Engineers
The Transactions P of the Korean Institute of Electrical Engineers

Korean Journal of Air-Conditioning and Refrigeration Engineering

ISO Journal TitleTrans. P of KIEE
  • Indexed by
    Korea Citation Index(KCI)

  1. (Dept. of Information Security Engineering Sangmyung University, Korea.)



PDF, keyword analysis, malware detection, benign, deep learning

1. Introduction

인터넷은 회사 업무를 비롯하여 개인의 취미활동에까지 사용될 만큼 우리 생활과 가장 밀접한 관계를 맺고 있다. 그리고, 악성코드에 관련한 인터넷에 피해 규모도 점차 늘어나고 있다. 악의적인 목적을 위해 만들어진 프로그램 종류에는 바이러스, 웜, 트로이 목마 등이 있고 우리는 이를 통틀어 ‘악성코드’라고 부른다(1). 악성코드에 의한 피해를 줄이기 위해 실천해야 할 수칙 가운데 “의심스러운 첨부파일의 실행과 내려받지 않기”는 강조되고 있으며, 컴퓨터 사용자가 당연하게 실천하고 있는 수칙이기도 하다. 그러나 해커들은 지인이나, 국가기관 등을 사칭하여 믿을 수 있는 사용자에게 보내진 첨부파일은 상대적으로 쉽게 클릭하는 사람의 심리를 이용하여 실행을 유도하는 지능형 지속 공격(APT)에 이메일 첨부파일을 이용하여 악성코드를 감염시키는 공격 방법을 이용하고 있다(2). 최근 악성코드 공격 동향을 살펴보면 이메일 첨부파일 중 특히 문서 파일(PDF, HWP, DOC, PPT 등) 속에 악성코드를 삽입하는 형태의 공격이 증가하고 있다. 이렇게 문서 속에 악성코드를 삽입한 형태를 문서형 악성코드라 한다. 그 중 PDF 문서 파일은 어도비사에서 제공하는 문서 파일 포맷으로 전 세계적으로 널리 사용되고 있는 만큼 APT 공격 시 사용되는 문서 파일 중 가장 높은 비중을 차지한다(3). APT 공격은 개인뿐만이 아니라 특정 산업체 내부의 기밀 정보를 탈취하기 위한 수단으로 사용되며 가장 위협적인 사이버 공격 방법으로 알려져 있다. 이메일에 첨부된 실행 파일은 메일 서버나 웹 트래픽 모니터링 단계에서 기존의 보안 기술을 사용하여 악성코드 유입을 차단할 수 있다. 메일 첨부파일에 PE(Portable Execution)와 같은 실행 파일이 첨부되어 온다는 것부터 의심스러운 행위라고 볼 수 있기 때문이다. 하지만 문서 파일을 차단한다면 개인과 기업의 업무에 직접적인 지장을 줄 수 있어 아예 차단해 버리는 것이 불가능하다. 따라서 문서형 악성코드는 가장 위협적인 사이버 보안 공격 도구이기도 하다.

최근 PDF 문서에서 주로 악용이 되는 콘텐츠를 분석하여 악성코드 포함 여부를 판단하는 연구들이 진행되고 있는데 이 중 자바스크립트를 활용한 악성 PDF 문서가 증가하고 있으며, 자바스크립트를 분석하여 PDF 문서의 악성 여부를 판단하는 연구가 활발히 진행되고 있다. 하지만 자바스크립트는 난독화를 통해 분석하기 어렵게 만들 수 있다는 점과 분석 성능이 자바스크립트 추출기에 심하게 의존적이라는 단점이 있다. 이를 해결하기 위하여 본 논문에서는 자바스크립트와 같은 콘텐츠를 분석하는 대신 악성이나 정상 PDF 파일의 구조적 차이를 이용하는 악성 PDF 문서 탐지 방법을 제안한다. 악성코드가 포함된 PDF 파일 구조를 확인해 보면 임베딩된 파일이나 자바 스크립트가 존재하고, 자동 실행 기능이 존재하는 경우가 많다는 특징이 있다. 이러한 특징들로 인해 정상 PDF 파일과 다른 키워드들이 존재한다. 따라서 본 연구에서는 PDF 파일을 구성하고 있는 객체들이 속하는 키워드의 경로 정보를 특징 정보로 사용하였다. 객체들이 속하고 있는 키워드의 경로 정보는 PDF 문서의 구조정보를 담고 있으며 이 경로를 Random Forest와 SVM 알고리즘을 이용하여 악성 PDF를 탐지하는 시스템을 구축하고자 한다. 윈도우 실행형 악성코드들에 대한 딥러닝 적용 연구 사례는 많이 보고되고 있지만, 문서형 악성코드에 대한 딥러닝 기반의 탐지 모델에 관한 연구는 시작 단계이다. 또한, 머신러닝을 이용하여 문서형 악성코드의 특징을 학습시킨 후 의심스러운 파일에 대해서 분류를 진행하는 방식은 학습 데이터와 유사한 데이터에 대해서는 정확도가 높은 성능을 보이지만, 변화된 악성코드 데이터에 대해서는 성능이 크게 떨어지는 한계점이 존재한다. 이는 악성코드 탐지 모델로서는 치명적인 단점이다. 본 논문에서는 이러한 단점을 보완하고자 빈도수를 이용한 딥러닝 기반의 악성코드 탐지 모델을 제안한다. 본 논문의 구성은 2장에서 관련 연구를 살펴보고, 3장에서는 악성코드 분석 기법 및 제안하는 연구 방법을 설명하고, 4장 5장에서는 실험 결과, 결론 순으로 구성하였다.

2. Related Work

문서형 악성코드 분석 방법은 크게 두 가지 방법으로 나눌 수 있다. 첫 번째는 동적 분석의 방법으로 악성코드를 직접 실행시켜가며 분석하는 방법으로 샌드박스 형태의 장비를 준비하여 문서형 악성코드로 의심되는 파일을 실행해보는 것이다. 하지만 동적 분석의 방법은 컴퓨팅 자원이 많이 요구되며 시간이 오래 걸리고 별도의 장비가 필요하다는 단점이 있다. 또한, 최근에는 가상머신에서는 악성코드가 실행되지 않는 우회 기법을 사용하고 있으므로 악성코드 탐지에 어려움이 있다.

두 번째는 정적 분석으로 악성코드의 직접적인 실행 없이 파일 내부에 포함된 자바스크립트, 파일, URI 등 여러 가지 정보를 추출해 분석하는 방법이다. 정적 분석의 경우에는 파일의 정적 분석 도구를 이용한다. 따라서 빠른 처리가 가능하지만 앞서 말한 것과 같이 기존 악성 PDF 파일에 대해 자바스크립트 추출기를 사용한 연구들에서 단점을 발견할 수 있었다. 따라서 본 연구에서는 별도의 장비 없이 빠르게 처리할 수 있는 정적 분석의 방법을 사용하고, 기존의 정적 분석의 연구와는 달리 PDF 객체 내의 키워드 정보를 분석하여 악성코드 탐지 성능을 개선하고자 한다.

이식(4)은 E2E 딥러닝을 이용하여 악성 PDF를 탐지하는 방법과 빈도수를 기반으로 악성 PDF 탐지 모델에 관한 두 가지 연구를 진행하였는데, 먼저 E2E 딥러닝의 경우 문서 파일로부터 대량의 바이트 정보(기본 설정 200,000바이트)를 입력으로 받아 빠르게 정상과 악성을 판별하기 위해 합성 곱 신경망 모델을 기본 구조로 사용하였다. 이는 직접 악성, 정상 행위를 하는 부분을 직접 확인할 수 있다. 그러나 높은 수준의 컴퓨터 사양이 요구되며 시간이 오래 걸린다는 단점이 존재한다. 빈도수를 이용하여 악성코드를 탐지하는 모델은 PDF 파일의 압축을 풀고 키워드를 추출하여 고정된 크기의 특징 벡터를 생성하고 이를 특징 정보로 활용하여 모델을 학습시켰으며 SVM, 배깅 기법을 사용하는 Random Forest, 부스팅 기법을 사용하는 XGBoost모델을 사용하였다. 기존의 악성 PDF 탐지 방법 중 문서형 악성코드의 시간적 공간적 제한 요소 때문에 악성코드의 구조 및 공격 패턴이 조금씩 변화함에 따라 성능이 크게 떨어지는 한계점을 보완하였다. 그러나 악성 콘텐츠가 삽입됨으로써 변화되는 문서 구조만을 확인하여 간접적으로 악성과 정상 여부를 판단한다는 문제점이 있다.

강아름 등(5)은 문서의 구조적 특징을 파악하고 스트림 오브젝트에 포함된 자바스크립트를 해독하여 PDF 파일의 기본 정보인 파일 크기와 버전 정보, PDF 파일 인코딩 및 자바스크립트 삽입 정보, PDF 파일 내의 주요 키워드를 특질로 사용하였다. 또한, Naive Bayes, Random Forest, SVM 알고리즘을 이용하여 학습을 진행하였다. 이 연구는 과거의 연구보다 다양한 특징을 추출하여 사용하였고 대량의 문서를 대상으로 하였다는 점이 특징이다.

3. Proposed Model

3.1 Training Algorithm

본 연구에서 제안하는 문서형 악성코드 탐지 시스템은 데이터 수집(data collection), 특징 추출(feature extraction), 모델 학습(model learning), 모델 평가(model evaluation) 단계로 구성하였다. 제안하는 시스템 구성은 그림 1과 같다.

그림. 1. 시스템 구성도

Fig. 1. System Overview

../../Resources/kiee/KIEEP.2021.70.1.044/fig1.png

제안하는 시스템은 PDF 문서에서 추출한 42개의 특징 정보를 이용하여 정상 PDF와 악성 PDF를 분류할 수 있는 딥러닝 학습 모델을 개발한다. 제안하는 학습 모델 구축을 위해 사용한 분류 알고리즘은 Random Forest, Support Vector Machine을 이용한다. 또한, 시스템 구현을 위해 파이선 기반의 머신러닝 오픈소스 라이브러리인 Scikit-learn을 사용한다. 특징 추출을 위한 데이터는 VirusSign(10)에서 수집한 악성 PDF 파일 2,000개와 구글에서 수집한 정상 PDF 파일 2,000개로 총 4,000개의 PDF 파일을 사용한다.

Random Forest 알고리즘(6)은 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로, 훈련 과정에서 구성한 다수의 결정 트리로부터 분류를 진행한다. Random Forest는 트리 사이에 상관관계를 줄임으로써 분산을 줄여주고, 성능이 뛰어나다는 특징을 가지고 있다.

SVM 알고리즘(7)은 데이터를 분류하는 결정 경계를 구하는 알고리즘이다. 최적의 초평면(Optimal Hyperplane)을 만드는데 기여하는 서포트 벡터만 골라내어 margin이 최대화될 수 있는 방법을 찾는 알고리즘이다. SVM은 오류 데이터에 대한 영향이 적고 과적합 되는 경우가 적으며 신경망보다 사용하기 쉬우므로 많이 사용되는 알고리즘이다. 그러나 입력 데이터 세트가 많으면 학습 속도가 느리다는 단점을 가지고 있다.

학습을 진행할 때 같은 데이터로 반복해서 훈련하게 되면 과적합이 발생하기도 한다. 과적합(Overfitting)이란 학습 데이터를 지나치게 학습하여 학습 데이터에 대해서는 높은 정확도를 나타내지만, 실제 적용 시나 테스트 데이터에서는 성능이 떨어지는 문제를 말한다. 따라서 이를 방지하기 위해 제안하는 방법에서는 교차검증(Cross Validation) 방식을 사용하며, 교차검증을 10으로 설정하여 학습을 진행하였다. 10겹 교차검증이 수행되면 훈련 데이터 세트와 검증 데이터 세트에 대해 각각의 예측 결과인 S_train과 S_test가 생성되고 이 값을 최종 Classifier인 Random forest와 SVM으로 학습시켜 최종 예측 결과를 출력하도록 구성하였다.

3.2 PDF File Structure

PDF 파일은 그림 2와 같이 Header, Body, Cross Reference Table, Trailer로 구성되어 있다(8).

그림. 2. PDF 파일 구조

Fig. 2. PDF File Structure

../../Resources/kiee/KIEEP.2021.70.1.044/fig2.png

표 1. PDF 파일 구조

Table 1. PDF File Structure

Name

Specification

Header

-PDF 시그니처와 문서의 버전 정보를 지정.

-PDF-x.x 형식으로 표현됨.

Body

-문서의 실질적인 내용을 포함하는 객체들이 트리구조로 구성됨.

-이미지, 글꼴, 텍스트 등이 포함됨.

Cross-

reference Table

-각 객체를 참조할 때 사용되는 테이블.

-객체의 사용 여부와 식별 번호 등이 저장됨.

Trailer

-최상위 객체(root)의 위치와 상호 참조 테이블에 대한 링크가 포함됨.

-PDF 파일의 끝을 식별하기 위해 %%EOF로 끝남.

오브젝트는 Boolean values, Integer and real numbers, Strings, Names, Arrays, Dictionary, Streams, 간접 오브젝트와 같이 다양한 종류가 있다.

표 2. 오브젝트 구조

Table 2. Object Structure

Name

Specification

Boolean values

-True, False 값을 가지는 오브젝트

Integer and Real numbers

-정수형, 실수형

Strings

-문자 스트링, 16진수 스트링으로 구분됨.

-문자 스트링의 경우 "()"로 표현하고 16진수 스트링의 경우"<>"로 표현함.

Names

-유일한 문자열, 대소문자 구분 가능

Arrays

-[] 괄호 내의 연속된 오브젝트 작성

Dictionary

-2개의 엔트리 오브젝트를 연계한 테이블

Streams

-연속적인 이진 데이터의 집단.

-길이 제한이 없음

간접 오브젝트

-다른 오브젝트는 간접 오브젝트의 고유한 식별자를 이용하여 참조 가능

다른 타입의 오브젝트는 길이의 제약이 있으므로 악성 PDF는 보통 스트림 오브젝트에 악성코드가 삽입되게 된다.

3.3 PDF Feature Extraction

PDF 파일은 단순한 문서 뷰어가 아닌 이미지, 동영상, 하이퍼링크 등이 포함될 수 있어서 객체마다 다수의 키워드를 가지고 있다.

PDF 파일의 오브젝트 내에 존재하는 특징을 추출하기 위해 PDF 분석 도구인 PDF-Parser(9)를 사용하여 42개의 feature를 추출한다.

∙ PDF 파일 내의 키워드 정보(42개)

/Font, /FontDescirptor, /Outlines,

/XObject, /Annot, /Encoding, /Metadata,

/StructTreeRoot, /URI, /AA, /ExtGState,

/OutputIntent, /ObjStm, /XRef, /F, /OpenAction,

/AcroForm, /Action, /EmbeddedFile, /Filespec,

/JS, /JavaScript, /RichMedia, /XFA, /StructElem, /Catalog,

/Pattern, /OCG, /Group, /Stream, /3D,

/Mask, /Uni-2D, /Sig, /Para, /OBJR, /Launch, /Halftone, /Cmap, /OCMD, /Page, /Pages

다음은 PDF 파일 내에 존재하는 주요한 키워드의 의미이다.

∙ /JS, /JavaScript: 자바스크립트가 포함됨.

∙ /AA, /OpenAction, /Launch: 문서가 열릴 때 자동 실행.

∙ /EmbeddedFiles: 첨부파일이 포함됨.

∙ /URI: PDF 파일에 URI 링크가 포함됨.

그림. 3. 특징 정보 시각화

Fig. 3. Visualization of Feature Information

../../Resources/kiee/KIEEP.2021.70.1.044/fig3.png

그림 3은 유의미한 특징 정보와 키워드 간의 관계를 분석하기 위해 추출한 특징의 상관관계를 판다스 모듈을 이용하여 시각화한 정보이며 표 3과 같이 특징 상관관계가 우수한 정보를 학습에 이용하였다.

표 3. 강한 상관관계를 가진 키워드

Table 3. Highly correlated keyword

Highly correlated

/Font

/FontDescirptor

/OutputIntent

/StructTreeRoot

/JS

/JavaScript

/RichMedia

/3D

/Group

/Mask

4. Experiments Result

4.1 Model Evaluation

본 논문에서는 제안하는 시스템의 성능 평가를 위한 척도로써 정밀도 PRE(Precision), 탐지율 TPR(True Positive Rate), 분류 정확도 ACC(Accuracy), F1 점수(F1-score)를 비교하며, 성능 평가를 위해 표 4의 혼동 행렬(confusion matrix)을 사용하였다.

표 4. 혼동 행렬

Table 4. Confusion matrix

Condition(실제)

Malware

Benign

TP

(True Positive)

FP

(False Positive)

Malware

Prediction

(예측)

FN

(False Negative)

TN

(True Negative)

Benign

(1)
$PRE :\dfrac{TP}{TP+FP}\times 100$

(2)
$TPR :\dfrac{TP}{TP+FN}\times 100$

(3)
$ACC :\dfrac{TP+TN}{TP+TN+FP+FN}\times 100$

(4)
$F-score :\dfrac{PRE\times TPR}{PRE+TPR}\times 2$

∙ 정밀도(Precision): 악성 PDF 파일로 예측한 파일 중에서 실제 악성 파일에 해당하는 비율로 식 (1)로 측정하였다.

∙ 재현율(Recall): 실제 악성 PDF 파일 중에서 모델이 악성 파일로 예측한 비율로 식 (2)로 측정하였다.

∙ 정확도(Accuracy): 입력된 데이터를 얼마나 정확하게 예측하는지에 대한 비율로 식 (3)으로 측정하였다.

∙ F1 점수(F1-score): 정밀도와 재현율의 조화평균으로 식 (4)로 측정하였다.

4.2 Experimental Result

본 장에서는 Random Forest와 SVM의 성능 평가 지표 결과를 제시한다. 자세한 실험 환경은 <표 5>와 같다.

표 5. 실험 환경

Table 5. Experiment Environments

구분

서브파트

세부정보

하드웨어

CPU

Intel(R)CORE i5-6200U

RAM

8GB

소프트웨어

OS

Microsoft window 10, 64bit

Python

3.7.5

Tensorflow

2.3.0

scikit-learn

0.23.2

각 모델에서 사용된 매개변수의 설정은 <표 6>과 같다.

표 6. 매개변수 설정

Table 6. Parameter Setting

기본설정

Random forest

n_estimators = 1000

criterion = 'entropy'

random_state = 42

SVM

kernel='rbf'

C=1.0

gamma='auto'

Random forest, SVM을 사용하여 학습을 진행한 결과를 기반으로 테스트를 진행한 결과는 <표 7>, <표 8>과 같다.

표 7. Random forest 성능 평가 지표 결과

Table 7. The Result of RF Performance Evaluation Standard

Precision

Recall

F1-score

ACC

benign

0.97

1.00

0.99

0.9875

malware

1.00

0.98

0.99

macro avg

0.99

0.99

0.99

weighted avg

0.99

0.99

0.99

표 8. SVM 성능 평가 지표 결과

Table 8. The Result of SVM Performance Evaluation Standard

Precision

Recall

F1-score

ACC

benign

0.97

1.00

0.98

0.9833

malware

1.00

0.97

0.98

macro avg

0.98

0.98

0.98

weighted avg

0.98

0.98

0.98

정상, 악성 파일에 대해 정밀도, 재현율, F1 점수, 정확도 평가 결과를 나타낸다. Random forest 모델의 악성 파일 재현율은 98%, 정밀도는 100%, F1 점수는 99, 분류 정확도는 98.75%의 성능을 보인다. Support Vector Machine 모델의 악성 파일의 재현율은 97%, 정밀도는 100%, F1 점수는 98, 분류 정확도는 98.33%의 성능을 보인다. 성능 평가 지표 결과로 보아 Random Forest 모델이 Support Vector Machine 모델보다 우수한 성능을 보이는 것을 확인할 수 있었다.

악성 PDF는 오브젝트에 악성코드를 삽입하는 것이 일반적이기 때문에 감염된 악성 PDF 파일을 실행시키지 않는 정적 분석을 통해 PDF의 오브젝트 내에서 추출한 키워드 42개와 빈도수를 특징으로 사용하였다. PDF 파일 안에 계층적으로 구성하고 있는 객체들이 속하는 키워드의 빈도수를 사용하여 특징을 추출하기 때문에 특정 키워드의 변화는 미비하다. 따라서 다른 특징 추출 방법들보다 악성코드의 유형 변화에도 일정 수준 이상의 성능을 보인다.

5. Conclusion

본 논문에서는 온라인을 통한 문서 전송이 활발해진 점과 최근 코로나 19와 관련된 사칭 메일에 의해 급격하게 증가한 PDF 문서를 대상으로 하는 악성코드 위협에 대응하고자 정상과 악성 PDF의 구조적 차이와 분류 알고리즘(random forest, support vector machine)을 사용한 악성 PDF 탐지 시스템을 제안하였다. 문서형 악성코드는 보통 이메일과 관련되어 실행 파일을 문서 파일로 위장해 첨부하거나 문서 파일에 자바스크립트를 첨부하는 방식으로 유포됐는데 이는 기존의 보안 프로그램들을 우회하기 쉽고, 오탐 발생 빈도가 높은 것으로 알려졌다. 실험에 사용한 각 단일 모델을 결합해 탐지한다면 더 높은 정확도를 가진 모델을 개발할 수 있을 것으로 기대한다. 이 시스템은 APT(지능형 지속 공격) 공격으로 인한 악성코드 감염 위험성을 낮출 수 있고, 신뢰 기관이나 지인으로 속여 사용자에게 수신된 피싱 메일을 탐지할 수 있으며 회사 내에서 사용하는 메신저 등에서 악성코드가 유포된 경우의 대응책으로도 사용할 수 있다. 이를 통해 산업보안, 백신 등에 사용하기 위한 활발한 연구 활동이 이뤄질 것이라 기대한다.

Acknowledgements

References

1 
Bo Yun Zhang, Xi Ai Yan, De Quan Tang, Sep, 2018, Survey on Malicious Code Intelligent Detection Techniques, Journal of Physics Conference Series, Vol. 1087, No. 6Google Search
2 
Ibrahim Ghafir, Vaclav Prenosil, Dec 2014, Advanced Persistent Threat Attack Detection: An Overview, International Journal of Advancements in Computer Networks and Its Security- IJCNS, Vol. 4, No. 6, pp. 51-54Google Search
3 
Virustotal, https://www.virustotal.com/ko/statistics/Google Search
4 
식 이, 2020, 문서형 악성코드 탐지를 위한 E2E 딥러닝과 키워드 기반 머신러닝 모델 연구, 국내석사학위논문 국민대학교 일반대학원, 서울, http://kookmin.dcollection.net/public_resource/pdf/200000282700_20210305234011.pdfGoogle Search
5 
아름 강, 영섭 정, 세령 김, 종현 김, 지영 우, 선오 최, 2018, 문서구조 및 스트림 오브젝트 분석을 통한 문서형 악성코드탐지(Detection of Malicious PDF based on Document Structure Features and Stream Objects), 한국컴퓨터정보학회논문지, Vol. 23, No. 11, pp. 85-93Google Search
6 
L. Breiman, 2001, Random Forests, Machine Learning, Vol. 45, pp. 5-32Google Search
7 
M. A. Hearst, S. T. Dumais, E. Osuna, J. Platt, B. Scholkopf, July-Aug 1998, Support vector machines, in IEEE Intelligent Systems and their Applications, Vol. 13, No. 4, pp. 18-28DOI
8 
PDF reference: Adobe Portable Document Format Version 1.4, Adobe Systems Inc. 3rd edGoogle Search
9 
PDF-parser, https://blog.didierstevens.comGoogle Search
10 
VirusSign, https://www.virussign.comGoogle Search

저자소개

윤채은 (Chae-eun Yoon)
../../Resources/kiee/KIEEP.2021.70.1.044/au1.png

상명대학교 정보보안공학과 재학

관심분야: 보안시스템, 인공지능

이메일: yoonce123@naver.com

정혜현 (Hye-hyeon Jeoung)
../../Resources/kiee/KIEEP.2021.70.1.044/au2.png

상명대학교 정보보안공학과 재학

관심분야: 악성코드, 딥러닝

이메일: 0104jhh@naver.com

서창진 (Chang-jin Seo)
../../Resources/kiee/KIEEP.2021.70.1.044/au3.png

부산대학교 멀티미디어 공학박사

경력: 센서기술연구소 연구원, 상명대학교 정보보안공학과 교수

관심분야: 인공지능, 보안시스템, 악성코드, 딥러닝

이메일: cjseo@smu.ac.kr