KR20070049511A - Analysis system for malicious code and method thereof - Google Patents

Analysis system for malicious code and method thereof Download PDF

Info

Publication number
KR20070049511A
KR20070049511A KR1020050106692A KR20050106692A KR20070049511A KR 20070049511 A KR20070049511 A KR 20070049511A KR 1020050106692 A KR1020050106692 A KR 1020050106692A KR 20050106692 A KR20050106692 A KR 20050106692A KR 20070049511 A KR20070049511 A KR 20070049511A
Authority
KR
South Korea
Prior art keywords
code
malicious code
malicious
operating system
call
Prior art date
Application number
KR1020050106692A
Other languages
Korean (ko)
Other versions
KR100786725B1 (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 KR1020050106692A priority Critical patent/KR100786725B1/en
Publication of KR20070049511A publication Critical patent/KR20070049511A/en
Application granted granted Critical
Publication of KR100786725B1 publication Critical patent/KR100786725B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 악성코드 분석 시스템 및 방법에 관한 것이다.The present invention relates to a malware analysis system and method.

본 발명의 실시예에 따른 악성코드 분석 시스템은 코드를 실행시키기 위한 운영체제를 갖춘 컴퓨터 단말기; 및 상기 코드가 악성코드인지 여부를 결정하는 악성코드 분석부를 포함하여 구성되되, 상기 악성코드 분석부는 상기 코드가 상기 운영체제에서 실행되는 동안 상기 운영체제로부터 호출하는 시스템 호출 및 장치호출에 관련된 실행특성을 모니터링하여 메모리에 저장된 악성코드의 호출특성과 비교함으로써, 악성코드 여부를 결정하는 악성코드 분석부를 구비하는 것을 특징으로 한다.A malicious code analysis system according to an embodiment of the present invention includes a computer terminal having an operating system for executing code; And a malicious code analysis unit for determining whether the code is malicious code, wherein the malicious code analysis unit monitors execution characteristics related to system calls and device calls that are called from the operating system while the code is executed in the operating system. By comparing with the calling characteristics of the malicious code stored in the memory, characterized in that it comprises a malicious code analysis unit for determining whether or not malicious code.

본 발명의 실시예에 따르면 악성코드 분석 시스템은 코드를 신속 정확하게 분석하여, 분석된 코드가 악성코드인지, 악성코드의 변종 또는 아류인지를 파악하여 악성코드 데이터베이스를 업데이트함으로써, 보다 풍부부한 데이터베이스를 구축함과 아울러, 악성코드를 신속 정확하게 선별함으로써, 악성코드의 확산과 이동 및 공격의 크기를 최소화할 수 있다.According to an embodiment of the present invention, the malware analysis system analyzes the code quickly and accurately, and checks whether the analyzed code is a malicious code, a variant or a subtype of the malicious code, and updates the malware database, thereby creating a richer database. In addition to the destroyer, by quickly and accurately screening the malicious code, it is possible to minimize the spread, movement and attack size of the malicious code.

악성코드, 컴퓨터 단말기, 분석 시스템, 방법, 트로이얀, 백도어, 웜, 바이러스  Malware, Computer Terminal, Analysis System, Method, Trojan, Backdoor, Worm, Virus

Description

악성코드 분석 시스템 및 방법{ANALYSIS SYSTEM FOR MALICIOUS CODE AND METHOD THEREOF}ANALYSIS SYSTEM FOR MALICIOUS CODE AND METHOD THEREOF

도 1은 종래의 악성코드 분석 시스템을 도시한 구성도.1 is a block diagram showing a conventional malware analysis system.

도 2는 본 발명의 실시예에 따른 악성코드 분석 시스템을 도시한 구성도.Figure 2 is a block diagram showing a malware analysis system according to an embodiment of the present invention.

도 3은 도 2의 운영체제의 일예를 도시한 구성도.3 is a diagram illustrating an example of an operating system of FIG. 2;

도 4는 도 2의 악성코드 본석 시스템을 상세한 도시한 구성도.4 is a detailed block diagram showing the malicious code main system of FIG.

도 5는 본 발명의 실시예에 따른 악성코드 분석 방법을 나타낸 흐름도.5 is a flowchart illustrating a malicious code analysis method according to an embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100 : 코드 200 : 운영체제100: code 200: operating system

300 : 악성코드 분석부 310 : 시스템 호출 검사부300: malware analysis unit 310: system call inspection unit

320 : 장치 호출 검사부 330 : 비교부320: device call inspection unit 330: comparison unit

340 : 데이터 베이스340: Database

본 발명은 악성코드 분석 시스템 및 방법에 관한 것으로, 특히 다양한 악성코드 및 그의 변종 코드를 분석하고, 분석된 데이터를 바탕으로 악성코드 여부를 결정함과 아울러 결정된 악성코드를 새로운 데이터 베이스에 저장함으로써, 악성코드를 신속 정확하게 검출할 수 있는 악성코드 분석 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for analyzing malicious codes, and in particular, by analyzing various malicious codes and variants thereof, determining whether the malicious codes are based on the analyzed data, and storing the determined malicious codes in a new database. The present invention relates to a malware analysis system and method capable of quickly and accurately detecting malware.

메모리와 통신기술의 눈부신 발달로 인하여 컴퓨터의 성능은 거의 무한에 가까운 능력을 가지게 되었으며, 이와 더불어 네트웍 기반 시설의 발달에 따른 인터넷의 보급이 세계 곳곳에 확장되어가고 있는 추세이다. 이러한 인터넷의 보급은 지구촌의 개념을 사이버 상으로 옮겨 놓았을 뿐만아니라, 다양한 형태의 새로운 문화를 만들기도 한다. 특히, 인터넷은 정보 공유를 그 기본 목적으로 하는 것으로, 세계의 유수하고 탁월한 프로그램들이 이 인터넷을 통하여 전파되고 있다. 이러한 인터넷은 그 긍정적인 효과와 더불어 파괴적이고, 침해적인 역기능 문제를 파생시키고 있다. 이 문제점은 특히, 다른 인터넷 사용자의 정보를 허가 없이 해킹하여 불법 유용하거나, 다른 인터넷 사용자의 컴퓨터 단말기, 서버 등을 잠식하는 행위 등의 불법적이며 고의적인 문제로 비화 되어가고 있어 사회의 심각한 문제로 대두되고 있다. 일예로, 웜바이러스 및 악성코드를 이용한 타 시스템의 공격, 타 단말기 정보파괴 문제는 오늘날에는 일반적인 문제처럼 느껴질 정도로 자주 그리고 심각하게 발생하고 있다.Due to the remarkable development of memory and communication technology, the performance of computer has almost unlimited ability. In addition, the spread of the Internet according to the development of network infrastructure is expanding all over the world. This dissemination of the Internet has not only brought the concept of global villages into cyberspace, but also creates new cultures in various forms. In particular, the Internet is based on information sharing, and the world's leading and outstanding programs are spreading through the Internet. This Internet, together with its positive effects, is creating destructive and intrusive dysfunction problems. In particular, this problem has emerged as a serious problem in society as it is being illegally and deliberately hacked into another Internet user's information without permission, or illegally encroaching on another Internet user's computer terminal or server. It is becoming. For example, attacks of other systems using worm viruses and malware, and information destruction of other devices are occurring frequently and seriously, which seems to be a common problem today.

이 중에서, 악성코드는 인터넷을 이용하는 사용자가 다른 사람의 컴퓨터에 대량의 데이터를 전송하거나, 성인음란사이트가 연속적으로 뜨게 하거나, 컴퓨터사 용이 갑자기 느려지고, 엉뚱한 사이트가 인터넷 사이트로 설정되어 있도록 사용자 컴퓨터의 내부 시스템 레지스트리를 변경하는 등의 문제를 일으키게 된다. 이러한 악성코드로는 스파이웨어, 애드웨어, 웜 등이 포함될 수 있다. 이 악성코드의 경로로 대개는 인터넷에서 쉽게 구하는 파일프로그램을 통해서나, 광고를 목적으로 사용자 컴퓨터에 코드들을 심는 악성애드웨어 유포자들을 통해 사용자 컴퓨터에 설치되게 된다. 현재 악성코드의 추세는 트로이 목마나 스파이웨어와 같은 모니터링 소프트웨어가 있는지 컴퓨터를 검사했을 때 컴퓨터 3대 당 한대꼴로 감염돼 있는 것으로 나타났다.Among them, the malware is used to send large amounts of data to other people's computers, to make adult pornography sites appear continuously, or to suddenly slow down computer use, and to set up the wrong sites as Internet sites. This can cause problems such as changing the internal system registry. Such malware may include spyware, adware, worms, and the like. The malware's path is usually installed on the user's computer through file programs easily available on the Internet, or through malicious adware distributors who plant codes on the user's computer for advertising purposes. The current trend of malware is that every three computers are infected when they scan their computers for monitoring software such as Trojan horses and spyware.

그러나, 현재까지는 이러한 악성코드의 추출 및 추적, 분석 등에 대한 자료가 미비하고, 또한, 자료가 있다할지라도, 악성코드의 발빠른 분석과 정확한 결정이 이루어지지 않아, 악성코드의 확산 및 피해상황의 빠른 회복이 불가능한 실정이다. 특히, 악성코드는 그 변종이나 아류 형태가 많아 수집된 코드가 악성코드인지 여부를 판별하기 위해서는 수작업이 이용되고 있는 실정이다. 예를 들면, 하나의 웜 바이러스가 발견되고, 이러한 웜 바이러스에 대하여 경고 및 주의 통보를 하고 난 이후, 발견된 웜 바이러스의 변종 바이러스가 발견되었을 경우, 발견된 웜 바이러스가 새로운 유형인지, 또는 기존의 웜의 변종 인지, 또는 다른 종류의 특정 프로그램인지에 대한 판별이 즉각적으로 이루어지지 못하고, 수집된 코드 및 바이러스를 컴퓨터 상에 실행시켜 본 이후, 레지스트리 값이 변동되는지 체크하거나, 악성 행위여부 등 변화를 수동으로 감시여야 하며, 이러한 감시를 통하여, 수집된 코드가 악성코드인지 여부를 결정하게 된다. 구체적으로, 웜 바이러스 등을 포함하 는 악성코드가 사용자 컴퓨터에 침입하였을 경우, 기존에는 도 1에 도시된 바와 같이, 악성코드가 가지는 각각의 특성을 검사하는 4개 이상의 종류별 악성코드 분석 시스템을 이용하여 각각의 변화특성을 추적함으로써, 악성코드를 분석한다. 예를 들면, 시스템에 새로운 파일을 생성하거나 파일을 삭제하는 것을 추적하기 위한 파일몬(FileMon), 레지스트리의 생성 및 변경, 삭제를 추적하기 위한 레그몬(RegMon), 네트웍에 공격 트래픽의 발생량 및 특징을 측정하는 스니퍼(Sniffer), 백도어를 탐지하는 넷스탯(Netstat) 등을 이용하여, 각 특성에 따른 악성코드를 분석하게 된다. 그러나, 이와 같은 종래의 종류별 악성코드 분석 시스템은 특정 코드에 대하여 다수의 종류별 악성코드 분석 시스템을 운용하여야만 실제 검사하고 있는 특정 코드에 대하여 분석할 수 있을 뿐만아니라, 각 도구들이 검사할 수 있는 특성들에 대하여만 모니터링할 수 있으므로 새로운 종류의 위협을 알아낼 수 없는 문제점을 가지고 있다.However, until now, data on the extraction, tracking, and analysis of such malicious codes are insufficient, and even if there is data, the rapid analysis and accurate determination of the malicious codes are not made. It is impossible to recover quickly. In particular, malicious code has many variants and subtypes, and manual work is used to determine whether the collected code is malicious code. For example, if a worm virus is found, and after warning and caution notice about such a worm virus, and a variant of the found worm virus is found, the detected worm virus is a new type or an existing one. It is not immediately possible to determine whether it is a variant of a worm or a specific type of program, and after executing the collected code and virus on the computer, it checks whether the registry value is changed or changes the malicious behavior. It must be monitored manually, and this monitoring determines whether the collected code is malicious. Specifically, when malicious code including a worm virus invades the user's computer, as illustrated in FIG. 1, four or more types of malware analysis systems for checking each characteristic of the malicious code are used. By analyzing each change characteristic, malicious code is analyzed. For example, FileMon to track the creation or deletion of new files on the system, RegMon to track the creation, modification, and deletion of the registry, and the volume and characteristics of attack traffic on the network. By using the sniffer (Sniffer) to measure the, Netstat (Netstat) to detect the back door, and the like to analyze the malware according to each characteristic. However, such a conventional malware analysis system for each type requires not only to analyze a specific code that is actually inspected, but also to check the characteristics of each tool only by operating a plurality of types of malware analysis systems for a specific code. Because it can only be monitored for a new type of threat, it cannot find a new kind of threat.

따라서, 본 발명의 목적은 코드를 신속 정확하게 분석하여, 분석된 코드가 악성코드인지, 악성코드의 변종 또는 아류인지를 파악하여 악성코드 데이터베이스를 업데이트함으로써, 보다 풍부한 데이터베이스를 구축함과 아울러, 악성코드를 신속 정확하게 선별함으로써, 악성코드의 확산과 이동 및 공격의 크기를 최소화할 수 있는 악성코드 분석 시스템 및 방법을 제공하는데 있다.Accordingly, an object of the present invention is to analyze the code quickly and accurately, to determine whether the analyzed code is a malicious code, a variant or subclass of the malicious code, and to update the malicious code database, thereby establishing a richer database and providing malicious code. The present invention provides a malware analysis system and method that can minimize the spread, movement, and attack size of malicious codes by quickly and accurately selecting them.

본 발명의 다른 목적은 기존에 악성코드에 관련된 정보를 외부 정보에 의존 하던 체계에서 자체적으로 분석하는 정보를 기준으로 함으로써 악성코드에 의해 발생하는 피해 및 악성코드에 대한 예방 대책 수립 등이 가능한 악성코드 분석 시스템 및 방법을 제공하는데 있다.Another object of the present invention is based on the information that the existing information related to the malicious code itself based on the information that is analyzed by the system based on the external information, malicious code capable of establishing the preventive measures for damage caused by the malicious code and malicious code, etc. An analysis system and method are provided.

본 발명의 다른 목적은 코드를 수집하기 위한 시험망의 시스템들에 실제 감염되는 악성코드에 대하여 실시간 그리고 신속 정확한 분석정보를 제공할 수 있는 악성코드 분석 시스템 및 방법을 제공하는데 있다.Another object of the present invention is to provide a malicious code analysis system and method that can provide real-time and fast accurate analysis information on the malicious code actually infected by the systems of the test network for collecting the code.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 악성코드 분석 시스템은 코드를 실행시키기 위한 운영체제를 갖춘 컴퓨터 단말기; 및 상기 코드가 악성코드인지 여부를 결정하는 악성코드 분석부를 포함하여 구성되되, 상기 악성코드 분석부는 상기 코드가 상기 운영체제에서 실행되는 동안 상기 운영체제로부터 호출하는 시스템 호출 및 장치호출에 관련된 실행특성을 모니터링하여 메모리에 저장된 악성코드의 호출특성과 비교함으로써, 악성코드 여부를 결정하는 악성코드 분석부를 구비하는 것을 특징으로 한다.In order to achieve the above object, the malware analysis system according to an embodiment of the present invention comprises a computer terminal having an operating system for executing the code; And a malicious code analysis unit for determining whether the code is malicious code, wherein the malicious code analysis unit monitors execution characteristics related to system calls and device calls that are called from the operating system while the code is executed in the operating system. By comparing with the calling characteristics of the malicious code stored in the memory, characterized in that it comprises a malicious code analysis unit for determining whether or not malicious code.

상기 악성코드 분석부는 상기 코드가 상기 운영체제에서 실행될 때 발생하는 시스템 호출을 검사하는 시스템 호출 검사부; 상기 장치 호출 검사부 및 상기 시스템 호출 검사부에 의하여 검사된 상기 코드의 특성을 상기 악성코드의 특성과 비교하는 비교부; 및 상기 악성코드 및 상기 악성코드의 특성을 저장하는 데이터 베이스를 구비하는 것을 특징으로 한다.The malicious code analysis unit includes a system call check unit that checks a system call generated when the code is executed in the operating system; A comparison unit for comparing the characteristics of the code checked by the device call inspection unit and the system call inspection unit with the characteristics of the malicious code; And it characterized in that it comprises a database for storing the malicious code and the characteristics of the malicious code.

상기 시스템 호출 검사부는 상기 코드가 상기 운영체제에서 실행되는 동안 프로세스 및 쓰레드 발생량, 파일 생성 및 삭제, 레지스트리 생성과 변경 및 삭제, 프로세스 종료, 네트워크 상태 중 적어도 하나를 검사하는 것을 특징으로 한다.The system call checker checks at least one of process and thread generation, file creation and deletion, registry creation and modification and deletion, process termination, and network status while the code is executed in the operating system.

상기 운영체제가 윈도우즈 계열일 경우, 상기 코드가 상기 운영체제에서 실행될 때 발생하는 장치 호출을 검사하는 장치 호출 검사부를 더 구비하는 것을 특징으로 한다.The apparatus may further include a device call checker configured to check a device call generated when the code is executed in the operating system when the operating system is a Windows series.

상기 비교부는 상기 코드의 호출특성과 상기 악성코드 호출특성 간의 유사성이 50퍼센트 이상 일 경우, 악성코드 또는 상기 악성코드의 변종 중 어느 하나로 결정하는 것을 특징으로 한다.The comparison unit determines that the similarity between the calling characteristics of the code and the malicious code calling characteristics is 50% or more, and determines one of the malicious codes and the variants of the malicious codes.

상기 코드는 상기 악성코드로 결정되는 경우, 상기 데이터 베이스에 추가로 등재되는 것을 특징으로 한다.If the code is determined as the malicious code, it is characterized in that it is additionally registered in the database.

상기 운영체제는 유닉스 계열 또는 윈도우 계열의 운영체제 중 적어도 하나인 것을 특징으로 한다.The operating system is at least one of a Unix-based or Windows-based operating system.

상기 악성코드 분석부는 상기 컴퓨터 단말기가 접속되는 공중망을 더 구비하고, 상기 공중망으로부터 상기 컴퓨터 단말기에 유입되는 코드 중 네트워크 트래픽을 일정 수준 이상으로 발생시키는 네트워크 트래픽 특성에 따라 상기 코드를 악성코드로 결정하는 것을 특징으로 한다.The malware analysis unit further includes a public network to which the computer terminal is connected, and determines the code as a malicious code according to a network traffic characteristic that generates a network traffic of a predetermined level or higher among codes flowing into the computer terminal from the public network. It is characterized by.

본 발명의 실시예에 따른 악성코드 분석 방법은 일정 수준 이상의 네트워크 트래픽을 발생시키는 코드를 컴퓨터 단말기 상에 실행시키는 제1 단계; 상기 코드 실행에 의해 발생하는 시스템 호출 및 장치 호출 중 적어도 하나를 모니터링 하여 상기 코드의 특성을 분석하는 제2 단계; 및 상기 분석된 코드의 특성과 기 저장된 악성코드의 특성을 상호 비교하여 악성코드 여부를 결정하는 제3 단계를 포함하는 것을 특징으로 한다.The malicious code analysis method according to an embodiment of the present invention includes a first step of executing a code for generating network traffic of a predetermined level or more on a computer terminal; Monitoring at least one of a system call and a device call generated by the code execution to analyze a characteristic of the code; And a third step of determining whether or not the malicious code is compared by comparing the characteristics of the analyzed code with the characteristics of the pre-stored malicious code.

상기 제2 단계는, 상기 코드 실행에 의해 발생하는 프로세스 및 쓰레드 발생량, 파일 생성 및 삭제, 레지스트리 생성과 변경 및 삭제, 프로세스 종료, 네트워크 변화 중 적어도 하나를 모니터링하는 단계 인 것을 특징으로 한다.The second step may include monitoring at least one of a process and a thread generation generated by the code execution, file creation and deletion, registry creation and modification and deletion, process termination, and network change.

상기 제3 단계는, 상기 코드 특성 및 상기 악성코드 특성 간의 유사성이 80퍼센트 이상일 경우 악성코드 또는 악성코드의 변종 중 어느 하나로 결정하는 것을 특징으로 한다.In the third step, when the similarity between the code characteristic and the malicious code characteristic is 80% or more, the third step is determined as one of a malicious code or a variant of the malicious code.

상기 코드가 악성코드로 결정되는 경우, 데이터 베이스에 새롭게 등재하는 부단계를 더 포함하는 것을 특징으로 한다.If the code is determined to be malicious code, it is characterized in that it further comprises a sub-step newly registered in the database.

상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.The above and other objects and features and advantages of the present invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 실시예에 따른 악성코드 분석 시스템을 나타낸 도면이다.2 is a diagram illustrating a malicious code analysis system according to an embodiment of the present invention.

본 발명의 실시예에 따른 악성코드 분석 시스템에서, 운영체제는 기본적으로 윈도우즈 2000을 예로 들어 설명하고 있으나, 윈도우즈 계열의 운영체제 특성상 악성코드 분석부가 기타 윈도우즈에 포팅될 수 있으며, 다른 계열의 운영체제 예를 들면, 리눅스, 유닉스 등에서도 동일한 상위개념으로 적용될 수 있다. 즉, 본 발명의 실시예에 따른 악성코드 분석부는 운영체제에 관계없이, 프로그램이 특정 운 영체제 상에서 수행될 경우 발생하는 각 호출들, 예를 들면, 명령어 사용, 분기, 함수 호출, 프로세스 및 쓰레드 생성 및 삭제 등에 따른 호출들을 모니터링하고, 모니터링된 데이터를 기존 데이터와 비교하여 코드의 종류를 결정하게 된다. 이와 동일하게, 이하에서는 호출을 장치 호출 및 시스템 호출로 분류하여 설명하고 있으나, 그에 한정되는 것은 아니다.In the malware analysis system according to an embodiment of the present invention, the operating system is basically described using Windows 2000 as an example. However, due to the characteristics of the Windows operating system, the malware analysis unit may be ported to other windows. The same concept can also be applied to Linux, Unix, and Unix. That is, the malware analysis unit according to an embodiment of the present invention, regardless of the operating system, each call that occurs when a program is executed on a specific operating system, for example, instruction usage, branching, function calls, processes and threads generation and Calls for deletion, etc. are monitored, and the type of code is determined by comparing the monitored data with existing data. Equally, the following descriptions are classified into device calls and system calls, but are not limited thereto.

도 2를 참조하면, 본 발명의 실시예에 따른 악성코드 분석 시스템은 코드 수집시스템으로부터 수집된 코드 샘플을 수신하여 코드 샘플(100)이 실행되는 운영체제(200)와, 운영체제(200)에서 시스템 호출 및 장치 호출시 발생하는 명령어 및 함수 호출을 검사하여 코드 관리 시스템에 분석결과를 전송하는 악성코드 분석부(300)를 구비한다.2, the malware analysis system according to an exemplary embodiment of the present invention receives a code sample collected from a code collection system and calls a system from the operating system 200 and the operating system 200 in which the code sample 100 is executed. And a malicious code analysis unit 300 for checking an instruction and a function call generated during a device call and transmitting the analysis result to the code management system.

운영체제(200)는 도 3에 도시된 바와 같이 사용자모드(201)와, 사용자모드(201)를 지원하기 위한 시스템 모드(202)를 가진다.The operating system 200 has a user mode 201 and a system mode 202 for supporting the user mode 201 as shown in FIG. 3.

사용자모드(201)는 시스템 지원 프로세스(System support processes)(210), 서비스 프로세스(Service Processes)(220), 응용 프로세스(Application processes)(230), 환경 서브시스템(Environment subsystems)(240), 및 각 프로세스들로부터 발생되는 시스템 호출을 시스템 모드(202)에 전달하기 위한 시스템 인터페이스(Ntdll.dll)를 구비한다. 여기서, 환경 서브시스템(240)은 사용자 프로그램들이 시스템 호출을 필요로 할 경우 이를 지원하기 위해 제공되는 별도의 프로세스들이다.User mode 201 may include system support processes 210, service processes 220, application processes 230, environment subsystems 240, and It has a system interface (Ntdll.dll) for passing system calls from each process to system mode 202. Here, the environmental subsystem 240 is a separate process provided to support user programs if they need system calls.

시스템 지원 프로세스(210)는 서비스 제어부(Service Controller), 윈로그온 (Winlogon), 세션매니저(Session Manager)를 구비한다.The system support process 210 includes a service controller, a winlogon, and a session manager.

서비스 제어부는 윈도우즈가 제공하는 다양한 서비스 예를 들면, 비디오, 오디오 기능 및 동영상 등을 지원하기 위한 프로그램 호출과 그에 상응하는 함수 호출을 제어한다. The service controller controls program calls and corresponding function calls to support various services provided by Windows, for example, video, audio functions, and video.

윈로그온은 윈도우 운영체제에 로그온 하기 위한 절차를 담당한다.Winlogon is responsible for logging on to the Windows operating system.

세션매니저는 프로그램 실행을 위한 마지막 단계에서 실질적인 최초의 사용자 프로세스가 생성되도록 하여 부팅과정을 완성한다.The session manager completes the boot process by allowing the actual first user process to be created at the final stage of program execution.

서비스 프로세스(220)는 리플리케이터(Replicator), RPC(Remote Process Cell)(), 경고자(Alerter), 이벤트 로거(Event Logger) 및 제1 서브시스템 DLL(Subsysterm DLL)을 구비한다.The service process 220 includes a replicator, a remote process cell (RPC), an alerter, an event logger, and a first subsystem DLL.

RPC(Remote Process Cell)는 운영체제에서 프로세스나 원격지의 컴퓨터 단말로부터 발생되는 통신 서비스를 담당하는 기능을 수행한다.The RPC (Remote Process Cell) performs a function of a communication service generated from a process or a remote computer terminal in an operating system.

경고자(Alerter)는 사용자와 컴퓨터에 관리용 경고 메시지를 보낸다.Alerter sends administrative alerts to users and computers.

이벤트 로거(Event Logger)는 이벤트 발생에 따른 로그를 관리한다.Event Logger manages the log of event occurrence.

제1 서브시스템 DLL(Subsysterm DLL)은 공유 라이브러리이다. 응용프로그램이 링크될 때, 링커는 사용되는 DLL 라이브러리 함수를 인식하고 실행파일의 헤더부분에 이에 관한 정보를 기록한다. 제1 서브시스템 DLL은 서비스 처리부(220)를 지원하기 위한 물리적 메모리에 매핑된 DLL의 사본이다.The first subsystem DLL (Subsysterm DLL) is a shared library. When the application is linked, the linker recognizes the DLL library function used and writes this information in the header section of the executable. The first subsystem DLL is a copy of a DLL mapped to physical memory for supporting the service processor 220.

응용 프로세스(230)는 적어도 하나 이상의 사용자 응용(User Application)과, 제2 서브시스템 DLL을 구비한다.Application process 230 includes at least one user application and a second subsystem DLL.

적어도 하나 이상의 사용자 응용은 사용자가 실행시키는 다양한 프로그램이다.At least one user application is various programs executed by the user.

제2 서브시스템 DLL은 응용처리부(230)의 실행을 지원하기 위한 물리적 메모리에 매핑된 DLL의 또 다른 사본이다.The second subsystem DLL is another copy of the DLL mapped to physical memory to support execution of the application processor 230.

환경 서브시스템(240)은 OS/2, Posix, Win32의 세가지 응용 프로그램 인터페이스를 지원한다. 각각의 인터페이스는 프로그래머들이 호출할 수 있는 라이브러리 함수의 리스트를 제공한다. 여기서, Posix 환경은 유닉스 응용 프로그램들을 위한 최소한의 기능을 지원하며, Win32 환경은 윈도우즈 응용프로그램 실행을 위한 기능을 지원한다.The environment subsystem 240 supports three application program interfaces: OS / 2, Posix, and Win32. Each interface provides a list of library functions that programmers can call. Here, the Posix environment supports minimal functionality for Unix applications, while the Win32 environment supports functionality for running Windows applications.

시스템 모드(202)는 사용자모드(201)로부터 발생되는 호출들이 수신되어, 수신된 호출에 따른 프로그램 실행을 수행하는 과정으로 실행 응용 프로그램 인터페이스(Executive Application Programing Interface)와, 실행 응용 프로그램 인터페이스와 통신하는 캐쉬 관리자(Chche manager), 프로세스와 쓰레드(Process & Threads), 보안(Security), 가상메모리(VM : Virtual Memory), 콜 메니저(Call manager:CM), 제1 필터 및 파일 시스템(Filter & File systems), 제2 필터 및 I/O 시스템(Filter & Input/Output system)과, 각 장치를 관리 및 실행시키기 위한 객체 관리자 및 실행 RTL/LPC(Object Management/Executive RTL/LPC), 객체 관리자 및 실행 RTL/LPC와 통신하는 커널(Kernel) 및 장치 드라이버(Device Driver), 커널과 장치 드라이버를 하드웨어로부터 독립적인 구조로 실행되도록 하드웨어계층과 커널과 장치 드라이버 사이에서 통신하는 하드웨어 추상화 계층(Hardware Abstraction Layer)을 구비한다.The system mode 202 is a process in which calls generated from the user mode 201 are received and executes program execution according to the received call. The system mode 202 communicates with an execution application program interface and an execution application program interface. Cache manager, Process & Threads, Security, Virtual Memory (VM), Call Manager (CM), First Filter & File Systems ), A second filter and input / output system, and an object manager and execution RTL / LPC (Object Management / Executive RTL / LPC), an object manager and an execution RTL to manage and run each device. Kernel and device drivers that communicate with / LPC, and between the hardware layer and the kernel and device drivers to run kernel and device drivers in a hardware-independent structure. The subordinate has a hardware abstraction layer.

실행 응용 프로그램 인터페이스는 응용 프로그램이 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, 응용 프로그램 인터페이스는 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현된다. 그러므로 하나의 응용 프로그램 인터페이스는 함수의 호출에 의해 요청되는 작업을 수행하기 위해 이미 존재하거나 또는 연결되어야 하는 몇 개의 프로그램 모듈이나 루틴을 가진다.An executable application program interface has a language or message format that is used when an application communicates with a system program such as an operating system or database management system. The application program interface provides a function that provides a link to a specific subroutine for execution within the program. Implemented by calling Thus, an application program interface has several program modules or routines that must already exist or be linked in order to perform the work requested by the function call.

캐쉬 관리자(Cache manager)는 접근속도의 향상을 위해 메모리에 상주하는 디스크 블록 중 가장 최근에 사용된 것들이 무엇인지를 기억한다.The cache manager remembers which of the most recently used disk blocks reside in memory to improve access speed.

프로세스(Process)는 실행되고 있는 프로그램이며, 한 프로세스는 적어도 하나의 쓰레드(Threads)를 가진다. 이러한 프로세스들은 여럿이 묶여 하나의 작업으로서 자원 관리를 수행할 수 있다.A process is a running program, and one process has at least one thread. These processes can be grouped together to perform resource management as a task.

콜 매니저(Call manager)는 프로세스와 서브시스템간의 효율성 높은 통신방법을 제공한다. 즉, 콜 매니저는 프로세스간 통신 이외의 통신방법을 제공한다.Call managers provide an efficient way of communicating between processes and subsystems. That is, the call manager provides a communication method other than interprocess communication.

제1 필터 및 파일 시스템(Filter & File systems)에서 파일 시스템은 FAT(File Allocation Table), NTFS(NT File System)가 존재하며, 이들은 상호독립적이며 서로 다른 디스크 부분을 제어한다. 그리고 모든 FAT 파일 시스템은 하나의 드라이버에 의해 관리된다. 기술적으로 파일 시스템은 I/O 시스템이 관리하는 장치 드라이버의 하나로 분류할 수 있다.In the first filter and file systems, file systems include FAT (File Allocation Table) and NTFS (NT File System), which are independent of each other and control different disk parts. And all FAT file systems are managed by one driver. Technically, a file system can be classified as one of the device drivers managed by an I / O system.

제2 필터 및 I/O 시스템(Filter & Input/Output system)에서 I/O 시스템은 입출력장치 관리를 위한 근간을 제공하고, 단일화된 입출력 서비스를 제공한다. 또한, I/O 시스템은 장치 독립적인 입출력 기능을 제공하며, 실제적인 입출력을 위한 적절한 드라이버를 호출한다.In the second filter and I / O system, the I / O system provides a basis for managing input / output devices and provides a unified input / output service. In addition, the I / O system provides device-independent input and output functions and calls the appropriate driver for the actual input and output.

각 장치를 관리 및 실행시키기 위한 객체 관리자 및 실행 RTL/LPC(Object Management/Executive RTL/LPC)에서, 객체 관리자는 시스템 모드(202)가 인식할 수 있는 모든 객체들을 관리한다. 이러한 객체의 예로는 프로세스, 쓰레드, 파일, 디렉토리, 세마포어, 입출력장치, 타이머 등이 있다. 객체 관리자는 객체 생성을 위해 커널 주소 공간의 가상 메모리 블록을 할당하고, 이 가상 메모리 블록의 사용이 종료되면 이를 빈 공간 리스트로 반환하는 등, 객체 관리와 연관된 일을 담당한다. RTL(Register Transfer Level)은 레지스터 간의 논리연산을 실행하며, LPC(Low Pin Count)는 입출력 I/O를 실행시키는 것을 담당한다.Object Manager and Execution for Managing and Running Each Device In Object Management / Executive RTL / LPC, the object manager manages all objects that system mode 202 can recognize. Examples of such objects are processes, threads, files, directories, semaphores, I / O devices, and timers. The object manager is responsible for all aspects of object management, such as allocating virtual memory blocks in the kernel address space to create objects and returning them to the free space list when the virtual memory blocks are over. Register Transfer Level (RTL) performs logical operations between registers, and Low Pin Count (LPC) is responsible for executing I / O.

커널(Kernel)은 각 처리부가 하드웨어에 독립적이 되도록하여 이식성을 높게 만드는 것으로, 하드웨어 추상화 계층이 구현하는 부분을 제외한 나머지 부분들을 구현한다.Kernel makes each process part independent of hardware and makes portability high. It implements all parts except hardware implementation layer.

장치 드라이버(Device Driver)는 한 개 이상의 입출력 장치를 제어할 수 있으며, 데이터를 암호화하거나, 커널 데이터 구조에 접근하는 등 하드웨어 장치에 독립적인 기능을 담당할 수 있다. 이러한 장치 드라이버는 디스크나 프린터와 같이 육안으로 볼 수 있는 장치를 위한 것들도 있고, 내부 장치 및 칩을 위한 것들도 있다.The device driver may control one or more input / output devices, and may perform functions independent of hardware devices, such as encrypting data or accessing a kernel data structure. These device drivers are for devices that are visible to the naked eye, such as disks and printers, and for internal devices and chips.

하드웨어 추상화 계층(Hardware Abstraction Layer)은 입출력 인터페이스, 끼어들기(interrupt) 제어, 다중 프로세서 통신을 구현하는데 필요한 하드웨어 종속적인 세부 사항을 처리하는 루틴들의 집합체이다. The Hardware Abstraction Layer is a collection of routines that handle the hardware-dependent details needed to implement I / O interfaces, interrupt control, and multiprocessor communication.

또한, 시스템 모드(202)에서 실행 응용 프로그램 인터페이스는 시스템 쓰레드로부터 호출 명령을 수신하여, 실행한다. 그리고, 윈도우 사용자를 위한 Win32 User & GDI를 제공한다.In addition, in system mode 202, the execution application program interface receives and executes a call command from a system thread. It also provides Win32 User & GDI for Windows users.

악성코드 분석부(300)는 도 4에 도시된 바와 같이 운영체제(200)의 시스템 호출을 검사하는 시스템 호출 검사부(310)와, 장치 관련 호출들을 검사하는 장치 호출 검사부(320)와, 시스템 호출 검사부(310) 및 장치 호출 검사부(320)에 의하여 검사된 측정량을 비교하기 위한 비교부(330)와, 비교부(330)의 비교대상이 되는 데이터 베이스(340)를 구비한다. 이하, 본 발명의 실시예에 따른 악성코드 분석부(300)는 운영체제(200)를 윈도우즈 계열를 예로 들어 설명함으로, 장치 호출이 발생하는 것을 설명하고 있다.As illustrated in FIG. 4, the malware analysis unit 300 includes a system call checker 310 for checking a system call of the operating system 200, a device call checker 320 for checking device related calls, and a system call checker. A comparison unit 330 for comparing the measured amount checked by the 310 and the device call inspection unit 320, and a database 340 to be compared with the comparison unit 330 are provided. Hereinafter, the malicious code analysis unit 300 according to an embodiment of the present invention describes the operating system 200 as an example of the Windows series, thereby explaining that a device call occurs.

시스템 호출 검사부(310)는 운영체제(200)에서 발생하는 시스템 호출 명령어 및 함수(system call 및 function)를 검사한다. 이를 위하여 시스템 호출 검사부(310)는 시스템 인터페이스(Ntdll.dll)를 모니터링하고, 시스템 호출에 의해 발생하는 명령어 및 함수를 카운트 하여 정량화 한다.The system call checker 310 checks system call commands and functions generated by the operating system 200. To this end, the system call checker 310 monitors the system interface (Ntdll.dll), and quantifies by counting the commands and functions generated by the system call.

장치 호출 검사부(320)는 운영체제(200)에서 발생하는 장치 호출 명령어 및 함수 (command 및 function)를 검사한다. 이를 위하여 장치 호출 검사부(320)는 운영체제(200)의 시스템 모드(202)에 있는 실행 응용 프로그램 인터페이스를 모니터링하고, 장치 호출에 의해 발생하는 명령어 및 함수를 카운트 하여 정량화 한다. 여기서, 장치 호출은 기본적으로 시스템 호출과 연계되어 설명되면 윈도우즈 계열의 운영체제에서는 Win32 응용 프로그램 인터페이스가 이 장치 호출을 담당하게 된다. 이러한 본 발명의 실시예에서는 하드디스크 및 네트워크 장치 호출에 대하여 모니터링 되는 것을 표현한다.The device call checker 320 checks device call commands and functions generated by the operating system 200. To this end, the device call inspecting unit 320 monitors an execution application program interface in the system mode 202 of the operating system 200, and counts and quantifies the commands and functions generated by the device call. Here, the device call is basically described in conjunction with the system call, and in the Windows-based operating system, the Win32 application program interface is responsible for the device call. This embodiment of the present invention represents the monitoring of the hard disk and network device calls.

이와 같이 시스템 호출 및 장치 호출에 대한 카운트 및 기록을 바탕으로 해당 프로그램의 악성행위 여부를 판단하게 된다. 악성행위는 안티바이러스 소프트웨어의 종료, 파일 삭제 및 생성, 레지스트 생성, 변경, 삭제 등 직접적으로 나타나는 피해와, 프로세스의 대량생성, 쓰레드의 대량생성 등으로 인한 시스템 부하 증가와 같은 간접 피해, 네트워크 트래픽의 대량생성으로 인한 타 시스템 공격 여부 및 공격 방법 등이 확인된다.As such, based on the count and record of the system call and the device call, it is determined whether the program is malicious. Malicious behaviors include direct damage such as termination of antivirus software, deletion and creation of files, creation, modification and deletion of registers, and indirect damage such as increased system load due to mass production of processes and mass production of threads. It is confirmed whether other systems attack due to mass production and how to attack.

비교부(330)는 시스템 호출 검사부(310) 및 장치 호출 검사부(320)에 의하여 검사된 각각의 측정량을 데이터 베이스(340)에 저장된 특정 악성코드의 기 측정량과 비교한다. 즉, 비교부(330)는 데이터 베이스(340)에 저장된 특정 악성코드의 코드 비교를 통하여 현재 검사하고 있는 코드와 저장된 특정 악성코드의 일치율을 표시하고, 특정 비율 예를 들면 80퍼센트 이상 일치할 경우, 악성코드로 분류한다. 여기서, 비교부(330)는 현재 감사하고 있는 코드와 특정 악성코드의 일치율을 악성코드로서 분류될 수 있는 부분 예를 들면, 네트워크 트래픽 발생량, 파일 및 레지스트리 생성 및 변경, 프로세스와 쓰레드 생성 등의 건수 및 발생량으로 비교함으로써, 일치율을 검사할 수 있다.The comparator 330 compares each measured amount inspected by the system call checker 310 and the device call checker 320 with a previous measured amount of a specific malicious code stored in the database 340. That is, the comparison unit 330 displays the matching rate of the currently inspected code and the stored specific malicious code by comparing the code of the specific malicious code stored in the database 340, and matches the specific ratio, for example, 80% or more. , Classified as malware. Here, the comparison unit 330 may be classified as a malicious code, the matching rate between the currently audited code and a specific malicious code, for example, the number of network traffic generation, file and registry creation and modification, process and thread creation, etc. And by comparing with the generation amount, the coincidence rate can be examined.

데이터 베이스(340)는 기존에 존재하는 웜 등의 바이러스 등을 포함하는 악 성코드를 사용자 컴퓨터에 실행시킨 후, 악성코드의 행동패턴 즉, 네트워크 트래픽 발생량 및 내용, 파일 및 레지스트리 생성 및 변경, 프로세스와 쓰레드 생성 및 삭제, 백도어 생성 등을 검사하여 그에 따른 결과를 저장한다. 이후, 비교부(330)가 수집된 코드를 검사할 경우, 비교대상으로서 제공하고, 검사하고 있는 코드가 특정비율 이상으로 일치하는 경우, 새로운 변종 바이러스 또는 변종 악성코드로 인식하여 데이터 베이스(340)에 새로이 등재하게 된다.The database 340 executes malicious code including a virus such as a worm existing on the user's computer, and then generates behavior patterns of the malicious code, that is, network traffic generation and contents, file and registry creation and modification, and process. It also checks the creation and deletion of threads, the creation of backdoors, and saves the result. Thereafter, when the comparison unit 330 examines the collected code, the comparison unit 330 is provided as a comparison target, and when the code being checked matches more than a specific ratio, the database 340 is recognized as a new variant virus or a variant malicious code. You will be newly listed at.

이와 같은 구조를 가지는 본 발명의 실시예에 따른 악성코드 분석 시스템을 이용하여 악성코드를 분석하는 방법에 대하여 도 5를 참조하여 상세히 살펴보기로 하자.With reference to FIG. 5, a method for analyzing malicious codes using a malware analysis system according to an embodiment of the present invention having such a structure will be described in detail.

도 5를 참조하면, 본 발명의 실시예에 따른 악성코드 분석 방법은 먼저, 운영체제(200)를 구비한 사용자 컴퓨터에 수집된 코드(100)를 실행 한다.(S1 단계)Referring to FIG. 5, the malware analysis method according to an embodiment of the present invention first executes the code 100 collected on a user computer having an operating system 200.

악성코드 분석부(300)의 장치 호출 검사부(320)와 시스템 호출 검사부(310)중 적어도 하나를 이용하여 운영체제(200)에 발생하는 시스템 호출 및 장치 호출 관련 명령어 및 함수 호출을 모니터링 한다.(S2 단계)By using at least one of the device call checker 320 and the system call checker 310 of the malware analysis unit 300 monitors system calls and device call-related commands and function calls generated in the operating system 200. (S2 step)

악성코드 분석부(300)에서 시스템 호출 검사부(310)를 이용하여 운영체제(200) 내에서 발생하는 시스템 호출을 검사하며, 장치 호출 검사부(320)를 이용하여 운영체제(200) 내에서 발생하는 장치 호출 및 장치 호출과 관련한 시스템 호출을 검사한다. 즉, 시스템 호출 검사부(310)는 프로세스 및 쓰레드 발생량 측정, 파일 생성 및 삭제 감시, 레지스트리 생성과 변경 및 삭제, 프로세스 종료, 네트워크 상태 등을 검사한다. 그리고 장치 호출 검사부(320)는 운영체제에서 응용 프로 그램 인터페이스 호출이 발생하는 경우, 이 호출을 검사하게 된다. 응용 프로그램 인터페이스 호출은 시스템 호출을 동반하기도 한다.The malware analysis unit 300 checks the system call generated in the operating system 200 using the system call checker 310, and uses the device call checker 320 to call the device generated in the operating system 200. And system calls related to device calls. That is, the system call inspecting unit 310 checks process and thread generation amount measurement, file creation and deletion monitoring, registry creation and modification and deletion, process termination, network state, and the like. The device call check unit 320 checks the call when an application interface call occurs in the operating system. Application program interface calls are often accompanied by system calls.

그리고, 시스템 호출 검사부(310)와 장치 호출 검사부(320)를 통하여 검사되는 시스템의 특징들 중에서 악성코드의 전형적인 특성을 보이는 프로그램들은 웜 등 악성코드로 임시로 분류할 수 있다. 이들 특징들로는 네트워크 트래픽의 다량 발생, 파일의 삭제 등이 있다.In addition, programs showing typical characteristics of the malicious code among the features of the system inspected by the system call checker 310 and the device call checker 320 may be temporarily classified as malicious codes such as worms. These features include large amounts of network traffic and file deletion.

비교부(330)는 악성코드로 분류된 프로그램의 모니터링된 시스템 호출 및 장치 호출에 따른 명령어 및 함수 호출의 발생 및 발생량을 데이터 베이스(340)에 저장된 악성코드의 시스템 호출 및 장치 호출에 다른 명령어 및 함수 호출의 발생 및 발생량과 비교한다.(S3 단계)The comparator 330 may be configured to generate instructions and function calls according to the monitored system calls and device calls of programs classified as malicious codes, and other instructions for system calls and device calls of malicious codes stored in the database 340. Compare the occurrence and amount of function calls (step S3).

데이터 베이스(340)는 기존에 수집된 악성코드를 운영체제(200) 상에서 실행시킴으로써 악성코드의 시스템 호출 및 장치 호출의 발생 및 발생량을 정량화 하여 저장하게 된다.The database 340 quantifies and stores occurrences and amounts of system calls and device calls of malicious codes by executing the previously collected malicious codes on the operating system 200.

비교부(330)는 수집된 코드의 실행에 의하여 발생하는 시스템 호출 및 장치 호출의 발생 및 발생량을 데이터 베이스(340)에 저장된 악성코드의 특성과 비교하고, 유사성이 일정 비율 예를 들면, 50퍼센트 이상, 바람직하게는 80퍼센트 이상 나타나는 경우, 기존 악성코드 및 기존 악성코드의 변종으로 결정한다.(S4 단계)The comparator 330 compares the occurrence and the generation amount of the system call and the device call generated by the execution of the collected code with the characteristics of the malware stored in the database 340, and the similarity is a certain percentage, for example, 50 percent. If more than 80% or more appear, it is determined by the existing malicious code and the variant of the existing malicious code (step S4).

악성코드의 특성은 정보유출, 정보 해킹, 시스템 파일 파괴, 실행확장자 변경, 백도어 생성 등을 포함하며, 프로세스 및 쓰레드의 발생량이 폭발적으로 증가하거나, 별도의 파일을 생성 및 삭제하고, 레지스트리 생성과 변경 및 삭제가 발생 할 수 있으며, 사용자의 별다른 조작이 발생하지 않은 상황에서 프로세스를 강제 종료 하는 등의 상태 등을 포함한다. 또한, 악성코드의 특성은 네트워크 트래픽을 짧은 시간동안 폭발적으로 증가시키는 특성을 포함한다. 여기서, 비교부(330)는 프로세스 및 쓰레드의 생성 수 정보를 모니터링함으로써 악성코드의 공격력을 예측할 수도 있다.The characteristics of the malware include information leakage, information hacking, system file destruction, execution extension change, backdoor creation, and the like, and the occurrence of processes and threads is exploding, separate files are created and deleted, and the registry is created and changed. And the deletion may occur, and a status such as forcibly terminating the process in a situation where no user manipulation has occurred. In addition, the characteristics of the malicious code include the characteristic of exploding network traffic in a short time. Here, the comparator 330 may predict the attack power of the malicious code by monitoring the number of generation of the process and the thread.

수집된 코드의 특성이 악성코드 변종으로 결정되는 경우, 데이터 베이스(340)에 새롭게 등재된다.(S5 단계)If the characteristic of the collected code is determined to be a malicious code variant, it is newly registered in the database 340 (step S5).

악성코드는 웜 바이러스 뿐만 아니라, 다양한 변종 바이러스 등을 포함하며, 악성 애드웨어 등의 팝업 프로그램 코드도 포함할 수 있다.Malware includes not only worm viruses, but also various variant viruses, and may also include pop-up program codes such as malicious adware.

S3 단계에서 수집된 코드(100)의 특성이 기존에 저장된 악성코드의 특성과 다르며, 유사 특성이 50퍼센트 이하의 특성을 나타내는 경우는 악성코드 가지는 특성 예를 들면, 정보유출, 정보 해킹, 시스템 파일 파괴, 실행확장자 변경, 백도어 생성 부분에 대하여 중점적으로 모니터링하여 수집된 코드(100)를 악성코드로 결정 할 수 있다. 한편, 50퍼센트 이하의 유사 특성을 나타내는 경우, S1 단계로 이동하여 다른 수집된 코드(100)를 컴퓨터 단말기 상에 실행시킨 후, 동일한 과정을 반복한다.If the characteristic of the code 100 collected in the step S3 is different from that of the previously stored malicious code, and the similar characteristic represents less than 50 percent of the characteristic, the characteristic of having the malicious code is, for example, information leakage, information hacking, and system file. The collected code 100 can be determined as malicious code by monitoring the destruction, execution extension change, and backdoor generation. On the other hand, if it exhibits similar characteristics of 50% or less, go to step S1 to execute another collected code 100 on the computer terminal, and then repeat the same process.

상술한 바와 같이, 본 발명의 실시예에 따른 악성코드 분석 시스템 및 방법은 코드를 신속 정확하게 분석하여, 분석된 코드가 악성코드인지, 악성코드의 변종 또는 아류인지를 파악하여 악성코드 데이터베이스를 업데이트함으로써, 보다 풍부부한 데이터베이스를 구축함과 아울러, 악성코드를 신속 정확하게 선별함으로써, 악성코드의 확산과 이동 및 공격의 크기를 최소화할 수 있다.As described above, the malware analysis system and method according to an embodiment of the present invention by analyzing the code quickly and accurately, by identifying whether the analyzed code is a malicious code, a variant or subclass of the malicious code by updating the malware database In addition, by building a richer database and screening malware quickly and accurately, it is possible to minimize the spread, movement and attack size of malware.

본 발명의 실시예에 따른 악성코드 분석 시스템 및 방법은 기존에 악성코드에 관련된 정보를 외부 정보에 의존하던 체계에서 자체적으로 분석하는 정보를 기준으로 함으로써 악성코드에 의해 발생하는 피해 및 악성코드에 대한 예방 대책 수립 등이 가능하다.The malware analysis system and method according to an embodiment of the present invention is based on information that is analyzed by itself in a system that previously relies on information related to malicious code, based on external information. Preventive measures can be established.

본 발명의 실시예에 따른 악성코드 분석 시스템 및 방법은 코드를 수집하기 위한 시험망의 시스템들에 실제 감염되는 악성코드에 대하여 실시간 그리고 신속 정확한 분석정보를 제공할 수 있다.Malware analysis system and method according to an embodiment of the present invention can provide real-time and fast accurate analysis information on the malicious code actually infected by the systems of the test network for collecting the code.

본 발명의 실시예에 따른 악성코드 분석 시스템 및 방법은 장치호출 검사부가 하드디스크 등의 디스크 장치와 네트워크 장치에 부속되어 분석하고자 하는 코드의 파괴력이 얼마나 되는지, 어떤 파일을 복구하여야 하는지에 대한 정보를 수집할 수 있으며, 네트워크 장치에 부속되는 장치호출 검사부를 이용하여 코드가 자신을 확산시키기 위하여 다른 시스템을 공격하는 횟수 및 방법, 해당 시스템에 저장된 주요 정보를 유출하기 위하여 외부의 접속을 기다리는지의 여부 등 행위를 확인할 수 있다.In the malware analysis system and method according to an embodiment of the present invention, the device call inspection unit is provided with a disk device such as a hard disk and a network device, and the information about how destructive power of the code to be analyzed is analyzed and which file should be recovered. The number and method of code attacking other systems to spread itself by using the device call inspection unit attached to the network device, whether to wait for an external connection to leak important information stored in the system, etc. You can check the behavior.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여 져야만 할 것이다. Those skilled in the art will appreciate that various changes and modifications can be made without departing from the technical spirit of the present invention. Therefore, the technical scope of the present invention should not be limited to the contents described in the detailed description of the specification but should be defined by the claims.

Claims (12)

코드를 실행시키기 위한 운영체제를 갖춘 컴퓨터 단말기; 및A computer terminal having an operating system for executing code; And 상기 코드가 악성코드인지 여부를 결정하는 악성코드 분석부를 포함하여 구성되되,It is configured to include a malicious code analysis unit for determining whether the code is malicious code, 상기 악성코드 분석부는 상기 코드가 상기 운영체제에서 실행되는 동안 상기 운영체제로부터 호출하는 시스템 호출 및 장치호출에 관련된 실행특성을 모니터링하여 메모리에 저장된 악성코드의 호출특성과 비교함으로써, 악성코드 여부를 결정하는 악성코드 분석부를 구비하는 것을 특징으로 하는 악성코드 분석 시스템.The malicious code analyzing unit monitors execution characteristics related to system calls and device calls that are called from the operating system while the code is executed in the operating system, and compares them with the calling characteristics of the malicious codes stored in a memory to determine whether malicious code is malicious. Malware analysis system comprising a code analysis unit. 제 1 항에 있어서, 상기 악성코드 분석부는,The method of claim 1, wherein the malicious code analysis unit, 상기 코드가 상기 운영체제에서 실행될 때 발생하는 시스템 호출을 검사하는 시스템 호출 검사부;A system call checker that checks a system call generated when the code is executed in the operating system; 상기 장치 호출 검사부 및 상기 시스템 호출 검사부에 의하여 검사된 상기 코드의 특성을 상기 악성코드의 특성과 비교하는 비교부; 및A comparison unit for comparing the characteristics of the code checked by the device call inspection unit and the system call inspection unit with the characteristics of the malicious code; And 상기 악성코드 및 상기 악성코드의 특성을 저장하는 데이터 베이스를 구비하는 것을 특징으로 하는 악성코드 분석 시스템.Malicious code analysis system characterized in that it comprises a database for storing the malicious code and the characteristics of the malicious code. 제 2 항에 있어서, 상기 시스템 호출 검사부는,The method of claim 2, wherein the system call check unit, 상기 코드가 상기 운영체제에서 실행되는 동안 프로세스 및 쓰레드 발생량, 파일 생성 및 삭제, 레지스트리 생성과 변경 및 삭제, 프로세스 종료, 네트워크 상태 중 적어도 하나를 검사하는 것을 특징으로 하는 악성코드 분석 시스템.And at least one of process and thread generation, file creation and deletion, registry creation and modification and deletion, process termination, and network status while the code is running on the operating system. 제 2 항에 있어서,The method of claim 2, 상기 운영체제가 윈도우즈 계열일 경우, 상기 코드가 상기 운영체제에서 실행될 때 발생하는 장치 호출을 검사하는 장치 호출 검사부를 더 구비하는 것을 특징으로 하는 악성코드 분석 시스템.And a device call checker to check a device call generated when the code is executed in the operating system when the operating system is a Windows series. 제 2 항에 있어서, 상기 비교부는,The method of claim 2, wherein the comparison unit, 상기 코드의 호출특성과 상기 악성코드 호출특성 간의 유사성이 50퍼센트 이상 일 경우, 악성코드 또는 상기 악성코드의 변종 중 어느 하나로 결정하는 것을 특징으로 하는 악성코드 분석 시스템.And if the similarity between the calling characteristic of the code and the calling characteristic of the malicious code is 50% or more, the malicious code analysis system, characterized in that it is determined as either a malicious code or a variant of the malicious code. 제 5 항에 있어서, 상기 코드는,The method of claim 5, wherein the code is, 상기 악성코드로 결정되는 경우, 상기 데이터 베이스에 추가로 등재되는 것을 특징으로 하는 악성코드 분석 시스템.If it is determined that the malicious code, the malware analysis system, characterized in that further listed in the database. 제 1 항에 있어서, 상기 운영체제는,The method of claim 1, wherein the operating system, 유닉스 계열 또는 윈도우 계열의 운영체제 중 적어도 하나인 것을 특징으로 하는 악성코드 분석 시스템.Malware analysis system, characterized in that at least one of the Unix-based or Windows-based operating system. 제 1 항에 있어서, 상기 악성코드 분석부는,The method of claim 1, wherein the malicious code analysis unit, 상기 컴퓨터 단말기가 접속되는 공중망을 더 구비하고, It further comprises a public network to which the computer terminal is connected, 상기 공중망으로부터 상기 컴퓨터 단말기에 유입되는 코드 중 네트워크 트래픽을 일정 수준 이상으로 발생시키는 네트워크 트래픽 특성에 따라 상기 코드를 악성코드로 결정하는 것을 특징으로 하는 악성코드 분석 시스템.The malicious code analysis system, characterized in that for determining the code as a malicious code according to the characteristics of the network traffic that generates a network traffic of a predetermined level or more from the code flowing into the computer terminal from the public network. 일정 수준 이상의 네트워크 트래픽을 발생시키는 코드를 컴퓨터 단말기 상에 실행시키는 제1 단계;A first step of executing code on the computer terminal that generates a certain level of network traffic; 상기 코드 실행에 의해 발생하는 시스템 호출 및 장치 호출 중 적어도 하나를 모니터링 하여 상기 코드의 특성을 분석하는 제2 단계; 및Monitoring at least one of a system call and a device call generated by the code execution to analyze a characteristic of the code; And 상기 분석된 코드의 특성과 기 저장된 악성코드의 특성을 상호 비교하여 악성코드 여부를 결정하는 제3 단계를 포함하는 것을 특징으로 하는 악성코드 분석 방법.And a third step of determining whether or not malicious code is compared by comparing characteristics of the analyzed code with characteristics of pre-stored malicious codes. 제 9 항에 있어서, 상기 제2 단계는,The method of claim 9, wherein the second step, 상기 코드 실행에 의해 발생하는 프로세스 및 쓰레드 발생량, 파일 생성 및 삭제, 레지스트리 생성과 변경 및 삭제, 프로세스 종료, 네트워크 변화 중 적어도 하나를 모니터링하는 단계 인 것을 특징으로 하는 악성코드 분석 방법.And monitoring at least one of processes and threads generated by the code execution, file creation and deletion, registry creation and modification and deletion, process termination, and network change. 제 9 항에 있어서, 상기 제3 단계는,The method of claim 9, wherein the third step, 상기 코드 특성 및 상기 악성코드 특성 간의 유사성이 80퍼센트 이상일 경우 악성코드 또는 악성코드의 변종 중 어느 하나로 결정하는 것을 특징으로 하는 악성코드 분석 방법.And if the similarity between the code characteristic and the malicious code characteristic is greater than 80 percent, determine one of the malicious code or a variant of the malicious code. 제 11 항에 있어서,The method of claim 11, 상기 코드가 악성코드로 결정되는 경우, 데이터 베이스에 새롭게 등재하는 부단계를 더 포함하는 것을 특징으로 하는 악성코드 분석 방법.If the code is determined to be malicious code, the malware analysis method further comprises a sub-step newly registered in the database.
KR1020050106692A 2005-11-08 2005-11-08 Analysis system for malicious code and method thereof KR100786725B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050106692A KR100786725B1 (en) 2005-11-08 2005-11-08 Analysis system for malicious code and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050106692A KR100786725B1 (en) 2005-11-08 2005-11-08 Analysis system for malicious code and method thereof

Publications (2)

Publication Number Publication Date
KR20070049511A true KR20070049511A (en) 2007-05-11
KR100786725B1 KR100786725B1 (en) 2007-12-21

Family

ID=38273481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050106692A KR100786725B1 (en) 2005-11-08 2005-11-08 Analysis system for malicious code and method thereof

Country Status (1)

Country Link
KR (1) KR100786725B1 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100922363B1 (en) * 2007-08-31 2009-10-19 고려대학교 산학협력단 Malicious code analysis apparatus and method for cyber threat trend and Recording medium using by the same
KR100925401B1 (en) * 2008-02-14 2009-11-09 주식회사 안철수연구소 Detecting system for malicious behavior based on kernel mode and method thereof
KR100926115B1 (en) * 2007-12-17 2009-11-11 한국전자통신연구원 Apparatus and method for automatically analyzing a program for detecting malicious codes triggered under an certain event/context
KR100927240B1 (en) * 2008-12-29 2009-11-16 주식회사 이글루시큐리티 A malicious code detection method using virtual environment
KR100937010B1 (en) * 2008-01-21 2010-01-15 한남대학교 산학협력단 Malwareuseless process dectect/blocking and prevent recrudescence method
KR100954356B1 (en) * 2008-03-10 2010-04-21 주식회사 안철수연구소 Detection system for malicious program considering code protection method and method thereof
WO2010044616A2 (en) * 2008-10-15 2010-04-22 주식회사 씨디네트웍스 Method and system for monitoring hidden process
KR100959264B1 (en) * 2009-08-26 2010-05-26 에스지에이 주식회사 A system for monitoring network process's and preventing proliferation of zombi pc and the method thereof
KR100959276B1 (en) * 2009-10-26 2010-05-26 에스지에이 주식회사 A system for preventing installation of malicious codes using a control list at the kernel level and the computer-readable recording medium having recording the program thereof
KR100977179B1 (en) * 2008-03-19 2010-08-23 엔에이치엔비즈니스플랫폼 주식회사 Method and System for Searching malicious code
KR20110083884A (en) * 2010-01-15 2011-07-21 삼성전자주식회사 Apparatus and method for detecting code injection attack
KR101306656B1 (en) * 2011-12-29 2013-09-10 주식회사 안랩 Apparatus and method for providing dynamic analysis information of malignant code
US8955124B2 (en) 2010-04-28 2015-02-10 Electronics And Telecommunications Research Institute Apparatus, system and method for detecting malicious code
US9032516B2 (en) 2010-03-29 2015-05-12 Electronics And Telecommunications Research Institute System and method for detecting malicious script
KR20160142268A (en) 2016-11-30 2016-12-12 주식회사 에프원시큐리티 System for detecting and preventing malicious code based on website
KR101715759B1 (en) 2015-09-22 2017-03-15 한국전자통신연구원 Apparatus and method for analysing malicious code in multi core environments
KR20180076174A (en) 2016-12-27 2018-07-05 한국인터넷진흥원 A method and apparatus for detecting malicious scripts based on mobile device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101228902B1 (en) 2010-12-31 2013-02-06 주식회사 안랩 Cloud Computing-Based System for Supporting Analysis of Malicious Code

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050016662A (en) * 2002-07-23 2005-02-21 인터내셔널 비지네스 머신즈 코포레이션 Method and apparatus for the automatic determination of potentially worm-like behaviour of a program
KR20040080844A (en) * 2003-03-14 2004-09-20 주식회사 안철수연구소 Method to detect malicious scripts using static analysis
KR100516304B1 (en) * 2003-05-16 2005-09-26 주식회사 안철수연구소 Device and Method for Detecting Malicious Code of Process Memory
KR100688604B1 (en) * 2004-11-18 2007-03-02 고려대학교 산학협력단 Apparatus and method for intercepting malicious executable code in the network

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100922363B1 (en) * 2007-08-31 2009-10-19 고려대학교 산학협력단 Malicious code analysis apparatus and method for cyber threat trend and Recording medium using by the same
KR100926115B1 (en) * 2007-12-17 2009-11-11 한국전자통신연구원 Apparatus and method for automatically analyzing a program for detecting malicious codes triggered under an certain event/context
US8584101B2 (en) 2007-12-17 2013-11-12 Electronics And Telecommunications Research Institute Apparatus and method for automatically analyzing program for detecting malicious codes triggered under specific event/context
KR100937010B1 (en) * 2008-01-21 2010-01-15 한남대학교 산학협력단 Malwareuseless process dectect/blocking and prevent recrudescence method
KR100925401B1 (en) * 2008-02-14 2009-11-09 주식회사 안철수연구소 Detecting system for malicious behavior based on kernel mode and method thereof
KR100954356B1 (en) * 2008-03-10 2010-04-21 주식회사 안철수연구소 Detection system for malicious program considering code protection method and method thereof
KR100977179B1 (en) * 2008-03-19 2010-08-23 엔에이치엔비즈니스플랫폼 주식회사 Method and System for Searching malicious code
WO2010044616A3 (en) * 2008-10-15 2010-07-29 주식회사 씨디네트웍스 Method and system for monitoring hidden process
WO2010044616A2 (en) * 2008-10-15 2010-04-22 주식회사 씨디네트웍스 Method and system for monitoring hidden process
KR100927240B1 (en) * 2008-12-29 2009-11-16 주식회사 이글루시큐리티 A malicious code detection method using virtual environment
KR100959264B1 (en) * 2009-08-26 2010-05-26 에스지에이 주식회사 A system for monitoring network process's and preventing proliferation of zombi pc and the method thereof
KR100959276B1 (en) * 2009-10-26 2010-05-26 에스지에이 주식회사 A system for preventing installation of malicious codes using a control list at the kernel level and the computer-readable recording medium having recording the program thereof
KR20110083884A (en) * 2010-01-15 2011-07-21 삼성전자주식회사 Apparatus and method for detecting code injection attack
US9032516B2 (en) 2010-03-29 2015-05-12 Electronics And Telecommunications Research Institute System and method for detecting malicious script
US8955124B2 (en) 2010-04-28 2015-02-10 Electronics And Telecommunications Research Institute Apparatus, system and method for detecting malicious code
KR101306656B1 (en) * 2011-12-29 2013-09-10 주식회사 안랩 Apparatus and method for providing dynamic analysis information of malignant code
KR101715759B1 (en) 2015-09-22 2017-03-15 한국전자통신연구원 Apparatus and method for analysing malicious code in multi core environments
US9965631B2 (en) 2015-09-22 2018-05-08 Electronics And Telecommunications Research Institute Apparatus and method for analyzing malicious code in multi-core environment using a program flow tracer
KR20160142268A (en) 2016-11-30 2016-12-12 주식회사 에프원시큐리티 System for detecting and preventing malicious code based on website
KR20180076174A (en) 2016-12-27 2018-07-05 한국인터넷진흥원 A method and apparatus for detecting malicious scripts based on mobile device

Also Published As

Publication number Publication date
KR100786725B1 (en) 2007-12-21

Similar Documents

Publication Publication Date Title
KR100786725B1 (en) Analysis system for malicious code and method thereof
US10691792B2 (en) System and method for process hollowing detection
KR101647487B1 (en) Analysis system and method for patch file
Garfinkel et al. A virtual machine introspection based architecture for intrusion detection.
US10055585B2 (en) Hardware and software execution profiling
Galloro et al. A Systematical and longitudinal study of evasive behaviors in windows malware
KR20180032566A (en) Systems and methods for tracking malicious behavior across multiple software entities
Srivastava et al. Automatic discovery of parasitic malware
Wu et al. System call redirection: A practical approach to meeting real-world virtual machine introspection needs
Gu et al. Face-change: Application-driven dynamic kernel view switching in a virtual machine
Kedrowitsch et al. A first look: Using linux containers for deceptive honeypots
Seifert et al. Capture–A behavioral analysis tool for applications and documents
Pektaş et al. A dynamic malware analyzer against virtual machine aware malicious software
Zhang et al. Rootkitdet: Practical end-to-end defense against kernel rootkits in a cloud environment
Pavlenko et al. Hierarchical approach to analyzing security breaches in information systems
Milenkoski et al. Evaluation of intrusion detection systems in virtualized environments using attack injection
CN110737888B (en) Method for detecting attack behavior of kernel data of operating system of virtualization platform
Xuan et al. Toward revealing kernel malware behavior in virtual execution environments
Lamps et al. WinWizard: Expanding Xen with a LibVMI intrusion detection tool
JP2023051738A (en) Behavior analysis based on finite state machine for malware detection
Lombardi et al. A security management architecture for the protection of kernel virtual machines
US11914711B2 (en) Systems and methods for automatically generating malware countermeasures
AT&T
Riley A framework for prototyping and testing data-only rootkit attacks
Flatley Rootkit Detection Using a Cross-View Clean Boot Method

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141126

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee