KR101033258B1 - 악성코드의 실행압축 판단 장치 및 방법 - Google Patents

악성코드의 실행압축 판단 장치 및 방법 Download PDF

Info

Publication number
KR101033258B1
KR101033258B1 KR1020080085080A KR20080085080A KR101033258B1 KR 101033258 B1 KR101033258 B1 KR 101033258B1 KR 1020080085080 A KR1020080085080 A KR 1020080085080A KR 20080085080 A KR20080085080 A KR 20080085080A KR 101033258 B1 KR101033258 B1 KR 101033258B1
Authority
KR
South Korea
Prior art keywords
compression
execution
entropy
malicious code
executable
Prior art date
Application number
KR1020080085080A
Other languages
English (en)
Other versions
KR20100026176A (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 KR1020080085080A priority Critical patent/KR101033258B1/ko
Publication of KR20100026176A publication Critical patent/KR20100026176A/ko
Application granted granted Critical
Publication of KR101033258B1 publication Critical patent/KR101033258B1/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/561Virus type analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Abstract

본 발명은 악성코드의 실행압축 판단장치 및 방법에 관한 것이다. 즉, 본 발명에서는 컴퓨터상 악성코드로 의심되는 실행파일에 대한 실행압축 여부를 판단함에 있어서, 악성코드로 의심되는 실행파일의 엔트로피를 측정하고, 해당 실행파일에 대해 압축과 같은 엔트로피 최적화 작업을 수행하여 다시 엔트로피를 측정한 후, 두 개의 엔트로피 측정값의 차이가 일정 기준치 이하로 작게 차이가 발생하는 경우 실행압축을 판단함으로써, 악성코드로 의심되는 실행파일에 대한 실행 압축 여부를 보다 용이하게 또한 매우 신속하게 판단할 수 있게 되어 악성코드 진단 성능을 높일 수 있게 된다.
악성코드, 압축, PE, 엔트로피

Description

악성코드의 실행압축 판단 장치 및 방법{APPARATUS AND METHOD FOR DETECTING IF VIRUS PROGRAM IS COMPRESSED}
본 발명은 악성코드의 실행 압축 여부를 판단하는 방법에 관한 것으로, 특히 악성코드가 실행파일 압축이나 실행파일 암호화 등으로 변형되는 상황에서 이러한 변형 여부를 빠르게 파악하고 또한 범용적으로 파악할 수 있도록 하는 정보의 엔트로피(entropy) 측정에 의한 악성코드의 실행 압축 판단 장치 및 방법에 관한 것이다.
통상적으로, 실행 압축은 파일의 크기를 압축하여 크기를 줄이거나 역공학에 의한 프로그램 보호 등의 용도로 개발되었으나, 최근 들어 악성코드 제작자에 의해 악성코드의 변종을 제작하기 위하여 악용되고 있다.
위와 같이, 악성코드의 실행압축을 위해 사용되는 대표적인 프로그램으로, 실행압축을 위해서는 UPX, ASPack, FSG, Telock 등이 있으며, 암호화를 위해서는 PE-Crypt, Yoda, PESpin 등이 있다. 이러한 실행압축을 위한 프로그램들은 인터넷에 자유롭게 배포되어 일반 사용자들도 쉽게 접할 수 있음에 따라 악성코드는 수 천가지 종류로 실행압축 되거나 암호화되고 있으며, 전체 샘플군의 60% 이상이 실행압축이나 암호화 혹은 두 가지 방법의 혼합으로 실행압축 되고 있는 것으로 알려져 있다.
위 언급된 실행압축의 경우 UPX를 시작으로 광범위하게 사용되고 있으며 이들 방법들은 코드를 압축해제 후 완벽히 동일하게 복원해야 함으로 무손실 압축(lossless compression)을 이용하고 있으며, 또한 실행압축은 초기에 데이터 크기를 최대한 줄이는 목적으로 접근한 만큼 압축율이 높은 압축 알고리즘을 사용하고 있다.
이와 같이 악성코드 제작자들이 실행압축을 도입하는 이유를 크게 세 가지 경우를 들어 살펴보면, 먼저 첫 번째로는 악성코드를 실행압축 하게 되는 경우 보안업체의 백신(anti virus) 프로그램에서 실행압축을 풀고서 악성코드 여부를 진단하여야 하므로 압축 해제 기능 개발에 시간이 많이 소요되도록 만들며, 그에 따른 진단 성능도 급격히 떨어뜨릴 수 있기 때문이다. 다음, 두 번째로는 실행압축에 의한 악성코드의 단순 변형이 용이하여 악성코드 제작자들이 이들 실행압축 방법이나 옵션 등을 변경하여 진단이 어려운 다양한 형태의 변형을 손쉽게 만들어 낼 수 있기 때문이다. 마지막으로 세 번째로는 악성코드를 실행압축 하는 경우 악성코드에 대한 내용이 직관적으로 관찰될 수 없도록 함으로써 악성코드의 진단이 보다 어렵도록 할 수 있기 때문이다.
따라서, 백신 프로그램 개발자 입장에서는 위와 같이 수 천가지 종류로 실행압축 되는 악성코드에 보다 효율적인 진단을 위해서 먼저 악성코드로 의심되는 실 행파일에 대해 해당 파일이 실행압축 되었는지 여부를 보다 빠르고 범용적으로 판단하는 것이 악성코드의 신속한 진단을 위해 매우 중요하게 된다.
이를 위해 종래에는 알고리즘(algorithm)에 의한 실행압축 판단 방법과 시그너쳐 매칭(signature matching)에 의한 실행압축 판단 방법 또한, GENERIC PACKER/CRYPTOR DETECT에 에뮬레이팅 기법 등을 사용하여 악성코드의 실행압축 여부를 판단하고 있다.
그러나, 알고리즘 매칭 방법은 개발하는데 많은 시간과 인력이 소요되며, 알고리즘의 잘못된 설계 시 성능을 급격히 저하시킬 수 있는 문제점이 있으며, 또한 알고리즘 하나를 만들기 위해 많은 시간과 노력이 필요하고 샘플이 존재하지 않는 경우 사후 대응만 가능한 문제점이 있었다. 또한, 현재 많이 존재하는 맞춤형 실행압축(PRIVATE PACKING METHOD)을 사용하는 경우에는 악성코드별로 일일이 대응해야 하는 등 기술적, 운영상 어려움이 있었다.
따라서, 본 발명은 악성코드가 실행파일 압축이나 실행파일 암호화 등으로 변형되는 경우, 악성코드의 실행파일의 변형 여부를 빠르게 파악하고 또한 범용적으로 파악할 수 있도록 하는 정보의 엔트로피 측정에 의한 악성코드의 실행 압축 판단 장치 및 방법을 제공하고자 한다.
상술한 본 발명은 악성코드의 실행압축 판단 장치로서, 컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 실행파일 수집부와, 상기 실행파일 수집부에서 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 산출하는 엔트로피 측정부와, 상기 엔트로피 측정부에서 산출된 상기 실행파일의 두 개의 엔트로피 측정값을 비교하여 엔트로피 측정값의 차이가 일정 기준치보다 낮은 경우 상기 실행파일이 실행압축 되었음을 판단하는 실행압축 검사부를 포함한 다.
또한, 본 발명은 악성코드의 실행압축 판단 방법으로서, 컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 단계와, 상기 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 산출하는 단계와, 상기 실행파일에 대해 산출된 두 개의 엔트로피 측정값을 비교하는 단계와, 상기 비교결과 상기 두 개의 엔트로피 측정값의 차이가 일정 기준치보다 낮은 경우 상기 실행파일이 실행압축 되었음을 판단하는 단계를 포함한다.
본 발명에서는 컴퓨터상 악성코드로 의심되는 실행파일에 대한 실행압축 여부를 판단함에 있어서, 악성코드로 의심되는 실행파일의 엔트로피를 측정하고, 해당 실행파일에 대해 압축과 같은 엔트로피 최적화 작업을 수행하여 다시 엔트로피를 측정한 후, 두 개의 엔트로피 측정값의 차이가 일정 기준치 이하로 작게 차이가 발생하는 경우 실행압축을 판단함으로써, 악성코드로 의심되는 실행파일에 대한 실행 압축 여부를 보다 용이하게 또한 매우 신속하게 판단할 수 있게 되어 악성코드 진단 성능을 높일 수 있게 된다.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 구체적인 핵심 기술요지를 살펴보면, 악성코드로 의심되는 실행파일의 엔트로피를 측정하고, 해당 실행파일에 대해 압축을 수행하여 다시 엔트로피를 측정한 후, 두 개의 엔트로피 측정값의 차이가 일정 기준치 이하로 작게 차이가 발생하는 경우 실행압축을 판단하는 기술을 통해 본 발명에서 이루고자 하는 바를 쉽게 달성할 수 있다.
도 1은 본 발명의 실시 예에 따른 악성코드의 실행 압축 판단 장치의 모듈 구성을 도시한 것이다. 위 악성코드의 실행 압축 판단장치는 안티바이러스 업체에 의해 개발되어 컴퓨터상 설치되는 백신 프로그램 중 실행 압축을 판단하는 프로그램을 기능적으로 모듈(module)화하여 도시한 것이다.
이하, 위 도 1을 참조하여 본 발명의 악성코드 실행 압축 판단장치(100) 각 모듈에서의 동작을 상세히 설명하기로 한다. 먼저, 실행파일 수집부(102)는 악성코드로 의심되는 실행파일에 대해 실행 압축 여부를 검사하기 위해 실행파일을 수집한다. 엔트로피 측정부(104)는 악성코드로 의심되는 실행 파일에 대해 압축을 수행하고, 압축 수행된 실행파일과 원래 실행 파일에 대해 각각 엔트로피를 측정하여 엔트로피 측정값을 산출한다.
실행압축 검사부(106)는 엔트로피 측정부(106)에서 산출된 악성코드로 의심되는 실행파일에 대한 엔트로피 측정값과 이를 압축하여 다시 측정한 엔트로피 측정값을 이용하여, 압축 수행된 실행 파일의 엔트로피 측정값과 원래 실행 파일의 엔트로피 측정값의 크기의 차이가 일정 기준치보다 작은 경우 원래 실행 파일이 이미 한번 압축된 실행 압축 파일인 것으로 판단하여 악성코드의 실행압축을 판단하게 된다.
또는, 이와 반대로 압축 수행된 파일의 엔트로피 측정값과 원래 실행 파일의 엔트로피 측정값의 크기의 차이가 일정 기준치보다 큰 경우 이는 압축 과정에서 원래 실행파일이 실제로 상당량의 데이터가 압축된 것을 의미하므로, 원래 실행 파일이 압축되지 않은 것으로 판단하게 된다.
이하, 실행압축에 대해 잠시 살펴보면, 현재 대부분의 실행 압축 알고리즘은 높은 압축율을 가지고 있다. 이들은 산술 코딩(arithmetic coding) 기술 중 하나인 허프만 코딩(HUFFMAN coding)과 사전(dictionary)방식의 Liv-Lampel의 LZ 기반을 같이 이용해 압축 성능을 높이는 등의 기법을 사용하고 있다.
예를 들어, 허프만 코딩은 기본적으로 사용 빈도를 조사하여 사용 빈도가 높은 정보를 적은 비트수로 매핑(mapping)해 사용하도록 하는 손실 없는 압축(lossless compression)의 한 기법으로, 정보를 빈도수대로 이진 트리(binary tree)로 구성하여 사용빈도가 높은 정보를 상위 노드에 빈도가 가장 낮은 정보를 하위(leaf) 노드에 배치하여 어떤 문장을 표시할 때 이를 비트로 변환해 코딩하는 방법으로 압축에 있어 기본적인 방법이다. 다음으로, LAMPEL-ZIV에 의해 개발된 LZ알고리즘은 현재 널리 사용하고 있는 압축 알고리즘들이 근간으로 하고 있는 방법으로 이전에 사용된 문장을 선택하여 복사하는 방식으로 일반적인 문서나 컴퓨터 프로그램 및 데이터 등에서 대부분 높은 압축율을 가지며, 이를 사전식 압축(dictionary based compression)이라고 한다.
위와 같은 압축 기법은 공통적으로 무손실(lossless)이며 적은 정보로 모든 정보를 표시하는 정보의 압축을 수행한다. 좀더 자세히 설명하면 이미 사용된 정보의 반복인 잉여(redundancy) 정보를 간단히 표시하는 것으로, 코드의 반복이나 정보의 사용 빈도 등에 의해 정보를 축약하기 때문에 규칙성이나 빈도로 발생하는 잉여정보가 대부분 사라지게 되어 더 이상 잉여 정보를 압축하는 것이 어렵게 되는 특성을 가지게 된다. 한편, 암호화 기법은 기본적으로 정보의 엔트로피를 정보의 양과 거의 동일하게 만드는 역할을 하게 된다. 즉, 정보의 자유도(randomness)를 높임으로써 정보의 규칙성이나 가독성을 제거하는 역할을 하게 된다. 정보의 자유도는 결국 정보의 규칙성과 반대적 의미를 사용하게 되며 정보의 규칙성이 낮다면 위의 압축과 같은 상황으로 더 이상 압축을 할 수 없게된다.
따라서, 위와 같이 악성코드로 의심되는 실행파일이 압축이나 암호화된 경우에는 이를 다시 압축하여 엔트로피를 측정하게 되면 원래 실행파일의 엔트로피 측정값과 이를 압축하여 측정한 엔트로피 측정값간 차이가 크지 않게 되는데, 실행압축 검사부(106)는 엔트로피 측정부(104)로부터 산출된 위 두 개의 엔트로피 측정값의 차이를 비교하여, 원래 실행파일의 엔트로피 측정값과 이를 압축한 이후의 엔트 로피 측정값의 차이가 일정 기준 범위 내에서 크게 변화하지 않는 것을 확인하여 악성코드로 의심되는 실행파일이 실행 압축된 파일임을 판단하게 되는 것이다.
도 2는 본 발명의 실시 예에 따른 본 발명의 실시 예에 따른 악성코드의 실행압축 판단장치에서 정보의 엔트로피 측정값의 차이를 이용하여 악성코드의 실행압축 여부를 판단하는 동작 제어 흐름을 도시한 것이다. 이하 도 1 및 도 2를 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.
먼저, 컴퓨터상 본 발명의 악성코드 실행압축 판단장치가 활성화되는 경우, 악성코드 실행압축 판단장치(100)내 실행파일 수집부(102)는 (S200)단계에서 컴퓨터상 존재하는 악성코드로 의심되는 실행파일을 수집한다.
위와 같이, 실행파일 수집부(102)로부터 악성코드로 의심되는 실행파일이 수집되는 경우 엔트로피 측정부(104)는 (S202)단계에서 수집된 악성코드 의심 실행파일에 대해 원래 실행파일 상태로 엔트로피를 측정하여 엔트로피 측정값을 산출하고, 위 실행파일에 대해 압축을 수행한 후, 압축된 실행파일에 대해 다시 엔트로피 측정값을 산출하여 이를 실행압축 검사부(106)로 제공한다. 이때 엔트로피 측정부(104)는 악성코드로 의심되는 실행파일에 대한 엔트로피를 측정함에 있어서 실행파일내 PE(Portable Executable)파일 전체에 대해 엔트로피를 산출하거나, PE 파일상 특정 일부분을 선택하여 엔트로피를 산출할 수도 있다.
그러면, 실행압축 검사부(106)는 (S204)단계에서 엔트로피 측정부(104)에서 측정된 악성코드로 의심되는 실행파일에 대한 엔트로피 측정값과 이를 압축하여 다시 측정한 엔트로피 측정값을 비교한다.
이때, 위 (S204)단계에서 두 개의 엔트로피 측정값의 비교 결과 압축 수행된 실행파일의 엔트로피 측정값과 원래 실행파일의 엔트로피 측정값의 크기의 차이가 일정 기준치보다 큰 경우 이는 엔트로피 측정을 위한 압축 과정에서 원래 실행파일이 실제로 상당량의 데이터가 압축된 것을 의미하므로, 실행압축 검사부(106)는 (S206)단계에서 (S208)단계로 진행해서 원래 실행 파일이 압축되어 있지 않았던 것으로 판단한다. 이에 따라 실행압축 되지 않은 것으로 판단된 해당 악성코드 의심 실행파일은 악성코드 진단 시 압축 해제(unpacking) 과정이 바이패스(bypass) 된다.
그러나, 이와 달리 위 (S204)단계에서 두 개의 엔트로피 측정값의 비교결과 압축 수행된 실행파일의 엔트로피 측정값과 원래 실행파일의 엔트로피 측정값의 크기가 일정 기준치보다 작은 경우에는 원래 실행 파일이 이미 한번 압축된 상태였던 것으로 판단하여 실행압축 검사부(106)는 (S206)단계에서 (S210)단계로 진행해서 악성코드로 의심되는 실행파일이 실행압축 되어 있음을 판단하게 된다.
이때 위 기준치는 실행파일의 압축 수행 후 측정된 엔트로피 측정값이 원래 실행파일의 엔트로피 측정값의 70∼80%로 산출되는 경우의 두 엔트로피 측정값의 차이값으로 설정될 수 있다.
이에 따라, 위와 같은 실행압축 판단 정보에 따라 악성코드의 압축을 해제시켜 분석하는 후속 악성코드 진단부(150)는 악성코드로 의심되는 실행파일에 대한 압축 여부 확인을 위해 종래 알고리즘에 의한 판단이나 시그너쳐를 이용한 판단 등의 복잡한 판단 과정 없이도, 실행압축 여부를 빠르게 인식하여 압축해 제(unpacking)를 수행함으로써 악성코드의 진단 과정을 보다 신속하게 진행할 수 있게 된다.
상기한 바와 같이 본 발명에서는 컴퓨터상 악성코드로 의심되는 실행파일에 대한 실행압축 여부를 판단함에 있어서, 악성코드로 의심되는 실행파일의 엔트로피를 측정하고, 해당 실행파일에 대해 압축과 같은 엔트로피 최적화 작업을 다시 엔트로피를 측정한 후, 두 개의 엔트로피 측정값의 차이가 일정 기준치 이하로 작게 차이가 발생하는 경우 실행압축을 판단함으로써, 악성코드로 의심되는 실행파일에 대한 실행 압축 여부를 보다 용이하게 또한 매우 신속하게 판단할 수 있게 되어 악성코드 진단 성능을 높일 수 있게 된다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
도 1은 본 발명의 실시 예에 따른 악성코드의 실행압축 판단장치 블록 구성도,
도 2는 본 발명의 실시 예에 따른 정보의 엔트로피 측정을 이용한 악성코드의 실행압축 판단 처리 흐름도.
<도면의 주요 부호에 대한 간략한 설명>
102 : 실행파일 수집부 104 : 엔트로피 측정부
106 : 실행압축 검사부

Claims (8)

  1. 삭제
  2. 악성코드의 실행압축을 판단하는 장치로서,
    컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 실행파일 수집부와,
    상기 실행파일 수집부에서 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 각각 산출하는 엔트로피 측정부와,
    상기 엔트로피 측정부에서 산출된 상기 실행파일의 두 엔트로피 측정값을 비교하여 엔트로피 측정값의 차이가 기설정된 기준치보다 낮은 경우 상기 실행파일을 실행압축으로 판단하는 실행압축 검사부를 포함하되,
    상기 기준치는,
    상기 실행파일의 압축 수행 후 측정된 엔트로피 측정값이 압축 수행 전 실행파일의 엔트로피 측정값의 70∼80%로 산출되는 경우의 상기 두 엔트로피 측정값의 차이값을 의미하는 것을 특징으로 하는 악성코드의 실행압축 판단장치.
  3. 악성코드의 실행압축을 판단하는 장치로서,
    컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 실행파일 수집부와,
    상기 실행파일 수집부에서 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 각각 산출하는 엔트로피 측정부와,
    상기 엔트로피 측정부에서 산출된 상기 실행파일의 두 엔트로피 측정값을 비교하여 엔트로피 측정값의 차이가 기설정된 기준치보다 낮은 경우 상기 실행파일을 실행압축으로 판단하는 실행압축 검사부를 포함하되,
    상기 엔트로피 측정부는,
    상기 실행파일 중 PE(Portable Executable) 파일 전체 또는 특정 일부분에 대해 엔트로피 측정을 수행하는 것을 특징으로 하는 악성코드의 실행압축 판단장치.
  4. 악성코드의 실행압축을 판단하는 장치로서,
    컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 실행파일 수집부와,
    상기 실행파일 수집부에서 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 각각 산출하는 엔트로피 측정부와,
    상기 엔트로피 측정부에서 산출된 상기 실행파일의 두 엔트로피 측정값을 비교하여 엔트로피 측정값의 차이가 기설정된 기준치보다 낮은 경우 상기 실행파일을 실행압축으로 판단하는 실행압축 검사부를 포함하되,
    상기 실행압축 검사부는,
    상기 실행파일의 두 엔트로피 측정값 비교 결과, 엔트로피 측정값의 차이가 기설정된 기준치보다 높은 경우 상기 실행파일을 실행압축 되지 않은 것으로 판단하는 것을 특징으로 하는 악성코드의 실행압축 판단장치.
  5. 삭제
  6. 악성코드의 실행압축을 판단하는 방법으로서,
    컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 단계와,
    상기 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 각각 산출하는 단계와,
    상기 실행파일에 대해 산출된 두 엔트로피 측정값을 비교하는 단계와,
    상기 비교결과 상기 두 엔트로피 측정값의 차이가 기설정된 기준치보다 낮은 경우 상기 실행파일을 실행압축으로 판단하는 단계를 포함하되,
    상기 기준치는,
    상기 실행파일의 압축 수행 후 측정된 엔트로피 측정값이 압축 수행 전 실행파일의 엔트로피 측정값의 70∼80%로 산출되는 경우의 상기 두 엔트로피 측정값의 차이값을 의미하는 것을 특징으로 하는 악성코드의 실행압축 판단방법.
  7. 악성코드의 실행압축을 판단하는 방법으로서,
    컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 단계와,
    상기 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 각각 산출하는 단계와,
    상기 실행파일에 대해 산출된 두 엔트로피 측정값을 비교하는 단계와,
    상기 비교결과 상기 두 엔트로피 측정값의 차이가 기설정된 기준치보다 낮은 경우 상기 실행파일을 실행압축으로 판단하는 단계를 포함하되,
    상기 두 엔트로피 측정값 각각은,
    상기 실행파일 중 PE(Portable Executable) 파일 전체 또는 특정 일부분에 대한 엔트로피 측정을 통해 산출되는 것을 특징으로 하는 악성코드의 실행압축 판단방법.
  8. 악성코드의 실행압축을 판단하는 방법으로서,
    컴퓨터상 악성코드 여부 검사대상이 되는 실행파일들을 수집하는 단계와,
    상기 수집된 실행파일 각각에 대해 압축 수행 전과 후의 엔트로피 측정값을 각각 산출하는 단계와,
    상기 실행파일에 대해 산출된 두 엔트로피 측정값을 비교하는 단계와,
    상기 비교결과 상기 두 엔트로피 측정값의 차이가 기설정된 기준치보다 낮은 경우 상기 실행파일을 실행압축으로 판단하는 단계와,
    상기 비교결과 상기 실행파일의 두 엔트로피 측정값의 차이가 기설정된 기준치보다 높은 경우 상기 실행파일을 실행압축되지 않은 것으로 판단하는 단계
    를 더 포함하는 것을 특징으로 하는 악성코드의 실행압축 판단방법.
KR1020080085080A 2008-08-29 2008-08-29 악성코드의 실행압축 판단 장치 및 방법 KR101033258B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080085080A KR101033258B1 (ko) 2008-08-29 2008-08-29 악성코드의 실행압축 판단 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080085080A KR101033258B1 (ko) 2008-08-29 2008-08-29 악성코드의 실행압축 판단 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100026176A KR20100026176A (ko) 2010-03-10
KR101033258B1 true KR101033258B1 (ko) 2011-05-23

Family

ID=42177552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080085080A KR101033258B1 (ko) 2008-08-29 2008-08-29 악성코드의 실행압축 판단 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101033258B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210113872A (ko) 2020-03-09 2021-09-17 박근홍 압축파일의 악성코드 검사방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101645412B1 (ko) * 2014-05-28 2016-08-04 주식회사 안랩 악성파일진단장치 및 악성파일진단장치의 진단 방법
CN109992969B (zh) * 2019-03-25 2023-03-21 腾讯科技(深圳)有限公司 一种恶意文件检测方法、装置及检测平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080047251A (ko) * 2006-11-23 2008-05-28 한국전자통신연구원 실행 프로그램의 실행 압축 유무 탐지 장치 및 방법
US20080184367A1 (en) 2007-01-25 2008-07-31 Mandiant, Inc. System and method for determining data entropy to identify malware
KR100856924B1 (ko) * 2007-03-08 2008-09-05 한국전자통신연구원 네트워크 상태 표시 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080047251A (ko) * 2006-11-23 2008-05-28 한국전자통신연구원 실행 프로그램의 실행 압축 유무 탐지 장치 및 방법
US20080184367A1 (en) 2007-01-25 2008-07-31 Mandiant, Inc. System and method for determining data entropy to identify malware
KR100856924B1 (ko) * 2007-03-08 2008-09-05 한국전자통신연구원 네트워크 상태 표시 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Using Entropy Analysis to Find Encrypted and Packed Malware, IEEE Security & Privacy, pp.40-45 (2007.)*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210113872A (ko) 2020-03-09 2021-09-17 박근홍 압축파일의 악성코드 검사방법

Also Published As

Publication number Publication date
KR20100026176A (ko) 2010-03-10

Similar Documents

Publication Publication Date Title
US10019573B2 (en) System and method for detecting executable machine instructions in a data stream
US8069484B2 (en) System and method for determining data entropy to identify malware
Cesare et al. Classification of malware using structured control flow
US8533835B2 (en) Method and system for rapid signature search over encrypted content
JP4732484B2 (ja) 仮想環境を利用した非実行ファイル内のエクスプロイトコード分析方法及び装置
KR20090051956A (ko) 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법
KR101110308B1 (ko) 실행압축 특성을 이용한 악성코드 탐지장치 및 그 방법
KR100870140B1 (ko) 악성 코드가 숨겨진 파일 탐지 장치 및 방법
KR20140030989A (ko) 안드로이드 운영체제에서 apk 파일의 시그니처 추출 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US20090210943A1 (en) Method to detect viruses hidden inside a password-protected archive of compressed files
CN112035359A (zh) 程序测试方法、装置、电子设备及存储介质
CN105809034A (zh) 一种恶意软件识别方法
KR101033258B1 (ko) 악성코드의 실행압축 판단 장치 및 방법
WO2006027775A2 (en) A method for inspecting an archive
Al-Anezi Generic packing detection using several complexity analysis for accurate malware detection
Ugarte-Pedrero et al. Structural feature based anomaly detection for packed executable identification
WO2020168614A1 (zh) 移动恶意软件大数据的快速智能比对和安全检测方法
Vahedi et al. Cloud based malware detection through behavioral entropy
CN107844702B (zh) 基于云防护环境下网站木马后门检测方法及装置
Nataraj et al. Detecting packed executables based on raw binary data
KR100896319B1 (ko) 실행 프로그램의 실행 압축 유무 탐지 장치 및 방법
CN112818348B (zh) 一种勒索病毒文件识别与检测方法及系统
CN113660259A (zh) webshell检测方法、系统、计算机及可读存储介质
Cho et al. Detection of damaged files and measurement of similarity to originals using entropy graph characteristics
Alkasassbeh et al. Classification of malware based on file content and characteristics

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140428

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150428

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 9