최근 발생하는 다양한 악성 프로그램을 분석해 보면, 해당 악성 프로그램을 쉽게 분석할 수 없도록 하기 위해 다양한 분석 방해 기법들이 적용되고 있다. 그러나, 분석 방해 기법들이 적용될수록, 악성프로그램의 PE파일 헤더에는 정상적인 일반 PE파일의 헤더와는 다른 특징이 더 많이 나타난다. 본 논문에서는 이를 이용하여 악성 프로그램을 탐지할 수 있는 방법을 제안하고자 한다. 이를 위해, PE파일 헤더의 특징을 표현할 수 있는 특징 벡터(Characteristic Vector, CV)를 정의하고, 정상 실행 파일의 특징 벡터의 평균(ACVN)과 악성 실행 파일의 특징 벡터의 평균(ACVM)을 사전 학습을 통해 추출한다. 이후, 임의 파일의 특징 벡터와 ACVN, ACVM간의 Weighted Euclidean Distance(WED)를 계산하고, 이를 기반으로 해당 파일이 정상파일인지 혹은 악성 실행 파일인지를 판단하는 기술을 제안한다.
최근 발생하는 다양한 악성 프로그램을 분석해 보면, 해당 악성 프로그램을 쉽게 분석할 수 없도록 하기 위해 다양한 분석 방해 기법들이 적용되고 있다. 그러나, 분석 방해 기법들이 적용될수록, 악성프로그램의 PE파일 헤더에는 정상적인 일반 PE파일의 헤더와는 다른 특징이 더 많이 나타난다. 본 논문에서는 이를 이용하여 악성 프로그램을 탐지할 수 있는 방법을 제안하고자 한다. 이를 위해, PE파일 헤더의 특징을 표현할 수 있는 특징 벡터(Characteristic Vector, CV)를 정의하고, 정상 실행 파일의 특징 벡터의 평균(ACVN)과 악성 실행 파일의 특징 벡터의 평균(ACVM)을 사전 학습을 통해 추출한다. 이후, 임의 파일의 특징 벡터와 ACVN, ACVM간의 Weighted Euclidean Distance(WED)를 계산하고, 이를 기반으로 해당 파일이 정상파일인지 혹은 악성 실행 파일인지를 판단하는 기술을 제안한다.
In order not to make the malwares be easily analyzed, the hackers apply various anti-reversing and obfuscation techniques to the malwares. However, as the more anti-revering techniques are applied to the malwares the more abnormal characteristics in the PE file's header which are not shown in the no...
In order not to make the malwares be easily analyzed, the hackers apply various anti-reversing and obfuscation techniques to the malwares. However, as the more anti-revering techniques are applied to the malwares the more abnormal characteristics in the PE file's header which are not shown in the normal PE file, could be observed. In this letter, a new malware detection technique is proposed based on this observation. For the malware detection, we define the Characteristics Vector(CV) which can represent the characteristics of a PE file's header. In the learning phase, we calculate the average CV(ACV) of malwares(ACVM) and normal files(ACVN). To detect the malwares we calculate the 2 Weighted Euclidean Distances(WEDs) from a file's CV to ACVs and they are used to decide whether the file is a malware or not. The proposed technique is very fast and detection rate is fairly high, so it could be applied to the network based attack detection and prevention devices. Moreover, this technique is could be used to detect the unknown malwares because it does not utilize a signature but the malware's characteristics.
In order not to make the malwares be easily analyzed, the hackers apply various anti-reversing and obfuscation techniques to the malwares. However, as the more anti-revering techniques are applied to the malwares the more abnormal characteristics in the PE file's header which are not shown in the normal PE file, could be observed. In this letter, a new malware detection technique is proposed based on this observation. For the malware detection, we define the Characteristics Vector(CV) which can represent the characteristics of a PE file's header. In the learning phase, we calculate the average CV(ACV) of malwares(ACVM) and normal files(ACVN). To detect the malwares we calculate the 2 Weighted Euclidean Distances(WEDs) from a file's CV to ACVs and they are used to decide whether the file is a malware or not. The proposed technique is very fast and detection rate is fairly high, so it could be applied to the network based attack detection and prevention devices. Moreover, this technique is could be used to detect the unknown malwares because it does not utilize a signature but the malware's characteristics.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
다시 말하면, 바이러스 자체를 암호화함으로써 패턴 매칭 기법에서 사용하는 특정 패턴을 나타내지 않는다. 그러므로 저자는 이러한 문제를 다루기 위한 기술과 툴을 제안하였다.
본 논문에서는 실행 PE파일 헤더의 특징을 표현하기 위해 특징 벡터(Characteristic Vector, CV)를 정의한다. 그리고, 정상 프로그램과 악성 프로그램 샘플을 이용하여 사전에 해당 프로그램의 특징벡터 평균(Average of CV, ACV)을 도출하고, 도출된 ACV와 임의 파일 F의 특징 벡터(CVF) 간의 Weighted Euclidean Distance(WED, d(ACV, CVF))[6]를 계산함으로써 이를 기반으로 악성 파일 여부를 판단한다.
그러나 이와 같은 분석 방해기법이 적용됨에 따라 악성 프로그램의 PE파일[8] 헤더에는 일반 정상 파일의 헤더와는 다른 특징이 나타나게 된다. 본 논문에서는 이 특징의 차이를 이용하여 악성 프로그램을 탐지하는 방법을 제안한다.
제안 방법
본 논문에서 사용하는 특징 벡터 CV는 다음과 같이 도출되었다. 먼저, 1) PE헤더에서 얻을 수 있는 다양한 필드 값을 추출하고, 2) 해당 필드 값들의 평균값을 정상 PE파일과 악성 프로그램 PE파일별로 도출하고, 3) 추출된 두 평균값들을 비교하여 그 차이가 큰 경우, 이를 CV의 값으로 포함시켰다. 이때 차이가 크다는 것은 다음 두 경우를 의미한다.
각 프로그램 수행 시 시스템에서 발생할 감사 데이터에 대한 명세를 기술할 수 있는 언어인 ASL(Auditing Specification Language)을 제안하고 시스템에서 수행할 각 프로그램에 대해 미리 기술된 감사 명세와 실제 시스템에서 발생하는 감사 데이터 간의 비교를 통한 이상 여부를 판단할 수 있는 방법을 제안하였다. 우선 시스템에서 실행될 프로그램에 대해서 ASL로 명세를 작성한 후 ASL 코드는 C++ 클래스로 컴파일된다.
본 논문에서는 실행 PE파일 헤더의 특징을 표현하기 위해 특징 벡터(Characteristic Vector, CV)를 정의한다. 그리고, 정상 프로그램과 악성 프로그램 샘플을 이용하여 사전에 해당 프로그램의 특징벡터 평균(Average of CV, ACV)을 도출하고, 도출된 ACV와 임의 파일 F의 특징 벡터(CVF) 간의 Weighted Euclidean Distance(WED, d(ACV, CVF))[6]를 계산함으로써 이를 기반으로 악성 파일 여부를 판단한다.
주어진 임의 파일 F에 대하여 해당 파일의 악성 여부를 판단하기 위해서, 본 논문에서는 Weighted Euclidean Distance(WED)를 사용한다. 다시 말하면, 주어진 임의 파일 F에서 추출한 특징 벡터(CVF)와 사전 학습을 통해 획득한 정상 파일 및 바이러스 파일의 평균 특징 벡터ACVN과 ACVM 간의 WED를 구하여 악성 파일 여부를 판단한다.
본 논문에서는 PE파일 헤더의 각 필드의 값들이 정상 PE파일인 경우 어떤 값을 갖고, 분석 방해기법이 적용된 악성 프로그램의 경우에 어떤 값들을 갖는지를 분석하여 이를 이용하여 해당 PE 파일의 악성여부를 판단하게 된다.
본 논문에서는 분석방해 기법이 적용된 악성파일 탐지를 위해 PE파일 헤더를 분석하여, PE헤더 특징벡터를 정의하고, 학습을 통해 획득한 ACV를 이용하여 임의 파일의 CV와 WED (Weighted Euclidean distance)를 구하고, 이를 바탕으로 악성 여부를 판단하는 기법을 제안하였다.
이때 임의로 선정한 정상파일 100개와 악성 파일 100개를 이용하여, 악성 여부 판단의 기준이 되는 ACVN(100)과 ACVM(100)을 도출하였다. 그 결과는 (그림 3)과 같다.
이후, ACVN과 ACVM을 이용하여 나머지 489개의 정상파일과, 846개의 악성 프로그램에 대해 악성 여부 판단 결과를 측정하였다. 실험에 사용한 파일 및 파라미터는 <표 2>와 같다.
특정 파일 F의 악성 여부를 판단하기 위해서는 2개의 WED-d(CVF, ACVN)와 d(CVF, ACVM)-를 계산하고, 그 결과, 거리가 가까운 것을 해당 파일의 탐지 결과로 제시한다. 즉, 정상 파일에 대한 ACV와의 거리보다 악성 파일에 대한 ACV와 거리가 가깝다면, 해당 파일 F를 악성 파일로 판단하는 것이다.
대상 데이터
상기 두 경우에 해당하는 특징벡터 원소를 총 10개를 선정하였고, 이를 특정 파일 F에 대해 표현하면, 식 (1)과 같이 표현된다.
실험용 파일은, 정상 파일은 마이크로소프트사의 윈도우 XP의 “System32” 및 “Program Files” 디렉토리 내에 존재하는 파일과, 인터넷 상에서 수집한 589개 파일을 대상으로 하였으며, 악성 파일은 (주)안철수연구소에서 획득한 악성파일 946개를 대상으로 수행하였다.
총 846개의 악성 파일에 대하여 72개를 제외한 774개의 파일을 악성으로 판단하였으며, 489개의 정상 파일 중 10개를 제외한 479개의 파일을 정상으로 판단하였다. 이는 91.
이론/모형
주어진 임의 파일 F에 대하여 해당 파일의 악성 여부를 판단하기 위해서, 본 논문에서는 Weighted Euclidean Distance(WED)를 사용한다. 다시 말하면, 주어진 임의 파일 F에서 추출한 특징 벡터(CVF)와 사전 학습을 통해 획득한 정상 파일 및 바이러스 파일의 평균 특징 벡터ACVN과 ACVM 간의 WED를 구하여 악성 파일 여부를 판단한다.
성능/효과
시그니처와 일치하면 모바일 어플리케이션은 악성코드로 간주된다. 실험 결과에 따르면 제안된 검출 방법을 통해 600개의 바이러스/웜 샘플을 탐지할 수 있었다.
제안된 기법을 이용한 실험 결과 낮은 오탐율과 높은 탐지 확률로 분석방해 기법이 적용된 악성 파일을 탐지할 수 있음을 확인하였다.
이 방법은 1999 MIT 링컨 랩 데이터를 바탕으로 진행된 평가 결과 60%의 탐지율과 1% 이하의 오탐율을 보였다. 즉 해당 데이터의 201개 공격 중에서 97개의 공격이 제안된 방법에 의해 탐지되어야만 하나 시험결과 57개의 공격에 대해 탐지가 가능하였다.
후속연구
앞으로는 제안된 기법의 성능분석과 오탐 및 미탐의 원인을 분석하여 탐지성능 향상을 위한 연구가 시도될 것이며, 악성파일과 정상파일간의 거리 계산을 Euclidean distance가 아닌 다른 클러스터링 알고리즘들을 이용하여 보다 효율적인 방안을 개발할 계획이다.
질의응답
핵심어
질문
논문에서 추출한 답변
이상상태기반탐지 방법이란 무엇인가?
악성 프로그램(Malware)을 탐지하기 위한 기법은 크게 이상상태기반탐지(anomaly-based dtection)와 시그니처기반탐지(signature-based dtection)로 분류할 수 있다. 이상상태기반탐지 방법은 특정 프로그램의 악성 여부를 판단하기 위해 그 프로그램의 정상적인 동작들에 대한 지식을 이용하는 것이다. 이 유형 중 특별한 방법으로는 명세 기반탐지(specification-based detection) 방법이 있는데, 이는 프로그램 수행에 있어 유효한 동작에 대한 명세나 조건을 이용하는 것이다.
명세 기반탐지 방법은 무엇을 이용하여 악성 여부를 판단하는가?
이상상태기반탐지 방법은 특정 프로그램의 악성 여부를 판단하기 위해 그 프로그램의 정상적인 동작들에 대한 지식을 이용하는 것이다. 이 유형 중 특별한 방법으로는 명세 기반탐지(specification-based detection) 방법이 있는데, 이는 프로그램 수행에 있어 유효한 동작에 대한 명세나 조건을 이용하는 것이다. 시그니처기반탐지 방법은 특정 프로그램이 위험한 동작을 수행할 경우(혹은 하기 위해) 나타나는 특징을 이용하여 탐지하는 방법이다.
본 논문에서 사용하는 특징 벡터 CV는 어떻게 도출되었는가?
본 논문에서 사용하는 특징 벡터 CV는 다음과 같이 도출되었다. 먼저, 1) PE헤더에서 얻을 수 있는 다양한 필드 값을 추출하고, 2) 해당 필드 값들의 평균값을 정상 PE파일과 악성 프로그램 PE파일별로 도출하고, 3) 추출된 두 평균값들을 비교하여 그 차이가 큰 경우, 이를 CV의 값으로 포함시켰다. 이때 차이가 크다는 것은 다음 두 경우를 의미한다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.