KR20090055669A - 악성코드 탐지장치 및 방법 - Google Patents

악성코드 탐지장치 및 방법 Download PDF

Info

Publication number
KR20090055669A
KR20090055669A KR1020070122412A KR20070122412A KR20090055669A KR 20090055669 A KR20090055669 A KR 20090055669A KR 1020070122412 A KR1020070122412 A KR 1020070122412A KR 20070122412 A KR20070122412 A KR 20070122412A KR 20090055669 A KR20090055669 A KR 20090055669A
Authority
KR
South Korea
Prior art keywords
executable file
layer
malicious
normal
malicious code
Prior art date
Application number
KR1020070122412A
Other languages
English (en)
Other versions
KR100942798B1 (ko
Inventor
김병구
윤승용
최양서
김대원
김익균
오진태
장종수
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070122412A priority Critical patent/KR100942798B1/ko
Publication of KR20090055669A publication Critical patent/KR20090055669A/ko
Application granted granted Critical
Publication of KR100942798B1 publication Critical patent/KR100942798B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 악성코드 탐지장치 및 방법에 관한 것으로서, 실행파일을 분석하여 상기 실행파일의 각 필드영역 별로 계층을 분류하고, 각 계층의 필드영역에 대한 바이트 분포를 측정하는 실행파일 분석기 및 상기 실행파일 분석기를 통해 각 계층별로 분류된 필드영역의 바이트 분포에 기초하여 적어도 하나의 악성코드를 탐지하는 악성코드 분류기를 포함한다. 본 발명에 따르면, 실행파일을 여러 개의 필드영역으로 계층화하고, 이들 각 계층에 대해 클러스터링 분석 기법을 적용하여 검사할 실행파일의 바이트 분포 유사도를 측정함으로써, 악성코드를 검출하게 됨에 따라 기존에 알려진 악성코드뿐만 아니라, 새로운 형태의 알려지지 않은 악성코드들에 대해서도 대응할 수 있는 이점이 있다.
악성코드, 실행파일, 클러스터링 중심값, 바이트 분포

Description

악성코드 탐지장치 및 방법{ Apparatus and method for detecting a virus code }
본 발명은 악성코드 탐지장치 및 방법에 관한 것으로, 특히 실행 파일을 여러 특징 계층으로 나누고, 이들 각각에 대한 클러스터링 분석 기법을 적용함으로써, 악성코드를 검출할 수 있는 악성코드 탐지장치 및 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-042-02, 과제명: Network 위협의 Zero-Day Attack 대응을 위한 실시간 공격 Signature 생성 및 관리 기술개발].
컴퓨터 바이러스는 파일 감염을 목적으로 하는 바이러스로부터 네트워크를 통한 급속 확산을 시도하는 웜, 그리고 데이터 유출을 위한 트로이 목마에 이르기까지 다양한 모습으로 발전하였다. 이러한 악성코드의 위협은 해가 갈수록 증가 추세를 이루고 있으며, 기술적인 면에서도 더욱더 위험성을 더해 가고 있어 컴퓨터 사용자들을 불안하게 만들고 있는 것이 사실이다. 때문에, 새로운 악성코드의 위협들로부터 컴퓨터 시스템을 보호하기 위한 다양한 대응 방안들이 활발하게 연구되고 있다.
현재까지 알려진 안티 바이러스 소프트웨어의 대부분은 파일 기반의 진단법을 사용하고 있으며, 이는 특정 형식의 시그니처를 사용하는 방식으로 시그니처 기반 또는 스트링 검사 방식이라 불린다. 이러한 시그니처 기반의 진단법은 악성코드로 분류된 파일의 특정 부분 또는 고유한 부분만을 검사 대상으로 삼기 때문에, 오탐지 및 미탐지를 최소화할 수 있다. 또한, 파일 검사 시에 파일들의 특정 부분들만을 비교함으로써 빠른 스캐닝이 가능하나, 기존에 알려진 악성코드에 대해서만 대응을 할 수 있으므로, 새로운 형태의 알려지지 않은 악성코드에 대해서는 대응할 수 없다는 단점을 갖는다.
이러한 시그니처 기반의 진단법이 갖는 한계를 극복하고자 개발된 탐지 기법 중 하나가 휴리스틱 탐지 기법이다. 이는 특정 폴더 파일 쓰기 및 특정 레지스트리 변경과 같은 일반적인 악성 코드의 명령어(instruction)들을 휴리스틱 시그니처로 지정하고, 이를 검사 대상 파일의 명령어들과 비교하는 방식으로써, 실제 가상 운영체제에서 실행하는 방식과 실행 없이 파일 자체를 스캐닝하여 비교하는 방식으로 구분된다. 이외에도, 악성코드 파일들의 공통된 코드 영역(Code Section)에 대한 OPcode(Operation Code) 명령어 비교 방식이 사용되기도 한다. 그러나, 이들 방식은 알려지지 않은 악성코드에 대한 탐지까지 가능하다고는 하나 실제 파일 내의 명령어들에 대한 정보 수집이 선행되어야 하기 때문에, 수행상의 시스템 부하가 초래되기 쉽다. 따라서, 알려지지 않은 악성코드에 대한 효율적인 탐지를 수행하면서, 수행상의 부하를 최소화하는 분석 기법이 요구된다.
본 발명의 목적은, 실행 파일을 여러 특징 계층으로 나누고, 이들 각각에 대해 클러스터링 분석 기법을 적용함으로써, 알려진 악성코드뿐 아니라 알려지지 않은 악성코드까지도 검출할 수 있도록 하는 악성코드 탐지장치 및 방법을 제공함에 있다.
상기한 과제를 해결하기 위한 본 발명에 따른 악성코드 탐지장치는 실행파일을 분석하여 상기 실행파일의 각 필드영역 별로 계층을 분류하고, 각 계층의 필드영역에 대한 바이트 분포를 측정하는 실행파일 분석기 및 상기 실행파일 분석기를 통해 각 계층별로 분류된 필드영역의 바이트 분포에 기초하여 적어도 하나의 악성코드를 탐지하는 악성코드 분류기를 포함한다.
상기 실행파일 분석기는 상기 실행파일 내의 각 필드영역에 대한 시작점과 그 크기를 감지하고, 상기 필드 영역에 대한 시작점과 크기에 기초하여 상기 실행파일을 각 계층별로 분류한다.
또한, 상기 악성코드 분류기를 통해 분류된 정상 실행파일이 저장되는 정상 시행파일 저장부 및 적어도 하나의 상기 악성코드를 포함하는 악성 실행파일이 저장되는 악성 실행파일 저장부를 구비한 데이터베이스를 더 포함한다.
한편, 상기 실행파일 분석기는 상기 데이터베이스에 저장된 적어도 하나의 상기 정상 실행파일 및 상기 악성 실행파일을 이용하여 상기 실행파일의 악성코드 를 탐지하기 위한 비교값을 산출하며. 상기 정상 실행파일 및 상기 악성 실행파일의 바이트 분포를 측정하여 각 계층별 클러스터링 중심값을 산출하는 클러스터링 연산부를 더 포함한다.
또한, 상기 악성코드 분류기는 상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값을 비교하여, 상기 악성코드에 대한 유사성을 판단하며, 이때 상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값 사이의 거리를 측정하여 상기 악성코드에 대한 유사성을 판단한다.
또한, 상기 악성코드 분류기는 상기 실행파일의 각 계층별로 분류된 필드영역 중 적어도 어느 하나의 계층에 대해 상기 악성코드가 탐지되면, 상기 실행파일을 악성 실행파일로 분류한다.
한편, 본 발명에 따른 악성코드 탐지방법은 실행파일을 분석하여 상기 실행파일의 각 필드영역 별로 계층을 분류하는 단계, 상기 각 계층별로 분류된 필드영역의 바이트 분포를 측정하여, 각 계층별로 악성코드에 대한 유사성을 비교하는 단계 및 상기 각 계층별로 분류된 필드영역 중 적어도 어느 하나의 계층에 대해 상기 악성코드와 유사한 것으로 판단되면, 상기 실행파일을 악성 실행파일로 분류하는 단계를 포함한다.
상기 계층을 분류하는 단계는 상기 실행파일을 분석하여 상기 실행파일 내의 필드영역에 대한 시작점과 크기에 기초하여 상기 실행파일을 각 계층별로 분류한 다.
한편, 기 저장된 적어도 하나의 정상 실행파일 및 악성 실행파일의 바이트 분포를 측정하여 각 계층별 클러스터링 중심값을 산출하는 단계를 더 포함한다.
또한, 상기 유사성을 비교하는 단계는 상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값을 비교하는 단계를 포함하며, 상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값 사이의 거리를 측정하여 비교한다.
또한, 어느 하나의 계층에 대한 필드영역의 바이트 분포값이, 상기 정상 실행파일의 클러스터링 중심값 보다 상기 악성 실행파일의 클러스터링 중심값과 가까운 경우, 상기 악성코드와 유사한 것으로 판단한다.
본 발명에 따른 악성코드 탐지장치 및 방법은, 실행파일을 여러 개의 필드영역으로 계층화하고, 이들 각 계층에 대해 클러스터링 분석 기법을 적용하여 검사할 실행파일의 바이트 분포 유사도를 측정함으로써, 악성코드를 검출하게 됨에 따라 기존에 알려진 악성코드뿐만 아니라, 새로운 형태의 알려지지 않은 악성코드들에 대해서도 대응할 수 있는 이점이 있다.
뿐만 아니라, 실행파일에 대한 복잡한 명령어 분석 없이, 학습된 중심 값과 바이트 분포 측정만으로 손쉽게 악성코드 여부를 판단함으로써, 시스템 수행상의 부하를 최소화할 수 있다. 또한, 여러 계층들에 대한 클러스터링 기법을 적용함으 로써, 어느 부분이 변형된 부분인지를 보다 정확하게 판단해 줄 수 있는 이점이 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명하면 다음과 같다.
도 1은 본 발명의 실시예에 따른 악성코드 탐지 장치에 대한 구성이 도시된 도이다. 도 1을 참조하면, 실행파일이 저장되는 데이터베이스, 데이터베이스에 저장된 실행파일을 계층 별로 분석하는 실행파일 분석기(10), 실행파일 분석기(10)를 통해 계층별로 분석된 데이터에 기초하여 악성코드를 포함하는 악성 실행파일을 분류하는 악성코드 분류기(20)를 포함한다.
여기서, 데이터베이스(30)는 악성코드 분류기(20)를 통해 분류된 악성코드를 갖는 악성 실행파일이 저장되는 악성 실행파일 저장부(34)와, 실행파일 중 악성 실행파일을 제외한 정상 실행파일이 저장되는 정상 실행파일 저장부(32)를 포함한다.
또한, 실행파일 분석기(10)는 정상 실행파일 저장부(32)에 저장된 정상 실행파일 모집단과 악성 실행파일 저장부(34)에 저장된 악성 실행파일 모집단을 각각 계층별로 분류하여, 실행파일에 대한 각 계층별 바이트 분포값을 감지하는 실행파일 분석부(12)와, 실행파일 분석부(12)를 통해 감지된 각 계층별 바이트 분포값에 클러스터링 함수를 적용하여, 각 계층별 바이트 분포에 따른 클러스터링 중심값을 산출하는 클러스터링 연산부(14)를 포함한다. 여기서, 클러스터링 함수는 K-means 알고리즘, K-median 알고리즘 등과 같이 일반적인 클러스터링 함수를 사용하며, 다중 중심값이 아닌 단일 중심값을 사용한다.
이때, 실행파일 분석부(12)는 정상 실행파일 집단과 악성 실행파일 집단에 대한 계층별 바이트 분포를 각각 감지한다. 또한, 클러스터링 연산부(14)는 실행파일 분석부(12)를 통해 감지된 정상 실행파일 집단의 계층별 바이트 분포와, 악성 실행파일 집단의 계층별 바이트 분포에 대한 클러스터링 중심값을 각각 산출한다. 따라서, 클러스터링 연산부(14)를 거치면 각 계층별로 정상 실행파일의 바이트 분포에 따른 클러스터링 중심값과, 악성 실행파일의 바이트 분포에 따른 클러스터링 중심값을 얻게 된다. 이때, 얻어진 각 계층별 클러스터링 중심값은 새로운 실행파일이 악성코드를 포함하는지 비교할 경우 비교값으로 사용된다.
한편, 실행파일 분석부(12)는 새로운 실행파일이 입력되면, 입력된 실행파일을 각 계층별로 분류하여, 각 계층별 바이트 분포를 감지한다. 여기서, 감지된 새로운 실행파일의 각 계층별 바이트 분포는 악성코드 분류기(20)로 전달된다.
악성코드 분류기(20)는 클러스터링 연산부(14)를 통해 산출된 정상 실행파일의 계층별 클러스터링 중심값과, 악성 실행파일의 계층별 클러스터링 중심값을 기준으로하여, 새로운 실행파일에 대한 바이트 분포값을 비교하는 비교부(22)와, 비교부(22)를 통해 측정된 데이터에 기초하여 실행파일 중 악성코드를 포함하는 악성 실행파일을 탐지하는 악성코드 탐지부(24)를 포함한다.
여기서, 비교부(22)는 정상 실행파일 및 악성 실행파일의 계층별 클러스터링 중심값과 새로운 실행파일의 바이트 분포값의 거리를 비교한다. 이때, 악성코드 탐지부(24)는 새로운 실행파일의 바이트 분포값이 정상 실행파일의 클러스터링 중심값에 가까운 경우 정상 실행파일로 판단하고, 새로운 실행파일의 바이트 분포값이 악성 실행파일의 클러스터링 중심값에 가까운 경우에는 악성 실행파일로 판단한다.
정상 실행파일 또는 악성 실행파일로 분류된 실행파일은 데이터베이스(30)의 정상 실행파일 저장부(32) 또는 악성 실행파일 저장부(34)에 저장되어, 다음 입력된 새로운 실행파일에 대한 비교집단으로 활용될 수 있다. 따라서, 본 발명은 실행파일의 명령어 분석 없이, 여러 구분 계층들에 대한 간단한 클러스터링 기법을 적용함으로써, 보다 정확하고 손쉽게 악성코드를 탐지하는 것이 가능하다.
도 2는 본 발명의 일실시예에 따른 악성코드 탐지 장치의 실행파일에 대한 각 계층별 영역을 도시한 예시도로서, 실행파일에 대한 계층화 방식을 개략적으로 도시한 개념도이다. 도 2를 참조하면, 실행파일을 n개의 계층으로 분류하였다. 이때, 각 계층은 실행파일의 종류(예를 들어, 윈도우 실행파일, 리눅스용 실행파일)에 따라 여러 계층으로 구분될 수 있으며, 각 계층은 해당 계층의 시작점(P)과 영역별 크기(W)를 갖는다. 여기서, 시작점(P)은 지정된 실행파일 내의 오프셋일 수도 있으며, 해당 실행파일 고유의 구조체에 대한 시작점일 수도 있다.
도 3 및 도 4는 도 2의 실시예에 대한 구체적인 예를 도시한 도로서, 윈도우 PE 실행파일에 적용한 예시도이다.
도 3을 참조하면, 윈도우 PE 파일 형식은 윈도우 상에서 수행 가능한 실행파일 형식을 나타내며, 형식의 특징에 따라 크게 아래의 4개 영역으로 구분할 수 있다. 먼저, DOS 헤더 영역은 이전 DOS 실행환경에 사용되었던 부분으로써, 현재는 PE 헤더의 시작점에 대한 정보를 가지며, 이를 제외한 나머지 부분은 악성코드 제작자에 의해서 쉽게 변형 가능하게 된다. PE 헤더 영역은 PE 실행파일의 실행과 관 련된 정보를 포함하며, 이 또한 그 외 필드들에 대해서는 쉽게 변형 가능하게 된다. 섹션 테이블(section table) 영역은 PE 실행파일을 구성하는 각 섹션 영역들에 대한 정보를 담고 있으며, 각 섹션 영역의 변형 정보들 또한 이에 반영된다. 섹션 영역은 실제 실행파일의 코드 및 데이터들이 존재하는 영역으로, 의도적인 정보 변경이나 암호화 등에 의해서 변형될 수 있다. 따라서, 실행파일이 이와 같은 영역으로 구분됨에 따라, PE 실행파일에 대한 계층화를 수행할 수 있다.
도 4는 도 3의 각 영역 구분에 따라 윈도우 PE 실행파일을 계층화한 예시도이다. 도 4를 참조하면, 실행파일 분석부(12)는 윈도우 PE 실행파일을 각 계층별로 분류하게 되는데, 이때 각 계층은 DOS 헤더 영역(W1), PE 헤더 영역(W2), 섹션 테이블 영역(W3) 및 섹션 영역(W4)으로 분류된다. 실행파일 분석부(12)는 윈도우 PE 실행파일을 파싱(parsing) 함으로써 각 계층의 시작점을 감지하게 된다. 여기서, 각 계층의 시작점은 각 영역에 대한 헤더의 시작점이 된다. 또한, 각 계층의 크기는 모집단에 대한 비교 분석을 통해서, 정상 실행파일과 악성 실행파일을 가장 잘 구분해 줄 수 있는 크기로 정한다. 이때, 각 계층의 영역은 다른 계층의 영역을 포함하지 않도록 한다.
이러한 기준을 토대로 모집단을 비교 분석한 결과, 각 계층별 크기로는 도 4에 도시된 바와 같이, DOS 헤더 영역이 120Bytes, PE 헤더 영역은 200Bytes, 섹션 테이블 영역은 160Bytes, 섹션 영역은 350Bytes로 도출되었다.
도 5 및 도 6은 본 발명의 일실시예에 따른 악성코드 탐지장치의 동작 설명에 참조되는 도이다.
먼저, 도 5는 정상 실행파일 모집단과 악성 실행파일 모집단에 대한 클러스터링 중심값을 산출하는 동작 흐름을 개략적으로 도시한 예시도이다. 도 5를 참조하면, 정상 실행파일 모집단과 악성 실행파일 모집단을 수집하고 이를 각각 '가'와 '나'라 하자. 이때, 실행파일 분석부(12)는 정상 실행파일 모집단 '가'와 악성 실행파일 모집단 '나'를 분석하여 각 계층에 대한 시작점(P)과 그 영역의 크기(T)가 지정되면, 시작점(P)과 그 크기(T)에 따라 각각 n개의 계층으로 분류한다. 이때, 각 계층별 정상 실행파일 모집단(가)의 각 계층별 실행파일에 대한 바이트 분포값을 'An', 악성 실행파일 모집단(나)의 각 계층별 실행파일에 대한 바이트 분포값을 'Bn', 정상 실행파일 모집단(가)의 클러스터링 중심값을 'an', 악성 실행파일 모집단(나)의 클러스터링 중심값을 'bn'이라 가정한다. 여기서, 바이트 분포값 'An', 'Bn'는 실행파일 모집단(가, 나)에 속한 실행파일 각각에 대한 바이트 분포값이기 때문에, 이 또한 모집단에 속한 실행파일의 개수에 해당하는 바이트 분포값의 집단이다.
즉, 실행파일 분석부(12)는 정상 실행파일 모집단(가)에 대해 제1 계층부터 제n 계층까지의 계층별 바이트 분포값 'A1' 내지 'An'을 감지한다. 또한, 악성 실행파일 모집단(나)에 대해 제1 계층부터 제n 계층까지의 계층별 바이트 분포값 'B1' 내지 'Bn'을 감지한다. 이때, 클러스터링 연산부(14)는 제1 계층에서 감지된 바이트 분포값 'A1', 'B1'에 클러스터링 함수를 적용하여, 클러스터링 중심값 'a1', 'b1'을 각각 산출한다. 물론, 각각 n개의 계층으로 분류된 영역은 앞서 설명한 제1 계층에서와 동일한 수행 과정을 거쳐, 각 계층별 클러스터링 중심값 'an', 'bn' 을 산출하게 된다.
도 6은 도 5에서 산출된 클러스터링 중심값을 이용하여 검사할 실행파일에 대해 악성코드 포함 여부를 판단하는 동작 흐름을 개략적으로 도시한 예시도이다. 도 6을 참조하면, 검사할 실행파일을 'F'라 하면, 실행파일 분석부(12)는 검사할 실행파일(F)를 분석하여, 각 계층에 대한 시작점(P)과 그 영역의 크기(T)에 따라 각각 n개의 계층으로 분류한다. 또한, 실행파일 분석부(12)는 제1 계층부터 제n 계층까지 분류된 각 계층 영역에 대한 바이트 분포값 'f1' 내지 'fn'을 측정한다. 이때, 측정된 검사할 실행파일 'F'에 대한 바이트 분포값 'f1' 내지 'fn'은 악성코드 분류기(20)의 비교부(22)로 인가된다.
비교부(22)는 도 5에서 산출된 정상 실행파일 모집단(가)의 클러스터링 중심값 'a1' 내지 'an' 및 악성 실행파일 모집단(나)의 클러스터링 중심값 'b1' 내지 'bn'과, 검사할 실행파일 'F'에 대한 바이트 분포값 'f1' 내지 'fn'을 각각 비교한다. 다시 말해, 각 계층별로 'fn'과 'an'을 비교하고, 또한 'fn'과 'bn'을 비교한다. 악성코드 탐지부(24)는 비교부(22)의 비교 결과에 따라 검사할 실행파일 'F'와 정상 실행파일 모집단(가) 및 악성 실행파일 모집단(나)에 대한 유사성을 판단하게 된다.
만일, 모든 계층에서 해당 계층의 정상 실행파일 중심 값 'an'과 검사할 실행파일의 바이트 분포값 'fn'이 유사하다고 판단되면, 이는 정상 실행파일로 판정한다. 한편, 제1 계층부터 제n 계층까지 중 어느 한 계층이라도 악성 실행파일 중심 값 'bn'과 검사할 실행파일의 바이트 분포값 'fn'이 유사하다고 판단되면, 이는 악성 실행파일로 판정한다. 이때, 유사성 판단은, 거리함수를 이용하여 'an'과 'fn' 사이의 거리(La) 및 'bn'과 'fn' 사이의 거리(Lb)를 각각 측정하고, 'an'과 'fn' 사이의 거리(La) 보다 'bn'과 'fn' 사이의 거리(Lb)가 더 가까운 경우에 악성 실행파일 중심값 'bn'과 유사하다고 판단한다. 여기서, 거리 함수는 마하라노비스 거리(Mahalanobis distance) 알고리즘, 맨하탄 거리(Manhattan distance) 알고리즘, 유클리드 거리(Euclid distance) 알고리즘 등과 같이 일반적인 두 값 사이의 거리를 산출하는 함수를 적용한다.
상기와 같이 구성되는 악성코드 탐지장치는 그의 동작 흐름을 통해 좀 더 상세히 설명하고자 한다.
도 7은 도 5에 대한 동작 흐름을 도시한 순서도로서, 정상 실행파일 모집단(가)과 악성 실행파일 모집단(나)의 각 계층별 클러스터링 중심값을 산출하는 동작 흐름이 도시된 도이다. 도 7을 참조하면, 실행파일 분석부(12)는 데이터베이스(30)에 저장된 실행파일 중 적어도 하나의 정상 실행파일을 포함하는 정상 실행파일 모집단(가)과, 적어도 하나의 악성 실행파일을 포함하는 악성 실행파일 모집단(나)을 형성한다(S100). 이때, 실행파일 분석부(12)는 정상 실행파일 모집단(가)에 포함된 실행파일들을 분석하여(S110, S120), 각각 n개의 계층(A1 내지 An)으로 분류하고(S130), 제1 계층부터 정상 실행파일(A1)에 대한 바이트 분포값을 측정한다(S140, S150). 한편, 클러스터링 연산부(14)는 제1 계층의 정상 실행파일(A1)에 대한 바이트 분포값에 클러스터링 함수를 적용하여 클러스터링 중심값(a1)을 산출하고, 이를 저장한다(S160, S170). 제1 계층에 대한 클러스터링 중심값(a1)이 산출되면, 정상 실행파일의 다음 계층에 대한 클러스터링 중심값을 산출한다(S180, S190). 이때, S150 내지 S190의 과정은, 제n 계층의 정상 실행파일(An)에 대한 클러스터링 중심값(an)을 산출할 때까지 반복하여 수행하도록 한다.
물론, 악성 실행파일 모집단(나)에 대해 클러스터링 중심값(bn)을 산출하는 S200 내지 S270 과정 또한, 정상 실행파일 모집단(가)에 대한 S120 내지 S190 과정의 동작 흐름과 동일하게 진행된다.
이때, 산출된 정상 실행파일 모집단(가)의 각 계층별 클러스터링 중심값(an)과, 악성 시행파일 모집단(나)의 각 계층별 클러스터링 중심값(bn)은, 도 8에서 새로운 실행파일에 대한 악성코드의 유사성을 검사할 때 비교군으로 이용된다.
도 8 및 도 9는 도 6에 대한 동작 흐름을 도시한 순서도로서, 새로운 실행파일에 대해 악성코드를 탐지하는 동작 흐름이 도시된 도이다. 도 8을 참조하면, 새 로운 실행파일(F)이 입력되면(S300), 실행파일 분석부(12)는 입력된 실행파일(F)을 분석하여(S310), 그 필드영역에 따라 n개의 계층(F1 내지 Fn)으로 분류한다(S320). 이때, 제1 계층부터 그 실행파일(F1)에 대한 바이트 분포값(f1)을 측정한다(S330, S340). 비교부(22)는 제1 계층부터 그 실행파일(F1)에 대한 바이트 분포값(f1)과 도 7에서 산출된 제1 계층의 정상 실행파일에 대한 클러스터링 중심값(a1) 및 악성 실행파일에 대한 클러스터링 중심값(b1)과 각각 비교하고, 이때 악성코드 탐지부(24)는 비교부(22)의 비교 결과에 따라 악성코드에 대한 유사성을 판별한다(S350). 즉, 도 9에 도시된 바와 같이, f1 a1 사이의 거리(Ln) 및 f1 b1 사이의 거리(Mn)를 측정하여(S351), f1 b1 사이의 거리(Mn)가 더 가까운 것으로 판단된 경우(S353), 악성코드를 포함하는 것으로 판정한다(S357). 한편, f1 a1 사이의 거리(Ln)가 더 가까운 것으로 판단된 경우(S353), 악성코드를 포함하지 않아 정상인 것으로 판정한다(S355).
따라서, 'S355' 과정에서와 같이 정상 판정된 경우에는 해당 계층의 실행파일은 정상 실행파일인 것으로 간주하여 다음 계층에 대한 검사를 시작한다(S360, S380, S390). 반면, 'S357' 과정에서와 같이 어느 한 계층에서 악성코드를 포함하는 것으로 판정된 경우에는 악성 실행파일인 것으로 판정한다(S360, S370).
이때, S340 내지 S390의 과정은, 제n 계층의 실행파일(Fn)에 대한 바이트 분 포값(fn)을 검사할 때까지 반복하여 수행하도록 한다. 만일, 제n 계층의 실행파일(Fn)에 대한 바이트 분포값(fn)까지 모두 정상인 것으로 판단되면, 입력된 실행파일(F)는 정상 실행파일인 것으로 판정한다(S400).
이상과 같이 본 발명에 의한 악성코드 탐지장치 및 방법은 예시된 도면을 참조로 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 이에 한정되지 않고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 응용될 수 있다.
도 1 은 본 발명의 일실시예에 따른 악성코드 탐지장치의 구성이 도시된 도,
도 2 내지 도 4는 본 발명의 일실시예에 다른 악성코드 탐지장치에 대한 동작 설명에 참조되는 도,
도 5 및 도 6은 본 발명의 일실시예에 따른 악성코드 탐지장치의 동작 흐름에 따른 개략도, 그리고
도 7 내지 도 9 는 본 발명의 일실시예에 따른 악성코드 탐지장치에 대한 동작 흐름이 도시된 순서도이다.
<도면의 주요 부분에 관한 부호의 설명>
10: 실행파일 분석기 12: 실행파일 분석부
14: 클러스터링 연산부 20: 악성코드 분류기
22: 비교부 24: 악성코드 탐지부
30: 데이터베이스 32: 정상 실행파일 저장부
34: 악성 실행파일 저장부

Claims (15)

  1. 실행파일을 분석하여 상기 실행파일의 각 필드영역에 따라 계층을 분류하고, 각 계층의 필드영역에 대한 바이트 분포를 측정하는 실행파일 분석기; 및
    상기 실행파일 분석기를 통해 각 계층별로 분류된 필드영역의 바이트 분포에 기초하여 적어도 하나의 악성코드를 탐지하는 악성코드 분류기;를 포함하는 악성코드 탐지장치.
  2. 제 1 항에 있어서, 상기 실행파일 분석기는,
    상기 실행파일 내의 각 필드영역에 대한 시작점과 그 크기를 감지하고, 상기 필드 영역에 대한 시작점과 크기에 기초하여 상기 실행파일을 각 계층별로 분류하는 것을 특징으로 하는 악성코드 탐지장치.
  3. 제 1 항에 있어서,
    상기 각 계층의 필드영역은 다른 계층의 필드영역을 포함하지 않는 것을 특징으로 하는 악성코드 탐지장치.
  4. 제 1 항에 있어서,
    상기 악성코드 분류기를 통해 분류된 정상 실행파일이 저장되는 정상 시행파일 저장부 및 적어도 하나의 상기 악성코드를 포함하는 악성 실행파일이 저장되는 악성 실행파일 저장부를 구비한 데이터베이스;를 더 포함하는 악성코드 탐지장치.
  5. 제 4 항에 있어서,
    상기 실행파일 분석기는, 상기 데이터베이스에 저장된 적어도 하나의 상기 정상 실행파일 및 상기 악성 실행파일을 이용하여 상기 실행파일의 악성코드를 탐지하기 위한 비교값을 산출하는 것을 특징으로 하는 악성코드 탐지장치.
  6. 제 4 항에 있어서, 상기 실행파일 분석기는,
    상기 정상 실행파일 및 상기 악성 실행파일의 바이트 분포를 측정하여 각 계층별 클러스터링 중심값을 산출하는 클러스터링 연산부;를 더 포함하는 악성코드 탐지장치.
  7. 제 6 항에 있어서,
    상기 악성코드 분류기는, 상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값을 비교하여, 상기 악성코드에 대한 유사성을 판단하는 것을 특징으로 하는 악성코드 탐지장치.
  8. 제 7 항에 있어서,
    상기 악성코드 분류기는, 상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값 사이의 거리를 측정하여 상기 악성코드에 대한 유사성을 판단하는 것을 특징으로 하는 악성코드 탐지장치.
  9. 제 1 항에 있어서,
    상기 악성코드 분류기는, 상기 실행파일의 각 계층별로 분류된 필드영역 중 적어도 어느 하나의 계층에 대해 상기 악성코드가 탐지되면, 상기 실행파일을 악성 실행파일로 분류하는 것을 특징으로 하는 악성코드 탐지장치.
  10. 실행파일을 분석하여 상기 실행파일의 각 필드영역 별로 계층을 분류하는 단계;
    상기 각 계층별로 분류된 필드영역의 바이트 분포를 측정하여, 각 계층별로 악성코드에 대한 유사성을 비교하는 단계; 및
    상기 각 계층별로 분류된 필드영역 중 적어도 어느 하나의 계층에 대해 상기 악성코드와 유사한 것으로 판단되면, 상기 실행파일을 악성 실행파일로 분류하는 단계;를 포함하는 악성코드 탐지방법.
  11. 제 10 항에 있어서, 상기 계층을 분류하는 단계는,
    상기 실행파일을 분석하여 상기 실행파일 내의 필드영역에 대한 시작점과 크기에 기초하여 상기 실행파일을 각 계층별로 분류하는 것을 특징으로 하는 악성코 드 탐지방법.
  12. 제 10 항에 있어서,
    기 저장된 적어도 하나의 정상 실행파일 및 악성 실행파일의 바이트 분포를 측정하여 각 계층별 클러스터링 중심값을 산출하는 단계;를 더 포함하는 악성코드 탐지방법.
  13. 제 12 항에 있어서, 상기 유사성을 비교하는 단계는,
    상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값을 비교하는 단계;를 포함하는 악성코드 탐지방법.
  14. 제 13 항에 있어서,
    상기 실행파일의 각 계층별로 분류된 필드영역의 바이트 분포값과, 상기 정상 실행파일 및 상기 악성 실행파일의 각 계층별 클러스터링 중심값 사이의 거리를 측정하여 비교하는 것을 특징으로 하는 악성코드 탐지방법.
  15. 제 14 항에 있어서,
    어느 하나의 계층에 대한 필드영역의 바이트 분포값이, 상기 정상 실행파일의 클러스터링 중심값 보다 상기 악성 실행파일의 클러스터링 중심값과 가까운 경 우, 상기 악성코드와 유사한 것으로 판단하는 것을 특징으로 하는 악성코드 탐지방법.
KR1020070122412A 2007-11-29 2007-11-29 악성코드 탐지장치 및 방법 KR100942798B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070122412A KR100942798B1 (ko) 2007-11-29 2007-11-29 악성코드 탐지장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070122412A KR100942798B1 (ko) 2007-11-29 2007-11-29 악성코드 탐지장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090055669A true KR20090055669A (ko) 2009-06-03
KR100942798B1 KR100942798B1 (ko) 2010-02-18

Family

ID=40987172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070122412A KR100942798B1 (ko) 2007-11-29 2007-11-29 악성코드 탐지장치 및 방법

Country Status (1)

Country Link
KR (1) KR100942798B1 (ko)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011108864A2 (ko) * 2010-03-05 2011-09-09 주식회사 안철수연구소 실행 파일을 이용한 악성 코드 차단 장치 및 방법
KR101116770B1 (ko) * 2010-04-21 2012-02-28 주식회사 안철수연구소 악성코드 진단 및 치료 장치 및 그 방법
WO2013077565A1 (ko) * 2011-11-22 2013-05-30 주식회사 안랩 악성코드 진단 및 치료 서비스 장치 및 방법
KR101345740B1 (ko) * 2012-02-22 2013-12-30 박원형 활성 포렌식 기술을 이용한 연관성 분석 기반 악성코드 탐지 시스템
EP2743854A1 (en) * 2011-08-09 2014-06-18 Tencent Technology (Shenzhen) Company Limited Clustering processing method and device for virus files
KR20140089044A (ko) * 2013-01-02 2014-07-14 단국대학교 산학협력단 실행 파일의 특징 정보를 이용한 소프트웨어 유사도 탐지 방법 및 장치
KR101428781B1 (ko) * 2012-11-15 2014-08-08 한국전자통신연구원 컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법
US9129109B2 (en) 2010-12-31 2015-09-08 Anhlab, Inc. Method and apparatus for detecting a malware in files
KR20200015198A (ko) 2018-08-03 2020-02-12 국민대학교산학협력단 이분 그래프 기반의 악성 코드 탐지 장치
KR20210021838A (ko) 2019-08-19 2021-03-02 국민대학교산학협력단 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법
KR20210024748A (ko) 2019-08-26 2021-03-08 국민대학교산학협력단 Gan을 이용한 문서형 악성코드 탐지 장치 및 방법
KR102318991B1 (ko) * 2021-02-05 2021-10-29 (주)에스투더블유 유사도 기반의 악성코드 진단 방법 및 장치
KR20220099749A (ko) 2021-01-07 2022-07-14 국민대학교산학협력단 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101375793B1 (ko) 2010-11-09 2014-04-01 네이버비즈니스플랫폼 주식회사 백신 프로그램의 오진검수 방법 및 시스템
KR101329037B1 (ko) * 2011-12-21 2013-11-14 한국인터넷진흥원 변종 악성 코드를 탐지하기 위한 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100424724B1 (ko) 2001-07-27 2004-03-27 김상욱 네트워크 흐름 분석에 의한 침입 탐지 장치
KR100620313B1 (ko) * 2005-06-15 2006-09-06 (주)이월리서치 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법
KR20070095718A (ko) * 2006-03-22 2007-10-01 한국전자통신연구원 유형별 트래픽 특성 분류를 통한 인터넷 웜 트래픽 탐지시스템 및 방법

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011108864A3 (ko) * 2010-03-05 2012-01-12 주식회사 안철수연구소 실행 파일을 이용한 악성 코드 차단 장치 및 방법
CN102918541A (zh) * 2010-03-05 2013-02-06 株式会社Ahnlab 阻断恶意代码使用执行文件的装置和方法
WO2011108864A2 (ko) * 2010-03-05 2011-09-09 주식회사 안철수연구소 실행 파일을 이용한 악성 코드 차단 장치 및 방법
KR101116770B1 (ko) * 2010-04-21 2012-02-28 주식회사 안철수연구소 악성코드 진단 및 치료 장치 및 그 방법
US9129109B2 (en) 2010-12-31 2015-09-08 Anhlab, Inc. Method and apparatus for detecting a malware in files
EP2743854A4 (en) * 2011-08-09 2015-03-25 Tencent Tech Shenzhen Co Ltd CLUSTERING PROCESSING AND DEVICE FOR VIRUS FILES
EP2743854A1 (en) * 2011-08-09 2014-06-18 Tencent Technology (Shenzhen) Company Limited Clustering processing method and device for virus files
WO2013077565A1 (ko) * 2011-11-22 2013-05-30 주식회사 안랩 악성코드 진단 및 치료 서비스 장치 및 방법
KR101345740B1 (ko) * 2012-02-22 2013-12-30 박원형 활성 포렌식 기술을 이용한 연관성 분석 기반 악성코드 탐지 시스템
KR101428781B1 (ko) * 2012-11-15 2014-08-08 한국전자통신연구원 컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법
KR20140089044A (ko) * 2013-01-02 2014-07-14 단국대학교 산학협력단 실행 파일의 특징 정보를 이용한 소프트웨어 유사도 탐지 방법 및 장치
KR20200015198A (ko) 2018-08-03 2020-02-12 국민대학교산학협력단 이분 그래프 기반의 악성 코드 탐지 장치
KR20210021838A (ko) 2019-08-19 2021-03-02 국민대학교산학협력단 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법
KR20210024748A (ko) 2019-08-26 2021-03-08 국민대학교산학협력단 Gan을 이용한 문서형 악성코드 탐지 장치 및 방법
KR20220099749A (ko) 2021-01-07 2022-07-14 국민대학교산학협력단 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법
KR102318991B1 (ko) * 2021-02-05 2021-10-29 (주)에스투더블유 유사도 기반의 악성코드 진단 방법 및 장치

Also Published As

Publication number Publication date
KR100942798B1 (ko) 2010-02-18

Similar Documents

Publication Publication Date Title
KR100942798B1 (ko) 악성코드 탐지장치 및 방법
Galal et al. Behavior-based features model for malware detection
US10891378B2 (en) Automated malware signature generation
US7519998B2 (en) Detection of malicious computer executables
Hasan et al. RansHunt: A support vector machines based ransomware analysis framework with integrated feature set
Kim et al. Improvement of malware detection and classification using API call sequence alignment and visualization
Alasmary et al. Graph-based comparison of IoT and android malware
US9928369B2 (en) Information technology vulnerability assessment
Rieck et al. Automatic analysis of malware behavior using machine learning
Glanz et al. CodeMatch: obfuscation won't conceal your repackaged app
US20090013405A1 (en) Heuristic detection of malicious code
US20100077482A1 (en) Method and system for scanning electronic data for predetermined data patterns
Medhat et al. A new static-based framework for ransomware detection
Shahzad et al. Detection of spyware by mining executable files
Zakeri et al. A static heuristic approach to detecting malware targets
Savenko et al. Dynamic Signature-based Malware Detection Technique Based on API Call Tracing.
Laurenza et al. Malware triage for early identification of advanced persistent threat activities
Karampatziakis et al. Using file relationships in malware classification
Yücel et al. Imaging and evaluating the memory access for malware
Patil et al. Malware analysis using machine learning and deep learning techniques
Maleki et al. An improved method for packed malware detection using PE header and section table information
Alshamrani Design and analysis of machine learning based technique for malware identification and classification of portable document format files
KR102318991B1 (ko) 유사도 기반의 악성코드 진단 방법 및 장치
Mehra et al. DaCoMM: detection and classification of metamorphic malware
Bernardi et al. Data-aware process discovery for malware detection: an empirical study

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130205

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140123

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150126

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170124

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180410

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181124

Year of fee payment: 10