KR100620313B1 - 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법 - Google Patents

마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법 Download PDF

Info

Publication number
KR100620313B1
KR100620313B1 KR1020050051271A KR20050051271A KR100620313B1 KR 100620313 B1 KR100620313 B1 KR 100620313B1 KR 1020050051271 A KR1020050051271 A KR 1020050051271A KR 20050051271 A KR20050051271 A KR 20050051271A KR 100620313 B1 KR100620313 B1 KR 100620313B1
Authority
KR
South Korea
Prior art keywords
section
file
header
malicious
malicious program
Prior art date
Application number
KR1020050051271A
Other languages
English (en)
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 KR1020050051271A priority Critical patent/KR100620313B1/ko
Application granted granted Critical
Publication of KR100620313B1 publication Critical patent/KR100620313B1/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/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Abstract

본 발명은 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법에 관한 것으로, 특히 더욱 상세하게는 마이크로소프트 실행파일 구조를 이용하여 대상 파일 전체를 읽지 않고, 파일의 시작 부분으로부터 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 검사함으로써, 네트워크를 통해 전파되는 파일들의 악성 프로그램 여부를 빠른 속도로 검사할 수 있고, 파일 시작 부분의 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 빠르게 검사함으로써, 악성 프로그램이 컴퓨터 내부의 저장장치에 완성되어 저장되기 전에 미리 제거할 수 있으며, 악성 프로그램의 특성값 뿐만 아니라 섹션 헤더의 오프셋(offset), 섹션의 개수, 섹션의 이름, 섹션 데이터의 오프셋과 크기, 각 섹션 데이터의 시작 위치로부터 순차적으로 임의의 바이트를 읽어 들여 정의한 프로그램의 특성값(signature)의 각기 다른 정보를 비교하여 악성 프로그램 검사를 수행함으로써, 악성 프로그램의 특성값만을 비교하여 악성 프로그램임을 탐지하는 방법에 비해 억울한 검출(false positive)의 가능성을 크게 낮출 수 있는 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법에 관한 것이다.
상기 본 발명은 대상 파일의 프로그램 헤더 부분을 읽어 처음 2바이트가 'MZ'로 되어있는 실행파일인지 여부를 확인하고, 상기 파일이 실행파일일 경우 16진수 3c만큼 떨어진 곳의 4바이트 값을 읽어 들여 PE 헤더 부분이 위치하는 오프셋 (offset), 섹션의 개수 및 섹션 헤더의 오프셋 정보를 수집하고, 분석하는 구조분석기모듈과; 40바이트 크기로 섹션의 개수만큼 반복해서 나타나는 섹션 헤더를 분석하여 각각의 섹션 헤더로부터 섹션의 이름, 섹션 데이터의 크기, 섹션 데이터의 오프셋정보 및 각 섹션 데이터에서 임의위치, 임의길이의 데이터를 수집하고, 상기 수집된 정보로부터 비교에 필요한 핵심 정보를 추출하여 상기 대상 파일의 특성값을 정의하고, 레코드를 형성하는 섹션분석기모듈과; 상기 섹션분석기모듈에서 정의한 대상 파일의 특성값을 악성 프로그램 데이터베이스에 수록된 특성값과 비교하여 상기 대상 파일이 악성 프로그램인지 여부를 검사하는 바이러스비교모듈;로 구성됨을 특징으로 한다.
따라서 본 발명은 마이크로소프트 실행파일 구조를 이용하여 대상 파일 전체를 읽지 않고도 상기 파일의 악성 프로그램 여부를 검사할 수 있어 빠른 속도로 악성 프로그램 검사를 수행할 수 있고, 파일 앞부분의 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 탐지할 수 있으므로, 네트워크를 통해 전파되는 악성 프로그램이 컴퓨터 내부의 저장장치에 완성되어 저장되기 전에 미리 제거할 수 있으며, 악성 프로그램의 특성값 뿐만 아니라 섹션 헤더의 오프셋, 섹션의 개수, 섹션의 이름, 섹션 데이터의 오프셋과 크기 등의 각기 다른 정보를 비교하여 악성 프로그램 검사를 진행하므로 억울한 검출(false positive)의 가능성을 낮춰주는 효과가 있다.
마이크로소프트 실행파일 구조, 악성 프로그램, 프로그램 헤더, 구조분석기모듈, 섹션분석기모듈, 바이러스비교모듈, PE 헤더, NT 헤더, 섹션 헤더.

Description

마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법{The System for detecting malicious code using the structural features of Microsoft Portable Executable and its using method}
도 1은 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 구조도.
도 2는 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 프로그램 헤더의 구조도.
도 3은 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 PE 헤더의 구조도.
도 4는 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 섹션 헤더의 구성도.
도 5는 본 발명의 일실시예에 따른 악성 프로그램 데이터베이스의 일례를 나타낸 도면.
도 6은 본 발명의 일실시예에 따른 악성 프로그램을 검출하기 위한 시스템에 따른 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100. 구조분석기모듈 200. 섹션분석기모듈
300. 바이러스비교모듈
본 발명은 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법에 관한 것으로, 특히 더욱 상세하게는 마이크로소프트 실행파일 구조를 이용하여 대상 파일 전체를 읽지 않고, 파일의 시작 부분으로부터 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 검사함으로써, 네트워크를 통해 전파되는 파일들의 악성 프로그램 여부를 빠른 속도로 검사할 수 있고, 파일 시작 부분의 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 빠르게 검사함으로써, 악성 프로그램이 컴퓨터 내부의 저장장치에 완성되어 저장되기 전에 미리 제거할 수 있으며, 악성 프로그램의 특성값 뿐만 아니라 섹션 헤더의 오프셋(offset), 섹션의 개수, 섹션의 이름, 섹션 데이터의 오프셋과 크기, 각 섹션 데이터의 시작 위치로부터 순차적으로 임의의 바이트를 읽어 들여 정의한 프로그램의 특성값(signature)의 각기 다른 정보를 비교하여 악성 프로그램 검사를 수행함으로써, 악성 프로그램의 특성값만을 비교하여 악성 프로그램임을 탐지하는 방법에 비해 억울한 검출(false positive)의 가능성을 크게 낮출 수 있는 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법에 관한 것이다.
컴퓨터 바이러스를 비롯한 악성 프로그램의 검출은 널리 사용되는 기술로, 국내의 안철수연구소, 하우리 등의 업체와 미국의 시만텍(Symantec), 맥아피 (McAfee), 영국의 소포스(Sophos), 대만의 트렌드마이크로(Trend Micro)를 포함하는 많은 회사들이 바이러스 검출 및 제거 사업에 참여하고 있다.
상기 컴퓨터 바이러스를 검출하는 방법은 크게 4가지 범주로 나눌 수 있다.
첫 번째 범주는 체크섬 점검기 혹은 무결성(Integrity) 점검기라고 불리는 방식으로서 실행 파일의 체크섬을 계산하여 체크섬 데이터베이스에 기록하였다가 사용자 혹은 운영체제(Operating System)에 의해 이 파일이 불려졌을 때 체크섬을 다시 계산하여 원래 데이터베이스에 기록되어 있던 체크섬과 비교해 보는 방법이다. 두 개의 체크섬이 동일하다면 안전한 실행파일로 간주되고, 만일 체크섬이 다르다면 악성 프로그램에 감염되었다고 판단하는 방법이다. 단 1개의 비트라도 변경이 된다면 체크섬의 값은 변하게 된다.
두 번째 범주는 패턴 매칭(pattern matching)방법이라고 불리는 것으로서 이미 악성 프로그램이라고 알려진 실행 파일의 일정 부분, 즉 파일의 최초 위치로부터 일정 거리(offset)만큼 떨어진 위치에서 일정한 양의 정보(signatures)를 취해 악성 프로그램 데이터베이스에 저장해 두었다가 향후 바이러스로 의심되는 파일을 검사할 때, 이 위치에 있는 일정량의 데이터를 취해서 악성 프로그램 데이터베이스와 패턴 매칭 알고리즘을 통해 비교하여 동일하다는 결과를 얻으면 악성 프로그램으로 분류하고, 동일하지 않다면 데이터베이스의 다음 항목으로 이동하여 검사를 계속하는 것이다.
세계적으로 유명한 악성 프로그램 검출, 제거를 수행하는 회사들은 악성 프로그램 데이터베이스에 지금까지 알려진 수만 종의 악성 프로그램 데이터가 총망라 되어 수록되어 있으므로 악성 프로그램 검출 능력이 뛰어난 것이다. 한 예로써 영국의 소포스의 경우 3만개 이상의 악성 프로그램에 대한 정보가 회사의 데이터베이스에 수록되어있다.
세 번째 범주는 휴리스틱(heuristic) 방법이라고 불리는 것으로서 어떤 알려진 바이러스의 특성값(signatures)을 이용해서 이 바이러스로부터 파생, 변형된 바이러스를 검출하는 방법이다. 보다 구체적으로 기술하자면, 어떤 바이러스의 특성값이 {bb00 0283 f901 757b 0af6 7577 .......... 756d 9cff} 라고 할 때, 특성값 전체가 일치하면 특정 바이러스라고 진단하지만 이 중 0283이 07f2로 되어있다 하더라도 이것이 변형된 바이러스의 형태라고 추정하여 이 파일 역시 변형된 바이러스에 감염되었다고 판단하는 것이다. 이 방법의 문제점은 바이러스가 아닌데도 불구하고 바이러스라고 판정하는 억울한 검출(false positive) 비율이 높아진다는 것이다. 따라서 이 방법은 실용적인 목적으로는 사용이 곤란하고 단지 안티바이러스 연구실에서만 사용될 수 있다.
마지막으로 네 번째 범주는 행동양태 분석(behavioral block) 혹은 에뮬레이션(emulation)이라고 부르는 방법이다. 이 방법은 바이러스로 의심되는 파일을 검사할 때, 다른 컴퓨터에 영향을 미치지 않도록 완전히 고립된 시험용 컴퓨터 환경을 만들어 놓고 이 환경 속에서 프로그램을 실행하는 것이다. 이때, 의심되는 프로그램이 디스크를 액세스하거나 자기 자신의 프로그램 이미지를 변경하려고 시도할 때, 혹은 운영체제의 커널(Kernel)부분에 쓰기 동작을 한다든가 하는 일반 프로그램으로서 불합리한 행동을 취하려고 할 때, 바이러스라고 판정하는 것이다.
이 방법은 알려지지 않은 바이러스를 검출하는 가장 확실한 방법임에는 분명하지만 바이러스 프로그램임을 확정하기 위해서는 많은 시간이 소요된다는 문제점을 지니고 있다. 따라서 이 방법은 악성 프로그램의 피해가 엄청난 경우 시간과 자원을 희생하더라도 좋다는 경우에 한정되어 사용된다. 또한 이 방법은 안티바이러스 업체의 실험실에서 악성 프로그램의 행동양태를 연구하거나 특성값(signature)을 추출할 때 사용된다.
전술한 바와 같이 바이러스를 포함하는 악성 코드를 특정하는 방법은 널리 사용되고 있다. 하지만 인터넷의 발달로 인해 바이러스가 유포되는 경로도 점점 진화하는 경향을 보여주고 있다. 초기의 악성 프로그램은 컴퓨터 디스켓 혹은 CD-ROM과 같은 매체를 이용하여 다른 컴퓨터로 복제할 때 감염되는 것이 주된 경로였으나 인터넷의 발달과 함께 이메일을 이용한 악성 프로그램 즉, 컴퓨터 바이러스, 웜, 스파이웨이 등의 유포가 일반화되었다. 더욱이 최근에 들어 메신저 프로그램의 보급에 따라 메신저를 통한 악성 프로그램의 유포가 늘어나고 있는 추세에 있다.
악성 프로그램의 유포 경로가 인터넷을 비롯한 네트워크 환경으로 이행됨에 따라 기존의 악성 프로그램 검출 방법은 시간이 많이 걸린다는 치명적인 약점을 지니고 있으므로 네트워크를 통해 전파되는 악성 프로그램이 메일 서버 혹은 사용자의 하드디스크 드라이브에 저장되어 악성 프로그램을 검출하는 안티 바이러스 프로그램을 실행시킬 때까지는 악성 프로그램인지 여부를 알 수 있는 방법이 없다. 더욱이 로컬 네트워크의 속도가 10Mbps에서 100Mbps로, 한 걸음 더 나아가 Giga bps로 발전하고 있는 현 상황에서 빠른 속도로 악성 프로그램 여부를 탐지할 수 있는 방법이 요구되고 있다.
또한 안티바이러스 업체에서 악성 프로그램의 특성값을 알아내기 위해서는 바이러스로 의심되는 파일을 외부와 차단된 환경에서 디버거(debugger) 프로그램의 감시 하에 실행을 시켜봄으로써 바이러스의 전형적인 행동양태(behavior), 즉 시스템의 커널 영역에 쓰기 작업을 하는 것, 자기 스스로의 프로그램에 변형을 가하는 것, 다른 실행파일을 변경하는 것, 자가 복제를 실행하는 것 그리고 다른 파일을 숙주로 사용하여 자기 자신을 숨기는 것 등의 작업을 수행하는지 확인한다. 만일 바이러스로 의심되는 프로그램이 이런 행동양태를 보이면 이 프로그램을 바이러스로 확정하고 바이러스로의 기능을 수행하는 프로그램의 부분을 이 바이러스 프로그램의 특성값(signature)으로 확정하여 바이러스 데이터베이스에 특성값을 추가함으로써 패턴 매칭 방법에 의한 바이러스 검출 및 치료 프로그램의 데이터베이스를 완성하게 된다.
바이러스 프로그램 특성값을 활용하는 구체적인 예를 들면 BAGLE 바이러스를 검출하기 위해 프로그램의 처음 위치로부터 2038 바이트 떨어진 곳에서 32바이트를 취해 바이러스 특성값 데이터베이스에 수록되어 있는 {034f 2315 1173 1c00 2b45 .. 7b31 2719 0000 13f4}과 비교하여 동일한 결과가 나오면 BAGLE 바이러스라고 판정하는 것이다. 물론 다른 바이러스의 경우에는 특성값이 프로그램의 뒷부분에 있는 경우도 있고, 데이터의 길이가 48 바이트 이상이 되는 경우도 있다.
이러한 방식으로 악성 프로그램을 진단하기 때문에 악성 프로그램이 아니지만 우연히 바이러스의 특성치, 즉 프로그램의 처음 위치로부터 떨어진 거리(예: 2038바이트)와 그 위치에서 특정한 (예: 32바이트) 크기의 데이터가 일치하는 경우에 벌어진다. 이를 억울한 검출(false positive)이라 하고 바이러스 검출 및 치료를 행하는 프로그램 업계에서는 이 위험성이 매우 널리 알려져 있다.
한편 어떤 파일이 바이러스 프로그램인지를 알아내기 위한 방법이 파일 전체를 대상으로 한다는 점이다. 어떤 파일이 바이러스인지를 알아내기 위해서는 데이터베이스에 수록된 바이러스 특성값과 검사 대상 파일의 특성값을 읽어내서 양자를 비교해야 하기 때문에 검사 대상 파일 전체를 대상으로 특정한 위치의 값들을 읽어내야만 한다. 만일 악성 프로그램 파일이 네트워크를 통해 전파되는 경우를 예로 들어보면 수신되는 파일의 일부분만을 가지고 바이러스 프로그램인지 알아내기가 곤란하다. 왜냐하면 악성 프로그램 특성값 데이터베이스에 수록된 3만건 정도의 레코드 중에는 파일의 끝부분에 이르러서야 바이러스의 행동양태를 나타내는 특성값이 수록되어 있는 경우도 있기 때문에 어떤 파일이 바이러스가 아니라고 확정하기 위해서는 파일의 끝부분까지 수신을 하여 파일을 완성시킨 다음, 바이러스 검출 프로그램을 실행하여 악성 프로그램 여부를 판별하여야만 한다.
바이러스 검출 및 치료 프로그램이 플로피디스켓, CD-ROM, 이동식 디스크 혹은 하드 디스크 등의 저장 장치에 수록된 파일을 대상으로 바이러스 검사를 할 때는 이미 파일이 완성된 채로 디스크 장치에 수록되어 있기 때문에 파일 전체를 대상으로 바이러스 검사를 한다고 해도 문제될 것이 없지만, 파일이 네트워크를 통해 전파되는 경우에는 파일의 수신이 완료될 때까지 기다렸다가 바이러스 검사를 하기 때문에 시간 지연이 발생하여 네트워크 성능에 대단히 나쁜 영향을 미치게 된다. 또한 네트워크 성능 저하를 회피하기 위하여 파일의 일부분만을 대상으로 바이러스 검사를 하면 정확한 검사를 수행할 수 없게 되는 문제점이 있었다.
이에 본 발명은 상기 문제점들을 해결하기 위하여 착상된 것으로서, 마이크로소프트 실행파일 구조를 이용하여 대상 파일 전체를 읽지 않고, 파일의 시작 부분으로부터 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 검사함으로써, 네트워크를 통해 전파되는 파일들의 악성 프로그램 여부를 빠른 속도로 검사할 수 있는 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법을 제공하는데 그 목적이 있다.
본 발명의 또 다른 목적은 파일 시작 부분의 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 빠르게 검사함으로써, 악성 프로그램이 컴퓨터 내부의 저장장치에 완성되어 저장되기 전에 미리 제거할 수 있는 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 악성 프로그램의 특성값 뿐만 아니라 섹션 헤더의 오프셋(offset), 섹션의 개수, 섹션의 이름, 섹션 데이터의 오프셋과 크기 각 섹션 데이터의 시작 위치로부터 순차적으로 임의의 바이트를 읽어 들여 정의한 프로그램의 특성값(signature)의 각기 다른 정보를 비교하여 악성 프로그램 검사를 수행함으로써, 악성 프로그램의 특성값만을 비교하여 악성 프로그램임을 탐지하는 방법에 비해 억울한 검출(false positive)의 가능성을 크게 낮출 수 있는 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템은 대상 파일의 프로그램 헤더 부분을 읽어 처음 2바이트가 'MZ'로 되어있는 실행파일인지 여부를 확인하고, 상기 파일이 실행파일일 경우 16진수 3c만큼 떨어진 곳의 4바이트 값을 읽어 들여 PE 헤더 부분이 위치하는 오프셋(offset), 섹션의 개수 및 섹션 헤더의 오프셋 정보를 수집하고, 분석하는 구조분석기모듈과; 40바이트 크기로 섹션의 개수만큼 반복해서 나타나는 섹션 헤더를 분석하여 각각의 섹션 헤더로부터 섹션의 이름, 섹션 데이터의 크기, 섹션 데이터의 오프셋정보 및 각 섹션 데이터에서 임의위치, 임의길이의 데이터를 수집하고, 상기 수집된 정보로부터 비교에 필요한 핵심 정보를 추출하여 상기 대상 파일의 특성값을 정의하고, 레코드를 형성하는 섹션분석기모듈과; 상기 섹션분석기모듈에서 정의한 대상 파일의 특성값을 악성 프로그램 데이터베이스에 수록된 특성값과 비교하여 상기 대상 파일이 악성 프로그램인지 여부를 검사하는 바이러스비교모듈;로 구성됨을 특징으로 한다.
상기한 본 발명의 목적을 달성하기 위한 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 방법은 구조분석기모듈에서 대상 파일의 프로그램 헤더 부분의 첫 2바이트를 읽는 단계와, 상기 대상 파일이 첫 2바이트가 'MZ'로 되어있는지 여부를 확인하여 대상 파일이 실행파일 인지 여부를 확인하는 단계와, 상기 대상 파일이 실행파일이 아닐 경우에는 악성 프로그램 검사를 종료하고, 실행파일일 경우에는 16진수 3c 만큼 떨어진 곳의 4바이트 값을 읽어 PE 헤더의 오프셋(offset) 정보를 수집하는 단계와, 상기 섹션의 개수 정보를 수집하는 단계와, 상기 섹션 헤더의 오프셋 정보를 수집하는 단계와, 섹션분석기모듈에서 40바이트 크기로 섹션의 개수만큼 반복해서 나타나는 섹션 헤더를 분석하여 각각의 섹션 헤더로부터 각 섹션의 이름 정보를 수집하는 단계와, 상기 각 섹션 데이터의 크기 정보를 수집하는 단계와, 상기 각 섹션 데이터의 오프셋 정보를 수집하는 단계와, 상기 각 섹션 데이터에서 임의의 위치, 임의길이의 데이터를 수집하는 단계와, 상기 수집된 정보로부터 비교에 필요한 핵심 정보를 추출하여 상기 대상 파일의 특성값을 정의하고, 레코드를 형성하는 단계와, 바이러스비교모듈에서 상기 섹션분석기모듈에서 정의한 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값을 비교하는 단계와, 상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값의 일치 여부를 확인하는 단계와, 상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값이 일치할 경우에는 상기 대상 파일이 악성 프로그램임을 검출하고 악성 프로그램 검사를 종료하고, 일치하지 않을 경우에는 상기 악성 프로그램 데이터베이스에 수록된 특성값이 악성 프로그램 데이터베이스의 마지막 데이터인지 여부를 확인하는 단계와, 상기 악성 프로그램 데이터베이스에 수록된 특성값이 악성 프로그램 데이터베이스의 마지막 데이터일 경우에는 상기 대상 파일을 안전한 파일로 확인하고 악성 프로그램 검사를 종료하고, 마지막 데이터가 아닐 경우에는 악성 프로그램 데이터베이스의 다음 항목으로 이동하여 상기 섹 션분석기모듈에서 정의한 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값을 비교하는 단계로 되돌아가 상기 악성 프로그램 데이터베이스의 다음 항목 특성값과 상기 대상 파일의 특성값을 비교하는 단계를 포함함을 특징으로 한다.
마이크로소프트 회사의 운영체제에서 동작하는 프로그램은 마이크로소프트 회사가 정한 실행파일 구조(Microsoft portable executable)를 따라야만 하며, 이 구조와 어긋나는 프로그램은 마이크로소프트 회사의 운영체제하에서는 동작하지 않는다.
상기 실행파일의 구조를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 구조도이다.
도 1에 도시한 바와 같이, 마이크로소프트 회사의 실행파일 구조에 따르면 모든 실행파일은 프로그램 헤더 부분, PE 헤더 부분, NT 헤더 부분, 섹션 헤더 부분, 이미지 페이지, 실행부로 구성되어 있다.
도 2는 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 프로그램 헤더의 구조도이다.
도 2에 도시한 바와 같이, 상기 마이크로소프트 실행파일의 프로그램 헤더의 구조도는 MZ EXE 헤더, 확장된 MZ 헤더, 그리고 DOS용 필드로 구성되어 있다.
상기 DOS용 필드에는 'Requires Windows to run'과 같은 경고 메시지가 담겨있다.
도 3은 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 PE 헤더의 구 조도이다.
도 3에 도시한 바와 같이, 상기 프로그램 헤더에 이어 나오는 PE 헤더에는 CPU 타입, 섹션의 개수, 파일이 생성된 날짜와 시간, NT 헤더 사이즈 등의 중요한 정보들이 기록되어 있다.
상기 PE 헤더 뒤에는 NT 헤더가 존재하며 그 뒤를 이어 다수개의 40바이트 크기의 섹션 헤더가 존재한다.
도 4는 본 발명의 일실시예에 따른 마이크로소프트 실행파일의 섹션 헤더의 구성도이다.
도 4에 도시한 바와 같이, 상기 섹션 헤더는 각 섹션 별로 40바이트씩 할당되어 실제적인 실행부분인 섹션에 관한 정보를 담고 있다. 상기 섹션 헤더의 주요 정보로는 섹션 헤더 선두의 8바이트에 섹션의 이름이 ASCII코드로 수록되어 있고, 섹션 헤더의 위치로부터 8바이트만큼 떨어진 지점에서 4바이트에 섹션의 크기가 수록되어 있다.
도 5는 본 발명의 일실시예에 따른 악성 프로그램 데이터베이스의 일례를 나타낸 도면이고, 도 6은 본 발명의 일실시예에 따른 악성 프로그램을 검출하기 위한 시스템에 따른 흐름도이다.
도 5 및 도 6에 도시한 바와 같이, 악성 프로그램을 검출하는 시스템은 구조분석기모듈(100), 섹션분석기모듈(200), 바이러스비교모듈(300)로 구성되며, 상기 악성 프로그램 데이터베이스의 일례와 악성 프로그램 검출 흐름을 통해 악성 프로그램을 검출하는 방법을 살펴보면 다음과 같다.
상기 구조분석기모듈(100)은 악성 프로그램 여부를 조사할 대상 파일의 앞부분을 읽어 구조를 분석하는 모듈로서, 상기 구조분석기모듈(100)에서는 대상 파일의 프로그램 헤더 부분을 읽어 처음 2바이트가 'MZ'로 되어있는 실행파일인지 여부를 확인하고, 상기 대상 파일이 실행파일일 경우 16진수 3c만큼 떨어진 곳의 4바이트 값을 읽어 들여 PE 헤더 부분이 위치하는 오프셋(offset), 섹션의 개수 및 섹션 헤더의 오프셋을 분석하여 상기 각 정보를 수집한다.
상기 구조분석기모듈(100)에서는 프로그램 헤더의 처음 4바이트를 읽어 첫 2바이트가 'MZ'인지 확인하게 된다. 이때 상기 프로그램 헤더의 첫 2바이트가 'MZ'로 되어 있으면 상기 대상 파일은 마이크로소프트 운영제체 하에서 동작하는 실행파일이다. 일반적으로 마이크로소프트 Windows 운영체제 하에서 동작하는 모든 악성 프로그램은 실행파일이기 때문에 이 규칙에서 벗어날 수 없게 된다.
또한 상기 구조분석기모듈(100)은 프로그램 파일의 처음에서 16진수 3c만큼 떨어진 지점에서 시작해서 4바이트를 읽어 PE 헤더가 위치하는 오프셋을 알아내고, PE 헤더가 시작하는 지점으로부터 6바이트 떨어진 지점에서 시작해서 2바이트를 읽어들여 섹션의 개수를 알아내며, 상기 PE 헤더의 시작지점으로부터 16진수 14만큼 떨어진 위치에서 2바이트를 읽어 들여 NT 헤더의 크기를 알아낸 다음, PE 헤더의 종료지점에 NT 헤더의 크기를 더해 섹션 헤더의 위치를 계산한다. 따라서 섹션 헤더가 프로그램의 시작 지점으로부터 떨어진 오프셋은 다음 공식에 의해 계산된다.
섹션 헤더의 오프셋 = PE 헤더의 오프셋 + PE 헤더의 크기 + NT 헤더의 크기
상기 섹션분석기모듈(200)은 40바이트 크기로 섹션의 개수만큼 반복해서 나타나는 섹션 헤더를 분석하여 각각의 섹션 헤더로부터 섹션의 이름, 섹션 데이터의 크기, 섹션 데이터의 오프셋 및 각 섹션 데이터에서 임의위치, 임의길이의 데이터를 분석하는 모듈로서, 상기 구조분석기모듈(100)과 상기 섹센분석기모듈(200)을 통과하면 상기 대상 파일에 대한 다음과 같은 정보가 수집된다.
1. 섹션의 개수
2. 섹션 헤더의 오프셋
3. 각 섹션의 이름
4. 각 섹션 데이어터의 크기와 오프셋
5. 각 섹션 데이터의 시작 위치로부터 순차적으로 임의의 바이트를 읽어 들여 프로그램의 특성값(signature)을 정의한다.
상기 섹션분석기모듈(200)에서는 상기와 같은 5가지 정보로 구성된 레코드를 만든다.
상기 프로그램 헤더의 크기는 최대 300바이트를 넘지 않고, PE 헤더와 NT 헤더를 합한 크기는 최대 200바이트를 넘지 않으며, 섹션 헤더의 크기는 섹션마다 40바이트씩이므로 일반적인 실행파일의 섹션 개수가 3개 내지 4개인 것을 감안하면 160바이트를 넘지 않는다. 상기 섹션의 개수가 최대 16개라고 가정한다 해도 640바 이트를 넘지 않으므로, 본 발명에서 필요로 하는 정보를 수집하기 위해서는 최대 1140바이트의 헤더 정보와 각 섹션의 시작 부분에서 취하는 소량의 바이트의 정보만을 필요로 하게 되어 최대 2048바이트의 정보만을 필요로 하게 된다.
상기 바이러스비교모듈(300)은 상기 5가지의 정보를 미리 만들어져 있는 이미 알려진 악성 프로그램 데이터베이스와 비교하여 대상 파일이 악성 프로그램인지 여부를 탐지하는 모듈로서, 상기 섹션분석기모듈(200)에서 정의한 상기 대상 파일의 특성값을 악성 프로그램 데이터베이스에 수록된 특성값과 비교하여 상기 대상 파일이 악성 프로그램인지 여부를 검사한다.
상기 바이러스비교모듈(300)에서는 특성값만을 대상으로 악성 프로그램 검사를 수행하지 않고, 상기 섹션 헤더의 오프셋, 섹션의 개수, 섹션의 이름, 섹션 데이터의 오프셋과 크기 각 섹션 데이터의 시작 위치로부터 순차적으로 임의의 바이트를 읽어 들여 정의한 프로그램의 특성값(signature)의 각기 다른 정보를 비교하여 검사를 수행하므로, 악성 프로그램이 아닌 대상 파일과 악성 프로그램이 우연히 동일한 정보를 가질 확률은 0에 수렴하게 되어 억울한 검출(false positive)의 가능성을 낮출 수 있게 되는 것이다.
또한 상기 바이러스비교모듈(300)에서는 상기 5가지 정보 중에서 필요로 하는 정보만을 선택하여 비교할 수 있다.
본 발명에 따른 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 방법은
먼저 단계 S10에서는 구조분석기모듈에서 대상 파일의 프로그램 헤더 부분의 첫 2바이트를 읽고, 단계 S20에서 상기 대상 파일이 첫 2바이트가 'MZ'로 되어있는지 여부를 확인하여 대상 파일이 실행파일 인지 여부를 확인하여, 상기 대상 파일이 실행파일이 아닐 경우(S21 단계)에는 악성 프로그램 검사를 종료하고, 상기 대상 파일이 실행파일일 경우에는 단계 S30에서 16진수 3c 만큼 떨어진 곳의 4바이트 값을 읽어 PE 헤더의 오프셋(offset) 정보를 수집하고, 단계 S40에서 상기 섹션의 개수 정보를 수집하며, S50 단계에서는 상기 섹션 헤더의 오프셋 정보를 수집한다.
단계 S60에서는 섹션분석기모듈에서 40바이트 크기로 섹션의 개수만큼 반복해서 나타나는 섹션 헤더를 분석하여 각각의 섹션 헤더로부터 각 섹션의 이름 정보를 수집하고, 단계 S70에서 상기 각 섹션 데이터의 크기 정보를 수집하며, 단계 S80에서는 상기 각 섹션 데이터의 오프셋 정보를 수집하고, 단계 S90에서는 상기 각 섹션 데이터에서 임의의 위치, 임의길이의 데이터를 수집한다. S100단계에서는 상기 수집된 정보로부터 악성 프로그램과 상기 대상 파일의 비교에 필요한 핵심 정보를 추출하여 상기 대상 파일의 특성값을 정의하고, 레코드를 형성한다. 이어서 단계 S110에서는 바이러스비교모듈에서 상기 섹션분석기모듈에서 정의한 상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값을 비교하고, 단계 S120에서 상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값의 일치 여부를 확인하여, 상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값이 일치할 경우에는 S121단계에서 상기 대상 파일이 악성 프로그램임을 검출하고 악성 프로그램 검사를 종료한다. 한편 상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값이 일치하지 않을 경우에는 S130단계 에서 상기 악성 프로그램 데이터베이스에 수록된 특성값이 악성 프로그램 데이터베이스의 마지막 데이터인지 여부를 확인하여, 상기 악성 프로그램 데이터베이스에 수록된 특성값이 악성 프로그램 데이터베이스의 마지막 데이터일 경우에는 S131단계에서 상기 대상 파일을 안전한 파일로 확인하고 악성 프로그램 검사를 종료하며, 상기 악성 프로그램 데이터베이스에 수록된 특성값이 악성 프로그램 데이터베이스의 마지막 데이터가 아닐 경우에는 S140 단계에서 상기 악성 프로그램 데이터베이스의 다음 항목으로 이동하여 상기 섹션분석기모듈에서 정의한 상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값을 비교하는 단계로 되돌아가 상기 악성 프로그램 데이터베이스의 다음 항목 특성값과 상기 대상 파일의 특성값을 비교하게 된다.
상기와 같이, 본 발명은 마이크로소프트 회사의 실행파일 구조를 이용하여 파일의 시작 부분 1024바이트 내지 2048바이트만을 읽어 대상 파일의 섹션 헤더의 오프셋, 섹션의 개수, 섹션의 이름, 섹션 데이터의 오프셋과 크기 등의 정보를 주출하여 상기 대상 파일의 특성값을 정의하고, 상기 정보 및 특성값을 통하여 악성 프로그램 검사를 수행함으로써. 빠른 속도로 악성 프로그램을 검사할 수 있고, 네트워크를 통해 전파되는 악성 프로그램이 컴퓨터 내부의 저장장치에 완성되기 전에 미리 제거할 수 있으며, 억울한 검출(false positive)의 가능성을 낮추는 효과가 있다.
이상에서 설명한 바와 같이, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것은 아니다.
상술한 바와 같이, 본 발명에 따른 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템 및 방법은 다음과 같은 효과를 가진다.
첫째, 본 발명은 마이크로소프트 실행파일 구조를 이용하여 대상 파일 전체를 읽지 않고, 파일의 시작 부분으로부터 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 검사함으로써, 네트워크를 통해 전파되는 파일들의 악성프로그램 여부를 빠른 속도로 검사할 수 있다.
둘째, 본 발명은 파일 시작 부분의 1024바이트 내지 2048바이트만을 읽어 악성 프로그램 여부를 빠르게 검사함으로써, 악성 프로그램이 컴퓨터 내부의 저장장치에 완성되어 저장되기 전에 미리 제거할 수 있다.
셋째, 본 발명은 악성 프로그램의 특성값 뿐만 아니라 섹션 헤더의 오프셋(offset), 섹션의 개수, 섹션의 이름, 섹션 데이터의 오프셋과 크기 각 섹션 데이터의 시작 위치로부터 순차적으로 임의의 바이트를 읽어 들여 정의한 프로그램의 특성값(signature)의 각기 다른 정보를 비교하여 악성 프로그램 검사를 수행함으로써, 악성 프로그램의 특성값만을 비교하여 악성 프로그램임을 탐지하는 방법에 비해 억울한 검출(false positive)의 가능성을 크게 낮출 수 있는 효과가 있다.

Claims (2)

  1. 악성 프로그램 검출 시스템에 있어서,
    대상 파일의 악성 프로그램 헤더 부분을 읽어 처음 2바이트가 'MZ'로 되어있는 실행파일인지 여부를 확인하고, 상기 파일이 실행파일일 경우 16진수 3c만큼 떨어진 곳의 4바이트 값을 읽어 들여 PE 헤더 부분이 위치하는 오프셋(offset), 섹션의 개수 및 섹션 헤더의 오프셋 정보를 수집하고, 분석하는 구조분석기모듈과;
    40바이트 크기로 섹션의 개수만큼 반복해서 나타나는 섹션 헤더를 분석하여 각각의 섹션 헤더로부터 섹션의 이름, 섹션 데이터의 크기, 섹션 데이터의 오프셋정보 및 각 섹션 데이터에서 임의위치, 임의길이의 데이터를 수집하고, 상기 수집된 정보로부터 비교에 필요한 핵심 정보를 추출하여 상기 대상 파일의 특성값을 정의하고, 레코드를 형성하는 섹션분석기모듈과;
    상기 섹션분석기모듈에서 정의한 대상 파일의 특성값을 악성 프로그램 데이터베이스에 수록된 특성값과 비교하여 상기 대상 파일이 악성 프로그램인지 여부를 검사하는 바이러스비교모듈을 포함함을 특징으로 하는 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 시스템.
  2. 악성 프로그램의 검출 방법에 있어서,
    구조분석기모듈에서 대상 파일의 프로그램 헤더 부분의 첫 2바이트를 읽는 단계와,
    상기 대상 파일이 첫 2바이트가 'MZ'로 되어있는지 여부를 확인하여 대상 파일이 실행파일 인지 여부를 확인하는 단계와,
    상기 대상 파일이 실행파일이 아닐 경우에는 악성 프로그램 검사를 종료하고, 실행파일일 경우에는 16진수 3c 만큼 떨어진 곳의 4바이트 값을 읽어 PE 헤더의 오프셋(offset) 정보를 수집하는 단계와,
    상기 섹션의 개수 정보를 수집하는 단계와,
    상기 섹션 헤더의 오프셋 정보를 수집하는 단계와,
    섹션분석기모듈에서 40바이트 크기로 섹션의 개수만큼 반복해서 나타나는 섹션 헤더를 분석하여 각각의 섹션 헤더로부터 각 섹션의 이름 정보를 수집하는 단계와,
    상기 각 섹션 데이터의 크기 정보를 수집하는 단계와,
    상기 각 섹션 데이터의 오프셋 정보를 수집하는 단계와,
    상기 각 섹션 데이터에서 임의의 위치, 임의길이의 데이터를 수집하는 단계와,
    상기 수집된 정보로부터 비교에 필요한 핵심 정보를 추출하여 상기 대상 파일의 특성값을 정의하고, 레코드를 형성하는 단계와,
    바이러스비교모듈에서 상기 섹션분석기모듈에서 정의한 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값을 비교하는 단계와,
    상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값의 일치 여부를 확인하는 단계와,
    상기 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값이 일치할 경우에는 상기 대상 파일이 악성 프로그램임을 검출하고 악성 프로그램 검사를 종료하고, 일치하지 않을 경우에는 상기 악성 프로그램 데이터베이스에 수록된 특성값이 악성 프로그램 데이터베이스의 마지막 데이터인지 여부를 확인하는 단계와,
    상기 악성 프로그램 데이터베이스에 수록된 특성값이 악성 프로그램 데이터베이스의 마지막 데이터일 경우에는 상기 대상 파일을 안전한 파일로 확인하고 악성 프로그램 검사를 종료하고, 마지막 데이터가 아닐 경우에는 악성 프로그램 데이터베이스의 다음 항목으로 이동하여 상기 섹션분석기모듈에서 정의한 대상 파일의 특성값과 악성 프로그램 데이터베이스에 수록된 특성값을 비교하는 단계로 되돌아가 상기 악성 프로그램 데이터베이스의 다음 항목 특성값과 상기 대상 파일의 특성값을 비교하는 단계를 포함함을 특징으로 하는 마이크로소프트 실행파일의 구조적 특성을 이용한 악성 프로그램 검출 방법.
KR1020050051271A 2005-06-15 2005-06-15 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법 KR100620313B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050051271A KR100620313B1 (ko) 2005-06-15 2005-06-15 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050051271A KR100620313B1 (ko) 2005-06-15 2005-06-15 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR100620313B1 true KR100620313B1 (ko) 2006-09-06

Family

ID=37625784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050051271A KR100620313B1 (ko) 2005-06-15 2005-06-15 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100620313B1 (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942798B1 (ko) * 2007-11-29 2010-02-18 한국전자통신연구원 악성코드 탐지장치 및 방법
KR100942795B1 (ko) * 2007-11-21 2010-02-18 한국전자통신연구원 악성프로그램 탐지장치 및 그 방법
KR100954357B1 (ko) * 2008-06-13 2010-04-26 주식회사 안철수연구소 Pe 파일 진단 시스템 및 그 방법 그리고 이에 적용되는모듈
KR100968120B1 (ko) 2008-03-10 2010-07-06 주식회사 안철수연구소 코드 변형 감지 시스템 및 그 방법
KR100968267B1 (ko) * 2008-06-13 2010-07-06 주식회사 안철수연구소 컴파일러 구분에 의한 악성코드 진단장치 및 방법
KR101029112B1 (ko) 2008-12-15 2011-04-13 한국전자통신연구원 Pe 파일의 실행압축 여부 판단방법 및 그 판단 프로그램이 기록된 기록매체
US8065729B2 (en) 2006-12-01 2011-11-22 Electronics And Telecommunications Research Institute Method and apparatus for generating network attack signature
KR101110308B1 (ko) * 2008-12-22 2012-02-15 한국전자통신연구원 실행압축 특성을 이용한 악성코드 탐지장치 및 그 방법
KR101365084B1 (ko) 2013-03-29 2014-03-12 모젼스랩(주) 소프트웨어의 불법 복제 방지 및 침해 예방을 위한 실행파일 식별 방법
KR101404108B1 (ko) 2008-12-10 2014-06-10 한국전자통신연구원 윈도우 실행파일 추출방법, 및 장치
KR20150136919A (ko) * 2014-05-28 2015-12-08 주식회사 안랩 악성파일진단장치 및 악성파일진단장치의 진단 방법
KR101745873B1 (ko) 2015-12-18 2017-06-27 고려대학교 산학협력단 악성 문서 파일 식별 시스템 및 방법
CN109002710A (zh) * 2017-06-07 2018-12-14 中国移动通信有限公司研究院 一种检测方法、装置及计算机可读存储介质
CN114363060A (zh) * 2021-12-31 2022-04-15 深信服科技股份有限公司 一种域名检测方法、系统、设备及计算机可读存储介质

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065729B2 (en) 2006-12-01 2011-11-22 Electronics And Telecommunications Research Institute Method and apparatus for generating network attack signature
KR100942795B1 (ko) * 2007-11-21 2010-02-18 한국전자통신연구원 악성프로그램 탐지장치 및 그 방법
KR100942798B1 (ko) * 2007-11-29 2010-02-18 한국전자통신연구원 악성코드 탐지장치 및 방법
KR100968120B1 (ko) 2008-03-10 2010-07-06 주식회사 안철수연구소 코드 변형 감지 시스템 및 그 방법
KR100954357B1 (ko) * 2008-06-13 2010-04-26 주식회사 안철수연구소 Pe 파일 진단 시스템 및 그 방법 그리고 이에 적용되는모듈
KR100968267B1 (ko) * 2008-06-13 2010-07-06 주식회사 안철수연구소 컴파일러 구분에 의한 악성코드 진단장치 및 방법
KR101404108B1 (ko) 2008-12-10 2014-06-10 한국전자통신연구원 윈도우 실행파일 추출방법, 및 장치
KR101029112B1 (ko) 2008-12-15 2011-04-13 한국전자통신연구원 Pe 파일의 실행압축 여부 판단방법 및 그 판단 프로그램이 기록된 기록매체
KR101110308B1 (ko) * 2008-12-22 2012-02-15 한국전자통신연구원 실행압축 특성을 이용한 악성코드 탐지장치 및 그 방법
KR101365084B1 (ko) 2013-03-29 2014-03-12 모젼스랩(주) 소프트웨어의 불법 복제 방지 및 침해 예방을 위한 실행파일 식별 방법
KR20150136919A (ko) * 2014-05-28 2015-12-08 주식회사 안랩 악성파일진단장치 및 악성파일진단장치의 진단 방법
KR101645412B1 (ko) 2014-05-28 2016-08-04 주식회사 안랩 악성파일진단장치 및 악성파일진단장치의 진단 방법
KR101745873B1 (ko) 2015-12-18 2017-06-27 고려대학교 산학협력단 악성 문서 파일 식별 시스템 및 방법
CN109002710A (zh) * 2017-06-07 2018-12-14 中国移动通信有限公司研究院 一种检测方法、装置及计算机可读存储介质
CN109002710B (zh) * 2017-06-07 2021-06-22 中国移动通信有限公司研究院 一种检测方法、装置及计算机可读存储介质
CN114363060A (zh) * 2021-12-31 2022-04-15 深信服科技股份有限公司 一种域名检测方法、系统、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
KR100620313B1 (ko) 마이크로소프트 실행파일의 구조적 특성을 이용한 악성프로그램 검출 시스템 및 방법
Scaife et al. Cryptolock (and drop it): stopping ransomware attacks on user data
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
Yin et al. Panorama: capturing system-wide information flow for malware detection and analysis
US8375450B1 (en) Zero day malware scanner
JP5557623B2 (ja) 感染検査システム及び感染検査方法及び記録媒体及びプログラム
JP5069308B2 (ja) 不適切なコードおよびデータの拡散防止における改善
US20070152854A1 (en) Forgery detection using entropy modeling
US20090133125A1 (en) Method and apparatus for malware detection
CN108399338B (zh) 基于进程行为的平台完整性状态信息度量方法
US20120174227A1 (en) System and Method for Detecting Unknown Malware
US20080083034A1 (en) Attack classification method for computer network security
US9239922B1 (en) Document exploit detection using baseline comparison
JP4732484B2 (ja) 仮想環境を利用した非実行ファイル内のエクスプロイトコード分析方法及び装置
JP2012501028A (ja) コード解析の発見的方法
RU2739830C1 (ru) Система и способ выбора средства обнаружения вредоносных файлов
JP6711000B2 (ja) 情報処理装置、ウィルス検出方法及びプログラム
JP2010182019A (ja) 異常検知装置およびプログラム
WO2016121348A1 (ja) マルウェア対策装置、マルウェア対策システム、マルウェア対策方法、及び、マルウェア対策プログラムが格納された記録媒体
JP4773332B2 (ja) セキュリティ管理装置及びセキュリティ管理方法及びプログラム
WO2018070404A1 (ja) マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラムが格納された記録媒体
Namanya et al. Evaluation of automated static analysis tools for malware detection in Portable Executable files
US8938807B1 (en) Malware removal without virus pattern
KR20130074224A (ko) 악성코드의 행동 패턴 수집장치 및 방법
KR101322037B1 (ko) N-그램 모델에 기반한 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법

Legal Events

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

Payment date: 20120827

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140829

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151026

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170828

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee