악성코드는 하루 평균 수만 건 이상이 발생하고 있으며, 신종 악성코드의 수는 해마다 큰 폭으로 증가하고 있다. 악성코드를 탐지하는 방법은 시그니쳐 기반, API 흐름, 문자열 등을 이용한 다양한 기법이 존재하지만 대부분의 탐지 기법들은 악성코드를 우회하는 공격 기법으로 인해 신종 악성코드를 탐지하는데 한계가 있다. 따라서 신종 악성코드를 효율적으로 탐지하기 위한 연구가 많이 진행되고 있다. 그중 시각화 기법을 통한 연구가 최근 활발하게 이루어지고 있으며, 악성코드를 직관적으로 파악할 수 있으므로 대량의 악성코드를 효율적으로 탐지하고 분석할 수 있다는 장점이 있다. 본 논문에서는 악성코드와 정상파일에서 Native API 함수를 추출하고 해당 Native API가 악성코드에서 발생하는 확률에 따라서 F-measure 실험을 통해 가중치의 합을 결정하고, 최종적으로 가중치를 이용하여 워드 클라우드에서 텍스트의 크기로 표현되는 기법을 제안한다. 그리고 실험을 통해 악성코드와 정상파일에서 사용하는 Native API의 가중치에 따라서 악성코드를 판단할 수 있음을 보인다. 제안하는 방식은 워드 클라우드를 이용하여 Native API를 시각적으로 표현함으로써 파일의 악성 유무를 판단하고, 직관적으로 악성코드의 행위를 분석할 수 있다는 장점이 있다.
악성코드는 하루 평균 수만 건 이상이 발생하고 있으며, 신종 악성코드의 수는 해마다 큰 폭으로 증가하고 있다. 악성코드를 탐지하는 방법은 시그니쳐 기반, API 흐름, 문자열 등을 이용한 다양한 기법이 존재하지만 대부분의 탐지 기법들은 악성코드를 우회하는 공격 기법으로 인해 신종 악성코드를 탐지하는데 한계가 있다. 따라서 신종 악성코드를 효율적으로 탐지하기 위한 연구가 많이 진행되고 있다. 그중 시각화 기법을 통한 연구가 최근 활발하게 이루어지고 있으며, 악성코드를 직관적으로 파악할 수 있으므로 대량의 악성코드를 효율적으로 탐지하고 분석할 수 있다는 장점이 있다. 본 논문에서는 악성코드와 정상파일에서 Native API 함수를 추출하고 해당 Native API가 악성코드에서 발생하는 확률에 따라서 F-measure 실험을 통해 가중치의 합을 결정하고, 최종적으로 가중치를 이용하여 워드 클라우드에서 텍스트의 크기로 표현되는 기법을 제안한다. 그리고 실험을 통해 악성코드와 정상파일에서 사용하는 Native API의 가중치에 따라서 악성코드를 판단할 수 있음을 보인다. 제안하는 방식은 워드 클라우드를 이용하여 Native API를 시각적으로 표현함으로써 파일의 악성 유무를 판단하고, 직관적으로 악성코드의 행위를 분석할 수 있다는 장점이 있다.
Tens of thousands of malicious codes are generated on average in a day. New types of malicious codes are surging each year. Diverse methods are used to detect such codes including those based on signature, API flow, strings, etc. But most of them are limited in detecting new malicious codes due to b...
Tens of thousands of malicious codes are generated on average in a day. New types of malicious codes are surging each year. Diverse methods are used to detect such codes including those based on signature, API flow, strings, etc. But most of them are limited in detecting new malicious codes due to bypass techniques. Therefore, a lot of researches have been performed for more efficient detection of malicious codes. Of them, visualization technique is one of the most actively researched areas these days. Since the method enables more intuitive recognition of malicious codes, it is useful in detecting and examining a large number of malicious codes efficiently. In this paper, we analyze the relationships between malicious codes and Native API functions. Also, by applying the word cloud with text mining technique, major Native APIs of malicious codes are visualized to assess their maliciousness. The proposed malicious code analysis method would be helpful in intuitively probing behaviors of malware.
Tens of thousands of malicious codes are generated on average in a day. New types of malicious codes are surging each year. Diverse methods are used to detect such codes including those based on signature, API flow, strings, etc. But most of them are limited in detecting new malicious codes due to bypass techniques. Therefore, a lot of researches have been performed for more efficient detection of malicious codes. Of them, visualization technique is one of the most actively researched areas these days. Since the method enables more intuitive recognition of malicious codes, it is useful in detecting and examining a large number of malicious codes efficiently. In this paper, we analyze the relationships between malicious codes and Native API functions. Also, by applying the word cloud with text mining technique, major Native APIs of malicious codes are visualized to assess their maliciousness. The proposed malicious code analysis method would be helpful in intuitively probing behaviors of malware.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
기존의 악성코드 분석 기법은 시그니쳐 기반, API 흐름, 문자열 등 다양한 방법이 존재하지만 직관적으로 악성코드를 판단하는 데는 한계점이 존재한다. 본 논문에서 악성 유무와 악성 행위를 직관적으로 파악하기 위한 방법으로 Native API 함수를 워드 클라우드로 표현하는 방법을 제안하였다. 실험을 통해 악성코드의 대표 Native API를 선정하고 해당 Native API가 악성코드와 정상코드에 대해 어느정도의 확률로 존재하는지를 계산하여 Score로 사용했다.
이러한 한계점을 극복하기 위해서 악성코드 탐지 및 분류에 관한 연구는 꾸준히 지속되고 있다. 본 논문에서는 정상 파일과 악성코드의 대표 Native API를 텍스트 마이닝의 워드 클라우드 기법을 적용하여 직관적으로 악성코드를 판단하고, 악성코드의 악성 행위를 예측할 수 있는 방법을 제안한다.
제안 방법
다음으로는 악성코드의 대표 Native API를 선정하고 Score를 결정하는 실험을 진행하였다. Table 2와 같이, 정상파일(N), 트로이목마(T), 웜(W)에 대해 어느 정도의 확률로 Native API가 발생하는지 확인하였다. Score는 식(1)과 같이 나타낼 수 있으며, 트로이목마의 발생 확률에서 정상파일의 발생 확률을 뺀 결과 또는 웜의 발생 확률에서 정상 파일을 뺀 결과 중에 최대값으로 구하며, 워드 클라우드에 적용할 Score는 Table 4와 같다.
다음으로는 악성코드의 대표 Native API를 선정하고 Score를 결정하는 실험을 진행하였다. Table 2와 같이, 정상파일(N), 트로이목마(T), 웜(W)에 대해 어느 정도의 확률로 Native API가 발생하는지 확인하였다.
가중치를 적용하기 위해서는 사전에 악성코드와 정상코드의 대표 Native API를 선정해야 한다. 대표 Native API를 선정하기 위한 실험 데이터 셋으로 200개 이상의 악성코드와 대중적으로 사용하는 20개 이상의 정상 파일을 대상으로 동적분석을 수행하여 Native API를 추출한다. 그리고 추출한 Native API별로 악성코드와 정상 파일에 대해 어느 정도의 확률로 존재하는지 확인한며, 확률 차이를 통해 얻은 결과는 악성코드의 대표 Native API의 Score로 사용한다.
최근 악성코드는 실제 사용하지 않는 API를 추가해 API 기반의 탐지 방법을 우회하는 노력을 하고 있다. 따라서 제안하는 분석 기법에서는 악성코드가 실제 동작하기 위해 호출하는 API만을 추출하기 위해 API 후킹 방법을 이용하여 악성코드가 사용하는 API에 대한 정보를 얻는다.
API 리스트 추출 방법에는 바이너리 실행파일 자체에서 추출하는 방법과 동작 중 호출되는 API를 후킹하는 방법이 있다[9]. 바이너리 실행파일에서 API를 추출하기 위해서는 PE 파일을 분석하여 IAT(Import Address Table)에 포함된 API 리스트를 추출한다. 프로그램 동작 중 호출되는 API를 후킹하는 방법에는 대표적으로 SSDT(System Service Descriptor Table) 후킹과 IDT(Interrupt Descriptor Table) 후킹이 있다.
따라서 악성코드가 사용하는 API를 알고 있다면 악성 행위를 보다 쉽게 파악할 수 있다. 본 논문에서 제안하는 기법에서는 악성코드별 대표 API와 일반적으로 사용하는 API에 대해 가중치를 차등적으로 적용한다. 가중치를 적용하기 위해서는 사전에 악성코드와 정상코드의 대표 Native API를 선정해야 한다.
본 논문에서는 데이터 시각화 방법인 워드 클라우드 기능을 이용하여 정형화시킨 API를 시각화 한다. 워드클라우드는 빈도수에 따라 단어의 크기를 결정한다.
본 장에서는 악성코드를 탐지하고, 악성 행위를 직관적으로 판단하기 위해 악성코드와 Native API 함수들 사이의 관계를 분석하고, 텍스트 마이닝의 시각화 방법인 워드 클라우드를 적용하여 시각적으로 표현함으로써 파일의 악성 유무를 판단 할 수 있는 악성코드 분석 기법을 제안한다. 제안하는 분석기법은 API 리스트 추출, 가중치 적용, 시각화 등 총 3단계로 구성된다.
본 논문에서 악성 유무와 악성 행위를 직관적으로 파악하기 위한 방법으로 Native API 함수를 워드 클라우드로 표현하는 방법을 제안하였다. 실험을 통해 악성코드의 대표 Native API를 선정하고 해당 Native API가 악성코드와 정상코드에 대해 어느정도의 확률로 존재하는지를 계산하여 Score로 사용했다. Score는 워드 클라우드에서 악성코드의 대표 Native API를 크기로 나타내는 요소로써, Score 점수의 합은 악성유무를 판단할 수 있는 점수를 제공한다.
이 방식에서는 실험 데이터로 1000개의 악성코드에서 공통적으로 1회 이상 호출되지만, 정상 파일에서 사용 빈도가 낮은 23개의 Native API를 추출해 ‘A','C','G','T'와 같이 Native API와 문자를 1대 1로 대응 시키는 방법을 사용하였으며, 다중 서열 정렬을 통해 같은 패밀리들의 시스템 콜 시퀀스를 추출한다.
Table 2는 [8]에서 프로세스, 포트, 레지스트리 등의 은닉 기능이 있는 Native API를 분류한 것이다. 이 방식에서는 조사한 값들을 판별함수에 넣고 사전에 정의한 취약한 API가 어느 정도로 나타는지를 계산하여 악성유무를 판별한다.
정의한 속성에 순차적으로 이진형태의 값을 부여한 후, 수치화한 데이터를 평행좌표계로 나타낸 후 악성코드의 속성을 분석하고 분류한다. 기존 악성코드 시각화 분석 기법들의 장점과 단점은 Table 1과 같다.
따라서 표시된 API를 통해 악성 유무를 판단할 수 있다. 제안하는 기법에서는 3단계로 악성코드의 API를 정형화하고 직관적으로 판단할 수 있도록 시각적으로 나타내는 방법을 사용하였다. 워드 클라우드로 나타낸 악성코드의 대표 Native API를 통해 악성 유무를 판단하고 악성 행위를 예측할 수 있다.
본 장에서는 악성코드를 탐지하고, 악성 행위를 직관적으로 판단하기 위해 악성코드와 Native API 함수들 사이의 관계를 분석하고, 텍스트 마이닝의 시각화 방법인 워드 클라우드를 적용하여 시각적으로 표현함으로써 파일의 악성 유무를 판단 할 수 있는 악성코드 분석 기법을 제안한다. 제안하는 분석기법은 API 리스트 추출, 가중치 적용, 시각화 등 총 3단계로 구성된다.
파일의 악성유무를 판단하기 위해 Table 4에서 정한 악성코드의 대표 Native API의 Score를 합산하여 나타내는 기준점수별로 임의의 파일에 대해서 탐지율과 오탐율을 구하고 F-measure 측정을 통해 악성 유무를 판단할 수 있는 기준점수를 정하는 실험을 수행하였다. 실험을 위한 데이터 셋으로 임의의 정상파일 20종류와 악성파일 20종류를 대상으로 Native API를 추출한다.
대상 데이터
파일의 악성유무를 판단하기 위해 Table 4에서 정한 악성코드의 대표 Native API의 Score를 합산하여 나타내는 기준점수별로 임의의 파일에 대해서 탐지율과 오탐율을 구하고 F-measure 측정을 통해 악성 유무를 판단할 수 있는 기준점수를 정하는 실험을 수행하였다. 실험을 위한 데이터 셋으로 임의의 정상파일 20종류와 악성파일 20종류를 대상으로 Native API를 추출한다.
악성코드의 대표 Native API를 선정하기 위한 실험 데이터는 악성코드 가운데 가장 많이 발생하는 TROJAN과 WORM만을 대상으로 하였으며 샘플은 정상파일(주요프로그램) 20종류, VX-Heaven에서 제공하는 임의의 WORM 100종류, TROJAN 100종류를 대상으로 실험을 수행하였다. 실험 환경은 VMware-Windows XP SP2에서 수행되었으며, API Monitor v2.
이론/모형
이 방식에서는 실험 데이터로 1000개의 악성코드에서 공통적으로 1회 이상 호출되지만, 정상 파일에서 사용 빈도가 낮은 23개의 Native API를 추출해 ‘A','C','G','T'와 같이 Native API와 문자를 1대 1로 대응 시키는 방법을 사용하였으며, 다중 서열 정렬을 통해 같은 패밀리들의 시스템 콜 시퀀스를 추출한다. 유사도 비교에는 Smith-Waterman 알고리즘을 사용한다.
성능/효과
7은 한글 2010을 워드 클라우드로 나타낸 것이다. 1개의 Native API가 나타났으며 30점으로 기준점수 103점 미만인 것으로 나타났다. 따라서 정상파일로 판단되었으며, VirusTotal을 통해 검사한 결과 54개의 백신에서 정상파일로 나타났다.
1개의 Native API가 나타났으며 30점으로 기준점수 103점 미만인 것으로 나타났다. 따라서 정상파일로 판단되었으며, VirusTotal을 통해 검사한 결과 54개의 백신에서 정상파일로 나타났다.
Score는 워드 클라우드에서 악성코드의 대표 Native API를 크기로 나타내는 요소로써, Score 점수의 합은 악성유무를 판단할 수 있는 점수를 제공한다. 또한 악성과 정상의 판단을 위한 점수로 F-measure 측정을 통해 기준점수를 결정하였으며, 40개의 임의의 파일들에 대해서 탐지율 100%, 오탐율 15%로 나타났다. 비교적 높은 탐지율이 나타났지만 오탐율 또한 10%미만으로 낮추기 위한 노력이 필요하다.
둘째, 문자열 및 바이트 시퀀스 패턴 탐지 기법으로, 악성코드내의 문자열 및 바이트의 시퀀스만을 파악하여 분석할 수 있으나, 소스 코드의 변화에 매우 취약하다는 단점이 있다. 셋째, API 호출 관계를 나타낸 그래프를 비교하는 방법으로, 악성코드가 사용하는 API들 사이의 호출 관계를 도식화하여 변종을 구분해낼 수 있다. 그러나 코드의 변형에 따라 그래프가 쉽게 바뀔 수 있으며 그래프의 복잡성 때문에 직관적인 판단이 어렵다는 단점이 있다.
Table 3은 악성코드와 정상 파일에서 추출한 Native API 리스트이다. 추출한 Native API는 전체 127개이며, 일부 Native API는 정상 파일 보다 악성코드에서 확연히 많이 사용한다는 결과를 볼 수 있다
후속연구
비교적 높은 탐지율이 나타났지만 오탐율 또한 10%미만으로 낮추기 위한 노력이 필요하다. 제안하는 악성코드 분석 방법은 동적 분석 단계에 API를 분석할 때 적용하기에 적합한 분석 방법으로 더 많은 실험 데이터로 가중치를 적용한다면 기존의 결과보다 오탐율을 줄일 수 있을 것으로 기대한다. 하지만 본 논문에서 실험한 내용은 소량의 악성코드 샘플 및 기 진단된 악성코드를 대상으로 수행되어서 최신 악성코드에 적용하기에는 한계가 있을 수 있다.
가장 인기있는 생성기로는 Wordle이 있으며, 공개된 웹상에서 누구나 쉽게 이용할 수 있다는 장점이 있다. 좀 더 전문적으로 나타내고자 한다면 빅데이터 분석 툴 R을 이용하여 워드 클라우드로 나타낼 수 있다.
제안하는 악성코드 분석 방법은 동적 분석 단계에 API를 분석할 때 적용하기에 적합한 분석 방법으로 더 많은 실험 데이터로 가중치를 적용한다면 기존의 결과보다 오탐율을 줄일 수 있을 것으로 기대한다. 하지만 본 논문에서 실험한 내용은 소량의 악성코드 샘플 및 기 진단된 악성코드를 대상으로 수행되어서 최신 악성코드에 적용하기에는 한계가 있을 수 있다. 따라서.
그러나 하루 평균 수십만건의 악성코드를 분석하여 신종과 변종으로 분류하는 작업은 매우 방대하여 큰 어려움이 따른다. 하지만 악성코드들의 특징을 시각적으로 표현함으로써 직관적으로 분석해 낼 수 있다면 기존의 어려움을 극복해 낼 수 있을 것이다. 따라서 악성코드의 시각화 분석 기법은 악성코드 분석가들에게 중요한 연구 주제가 되었다.
따라서. 향후 연구로 단일 API 함수가 아닌 API의 시퀀스를 이용한 시각화에 대한 연구를 진행할 계획이다.
질의응답
핵심어
질문
논문에서 추출한 답변
2014년에 발생한 대표적인 악성코드 유형으로는 무엇이 있는가?
독일의 백신 테스트 연구소인 av-test에 따르면 현재까지 발생한 악성코드는 약 3억 4천만 개에 달하며, 하루 평균 47만개의 신종/변종 악성코드가 발생되는 것으로 나타났다[1]. 2014년에 발생한 대표적인 악성코드 유형을 살펴보면 개인정보 유출형, 금전 탈취형, 파일 암호화형으로 나눌 수 있으며, 특히 컴퓨터의 모든 파일들을 강제로 암호화하고 돈을 요구하는 새로운 악성코드인 랜섬 웨어가 최근에 발생했다. 과거 PC에 집중되어 있던 악성코드는 스마트폰으로 확대되고 있다.
대부분의 악성코드를 탐지하는 방법이 가지는 한계점은?
악성코드는 하루 평균 수만 건 이상이 발생하고 있으며, 신종 악성코드의 수는 해마다 큰 폭으로 증가하고 있다. 악성코드를 탐지하는 방법은 시그니쳐 기반, API 흐름, 문자열 등을 이용한 다양한 기법이 존재하지만 대부분의 탐지 기법들은 악성코드를 우회하는 공격 기법으로 인해 신종 악성코드를 탐지하는데 한계가 있다. 따라서 신종 악성코드를 효율적으로 탐지하기 위한 연구가 많이 진행되고 있다.
악성코드의 시각화 분석 기법이 악성 코드 분석가들에게 중요한 연구 주제가 된 이유는?
수많은 악성코드를 신종과 변종으로 분류할 수 있는 방법에 대한 연구는 과거부터 현재까지 활발하게 이루어지고 있다. 그러나 하루 평균 수십만건의 악성코드를 분석하여 신종과 변종으로 분류하는 작업은 매우 방대하여 큰 어려움이 따른다. 하지만 악성코드들의 특징을 시각적으로 표현함으로써 직관적으로 분석해 낼 수 있다면 기존의 어려움을 극복해 낼 수 있을 것이다. 따라서 악성코드의 시각화 분석 기법은 악성코드 분석가들에게 중요한 연구 주제가 되었다.
참고문헌 (10)
Tae-hyung Kim, "Security, IT industry trends", boannews, 2015, www.boannews.com
Kyung-ho Son, "This year mobile security keyword, banking, payment, SMS phishing, IoT", ZDNetKorea, 2015, www.zdnet.co.kr
Pauline KOH, "System call sequence based malware analysis", pp. 4, Korea University, 2013.
E. Carrera, Gergely Erdelyi, "Digital genome mapping-advanced binary malware analysis", Virus Bulletin Conference, 2004.
won-hyuck choi, "Inference virus variants Using the Virus Genome", Monthly CyberSecurity, 2005.
Jae-Hyun Im, "Malware detection method using Visualization technique", pp. 6, Hanyang University, 2014
In-Soo Song, Dong-Hui Lee, Kui-Nam Kim, "A Study on Malicious Codes Crouping and Analysis Using Visualiztion", pp. 51-60, journal of information and security, 2010.
Tae-woo Kang, Jae-ik cho, Man-hyun Chung, Jong-sub Moon, "Malware Detection Via Hybrid Analysis for API Calls", Journal of The Korea Institute of Information Security & Cryptology, Vol. 17, No. 6, pp. 89-98, 2007
Jae-woo Park, Sung-tae Moon, Gi-Wook Son, In-Kyoung Kim, Kyoung-Soo Han, Eul-Gyu Im, ll-Gon Kim, "An Automatic Malware Classification System using String Lsit and APIs", Journal of Security Engineering, Vol. 8, No. 5, pp. 611-626, 2011.
Jae-ho Lee, Sangjin-Lee, "A Study on Unknown Malware Detection using Digital Forensic Techniques", Journal of The Korea Institute of Information Security & Cryptology, Vol. 24, No. 1, pp. 107-122, 2014. DOI: http://dx.doi.org/10.13089/JKIISC.2014.24.1.107
※ AI-Helper는 부적절한 답변을 할 수 있습니다.