KR101421136B1 - Method and apparatus for modeling computer program behavior for behavioral detection of malicious program - Google Patents

Method and apparatus for modeling computer program behavior for behavioral detection of malicious program Download PDF

Info

Publication number
KR101421136B1
KR101421136B1 KR1020070091117A KR20070091117A KR101421136B1 KR 101421136 B1 KR101421136 B1 KR 101421136B1 KR 1020070091117 A KR1020070091117 A KR 1020070091117A KR 20070091117 A KR20070091117 A KR 20070091117A KR 101421136 B1 KR101421136 B1 KR 101421136B1
Authority
KR
South Korea
Prior art keywords
behavior feature
program
computer program
behavior
computer
Prior art date
Application number
KR1020070091117A
Other languages
Korean (ko)
Other versions
KR20090005933A (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 US12/106,144 priority Critical patent/US8713680B2/en
Publication of KR20090005933A publication Critical patent/KR20090005933A/en
Application granted granted Critical
Publication of KR101421136B1 publication Critical patent/KR101421136B1/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 악성 프로그램을 검사하는 프로그램이 특정 컴퓨터 프로그램의 행동으로 상기 특정 컴퓨터 프로그램이 악성 프로그램인지 여부를 판단할 수 있도록, 특정 컴퓨터 프로그램의 행동을 모델링하는 방법 및 장치에 관한 것이다.The present invention relates to a method and an apparatus for modeling a behavior of a computer program executed in a computer system, and more particularly, to a program for inspecting a malicious program to determine whether or not the specific computer program is a malicious program And to a method and apparatus for modeling the behavior of a particular computer program.

본 발명에 따르면 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 방법에 있어서, 상기 컴퓨터 프로그램이 상기 컴퓨터 시스템의 자원(resource)을 사용한 시스템 사용 정보를 수집하는 단계, 상기 수집된 시스템 사용 정보로부터 상기 컴퓨터 프로그램의 행동 특징을 추출하는 단계, 및 상기 추출된 행동 특징을 인코딩하여 행동 특징 벡터를 생성하는 단계를 포함하는 것을 특징으로 하는 모델링 방법을 제공한다.According to the present invention there is provided a method of modeling a behavior of a computer program executed in a computer system, the computer program comprising the steps of: collecting system usage information using resources of the computer system; Extracting behavioral features of the computer program, and encoding the extracted behavioral features to generate behavioral feature vectors.

본 발명에 따르면, 악성 프로그램을 검사하는 프로그램이 특정 컴퓨터 프로그램이 악성 프로그램인지 여부를 판단할 수 있도록 특정 컴퓨터 프로그램의 행동을 모델링할 수 있다.According to the present invention, a program for examining a malicious program can model the behavior of a specific computer program so as to determine whether or not a specific computer program is a malicious program.

악성 코드, 악성 프로그램, 행동 모델링, behavior vector Malicious code, malware, behavior modeling, behavior vector

Description

악성 프로그램을 검사하기 위하여 컴퓨터 프로그램의 행동을 모델링하는 방법 및 장치{METHOD AND APPARATUS FOR MODELING COMPUTER PROGRAM BEHAVIOR FOR BEHAVIORAL DETECTION OF MALICIOUS PROGRAM}TECHNICAL FIELD The present invention relates to a method and an apparatus for modeling a behavior of a computer program for inspecting a malicious program,

본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 컴퓨터 프로그램이 악성 프로그램인지 여부를 컴퓨터 프로그램의 행동을 통하여 판단할 수 있도록, 컴퓨터 프로그램의 행동을 모델링하는 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and an apparatus for modeling a behavior of a computer program executed in a computer system. More particularly, the present invention relates to a method and apparatus for modeling a behavior of a computer program, And a method and an apparatus for modeling the same.

종래의 악성 프로그램 감시 기술에 따르면, 기존에 발생한 악성 프로그램의 샘플을 수집하여 악성 프로그램의 특징이 되는 일정한 문자열을 추출하고, 상기 문자열이 특정 컴퓨터의 파일 등에 존재하는지 여부를 이용하여 악성 프로그램에 감염 되었는지 여부를 판단하였다.According to the conventional malicious program monitoring technology, a sample of a malicious program that has already been generated is collected to extract a certain string that is a characteristic of the malicious program, and whether or not the malicious program is infected with the malicious program .

따라서, 새로운 악성 프로그램이 발생하면, 상기 새로운 악성 프로그램의 정체를 파악하고, 특징이 되는 문자열을 추출하여 상기 악성 프로그램에 대응하는 악성 프로그램을 감시하는 프로그램이 개발되어야 했다. 이에, 기존의 감시 프로그램에 상기 악성 프로그램의 정보가 추가되기 전에는 상기 새로운 악성 프로그램 에 대한 대비가 불가능하여, 새로운 악성 프로그램에 대한 피해는 막을 수 없다는 문제점을 가지고 있었다. 또, 악성 프로그램의 종류가 증가함에 따라서, 악성 프로그램의 특징이 되는 문자열의 종류도 비례하여 증가하게 된다. 따라서 악성 프로그램을 감시하는 프로그램이 악성 프로그램의 특징이 문자열이 존재하는지 여부를 검사하는 과정에 소요되는 시간도 증가할 수 밖에 없었다.Accordingly, when a new malicious program is generated, a program has been developed to identify the new malicious program and to extract a characteristic string to monitor the malicious program corresponding to the malicious program. Therefore, before the information on the malicious program is added to the existing monitoring program, the new malicious program can not be prepared and the new malicious program can not be prevented from being damaged. As the type of the malicious program increases, the type of the character string that characterizes the malicious program also increases proportionally. Therefore, the program that monitors the malicious program has to increase the time required to check whether the character string of the malicious program exists or not.

만약 배터리등을 이용하여 전원을 공급받는 이동 전화, PDA등의 모바일 기기에서는 특정 프로그램에서 문자열을 추출하고, 종래 악성 프로그램의 특징인 문자열과 동일한지 여부를 확인하는 절차에 소모되는 전력으로 인하여 모바일 기기의 동작 가능시간이 줄어드는 문제가 발생한다.If a mobile device such as a mobile phone or a PDA receiving power by using a battery or the like extracts a character string from a specific program and determines whether or not the character string is the same as a characteristic character string of a malicious program, There is a problem in that the operation time of the mobile terminal is reduced.

또한, 종래의 기술로는, 해커의 공격으로 인하여 컴퓨터의 취약점이 공개되면, 프로그램의 제작사가 상기 취약점을 수정한 패치(patch) 프로그램을 이용하여 해커의 공격을 저지할 수 있을 뿐이고, 아직 공개되지 않은 수많은 취약점을 이용한 다른 공격에 대해 뚜렷한 해결책이 없었다.In addition, according to the conventional technology, when a vulnerability of a computer is disclosed due to an attack by a hacker, a program maker can only use a patch program that fixes the vulnerability to prevent an attack by a hacker, There was no obvious solution to the other attacks using numerous vulnerabilities.

대부분의 악성 프로그램들은 기존의 악성 프로그램과 전혀 다른, 새로운 프로그램이 아니라, 기존 악성 프로그램의 변종이다. 그러나 변종 악성 프로그램들을 검사하기 위해서는 종래 악성 프로그램으로부터 추출한 문자열이 아니라 변종 악성 프로그램으로부터 추출한 새로운 문자열을 사용해야 하므로, 각각의 변종 악성 프로그램들을 검사하기 위해서는 각각의 문자열을 구비해야 하였다.Most malicious programs are not new programs that are completely different from existing malicious programs, but are a variant of existing malicious programs. However, in order to examine variant malicious programs, it is necessary to use a new string extracted from a malicious malicious program instead of a string extracted from a conventional malicious program.

본 발명은 컴퓨터 시스템에서 실행되는 특정 컴퓨터 프로그램의 행동을 모델링하여 컴퓨터 프로그램이 악성 프로그램인지 여부를 컴퓨터 프로그램의 행동을 통하여 판단할 수 있도록, 컴퓨터 프로그램의 행동을 모델링할 수 있도록 한다.The present invention models the behavior of a specific computer program executed in a computer system so that the behavior of the computer program can be modeled so that the computer program can determine whether or not the program is malicious through the behavior of the computer program.

본 발명은 악성 프로그램을 검사하는 프로그램이 특정 컴퓨터 프로그램의 행동을 모델링하여 악성 프로그램을 검사하는 프로그램이 상기 특정 컴퓨터 프로그램이 악성 프로그램인지 여부를 판단할 수 있도록 한다.The present invention allows a program for examining a malicious program to model the behavior of a specific computer program so that a program for inspecting a malicious program can determine whether the specific computer program is a malicious program.

본 발명은 악성 프로그램을 검사하는 프로그램을 훈련시킬 수 있도록 정상 프로그램과 악성 프로그램의 행동 특징을 각각 모델링하는 것을 목적으로 한다.The present invention aims at modeling behavioral features of normal programs and malicious programs so that a program for inspecting malicious programs can be trained.

상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 방법에 있어서, 상기 컴퓨터 프로그램이 상기 컴퓨터 시스템의 자원(resource)을 사용한 시스템 사용 정보를 수집하는 단계, 상기 수집된 시스템 사용 정보로부터 상기 컴퓨터 프로그램의 행동 특징을 추출하는 단계, 및 상기 추출된 행동 특징을 인코딩하여 행동 특징 벡터를 생성하는 단계를 포함하는 것을 특징으로 하는 모델링 방법을 제공한다.According to an aspect of the present invention, there is provided a method of modeling a behavior of a computer program executed in a computer system, the method comprising: Extracting a behavioral feature of the computer program from the collected system usage information, and encoding the extracted behavioral feature to generate a behavioral feature vector. do.

본 발명의 일측에 따르면, 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 장치에 있어서, 상기 컴퓨터 프로그램이 상기 컴퓨터 시스템의 자원(resource)을 사용한 시스템 사용 정보를 수집하는 수집부, 상기 수집된 시스템 사용 정보로부터 상기 컴퓨터 프로그램의 행동 특징을 추출하는 추출부, 및 상기 추출된 행동 특징을 인코딩하여 행동 특징 벡터를 생성하는 인코딩부를 포함하는 것을 특징으로 하는 모델링 장치가 제공된다.According to an aspect of the present invention, there is provided an apparatus for modeling a behavior of a computer program executed in a computer system, the computer program comprising a collection unit for collecting system usage information using resources of the computer system, An extraction unit extracting behavioral characteristics of the computer program from usage information, and an encoding unit encoding the extracted behavioral feature to generate a behavioral feature vector.

본 발명에 따르면 컴퓨터 시스템에서 실행되는 특정 컴퓨터 프로그램의 행동을 모델링하여 특정 컴퓨터 프로그램의 특징을 다른 프로그램에서 판단할 수 있다.According to the present invention, the behavior of a specific computer program executed in a computer system may be modeled to determine the characteristics of the particular computer program in another program.

본 발명에 따르면, 특정 컴퓨터 프로그램의 행동을 모델링하여 악성 프로그램을 검사하는 프로그램이 상기 특정 컴퓨터 프로그램이 악성 프로그램인지 여부를 판단할 수 있다.According to the present invention, a program for examining a malicious program by modeling a behavior of a specific computer program can determine whether the specific computer program is a malicious program.

본 발명에 따르면, 악성 프로그램을 검사하는 프로그램을 훈련시킬 수 있도록 정상 프로그램과 악성 프로그램의 행동 특징을 각각 모델링할 수 있다.According to the present invention, behavioral features of normal programs and malicious programs can be modeled, respectively, so that a program for inspecting malicious programs can be trained.

이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명에서 설명하는 컴퓨터 시스템은 PC, 핸드폰, 각종 디지털 전자장치를 포함하는 개념으로서, 프로세서 및 메모리를 구비하고 프로그램을 실행시켜 작업을 수행하는 모든 장치를 포함하는 것으로 해석될 수 있다.The computer system described in the present invention can be interpreted as including a PC, a mobile phone, and various digital electronic devices, including all the devices having a processor and a memory and executing a program to perform a task.

도 1은 본 발명에 따른 컴퓨터 프로그램의 행동 특징 벡터를 이용하여 악성 프로그램을 검사하는 방법을 단계별로 도시한 순서도이다. 이하 도 1을 참조하여 본 발명에 따라서 모델링된 컴퓨터 프로그램의 행동을 이용하여 악성 프로그램을 검사하는 방법을 상세히 설명하기로 한다.FIG. 1 is a flowchart showing a stepwise method of inspecting a malicious program using a behavioral feature vector of a computer program according to the present invention. Hereinafter, a method for inspecting a malicious program using the behavior of a computer program modeled according to the present invention will be described in detail with reference to FIG.

본 발명에서 설명하는 악성 코드는 제작자가 의도적으로 사용자에게 피해를 주고자 만든 모든 악의의 목적을 가진 프로그램 및 매크로(macro), 스크립트(script) 등 컴퓨터 시스템상에서 작동하는 모든 실행가능한 형태의 프로그램을 말한다.The malicious code described in the present invention refers to a program having all malicious intentions intended by the manufacturer to intentionally harm the user and a program of all executable forms operating on a computer system such as a macro or a script .

단계(S110)에서는 컴퓨터 프로그램의 행동을 모델링하여 행동 특징 벡터를 생성한다. 단계(S110)에서는 악성 프로그램뿐만 아니라, 정상 프로그램의 행동도 모델링하여, 악성 프로그램과 정상 프로그램 모두에 대하여 행동 특징 벡터를 생성할 수 있다.In step S110, the behavior of the computer program is modeled to generate a behavior feature vector. In step S110, the behavioral feature vector may be generated for both the malicious program and the normal program by modeling the behavior of the normal program as well as the malicious program.

단계(S120)에서는 단계(S110)에서 생성한 행동 특징 벡터를 이용하여 악성 프로그램과 정상 프로그램을 구분할 수 있도록 악성 프로그램을 검사하는 프로그램을 훈련시킨다. 본 발명의 일실시예에 따르면, 악성 프로그램을 검사하는 프로그램은 정상 프로그램의 행동을 모델링한 행동 특징 벡터에 대해서는 임계치 이상의 값을 산출하고, 악성 프로그램의 행동을 모델링한 행동 특징 벡터에 대해서는 임계치 미만의 값을 산출하도록 훈련될 수 있다.In step S120, a program for inspecting a malicious program is trained so that the malicious program and the normal program can be distinguished from each other using the behavior feature vector generated in step S110. According to an embodiment of the present invention, a program for examining a malicious program calculates a value greater than a threshold value for a behavior feature vector modeling behavior of a normal program, and for a behavior feature vector modeling behavior of a malicious program, Can be trained to calculate the value.

단계(S130)에서는 특정 컴퓨터 프로그램으로부터 생성한 행동 특징 벡터와 단계(S120)에서 훈련된 악성 프로그램을 검사하는 프로그램을 이용하여 컴퓨터 시스템에서 실행되는 각각의 컴퓨터 프로그램이 악성 프로그램인지, 정상 프로그램인지 여부를 검사한다.In step S130, a behavior feature vector generated from a specific computer program and a program for inspecting malicious programs trained in step S120 are used to determine whether each computer program executed in the computer system is a malicious program or a normal program Inspect.

만약 특정 컴퓨터 프로그램이 정상 프로그램이라면, 악성 프로그램을 검사 하는 프로그램은 특정 컴퓨터 프로그램의 행동 특징 벡터에 대하여 임계치 이상의 값을 산출하고, 만약 특정 컴퓨터 프로그램이 악성 프로그램이라면, 악성 프로그램을 검사하는 장치는 특정 컴퓨터 프로그램의 행동 특징 벡터에 대하여 임계치 미만의 값을 산출할 수 있다.If the specific computer program is a normal program, the program for examining the malicious program computes a value of the behavioral feature vector of the specific computer program above a threshold value. If the specific computer program is a malicious program, A value less than the threshold value can be calculated with respect to the behavior characteristic vector of the program.

대부분의 악성 프로그램은 전혀 새로운 악성 프로그램이 아니다. 기존에 존재하는 악성 프로그램의 일부를 수정하여 개량한 변종 악성 프로그램에 불과하다. 따라서, 기존의 악성 프로그램을 검사하는 프로그램으로는 악성 프로그램으로 판단하지 못하는, 새로운 악성 프로그램의 행동도, 기존의 악성 프로그램의 행동과 유사하다.Most malicious programs are not entirely new malicious programs. It is merely a variant malicious program that has been modified by modifying some existing malicious programs. Therefore, the behavior of a new malicious program, which can not be judged as a malicious program, is similar to that of an existing malicious program.

또 대부분의 악성 프로그램은 사용자의 컴퓨터 시스템에 침입하여 사용자의 데이터를 삭제하거나, 시스템 파일을 삭제하는 등 실제 행동은 대부분 유사하다.Most of the malicious programs are similar in behavior, such as invading user's computer system and deleting user's data or deleting system files.

따라서, 특정 프로그램의 행동으로, 특정 프로그램이 정상적인 프로그램인지, 악성 프로그램인지 여부를 판단한다면, 기존 문자열 비교 방식보다 훨씬 정확하게 악성 프로그램 여부를 판단할 수 있다. 또한 지금까지 알려지지 않은 새로운 변종 악성 프로그램에 대해서도 그 행동 만으로 악성 프로그램 여부를 판단할 수 있다.Therefore, if the behavior of a specific program determines whether a specific program is a normal program or a malicious program, it can be judged whether or not the malicious program is more accurate than the existing string comparison method. It is also possible to judge whether or not a malicious program is a malicious program which has not been known until now.

종래 기술과 달리 새로운 악성 프로그램에 대한 정보를 분석할 필요가 없으므로, 새로운 악성 프로그램을 분석하는 시간에 발생하는 피해를 줄일 수 있다.Unlike the prior art, there is no need to analyze information on a new malicious program, thereby reducing the damage occurring in analyzing a new malicious program.

도 2는 본 발명에 다른 컴퓨터 프로그램의 행동 모델링 방법을 단계별로 도시한 순서도이다. 이하 도 2를 참조하여 본 발명에 따른 컴퓨터 프로그램의 행동 모델링 방법을 상세히 설명하기로 한다.FIG. 2 is a flowchart showing steps of a behavior modeling method of a computer program according to the present invention. Hereinafter, a behavior modeling method of a computer program according to the present invention will be described in detail with reference to FIG.

단계(S210)에서는 특정 컴퓨터 시스템에서 실행되는 특정 컴퓨터 프로그램이 컴퓨터 시스템의 자원을 사용하는 시스템 사용 정보를 수집한다.In step S210, a specific computer program executed in a specific computer system collects system usage information using resources of the computer system.

컴퓨터 프로그램이 컴퓨터 시스템 상에서 실행되기 위해서는 컴퓨터 시스템의 메모리에 접근하여 데이터를 읽거나, 특정 파일에 데이터를 쓰는 등, 컴퓨터 시스템의 자원에 접근해야 한다. 컴퓨터 시스템은 컴퓨터 프로그램이 컴퓨터 시스템의 특정 자원에 접근할 수 있도록 인터페이스 함수를 제공한다. 컴퓨터 프로그램은 인터페이스 함수를 호출하여 컴퓨터 시스템의 특정 자원에 접근하여 필요한 작업을 수행할 수 있다.In order for a computer program to run on a computer system, it must access the computer system's resources, such as accessing the computer system's memory and reading data, or writing data to a particular file. A computer system provides an interface function that allows a computer program to access a specific resource of a computer system. A computer program can call an interface function to access a specific resource of a computer system to perform the required operation.

악성 프로그램이 사용자의 데이터 또는 시스템 파일을 파괴하기 위해서는 사용자의 데이터를 저장하는 파일, 또는 시스템 파일에 대한 접근 권한을 획득해야 하고, 다른 장치를 감염시키기 위해서는 악성 프로그램의 설치 파일을 외부로 전송하기 위하여 입출력 장치에 접근해야 한다. 따라서 컴퓨터 프로그램이 컴퓨터 시스템의 특정 자원에 접근하는 시스템 사용정보는 컴퓨터 프로그램의 행동을 기술하기 위해 사용될 수 있다.To destroy a user's data or system files, a malicious program must gain access to files or system files that store user data. To infect other devices, I / O devices should be accessed. Thus, system usage information, in which a computer program accesses a specific resource of the computer system, can be used to describe the behavior of the computer program.

본 발명의 일실시예에 따르면, 단계(S210)에서는 컴퓨터 시스템이 제공하는 인터페이스 함수를 특정 프로그램이 호출한 정보를 시스템 사용 정보로서 수집할 수 있다.According to an embodiment of the present invention, in step S210, the interface function provided by the computer system may be collected as the system usage information from the information called by the specific program.

컴퓨터 프로그램은 컴퓨터 시스템이 제공하는 인터페이스 함수를 이용할 뿐만 아니라, 컴퓨터 시스템이 제공하는 이벤트에 기반하여 작업을 수행할 수도 있 다.The computer program may not only utilize the interface functions provided by the computer system, but may also perform operations based on events provided by the computer system.

컴퓨터 프로그램이 일정한 시각에 특정 동작을 수행하는 경우, 컴퓨터 시스템은 상기 시각에 시간 이벤트를 발생하고, 컴퓨터 프로그램은 상기 시간 이벤트에 기반하여 특정 동작을 수행한다. 또 사용자로부터의 입력이나 다른 컴퓨터 시스템으로부터의 데이터 전송 등은 특별한 이벤트의 형식으로 컴퓨터 시스템으로부터 컴퓨터 프로그램으로 전송된다.When a computer program performs a specific operation at a certain time, the computer system generates a time event at the time, and the computer program performs a specific operation based on the time event. Also, input from a user or data transfer from another computer system is transferred from the computer system to the computer program in the form of special events.

컴퓨터 프로그램이 사용자로부터 특정한 입력이 발생하는 경우에 특정 동작을 수행하는 경우에, 컴퓨터 시스템은 사용자로부터 상기 특정한 입력이 발생하는 경우, 상기 입력에 상응하는 이벤트를 발생하고, 컴퓨터 프로그램은 상기 이벤트에 기반하여 특정 동작을 수행한다.The computer system generates an event corresponding to the input when the particular input occurs from the user, and the computer program causes the computer to perform the steps of: Thereby performing a specific operation.

각각의 컴퓨터 프로그램은 각각의 컴퓨터 프로그램과 연관된 상기 이벤트가 발행하였는지 여부를 확인하여, 상기 확인 결과에 따라서 특정 동작을 수행할 수 있다.Each of the computer programs can confirm whether or not the event associated with each computer program has issued and perform a specific operation according to the confirmation result.

따라서 컴퓨터 프로그램이 컴퓨터 프로그램과 연관된 컴퓨터 시스템의 이벤트 발생 정보에 기반하여 작업을 수행하는 것은 컴퓨터 프로그램의 행동을 기술하기 위해 사용될 수 있다.Thus, a computer program performing operations based on event occurrence information of a computer system associated with the computer program can be used to describe the behavior of the computer program.

본 발명의 일실시예에 따르면, 단계(S210)에서는 상기 컴퓨터 프로그램과 연관된 이벤트 발생 정보를 시스템 사용 정보로서 수집할 수 있다.According to an embodiment of the present invention, in step S210, event occurrence information associated with the computer program may be collected as system usage information.

단계(S220)에서는 단계(S210)에서 수집된 시스템 사용 정보로부터 상기 컴퓨터 프로그램의 행동 특징을 추출한다.In step S220, a behavior characteristic of the computer program is extracted from the system usage information collected in step S210.

특정 컴퓨터 프로그램이 수행하는 각각의 동작들은, 각각의 동작만으로 상기 특정 프로그램이 정상적인 프로그램인지, 악성 프로그램인지 판단하기에는 불충분하다.Each of the operations performed by the specific computer program is insufficient to determine whether the specific program is a normal program or a malicious program only by the respective operations.

예를 들어, 컴퓨터 프로그램은 컴퓨터 시스템에 특정 이벤트가 발생하였는지 여부를 정기적으로 확인할 수 있는데 이 확인하는 동작만으로는 컴퓨터 프로그램이 정상적인 프로그램인지, 악성 프로그램인지 여부를 판단할 수 없다.For example, the computer program can periodically check whether or not a specific event has occurred in the computer system. By this checking operation, the computer program can not determine whether it is a normal program or a malicious program.

본 발명의 일실시예에 따르면 단계(S210)에서는 컴퓨터 프로그램이 복수의 서로 다른 시각에 걸쳐 컴퓨터 시스템을 사용하는 복수의 정보를 수집하고, 단계(S220)에서는 컴퓨터 프로그램의 개별적인 행동, 동작에 대한 정보가 아니라, 상기 수집한 복수의 행동, 동작 정보간의 시간적 선후 관계에 기반하여 컴퓨터 프로그램의 행동 특징을 추출할 수 있다.According to one embodiment of the present invention, in step S210, a computer program collects a plurality of pieces of information using a computer system over a plurality of different time periods, and in step S220, information on individual behaviors, The behavior characteristic of the computer program can be extracted based on the temporal relationship between the collected plurality of behaviors and operation information.

예를 들어 특정 컴퓨터 프로그램이 외부에서 특정 정보를 수신하거나 특정 파일을 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 복사하는 경우에, 파일을 복사하는 각각의 동작만으로는 상기 특정 컴퓨터 프로그램이 정상 프로그램인지 악성 프로그램인지 여부를 판단하기에 불충분하다. 그러나, 특정 컴퓨터 프로그램이 컴퓨터 시스템의 외부로부터 데이터를 수신한 후에, 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 파일을 복사하고, 또 복사한 파일을 주기적으로 외부 장치로 전송하려 한다면, 상기 특정 컴퓨터 프로그램을 악성 프로그램으로 의심할 수 있다.For example, when a specific computer program receives specific information from the outside or copies a specific file to a directory in which system files of the computer system are stored, only the respective operations of copying the files determine whether the specific computer program is a normal program or a malicious program It is insufficient to judge whether or not. However, if a specific computer program receives data from the outside of the computer system and then copies the file to the directory where the system files of the computer system are stored and periodically sends the copied file to the external device, Malicious programs can be suspicious.

본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 수집한 복수의 시스 템 사용 정보간의 시간적 순서를 상기 컴퓨터 프로그램의 행동 특징으로서 추출할 수 있다.According to an embodiment of the present invention, in step S220, the temporal order among the plurality of collected system use information can be extracted as a behavior characteristic of the computer program.

본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 수집한 복수의 시스템 사용 정보간의 상호 연관성에 기반하여 상기 컴퓨터 프로그램에 대한 복수의 동작 함수를 생성할 수 있다.According to an embodiment of the present invention, in operation S220, a plurality of operation functions for the computer program may be generated based on the correlation between the plurality of collected system usage information.

컴퓨터 프로그램은 컴퓨터 시스템이 제공하는 인터페이스 함수를 호출하여 컴퓨터 프로그램이 의도하는 작업을 수행하지만, 각각의 인터페이스 함수를 단위로 하여 컴퓨터 프로그램의 행동 특징을 추출하면 그 과정이 너무 복잡해진다.The computer program calls the interface function provided by the computer system to perform the operation intended by the computer program. However, if the behavioral feature of the computer program is extracted for each interface function, the process becomes too complicated.

본 발명의 일실시예에 따르면 단계(S220)에서는 서로 연관성 있는 복수의 시스템 사용 정보 간의 상호 연관성에 기반하여 컴퓨터 프로그램에 대한 복수의 동작 함수를 생성하고, 동작 함수에 기반하여 컴퓨터 프로그램의 행동 특징을 추출할 수 있다.According to one embodiment of the present invention, in step S220, a plurality of operation functions for a computer program are generated based on the correlation between a plurality of system usage information related to each other, and the behavior characteristics of the computer program Can be extracted.

동작 함수는 서로 연관된 적어도 하나 이상의 시스템 사용 정보로 구성된다.The operation function consists of at least one or more system usage information associated with each other.

예를 들어, 컴퓨터 프로그램이 컴퓨터 시스템에 설치된 무선 통신 장치를 이용하여 데이터를 다른 컴퓨터 시스템으로 전송하기 위해서, 컴퓨터 프로그램은 무선 통신 장치가 설치되어 있는지, 다른 컴퓨터 프로그램에 의해서 사용되고 있지는 않은지 여부를 확인한다. 만약 다른 컴퓨터 프로그램에 의해서 사용되고 있지 않다면 무선 통신 장치에 대한 접근 권한을 획득하고, 무선 통신 장치로 데이터를 전송하며, 데이터 전송이 끝난 후에는 무선 통신 장치에 대한 접근 권한을 다시 컴 퓨터 시스템에 반납해야 한다.For example, in order for a computer program to transfer data to another computer system using a wireless communication device installed in the computer system, the computer program checks whether the wireless communication device is installed or not being used by another computer program . If it is not used by another computer program, it obtains the access right to the wireless communication device, transfers the data to the wireless communication device, and returns the access right to the wireless communication device to the computer system after the data transmission is completed do.

이러한 각각의 동작을 수행하기 위한 각각의 인터페이스 함수를 단위로 컴퓨터 프로그램의 행동 특징을 추출한다면, 그 과정이 너무 복잡하므로, 서로 연관된 시스템 사용 정보를 동작 함수로 구성하고, 동작 함수를 단위로 컴퓨터 프로그램의 행동 특징을 추출하면 추출 과정이 상대적으로 간단해 진다.If the behavior characteristics of a computer program are extracted in units of the respective interface functions for performing each of these operations, the process is so complex that the related system use information is configured as an operation function, The extraction process becomes relatively simple.

본 발명의 일실시예에 따르면, 무선 통신 장치의 설치여부를 확인하고, 접근 권한을 획득하여 데이터를 전송하고, 다시 접근 권한을 컴퓨터 시스템에 반납하는 일련의 인터페이스 함수들을 하나의 동작 함수로 구성할 수 있다.According to an embodiment of the present invention, a series of interface functions for confirming whether or not a wireless communication device is installed, acquiring an access right and transmitting data, and returning the access right to the computer system is configured as one operation function .

본 발명의 일실시예에 따르면, 단계(S2220)에서는 복수의 동작 함수의 시간적 선후 관계를 상기 행동 특징으로 추출할 수 있다.According to an embodiment of the present invention, in step S2220, a temporal posterior relationship of a plurality of operation functions can be extracted by the behavior feature.

컴퓨터 프로그램이 호출하는 각각의 동작 함수만으로는 그 컴퓨터 프로그램이 악성 프로그램인지, 정상 프로그램인지 판단하기에 충분하지 않으므로, 복수의 동작 함수 간의 선후 관계를 이용하여 특정 컴퓨터 프로그램의 행동 특징을 추출한다.Since each operation function called by the computer program is not sufficient to determine whether the computer program is a malicious program or a normal program, the behavioral characteristics of a specific computer program are extracted using the relationship between the plurality of operation functions.

본 발명의 일실시예에 따르면, 단계(S220)에서는 컴퓨터 시스템이 악성 프로그램에 감염되고, 악성 프로그램의 증상을 나타내고, 다시 다른 컴퓨터 시스템을 감염시키는, 악성 프로그램의 한 생명 주기(life cycle) 중 임의로 선택된 일부 동작 함수에 대하여 시간적 선후 관계를 상기 행동 특징으로 추출할 수 있다.According to an embodiment of the present invention, in step S220, a computer system is infected with a malicious program, a symptom of a malicious program is displayed, and another computer system is infected with the malicious program. The temporal posterior relationship can be extracted for the selected action function with the action feature.

본 발명의 일실시예에 따르면, 단계(S220)에서는 생성한 동작 함수의 발생 빈도를 상기 컴퓨터 프로그램의 행동 특징으로서 추출할 수 있다.According to an embodiment of the present invention, in step S220, the occurrence frequency of the generated operation function can be extracted as a behavior feature of the computer program.

본 발명의 일실시예에 따르면, 단계(S220)에서는 컴퓨터 시스템이 각각의 악성 프로그램에 감염되고, 악성 프로그램의 증상을 나타내고, 다시 다른 컴퓨터 시스템을 감염시키는, 악성 프로그램의 한 생명 주기(life cycle)에 대하여 각각의 동작 함수의 발생 빈도를 행동 특징으로서 추출할 수 있다.According to an embodiment of the present invention, in step S220, a computer system is infected with each malicious program, a symptom of the malicious program is detected, and another computer system is infected. The occurrence frequency of each operation function can be extracted as an action feature.

각각의 악성 프로그램은 한 생명 주기 동안에 컴퓨터 시스템이 제공하는 모든 동작 함수 중에서, 특정 동작 함수를 여러 번 호출할 수도 있고, 특정 동작 함수는 전혀 호출하지 않을 수 있다. 따라서, 특정 컴퓨터 프로그램이 한 생명 주기 동안에 특정 동작 함수를 몇 번 호출하는지 여부가 특정 컴퓨터 프로그램의 행동 특징이 될 수 있다.Each malicious program may invoke a particular action function multiple times, or not at all, of all the action functions that the computer system provides during a lifetime. Thus, how many times a particular computer program calls a particular motion function during a life cycle can be a behavioral feature of a particular computer program.

단계(S230)에서는 단계(S2220)에서 추출한 행동 특징을 인코딩하여 행동 특징 벡터를 생성한다.In step S230, a behavior feature vector extracted in step S2220 is encoded to generate a behavior feature vector.

단계(S220)에서 추출한 행동 특징은 컴퓨터 프로그램을 이용하여 쉽게 처리할 수 있는 형태가 아니라, 각각의 동작 함수간의 시간적 선후 관계를 표시하는 순서도와 같은 형태일 수 있다. 본 발명의 일실시예에 따르면, 단계(S230)에서는 상기 추출한 행동 특징을 컴퓨터 프로그램이 처리할 수 있도록 숫자의 형태로 저장한 행동 특징 벡터를 생성할 수 있다.The behavior characteristic extracted in step S220 may be a form that is not a form that can be easily processed using a computer program but a flowchart showing a temporal relationship between respective operation functions. According to an embodiment of the present invention, in step S230, a behavior feature vector stored in the form of a number can be generated so that the extracted behavior feature can be processed by a computer program.

행동 특징 벡터는 특정 컴퓨터 프로그램의 행동을 컴퓨터가 처리할 수 있는 형태로 모델링한 것이다. 행동 특징 벡터를 이용하여 컴퓨터 프로그램이 정상적인 프로그램인지 악성 프로그램인지 판단하기 위해서 서로 유사한 행동 특징을 가지는 컴퓨터 프로그램의 행동을 모델링한 행동 특징 벡터 상호간은 서로 유사할 수 있 다.Behavioral feature vectors are modeled in a form that can be processed by a computer. In order to determine whether a computer program is a normal program or a malicious program using behavioral feature vectors, behavioral feature vectors that model behaviors of computer programs with similar behavioral characteristics may be similar to each other.

알려진 악성 프로그램의 행동 특징과 악성 프로그램과 유사한 행동을 하는 컴퓨터 프로그램의 행동 특징은 서로 유사하고, 악성 프로그램의 행동 특징 벡터와 악성 프로그램과 유사한 행동을 하는 컴퓨터 프로그램의 행동 특징 벡터가 서로 유사할 수 있다. 악성 프로그램을 검사하는 프로그램은 악성 프로그램의 행동 특징 벡터와 유사한 행동 특징 벡터를 가지는 컴퓨터 프로그램을 악성 프로그램으로 판단 할 수 있다.Behavioral characteristics of known malicious programs and behaviors of computer programs behaving similar to malicious programs are similar, and behavioral feature vectors of malicious programs and behavioral vectors of computer programs behaving similar to malicious programs may be similar . A program that tests malicious programs can determine a malicious program as a computer program that has behavioral feature vectors similar to behavioral feature vectors of malicious programs.

즉, 제1 컴퓨터 프로그램과 제2 컴퓨터 프로그램이 서로 유사한 행동을 한다면, 제1 컴퓨터 프로그램의 제1 행동 특징과 제2 컴퓨터 프로그램의 제2 행동 특징은 서로 유사할 수 있다. 또 서로 유사한 제1 행동 특징과 제2 행동 특징을 각각 인코딩하여 생성한 제1 행동 특징 벡터와 제2 행동 특징 벡터는 서로 유사할 수 있다.That is, if the first computer program and the second computer program have similar behavior to each other, the first behavioral characteristic of the first computer program and the second behavioral characteristic of the second computer program may be similar to each other. The first behavior feature vector and the second behavior feature vector generated by encoding the first behavior feature and the second behavior feature similar to each other may be similar to each other.

본 발명의 일실시예에 따르면, 서로 유사한 행동 특징을 각각 인코딩한 행동 특징 벡터간의 거리가 행동 특징간의 유사성에 반비례하도록 인코딩할 수 있다. 여기서 두 행동 특징 벡터간의 거리는 유클리디안(Euclidean) 거리가 될 수 있다. 두 행동 특징 벡터 x, y간의 유클리디안 거리는 하기 수학식1에 의하여 정해진다.According to an embodiment of the present invention, the distance between the behavior feature vectors each encoding the similar behavior feature may be encoded so as to be in inverse proportion to the similarity between the behavior features. Where the distance between the two behavioral feature vectors can be the Euclidean distance. The Euclidean distance between the two behavior feature vectors x and y is determined by the following equation (1).

[수학식 1][Equation 1]

Figure 112007065245036-pat00001
Figure 112007065245036-pat00001

N은 두 행동 특징 벡터 x, y의 길이이고,

Figure 112007065245036-pat00002
는 행동 특징 벡터 x의 i번째 원소,
Figure 112007065245036-pat00003
는 행동 특징 벡터 y의 i번째 원소를 나타낸다.N is the length of the two behavior feature vectors x, y,
Figure 112007065245036-pat00002
Is the i-th element of the behavior feature vector x,
Figure 112007065245036-pat00003
Represents the i-th element of the behavior feature vector y.

만약 행동 특징 벡터 x가

Figure 112007065245036-pat00004
이고, 행동 특징 벡터 y가
Figure 112007065245036-pat00005
이라면, 두 행동 특징 벡터 x, y사이의 유클리디안 거리 z는
Figure 112007065245036-pat00006
가 된다.If the behavioral feature vector x is
Figure 112007065245036-pat00004
, And the behavior feature vector y is
Figure 112007065245036-pat00005
, Then the Euclidean distance z between the two behavior feature vectors x, y is
Figure 112007065245036-pat00006
.

만약 두 행동 특징 벡터간의 거리가 작도록 인코딩 되려면, a와 d, b와 e, c와 f의 값은 서로 유사하게 인코딩 되어야 한다. a와 d, b와 e, c와 f의 값이 서로 유사하면 결과적으로 두 행동 특징 벡터는 서로 유사하다.If the distance between two behavior feature vectors is to be encoded small, the values of a and d, b and e, c and f must be encoded similarly. If the values of a and d, b and e, c and f are similar, then the two behavioral feature vectors are similar.

도 3은 악성 프로그램 중의 하나인 컴워리어 웜 바이러스(Commwarrior Worm Virus)의 공격 대상인 심비안(Symbian) 운영체제의 파일 시스템 구조를 도시한 도면이다. 이하 도 3을 참조하여 심비안 운영체제의 파일 시스템 구조를 상세히 설명하기로 한다.FIG. 3 is a diagram showing a file system structure of a Symbian operating system, which is an attack target of a Commwarrior Worm Virus, which is one of malicious programs. The file system structure of the Symbian operating system will be described in detail with reference to FIG.

심비안 운영체제는 노키아, 소니 에릭슨, 지멘스 등 유럽의 이동통신 장비업체들이 마이크로소프트의 컴퓨터 응용시스템에 의존하지 않기 위해 1998년부터 컨소시엄을 결성해 개발한 휴대폰, PDA, 스마트폰 등 모바일용 컴퓨터 운영체제이 다.The Symbian operating system is a mobile computer operating system developed by a consortium of Nokia, Sony Ericsson, Siemens and other European mobile telecom equipment makers since 1998 to avoid dependence on Microsoft's computer application system.

심비안은 실시간 처리의 32bit 멀티태스킹 운영체제. 2세대, 3세대 이동 통신 네트워크를 지원하고 멀티미디어 메시징 시스템(MMS), IPv6, 자바(Java)를 지원한다.Symbian is a 32-bit multitasking operating system with real-time processing. It supports 2nd and 3rd generation mobile communication networks and supports multimedia messaging system (MMS), IPv6, Java (Java).

심비안 운영체제는 운영체제와 관련된 파일을 시스템 디렉토리(310)과 그 하위 디렉토리(320, 330, 340, 350, 360)에 저장한다.The Symbian operating system stores a file related to the operating system in the system directory 310 and its subdirectories 320, 330, 340, 350, 360.

어플리케이션 디렉토리(320)는 시스템 디렉토리(310)의 하위 디렉토리로서 심비안 운영체제에서 실행되는 각종 응용 프로그램이 설치된다. 심비안 운영체제가 설치된 장치를 공격하는 악성 프로그램은 어플리케이션 디렉토리(320)에 프로그램 파일을 저장하고 사용자의 데이터를 파괴하거나, 시스템 파일을 공격할 수 있다.The application directory 320 is a subdirectory of the system directory 310, and various application programs running in the Symbian operating system are installed. A malicious program that attacks a device installed with the Symbian operating system may store the program file in the application directory 320, destroy the user's data, or attack the system file.

자동 실행 디렉토리(330)는 시스템 디렉토리(310)의 하위 디렉토리로서 심비안 운영체제가 설치된 장치가 재시작(reboot)될 때마다 자동적으로 실행되는 파일들이 저장된다.The automatic execution directory 330 is a subdirectory of the system directory 310 and stores files that are automatically executed every time a device installed with the Symbian operating system is rebooted.

라이브러리 디렉토리(340)는 각각의 응용프로그램이 작업을 수행하기 위하여 필요한 인터페이스 함수가 라이브러리 파일의 형태로 저장된다.The library directory 340 stores the interface functions required for each application program to be executed in the form of a library file.

설치 디렉토리(350)는 심비안 운영체제에 추가적으로 설치되는 파일들이 저장되는 디렉토리이다. 설치 디렉토리(350)에 저장된 설치 파일에서 추출된 실행 파일은 어플리케이션 디렉토리(320)에 저장된다The installation directory 350 is a directory in which files installed in addition to the Symbian operating system are stored. The executable file extracted from the installation file stored in the installation directory 350 is stored in the application directory 320

사용자가 특정 응용프로그램을 설치하기 위하여 응용프로그램의 설치 파일 을 설치 디렉토리(350)에 저장하는 경우도 있고, 악성 프로그램이 자신을 복제하기 위하여 설치 디렉토리(350)에 설치 파일을 저장하는 경우도 있다. 따라서 설치 디렉토리에 특정 파일을 복사하는 것 만으로는 컴퓨터 프로그램이 악성 프로그램인지, 정상 프로그램인지 여부를 판단하기에 부족하다.The user may store the installation file of the application program in the installation directory 350 in order to install the specific application program or the installation file may be stored in the installation directory 350 in order to copy the malicious program itself. Therefore, simply copying a specific file to the installation directory is not sufficient to determine whether the computer program is malicious or normal.

또, 컴퓨터 프로그램이 설치 디렉토리(350)에 저장된 파일을 다른 컴퓨터 시스템으로 전송하려는 경우에도, 전송을 시도 하려는 것 만으로는 컴퓨터 프로그램이 악성 프로그램인지, 정상 프로그램인지 여부를 판단하기에 부족하다.Even if a computer program attempts to transfer a file stored in the installation directory 350 to another computer system, it is insufficient to judge whether the computer program is a malicious program or a normal program by simply attempting transmission.

그러나 만약 컴퓨터 프로그램이 컴퓨터 시스템의 외부에서 수신한 설치 파일을 설치 디렉토리(350)에 복사하고, 복사한 파일을 다른 컴퓨터 시스템으로 전송하려고 시도한다면 컴퓨터 프로그램을 악성 프로그램으로 판단할 수 있다.However, if a computer program copies an installation file received from outside the computer system to the installation directory 350 and attempts to transfer the copied file to another computer system, the computer program may be determined to be a malicious program.

도 4는 본 발명의 일실시예에 따라서 추출한, 악성 프로그램 중의 하나인 워리어 웜 바이러스의 행동 특징을 도시한 도면이다. 이하 도 4를 참조하여 워리어 웜 바이러스의 행동 특징을 상세히 설명하기로 한다.FIG. 4 is a diagram showing behavioral characteristics of the Com Warrior worm virus, which is one of malicious programs extracted according to an embodiment of the present invention. Hereinafter, the behavioral characteristics of the Com Warrior worm virus will be described in detail with reference to FIG.

도 4에서는 워리어 웜 바이러스의 행동 특징이 복수의 동작 함수를 이용하여 도시 되었다.In FIG behavior characteristics of Com Warrior worm it is illustrated using a plurality of operating functions.

단계(S410)에서는 동작 함수 'ReceiveFile(f, mode, type)'이 실행된다. 'ReceiveFile' 함수는 심비안 운영체제가 설치된 장치가 다른 장치로부터 워리어 웜 바이러스의 설치 파일을 수신하도록 한다. 'ReceiveFile'함수의 인자인 'f'는 동작 함수가 수신하는 파일명이고, 'mode'는 동작 함수가 파일을 수신하는 방법을 지시한다. 무선 통신 방법의 일예로서, 'mode'가 'Bluetooth'인 경우에는 심비안 운영체제가 설치된 장치는 상기 장치에 설치된 블루투스 모듈을 이용하여 워리어 웜 바이러스의 설치 파일을 수신하고, 'mode'가 'MMS'인 경우에는 멀티 미디어 메시징 서비스(Multimedia Messaging Service)를 이용하여 워리어 웜 바이러스의 설치 파일을 수신한다. 'type'은 수신하는 파일의 형식을 지시하는 인자로서, 동작 함수 'ReceiveFile'은 워리어 웜 바이러스의 설치 파일을 수신하므로, 파일 형식은 심비안 운영체제의 설치파일 형식인 'SIS'이다.In step S410, an operation function 'ReceiveFile (f, mode, type)' is executed. 'ReceiveFile' function the device is installed, the Symbian operating system to receive a setup file for Com Warrior worm from the other device. 'F', the argument of the 'ReceiveFile' function, is the name of the file received by the action function, and 'mode' indicates how the action function receives the file. As an example of a wireless communication method, 'mode' is when the 'Bluetooth', the device is Symbian operating system is installed by using a Bluetooth module provided in the apparatus to receive a setup file for Com Warrior worm, 'mode' is 'MMS' in the case of using the multi-media messaging service (multimedia messaging service) receives a setup file for Com Warrior worm. 'type' is a factor which indicates the type of file it is receiving, the operation function 'ReceiveFile' is the 'SIS' it received the setup file of the Com Warrior worm, file type, file type is installed in the Symbian operating system.

단계(S420)에서는 동작 함수 'InstallApp(f,file,dir)'가 실행된다. InstallApp함수는 단계(S410)에서 수신된 워리어 웜 바이러스의 설치 파일을 특정 디렉토리에 설치한다. 'InstallApp'함수의 인자인 'f'는 워리어 웜 바이러스의 설치 파일이고, 'file'은 설치 파일로부터 추출한 워리어 웜 바이러스의 실행 파일이다. 인자 'dir'은 워리어 웜 바이러스의 실행 파일이 복사되는 디렉토리로서, 워리어 웜 바이러스의 경우에는 심비안 운영체제의 시스템 디렉토리(310) 또는 그 하위 디렉토리(320, 330, 340, 350)가 인자가 된다.In step S420, the operation function 'InstallApp (f, file, dir)' is executed. InstallApp function to install the install file of the Com Warrior worm received in the step (S410) in a specific directory. 'F' of the factor 'InstallApp' function is a setup file of the Com Warrior worm, 'file' is an executable file of Com Warrior worm extracted from the installation file. Factor 'dir' are the Com Warrior worm as a directory virus of the executable file is being copied, Com Warrior worm For viruses, the Symbian operating system directory 310 or a factor that sub-directory (320, 330, 340, 350) .

단계(S430)에서는 동작 함수 'LaunchProcess(p,parent)'가 실행된다. 'LaunchProcess'함수는 특정 어플리케이션을 실행한다. 인자 'p'는 실행되는 어플리케이션으로서 워리어 웜 바이러스의 경우에는 워리어 웜 바이러스의 실행 파일이 인자가 된다. 인자 'parent'는 특정 어플리케이션을 실행시키는 다른 어플리케이션으로서, 워리어 웜 바이러스의 경우에는 심비안 운영체제의 프로그램 설치자(Symbian Installer)가 인자가 된다.In step S430, the operation function 'LaunchProcess (p, parent)' is executed. The 'LaunchProcess' function executes a specific application. For Com Warrior worm as an application that runs factor 'p' is, the execution file of the Com Warrior worm becomes a factor. Factor 'parent' is a as another application for executing a particular application, Com Warrior worm For viruses, the Symbian operating system, the installer program (Symbian Installer) factor.

단계(S440)에서는 동작 함수 'MakeSIS(f,files)'가 실행된다. 'MakeSIS'함 수는 실행 파일로부터 다시 설치 파일을 생성한다. 인자 'f'는 실행 파일로부터 생성되는 설치파일이고, 인자 'files'는 실행 파일이다.In step S440, an operation function 'MakeSIS (f, files)' is executed. The 'MakeSIS' function creates the installation file again from the executable file. The argument 'f' is the installation file generated from the executable, and the argument 'files' is the executable.

단계(S450)에서는 동작 함수 'SetDevice(action)'이 실행된다. 'SetDevice'함수는 컴워리어 웜 바이러스가 지시하는 특정 동작을 수행한다. 컴워리어 웜 바이러스가 지시하는 동작은 인자 'action'을 이용하여 SetDevice함수로 전달된다.In step S450, an operation function 'SetDevice (action)' is executed. The 'SetDevice' function performs a specific action indicated by the ComWor worm virus. The actions indicated by the ComWor worm virus are passed to the SetDevice function using the 'action' argument.

단계(S460)에서는 동작 함수 'BTFindDevice(d)'함수가 실행된다. BTFindDevice함수는 심비안 운영체제가 설치된 장치에, 블루투스 전송 장치가 존재하는지 여부를 확인 한다. 컴워리어 웜 바이러스는 블루투스 전송 장치의 식별자를 인자 'd'를 이용하여 BTFindDevice함수로 전달한다.In step S460, an operation function 'BTFindDevice (d)' function is executed. The BTFindDevice function checks whether or not a Bluetooth transmission device exists in a device in which the Symbian operating system is installed. The Com Warrior worm virus transmits the identifier of the Bluetooth transmission device to the BTFindDevice function using the argument 'd'.

단계(S470)에서는 동작 함수 'OBEXSendFile(f,d)'함수가 실행된다. OBEXSendFile함수는 데이터를 외부로 전송한다. 컴워리어 웜 바이러스는 외부로 전송할 파일의 명칭을 인자 'f'를 이용하여 동작 함수 OBEXSendFile로 전달하고, 파일을 전송할 전송 장치의 식별자를 인자 'd'를 이용하여 동작 함수OBEXSendFile로 전달한다.In step S470, the function OBEXSendFile (f, d) 'is executed. The OBEXSendFile function transfers data to the outside. The ComWorr worm virus transfers the name of the file to be transferred to the external function to the operation function OBEXSendFile using the argument 'f' and transfers the identifier of the transmission apparatus to which the file is to be transferred to the operation function OBEXSendFile using the argument 'd'.

컴워리어 웜 바이러스는 단계(S440)에서 생성한 설치파일을 인자 'f'를 이용하여 외부로 전송한다.The Com Warrior worm virus transmits the installation file generated in step S440 to the outside using the argument 'f'.

컴워리어 웜 바이러스는 동작 함수 OBEXSendFile를 이용하여 다른 장치로 컴워리어 웜 바이러스의 설치 파일을 전송하고, 파일을 수신한 장치를 감염시킬 수 있다.The ComWorrier worm virus can transmit the installation file of the ComWor worm virus to another device using the operation function OBEXSendFile and infect the device receiving the file.

단계(S480)에서는 동작 함수 'MMSFindAddress(a)'가 실행된다. MMSFindAddress함수는 심비안 운영체제가 설치된 장치에 저장된 전화번호 목록 중에서 임의의 전화번호를 찾아 컴워리어 웜 바이러스로 전달한다.In step S480, an operation function 'MMSFindAddress (a)' is executed. The MMSFindAddress function finds an arbitrary phone number in the list of phone numbers stored in the device where the Symbian OS is installed and sends it to the ComWor worm virus.

단계(S490)에서는 동작 함수 MMSSendMessage(f,a)가 실행된다 MMSSendMessage 함수는 특정 전화번호를 가진 다른 장치로 MMS 서비스를 이용하여 파일을 전송한다. 컴워리어 웜 바이러스는 인자 'a'를 이용하여 특정 전화번호를 MMSSendMessage함수로 전달하고, 인자 'f'를 이용하여 외부 장치로 전송할 파일의 명칭을 MMSSendMessage함수로 전달한다.In step S490, the operation function MMSSendMessage (f, a) is executed. The MMSSendMessage function transmits the file using the MMS service to another device having a specific telephone number. The ComWorrier worm virus uses the argument 'a' to pass a specific phone number to the MMSSendMessage function, and the name of the file to be transferred to the external device using the argument 'f' is transferred to the MMSSendMessage function.

컴워리어 웜 바이러스는 MMSSendMessage함수를 이용하여 단계(S480)에서 획득한 전화번호에 상응하는 장치로 컴워리어 웜 바이러스의 설치 파일을 전송하여, 상기 장치를 컴워리어 웜 바이러스에 감염시킬 수 있다.The ComWorrier worm virus can infect the device with the ComWorrier worm virus by transmitting the installation file of the ComWor worm virus to the device corresponding to the telephone number acquired in step S480 using the MMSSendMessage function.

특정 함수의 행동 특징은, 복수의 동작 함수간의 시간적 선후 관계를 포함하므로, 도 4에 도시된 바와 같이 도면의 형태로 표현되는 것이 일반적이다. 그러나 악성 프로그램을 검사하는 프로그램은 도 4와 같은 도면 형태의 행동 특징을 인식할 수 없다.Since the behavior characteristic of the specific function includes the temporal relationship between the plurality of operation functions, it is generally expressed in the form of a figure as shown in Fig. However, the program for examining a malicious program can not recognize the behavior characteristic of the drawing form as shown in FIG.

따라서 본 발명의 일실시예에 따르면, 도 4와 같은 도면 형태의 행동 특징을, 컴퓨터 프로그램이 처리할 수 있도록, 문자열 또는 숫자로 이루어진 배열의 형태로 인코딩하여 행동 특징 벡터를 생성할 수 있다.Thus, according to an embodiment of the present invention, the behavioral features of the drawing as shown in FIG. 4 can be encoded in the form of a string or numerical array so that a computer program can process the behavioral feature vector.

도 5는 본 발명의 일실시예에 따라서, 동작 함수의 발생 빈도를 저장한 행동 특징 벡터의 구조를 도시한 도면이다. 이하 도 5를 참조하여 행동 특징 벡터의 구조를 상세히 설명하기로 한다.FIG. 5 is a diagram illustrating a structure of a behavior feature vector storing an occurrence frequency of an operation function according to an embodiment of the present invention. Hereinafter, the structure of the behavior feature vector will be described in detail with reference to FIG.

컴퓨터 프로그램의 행동 특징을 추출하기 위한 기본 단위로서의 동작 함수가, 각각의 컴퓨터 프로그램의 행동 특징을 추출할 때 마다 달라진다면 추출한 행동 특징에 따라서 악성 프로그램과 정상 프로그램을 구분하는 것이 무의미하다. 따라서 행동 특징을 추출하기 위한 기본 단위로서의 동작 함수는 각각의 컴퓨터 프로그램과는 무관하게 구성되어야 한다.If an action function as a basic unit for extracting a behavior characteristic of a computer program is changed every time a behavior characteristic of each computer program is extracted, it is meaningless to distinguish the malicious program from the normal program according to the extracted behavior characteristic. Therefore, the operation function as a basic unit for extracting behavioral features should be independent of each computer program.

컴퓨터 시스템이 제공하는 모든 인터페이스 함수 중에서 서로 연관성 있는 함수를 동작 함수로 구성하면 각각의 컴퓨터 프로그램과는 무관하게 동작 함수를 구성할 수 있다.If all of the interface functions provided by the computer system have mutually related functions as the motion functions, the motion functions can be configured independently of the respective computer programs.

컴퓨터 시스템이 제공하는 모든 인터페이스 함수를 대상으로 동작 함수를 구성하면 동작 함수의 전체 개수는 컴퓨터 시스템에 따라서 달리 정해진다. 특정 컴퓨터 프로그램은 전체 동작 함수 중에서 일부 동작 함수만을 사용하여 작업을 수행한다. 컴퓨터 프로그램에 따라서는 특정 동작 함수를 여러 번 사용하고, 특정 동작 함수는 사용하지 않거나, 1번만 사용하여 작업을 수행할 수 있다.If all of the interface functions provided by the computer system are configured as an operation function, the total number of operation functions is determined differently depending on the computer system. A specific computer program performs an operation using only some of the operation functions among the entire operation functions. Depending on the computer program, a specific operation function may be used several times, a specific operation function may not be used, or only one operation may be performed.

본 발명의 일실시예에 따르면 행동 특징을 인코딩 하여 생성되는 행동 특징 벡터는 상기 복수의 동작 함수에 각각 상응하는 복수의 원소를 포함하고, 상기 각각의 원소는 상기 동작 함수의 발생 빈도를 저장할 수 있다.According to an embodiment of the present invention, a behavior feature vector generated by encoding a behavior feature includes a plurality of elements each corresponding to the plurality of operation functions, and each of the elements may store the occurrence frequency of the operation function .

본 발명의 일실시예에 따르면 컴퓨터 시스템이 제공하는 모든 동작 함수를 소정의 기준에 따라서 정렬할 수 있다. 컴퓨터 시스템이 N개의 동작 함수를 제공한다고 가정하면, 각각의 동작 함수에는 '1'부터 'N'까지의 식별자를 부여할 수 있 다.According to an embodiment of the present invention, all the operation functions provided by the computer system can be arranged according to a predetermined criterion. Assuming that the computer system provides N operation functions, each operation function can be given an identifier from '1' to 'N'.

본 발명의 일실시예에 따르면 컴퓨터 시스템에 제공하는 N개의 동작 함수의 발생 빈도를 모두 기술하기 위해서는 모두 N개의 원소가 필요하다.According to an embodiment of the present invention, N elements are all required to describe all the occurrence frequencies of the N operation functions provided to the computer system.

본 발명의 일실시예에 따르면 행동 특징 벡터(500)의 복수의 원소(510, 520, 530, 540, 550, 560) 중에서 첫 번째 동작 함수에 상응하는 원소(510)는 첫 번째 동작 함수의 발생 빈도를 저장하고, 두 번째 동작 함수에 상응하는 원소(520)는 두 번째 동작 함수의 발생 빈도를 저장할 수 있다. 같은 방법으로 N 번째 동작 함수에 상응하는 원소는 N 번째 동작 함수의 발생 빈도를 저장할 수 있다.An element 510 corresponding to a first operation function among a plurality of elements 510, 520, 530, 540, 550, and 560 of the behavior feature vector 500 is generated according to an embodiment of the present invention, And the element 520 corresponding to the second operation function may store the occurrence frequency of the second operation function. In the same way, an element corresponding to the Nth operation function can store the occurrence frequency of the Nth operation function.

도 5의 실시예에서는 컴퓨터 프로그램은 컴퓨터 시스템이 제공하는 동작 함수 중에서 첫 번째 동작 함수와 세 번째 동작 함수는 호출하지 않는다(510, 530). 두 번째 동작 함수와 여섯 번째 동작 함수는 1번 호출하고(520, 560), 네 번째 동작 함수는 3번 호출한다(540). 다섯 번째 동작 함수는 2번 호출한다(550).In the embodiment of FIG. 5, the computer program does not call the first operation function and the third operation function among the operation functions provided by the computer system (510, 530). The second operation function and the sixth operation function are called once (520, 560), and the fourth operation function is called three times (540). The fifth action function is called twice (550).

본 발명의 일실시예에 따르면 각각의 동작 함수의 발생 빈도를 저장하는 행동 특징 벡터의 원소들은 행동 특징 벡터 내에서 서로 인접하여 배치될 수도 있으나, 서로 인접하지 않은 위치에 배치될 수도 있다.According to an embodiment of the present invention, the elements of the behavior feature vector storing the occurrence frequency of each operation function may be disposed adjacent to each other within the behavior feature vector, but may be disposed at positions not adjacent to each other.

본 발명의 일실시예에 따르면 각각의 동작 함수의 발생 빈도를 저장하는 행동 특징 벡터의 원소들은 행동 특징 벡터의 처음 부분 N개의 원소가 될 수도 있고, 마지막 N개의 원소가 될 수도 있다.According to an embodiment of the present invention, the elements of the behavior feature vector storing the occurrence frequencies of the respective operation functions may be N elements at the beginning of the behavior feature vector, or may be N elements at the end.

도 6은 본 발명의 일실시예에 따라서, 동작 함수 상호간의 시간적 선후 관계를 저장한 행동 특징 벡터의 구조를 도시한 도면이다. 이하 도 6을 참조하여 행 동 특징 벡터의 구조를 상세히 설명하기로 한다.6 is a diagram showing a structure of a behavior feature vector storing a temporal posterior relationship between operation functions according to an embodiment of the present invention. Hereinafter, the structure of the behavior feature vector will be described in detail with reference to FIG.

특정 컴퓨터 프로그램의 행동을 모델링 하기 위해서는, 컴퓨터 프로그램이 어떤 동작함수를 몇 번 호출하는지도 중요하지만, 호출한 동작 함수간의 선후 관계도 중요하다.In order to model the behavior of a particular computer program, it is important how many times the computer program calls the motion function, but the subsequent relationship between the called motion functions is also important.

본 발명의 일실시예에 따르면 컴퓨터 프로그램의 행동 특징을 인코딩 하여 생성된 행동 특징 벡터는 복수의 동작 함수들 중에서 임의의 두 동작 함수의 조합들에 각각 상응하는 복수의 원소를 포함하고, 상기 각각의 원소는 상기 두 동작 함수간의 시간적 선후 관계를 저장할 수 있다.According to an embodiment of the present invention, a behavior feature vector generated by encoding a behavior characteristic of a computer program includes a plurality of elements corresponding to combinations of any two of the plurality of operation functions, The element may store the temporal relationship between the two operating functions.

도 6의 (a)는 특정 컴퓨터 프로그램이 컴퓨터 시스템이 제공하는 동작 함수를 차례대로 호출하여 작업을 수행하는 과정을 도시한 도면이다.FIG. 6A is a diagram illustrating a process in which a specific computer program performs an operation by sequentially calling an operation function provided by the computer system.

컴퓨터 프로그램은 제1 동작 함수(641), 제3 동작 함수(642), 제4 동작 함수(643), 제2 동작 함수(644), 제6 동작 함수(645), 및 제5 동작 함수(646)를 순차적으로 호출하여 작업을 수행한다.The computer program has a first operating function 641, a third operating function 642, a fourth operating function 643, a second operating function 644, a sixth operating function 645 and a fifth operating function 646 ) Are sequentially called to perform the operation.

도 6의 (a)에 도시된 바와 같이 컴퓨터 프로그램이 각각의 동작 함수를 일정한 순서대로 호출하는 경우에는 시간적으로 서로 인접하여 호출되는 동작 함수 상호간의 호출 순서만을 인코딩해도 컴퓨터 프로그램의 특징을 충분히 기술할 수 있다. 그러나, 컴퓨터 프로그램의 실행되는 도중에 특정 변수의 값을 고려하여 컴퓨터 프로그램이 호출하는 동작 함수가 달라지거나, 호출하는 순서가 달라지는 경우에는 각각의 동작 함수와 다른 모든 동작 함수간의 호출 순서를 모두 인코딩해야 컴퓨터 프로그램의 행동 특징을 기술할 수 있다.6 (a), when the computer program calls the respective operation functions in a predetermined order, even if only the call order between the operation functions that are called temporally adjacent to each other is encoded, the characteristics of the computer program are sufficiently described . However, in the case where the operation function to be called by the computer program changes depending on the value of a specific variable during the execution of the computer program, or the order of calling is changed, the calling order between each operation function and all other operation functions must be encoded, Describe the behavioral characteristics of the program.

도 6의 (b)는 본 발명의 일실시예에 따라서 행동 특징 벡터(600)의 복수의 원소(612, 613, 614, 615, 616, 623, 624, 625, 626, 634, 635, 636) 중에서 두 동작 함수의 조합에 상응하는 원소에, 두 동작 함수간의 시간적 선후 관계를 저장한 것을 도시한 도면이다.6B is a diagram illustrating a plurality of elements 612, 613, 614, 615, 616, 623, 624, 625, 626, 634, 635, 636 of the behavior feature vector 600 according to an embodiment of the present invention. In which the temporal relationship between the two operation functions is stored in an element corresponding to a combination of two operation functions.

본 발명의 일실시예에 따르면 동작 특징 벡터(600)의 원소 중에서 제1 동작 함수와 제2 동작 함수의 조합에 상응하는 원소(612)는 제1 동작 함수와 제2 동작 함수간의 시간적 선후 관계를 저장할 수 있다.According to an embodiment of the present invention, among elements of the operation feature vector 600, an element 612 corresponding to a combination of a first operation function and a second operation function may have a temporal posterior relationship between a first operation function and a second operation function Can be stored.

본 발명의 일실시예에 따르면, 시간적 선후 관계를 '0'과 '1'에 대응시켜 동작 함수간의 시간적 선후 관계를 저장하는 각각의 원소는 이진화된 값을 가질 수 있다.According to an embodiment of the present invention, each element that stores temporal posterior relation between operation functions by associating temporal posterior relation with '0' and '1' may have a binarized value.

본 발명의 일실시예에 따르면, 특정 동작 함수가 다른 동작 함수보다 먼저 호출된 경우에는 상기 함수의 조합에 상응하는 원소에 '1'을 저장하고, 나중에 호출된 경우에는 '0'을 저장할 수 있다.According to an embodiment of the present invention, when a specific operation function is called before another operation function, '1' is stored in an element corresponding to the combination of the functions, and '0' .

도 6의 (a)에서 먼저 컴퓨터 프로그램은 제1 동작함수를 제2 동작 함수보다 먼저 호출 하였으므로, 제1 동작 함수와 제2 동작 함수의 조합에 상응하는 원소(612)에는 '1'이 저장될 수 있다. 제1 동작 함수가 제일 먼저 호출되므로, 제1 동작 함수와 제3 동작 함수간의 시간적 선후 관계를 저장하는 원소(613), 제1 동작 함수와 제4 동작 함수간의 시간적 선후 관계를 저장하는 원소(614), 제1 동작 함수와 제5 동작 함수간의 시간적 선후 관계를 저장하는 원소(615), 및 제1 동작 함수와 제6 동작 함수간의 시간적 선후 관계를 저장하는 원소(616)에는 모두 '1'이 저 장 될 수 있다.6A, the computer program first calls the first operation function before the second operation function, so that '1' is stored in the element 612 corresponding to the combination of the first operation function and the second operation function . Since the first operation function is called first, an element 613 for storing the temporal relation between the first operation function and the third operation function, an element 614 for storing the temporal relation between the first operation function and the fourth operation function ), An element 615 for storing the temporal relation between the first operation function and the fifth operation function, and an element 616 for storing the temporal relation between the first operation function and the sixth operation function are '1' It can be saved.

제2 동작 함수는 제3 동작 함수 및 제4 동작 함수보다는 늦게 호출되므로, 본 발명의 일실시예에 따르면 제2 동작 함수와 제3 동작 함수간의 시간적 선후 관계를 저장하는 원소(623), 제2 동작 함수와 제3 동작 함수간의 시간적 선후 관계를 저장하는 원소(624)에는 '0'이 저장될 수 있다.Since the second operation function is called later than the third operation function and the fourth operation function, according to an embodiment of the present invention, an element 623 for storing the temporal posterior relation between the second operation function and the third operation function, '0' may be stored in the element 624 storing the temporal relation between the operation function and the third operation function.

제2 동작 함수는 제5 동작 함수 및 제 6 동작 함수보다는 먼저 호출되므로, 본 발명의 일실시예에 따르면 제2 동작 함수와 제5 동작 함수간의 시간적 선후 관계를 저장하는 원소(625), 제2 동작 함수와 제6 동작 함수간의 시간적 선후 관계를 저장하는 원소(626)에는 '1'이 저장될 수 있다.Since the second operation function is called before the fifth operation function and the sixth operation function, according to an embodiment of the present invention, an element 625 for storing the temporal relation between the second operation function and the fifth operation function, '1' may be stored in the element 626 storing the temporal relation between the operation function and the sixth operation function.

본 발명의 일실시예에 따르면, 제1 동작 함수와 제2 동작 함수간의 시간적 상호관계는 그에 상응하는 원소(612)에 이미 저장되었으므로 다시 저장하지 않을 수 있다.According to one embodiment of the present invention, the temporal correlation between the first and second operating functions may not be stored again since they have already been stored in the corresponding element 612.

같은 방법으로 제3 동작 함수와 제4 동작 함수, 제5 동작 함수 및 제6 동작 함수간의 시간적 상호관계가 그에 상응하는 원소(634, 635, 636)에 저장될 수 있다.In the same way, the temporal correlation between the third operating function and the fourth operating function, the fifth operating function and the sixth operating function can be stored in corresponding elements 634, 635 and 636.

본 발명의 일실시예에 따르면, 컴퓨터 시스템이 제공하는 동작 함수가 모두 N개라면, 제1 동작 함수와 다른 동작 함수간의 시간적 선후 관계를 기술하기 위해서 모두 N-1개의 원소가 필요하다. 또 제1 동작 함수를 제외한 다른 동작 함수와 제2 동작 함수간의 시간적 선후 관계를 기술하기 위하여 모두 N-2개의 원소가 필요하다. 제1 동작 함수 및 제2 동작 함수를 제외한 다른 동작 함수와 제3 동작 함수 간의 시간적 선후 관계를 기술하기 위하여 모두 N-3개의 원소가 필요하다. 따라서 행동 특징 벡터에서 컴퓨터 시스템이 제공하는 N개의 동작 함수 상호간의 시간적 선후 관계를 모두 기술하기 위해서는 N(N-1)/2 개의 원소가 필요하다.According to an embodiment of the present invention, if all the operation functions provided by the computer system are N, N-1 elements are all required to describe the temporal relation between the first operation function and the other operation function. In addition, N-2 elements are all required to describe the temporal relationship between the other operation functions except for the first operation function and the second operation function. All N-3 elements are required to describe the temporal relationship between the other operation function and the third operation function except for the first operation function and the second operation function. Therefore, N (N-1) / 2 elements are required to describe both temporal and posterior relations between the N operational functions provided by the computer system in the behavioral feature vector.

도 7은 본 발명의 일실시예에 따라서, 행동 특징 벡터를 저장하기 위한 데이터 프레임 구조를 도시한 것이다.Figure 7 illustrates a data frame structure for storing behavioral feature vectors, in accordance with one embodiment of the present invention.

도 7에 도시한 바와 같이, 행동 특징 벡터는 빈도 저장 영역(710)과 선후 계 저장 영역(720)을 포함할 수 있다. 이하 도 7을 참조하여 행동 특징 벡터의 구조를 상세히 설명하기로 한다.As shown in FIG. 7, the behavior feature vector may include a frequency storage area 710 and a posterior system storage area 720. Hereinafter, the structure of the behavior feature vector will be described in detail with reference to FIG.

특정 컴퓨터 프로그램의 행동 특징에는 각각의 동작 함수가 호출되어 실행된 발생 빈도뿐만 아니라, 각각의 동작 함수 상호간의 시간적 선후 관계도 포함될 수 있다.The behavioral characteristics of a particular computer program may include not only the occurrence frequency at which each motion function is called and executed but also the temporal posterior relationship between the respective motion functions.

따라서 행동 특징 벡터가 특정 컴퓨터 프로그램의 행동을 정확히 기술하기 위해서는 동작함수의 발생 빈도뿐만 아니라 각각의 동작 함수 상호간의 시간적 선후 관계도 기술하여야 한다.Therefore, in order to accurately describe the behavior of a specific computer program, the behavioral feature vector should describe not only the frequency of occurrence of the motion function but also the temporal posterior relationship between the respective motion functions.

본 발명의 일실시예에 따르면, 행동 특징 벡터(700)는 컴퓨터 프로그램이 호출하는 동작 함수의 발생 빈도를 저장하는 빈도 저장 영역(710)을 포함할 수 있다.According to one embodiment of the present invention, the behavior feature vector 700 may include a frequency storage area 710 that stores the frequency of occurrence of the motion function that the computer program calls.

본 발명의 일실시예에 따르면, 행동 특징 벡터(700)는 컴퓨터 프로그램이 호출하는 동작 함수 상호간의 시간적 선후 관계를 저장하는 선후 관계 저장 영역(720)을 포함할 수 있다.According to one embodiment of the present invention, the behavior feature vector 700 may include a posterior relationship storage area 720 that stores temporal posterior relations between the operation functions that the computer program calls.

본 발명의 일실시예에 따르면, 컴퓨터 시스템이 제공하는 동작 함수의 개수가 N개인 경우에, 동작 함수의 발생 빈도를 저장하기 위하여 행동 특징 벡터에는 N개의 원소가 필요하고, 복수의 동작 함수간의 시간적 선후 관계를 모두 기술하기 위해서는 N(N-1)/2 개의 원소가 필요하다. 따라서 동작 함수의 발생 빈도와, 시간적 선후 관계를 모두 기술하기 위해서는 행동 특징 벡터는 N(N+1)/2 개의 원소가 필요하다.According to an embodiment of the present invention, when the number of operation functions provided by the computer system is N, N elements are required for the behavior feature vector to store the occurrence frequency of the operation function, N (N-1) / 2 elements are needed to describe all the posterior relations. Therefore, in order to describe both the frequency of occurrence of the action function and the temporal posterior relationship, an action feature vector requires N (N + 1) / 2 elements.

도 7에서는 빈도 저장 영역(710)이 행동 특징 벡터(700)의 처음 부분에 포함되고, 선후 관계 저장 영역(720)이 빈도 저장 영역(710)이후에 저장되는 실시예가 도시되었으나, 본 발명의 다른 실시예에 따르면 빈도 저장 영역(710)과 선후 관계 저장 영역(720)의 위치가 서로 바뀔 수 있다.Although FIG. 7 shows an embodiment in which the frequency storage area 710 is included at the beginning of the behavior feature vector 700 and the posterior relationship storage area 720 is stored after the frequency storage area 710, According to the embodiment, the positions of the frequency storage area 710 and the posterior relation storage area 720 can be changed.

또, 도 7에서는 빈도 저장 영역(710) 및 선후 관계 저장 영역(720)이 행동 특징 벡터(700)에 연속적으로 배치된 실시예가 도시되었으나, 본 발명의 다른 실시예에 따르면 빈도 저장 영역(710) 및 선후 관계 저장 영역(720)은 불연속적으로 배치될 수도 있다.7, the frequency storage area 710 and the posterior relation storage area 720 are continuously arranged in the behavior feature vector 700. However, according to another embodiment of the present invention, And the posterior relationship storage region 720 may be disposed discontinuously.

도 8은 본 발명의 일실시예에 따라서, 컴퓨터 프로그램의 행동을 모델링하는 장치의 구조를 도시한 블록도이다. 이하 도 8을 참조하여 컴퓨터 프로그램의 행동을 모델링하는 장치의 구조를 상세히 설명하기로 한다.8 is a block diagram illustrating the structure of an apparatus for modeling the behavior of a computer program, in accordance with one embodiment of the present invention. Hereinafter, the structure of an apparatus for modeling the behavior of a computer program will be described in detail with reference to FIG.

본 발명에 따른 모델링 장치(800)는 수집부(810), 추출부(820) 및 인코딩부(830)를 포함한다.The modeling apparatus 800 according to the present invention includes a collecting unit 810, an extracting unit 820, and an encoding unit 830.

수집부(810)는 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램이 상기 컴퓨터 시스템의 자원을 사용한 시스템 사용 정보를 수집한다.The collecting unit 810 collects system usage information in which a computer program executed in the computer system uses resources of the computer system.

컴퓨터 프로그램이 컴퓨터 시스템에서 실행되어 작업을 수행하기 위해서는 컴퓨터 시스템상의 메모리, 파일등의 자원에 접근해야 한다. 컴퓨터 시스템은 컴퓨터 프로그램이 컴퓨터 시스템상의 여러 자원에 접근할 수 있도록 인터페이스 함수를 제공하고, 컴퓨터 프로그램은 인터 페이스 함수를 통해 컴퓨터 시스템의 자원에 접근하여 작업을 수행한다.A computer program runs on a computer system and requires access to resources such as memory, files, etc. on the computer system to perform the task. A computer system provides an interface function for a computer program to access various resources on the computer system, and a computer program accesses and operates on resources of the computer system through an interface function.

본 발명의 일실시예에 따르면 상기 시스템 사용 정보는 상기 컴퓨터 시스템이 제공하는 인터페이스 함수를 상기 컴퓨터 프로그램이 호출한 정보일 수 있다.According to an embodiment of the present invention, the system use information may be information called by an interface function provided by the computer system.

컴퓨터 프로그램은 컴퓨터 시스템이 제공하는 이벤트에 기반하여 작업을 수행할 수 있다. 사용자로부터의 입력이나, 다른 컴퓨터 시스템으로부터의 자료 전송 등은 특별한 이벤트의 형식으로 컴퓨터 시스템으로부터 컴퓨터 프로그램으로 전송된다.The computer program can perform operations based on events provided by the computer system. Inputs from the user, data transfer from other computer systems, etc., are transferred from the computer system to the computer program in the form of special events.

각각의 컴퓨터 프로그램은 각각의 컴퓨터 프로그램과 연관된 상기 이벤트가 발행하였는지 여부를 확인하여, 상기 확인 결과에 따라서 특정 동작을 수행할 수 있다.Each of the computer programs can confirm whether or not the event associated with each computer program has issued and perform a specific operation according to the confirmation result.

본 발명의 일실시예에 따르면 상기 시스템 사용 정보는 상기 컴퓨터 프로그램과 연관된 상기 컴퓨터 시스템의 이벤트 발생 정보일 수 있다.According to an embodiment of the present invention, the system usage information may be event occurrence information of the computer system associated with the computer program.

추출부(820)는 수집부(810)가 수집한 컴퓨터 시스템 사용 정보로부터 컴퓨터 프로그램의 행동 특징을 추출한다.The extracting unit 820 extracts behavioral characteristics of the computer program from the computer system usage information collected by the collecting unit 810.

컴퓨터 프로그램의 행동을 모델링 하기 위해서, 수집부(810)에서 수집한 각 각의 시스템 사용 정보만으로는 불충분하다.In order to model the behavior of the computer program, each system usage information collected by the collection unit 810 is insufficient.

예를 들어, 컴퓨터 프로그램이 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 파일을 복사하려는 것 만으로는 컴퓨터 프로그램이 정상적인 프로그램인지 악성 프로그램인지 판단할 수 없다. 악성 프로그램도 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 컴퓨터 시스템을 조작하기 위한 프로그램을 복사할 수 있지만, 정상적인 프로그램도 컴퓨터 시스템의 성능을 향상시키기 위하여 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 파일을 복사할 수 있기 때문이다.For example, a computer program can not determine whether a computer program is a normal program or a malicious program by merely copying a file to a directory where system files of the computer system are stored. Malicious programs can also copy programs to manipulate computer systems in the directory where system files are stored, but normal programs can also copy files to the directory where the system files of computer systems are stored to improve the performance of the computer system. It is because.

그러나 특정 컴퓨터 프로그램이 컴퓨터 시스템의 외부로부터 데이터를 수신한 후에, 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 파일을 복사하고, 또 복사한 파일을 주기적으로 외부 장치에 복사하려 한다면, 상기 특정 컴퓨터 프로그램을 악성 컴퓨터 프로그램으로 의심할 수 있다.However, if a specific computer program receives data from the outside of the computer system and then copies the file to the directory where the system file of the computer system is stored and periodically copies the copied file to the external device, A computer program can be suspicious.

따라서 각각의 시스템 사용 정보가 아니라, 각각의 시스템 사용 정보 및 각각의 시스템 사용 정보간의 시간적 선후 관계가 컴퓨터 프로그램의 행동 특징으로 추출되어야 한다.Therefore, not only the system usage information but also the temporal relationship between each system usage information and each system usage information should be extracted as a behavior characteristic of the computer program.

본 발명의 일실시예에 따르면 상기 수집부(810)는 복수의 서로 다른 시각에 걸쳐 복수의 시스템 사용 정보를 수집하고, 상기 추출부(820)는 상기 수집된 복수의 시스템 사용 정보 간의 시간적 선후 관계에 기반하여 컴퓨터 프로그램에 대한 행동 특징을 추출할 수 있다.According to an embodiment of the present invention, the collecting unit 810 collects a plurality of system use information over a plurality of different time periods, and the extracting unit 820 extracts a plurality of system use information The behavioral characteristics of the computer program can be extracted.

본 발명의 일실시예에 따르면, 추출부(820)는 상기 수집한 복수의 시스템 사용 정보간의 상호 연관성에 기반하여 상기 컴퓨터 프로그램에 대한 복수의 동작 함 수를 생성할 수 있다.According to an embodiment of the present invention, the extraction unit 820 may generate a plurality of operation functions for the computer program based on the correlation between the collected plurality of system usage information.

컴퓨터 프로그램은 컴퓨터 시스템이 제공하는 인터페이스 함수를 호출하여 컴퓨터 프로그램이 의도하는 작업을 수행하지만, 각각의 인터페이스 함수를 단위로 하여 컴퓨터 프로그램의 행동 특징을 추출하는 것은 타당하지 않다.The computer program calls the interface function provided by the computer system to perform the task intended by the computer program, but it is not appropriate to extract the behavioral characteristic of the computer program by each interface function.

예를 들어, 컴퓨터 프로그램이 컴퓨터 시스템에 설치된 무선 통신 장치를 이용하여 데이터를 다른 컴퓨터 시스템으로 전송하기 위해서, 컴퓨터 프로그램은 무선 통신 장치가 설치되어 있는지, 다른 컴퓨터 프로그램에 의해서 사용되고 있지는 않은지 여부를 확인한다. 또 무선 통신 장치에 대한 접근 권한을 획득하고, 무선 통신 장치로 데이터를 전송하며, 데이터 전송이 끝난 후에는 무선 통신 장치에 대한 접근 권한을 다시 컴퓨터 시스템에 반납해야 한다.For example, in order for a computer program to transfer data to another computer system using a wireless communication device installed in the computer system, the computer program checks whether the wireless communication device is installed or not being used by another computer program . Further, the access right to the wireless communication device is acquired, the data is transmitted to the wireless communication device, and the access right to the wireless communication device is returned to the computer system after the data transmission is completed.

이러한 각각의 동작을 수행하기 위한 각각의 인터페이스 함수를 단위로 컴퓨터 프로그램의 행동 특징을 추출한다면, 그 과정이 너무 복잡하므로, 서로 연관된 시스템 사용 정보를 동작 함수로 구성하고, 동작 함수를 단위로 컴퓨터 프로그램의 행동 특징을 추출하면 추출 과정이 상대적으로 간단해 진다.If the behavior characteristics of a computer program are extracted in units of the respective interface functions for performing each of these operations, the process is so complex that the related system use information is configured as an operation function, The extraction process becomes relatively simple.

컴퓨터 프로그램의 행동 특징을 추출하기 위한 기본 단위로서의 동작 함수가, 각각의 컴퓨터 프로그램의 행동 특징을 추출할 때 마다 달라진다면 추출한 행동 특징에 따라서 악성 프로그램과 정상 프로그램을 구분하는 것이 무의미하다. 따라서 행동 특징을 추출하기 위한 기본 단위로서의 동작 함수는 각각의 컴퓨터 프로그램과는 무관하게 구성되어야 한다.If an action function as a basic unit for extracting a behavior characteristic of a computer program is changed every time a behavior characteristic of each computer program is extracted, it is meaningless to distinguish the malicious program from the normal program according to the extracted behavior characteristic. Therefore, the operation function as a basic unit for extracting behavioral features should be independent of each computer program.

컴퓨터 시스템이 제공하는 모든 인터페이스 함수 중에서 서로 연관성 있는 함수를 동작 함수로 구성하면 각각의 컴퓨터 프로그램과는 무관하게 동작 함수를 구성할 수 있다.If all of the interface functions provided by the computer system have mutually related functions as the motion functions, the motion functions can be configured independently of the respective computer programs.

본 발명의 일실시예에 따르면 추출부(820)는 수집부(810)가 수집한 복수의 시스템 사용 정보 간의 상호 연관성에 기반하여 상기 컴퓨터 프로그램에 대한 복수의 동작 함수를 생성할 수 있다.According to an embodiment of the present invention, the extracting unit 820 can generate a plurality of operation functions for the computer program based on the correlation between the plurality of system usage information collected by the collecting unit 810.

각각의 악성 프로그램은 한 생명 주기 동안에 컴퓨터 시스템이 제공하는 모든 동작 함수 중에서, 특정 동작 함수를 여러 번 호출할 수도 있고, 특정 동작 함수는 전혀 호출하지 않을 수 있다. 따라서, 특정 동작 함수를 몇 번 호출하는지 여부가 특정 컴퓨터 프로그램의 행동 특징이 될 수 있다.Each malicious program may invoke a particular action function multiple times, or not at all, of all the action functions that the computer system provides during a lifetime. Thus, how many times a particular action function is called can be a behavioral feature of a particular computer program.

본 발명의 일실시예에 따르면, 추출부(820)는 생성한 각각의 동작 함수의 발생 빈도를 상기 컴퓨터 프로그램의 행동 특징으로서 추출할 수 있다.According to an embodiment of the present invention, the extraction unit 820 may extract the occurrence frequency of each operation function generated as a behavior feature of the computer program.

본 발명의 일실시예에 따르면, 추출부(820)는 상기 복수의 동작 함수의 시간적 선후 관계를 상기 행동 특징으로 추출할 수 있다.According to an embodiment of the present invention, the extracting unit 820 may extract the temporal relation of the plurality of operation functions with the behavior feature.

인코딩부(830)는 추출부(820)가 추출한 행동 특징을 인코딩하여 행동 특징 벡터를 생성한다.The encoding unit 830 encodes a behavior feature extracted by the extracting unit 820 to generate a behavior feature vector.

추출부(820)에서 추출한 행동 특징은 컴퓨터 프로그램을 이용하여 쉽게 처리할 수 있는 형태가 아니므로, 인코딩부(830)는 추출부(820)에서 추출한 행동 특징을 컴퓨터 프로그램이 처리할 수 있는 형태로 인코딩하여 행동 특징 벡터를 생성한다.Since the behavior characteristic extracted by the extracting unit 820 is not a form that can be easily processed using a computer program, the encoding unit 830 may be configured to process the behavior characteristic extracted by the extracting unit 820 in a computer program And generates a behavior feature vector.

행동 특징 벡터는 컴퓨터 프로그램의 행동으로 컴퓨터 프로그램의 특성을 기 술한 것이므로 서로 유사한 행동을 하는 컴퓨터 프로그램의 행동 특징 벡터는 서로 유사해야 한다.Since behavioral feature vectors describe the characteristics of a computer program as a behavior of a computer program, the behavioral feature vectors of similar computer programs that behave similarly should be similar to each other.

본 발명의 일실시예에 따르면, 제1 컴퓨터 프로그램과 제2 컴퓨터 프로그램의 행동 특징이 서로 유사하다면, 수집부(810)가 수집한 제1 컴퓨터 프로그램에 상응하는 제1 시스템 사용 정보와 제2 컴퓨터 프로그램에 상응하는 제2 시스템 사용 정보는 서로 유사할 수 있다.According to an embodiment of the present invention, if the behavior characteristics of the first computer program and the second computer program are similar to each other, the first system usage information corresponding to the first computer program collected by the collection unit 810, The second system usage information corresponding to the program may be similar to each other.

본 발명의 일실시예에 따르면, 제1 시스템 사용 정보와 제2 시스템 사용 정보가 서로 유사하다면, 추출부(820)가 추출한 제1 시스템 사용 정보에 상응하는 제1 행동 특징과 제2 시스템 사용 정보에 상응하는 제2 행동 특징은 서로 유사할 수 있다.According to an embodiment of the present invention, if the first system use information and the second system use information are similar to each other, a first behavior characteristic corresponding to the first system use information extracted by the extraction unit 820, May be similar to each other.

본 발명의 일실시예에 따르면, 제1 행동 특징과 제2 행동 특징이 서로 유사하다면, 인코딩부(830)가 인코딩한 제1 행동 특징에 상응하는 제1 행동 특징 벡터와 제2 행동 특징에 상응하는 제2 행동 특징 벡터는 서로 유사할 수 있다.According to an embodiment of the present invention, if the first behavior feature and the second behavior feature are similar to each other, the first behavior feature vector corresponding to the first behavior feature encoded by the encoding unit 830 and the second behavior feature corresponding to the second behavior feature May be similar to each other.

본 발명의 일실시예에 따르면 인코딩부(830)는 제1 행동 특징 및 제2 행동 특징 간의 유사성이 제1 행동 특징에 상응하는 제1 행동 특징 벡터와 제2 행동 특징에 상응하는 제2 행동 특징 벡터 간의 거리에 반비례하도록 제1 행동 특징 벡터와 제2 행동 특징 벡터를 인코딩 할 수 있다. 서로 유사한 두 행동 특징을 인코딩한 두 행동 특징 벡터사이의 거리가 가까우므로 두 행동 특징 벡터는 서로 유사하다.According to an embodiment of the present invention, the encoding unit 830 may be configured such that the similarity between the first behavior feature and the second behavior feature corresponds to a first behavior feature vector corresponding to the first behavior feature and a second behavior feature corresponding to the second behavior feature The first behavior feature vector and the second behavior feature vector may be encoded so as to be inversely proportional to the distance between the vectors. The two behavioral feature vectors are similar because the distance between two behavioral feature vectors that encode two similar behavioral features is close.

본 발명의 일실시예에 따르면, 추출부(820)는 악성 프로그램의 한 생명 주 기(life cycle)에 대하여 각각의 동작 함수의 발생 빈도를 행동 특징으로서 추출할 수 있다.According to an embodiment of the present invention, the extracting unit 820 can extract the occurrence frequency of each operation function as a behavior feature for a life cycle of the malicious program.

생명 주기는 각각의 악성 프로그램이 특정 컴퓨터 시스템을 감염시키고, 사용자의 데이터 또는 시스템 데이터를 파괴하는 등 악성 프로그램의 증상을 나타내고, 다시 다른 컴퓨터 시스템을 감염시키는 시간으로 정의될 수 있다.The lifecycle can be defined as the time at which each malicious program infects a particular computer system, represents the symptoms of a malicious program, such as destroying user data or system data, and again infects other computer systems.

각각의 악성 프로그램은 한 생명 주기 동안에 컴퓨터 시스템이 제공하는 모든 동작 함수 중에서, 특정 동작 함수를 여러 번 호출할 수도 있고, 특정 동작 함수는 전혀 호출하지 않을 수 있다. 따라서, 특정 컴퓨터 프로그램이 한 생명 주기 동안에 특정 동작 함수를 몇 번 호출하는지 여부가 특정 컴퓨터 프로그램의 행동 특징이 될 수 있다.Each malicious program may invoke a particular action function multiple times, or not at all, of all the action functions that the computer system provides during a lifetime. Thus, how many times a particular computer program calls a particular motion function during a life cycle can be a behavioral feature of a particular computer program.

본 발명의 일실시예에 따르면 인코딩부(830)는 상기 복수의 동작 함수에 각각 상응하는 복수의 원소를 행동 특징 벡터에 포함시키고, 각각의 원소는 동작 함수의 발생 빈도를 저장할 수 있다.According to an embodiment of the present invention, the encoding unit 830 may include a plurality of elements corresponding to the plurality of operation functions in the behavior feature vector, and each element may store the occurrence frequency of the operation function.

본 발명의 일실시예에 따르면, 컴퓨터 시스템의 N개의 동작 함수를 제공하는 경우에, 추출부(820)는 각각의 동작 함수의 발생 빈도를 저장하는 N개의 원소를 행동 특징 벡터에 포함시킬 수 있다.According to one embodiment of the present invention, in the case of providing N operation functions of a computer system, the extracting unit 820 may include N elements in the behavior feature vector storing the occurrence frequency of each operation function .

본 발명의 일실시예에 따르면 인코딩부(830)는 상기 복수의 동작 함수들 중에서 임의의 두 동작 함수의 조합들에 각각 상응하는 복수의 원소를 행동 특징 벡터에 포함시키고, 각각의 원소는 두 동작 함수간의 시간적 선후 관계를 저장할 수 있다.According to one embodiment of the present invention, the encoding unit 830 includes a plurality of elements corresponding to combinations of any two of the plurality of operation functions in the behavior feature vector, and each element includes two operations The temporal relationship between functions can be stored.

본 발명의 일실시예에 따르면, 인코딩부(830)는 상기 두 동작 함수간의 시간적 선후 관계를 각각 '0'과 '1'에 대응시켜 선후 관계를 저장하는 각각의 원소가 이진화된 값을 가지도록 할 수 있다.According to an embodiment of the present invention, the encoding unit 830 associates temporal posterior relations between the two operation functions with '0' and '1', respectively, so that each element storing the posterior relation has a binarized value can do.

본 발명의 일실시예에 따르면 인코딩부(830)는 컴퓨터 시스템이 제공하는 모든 동작 함수를 소정의 기준에 따라서 정렬할 수 있다. 컴퓨터 시스템이 N개의 동작 함수를 제공한다고 가정하면, 각각의 동작 함수에는 '1'부터 'N'까지의 식별자를 부여할 수 있다.According to an embodiment of the present invention, the encoding unit 830 may sort all the operation functions provided by the computer system according to a predetermined criterion. Assuming that the computer system provides N operation functions, an identifier from 1 to N can be assigned to each operation function.

본 발명의 일실시예에 따르면, 컴퓨터 시스템이 제공하는 동작 함수가 모두 N개인 경우에, 인코딩부(830)는 제1 동작 함수와 다른 N-1개의 동작 함수간의 시간적 선후관계를 저장하는 N-1개의 원소를 행동 특징 벡터에 포함시킬 수 있다. 인코딩부(830)는 제1 동작 함수를 제외한 다른 N-2개의 동작 함수와 제2 동작 함수간의 시간적 선후 관계를 저장하는 N-2개의 원소를 행동 특징 벡터에 포함시킬 수 있다. 컴퓨터 시스템이 모두 N개의 동작 함수를 제공하는 경우에는, 각각의 동작 함수간의 모든 시간적 선후관계를 기술하기 위하여 인코딩부(830)는 N(N-1)/2 개의 원소를 행동 특징 벡터에 포함시킬 수 있다.According to an embodiment of the present invention, when all of the operation functions provided by the computer system are N, the encoding unit 830 encodes N-1, N-1, One element may be included in the behavior feature vector. The encoding unit 830 may include N-2 elements in the behavioral feature vector storing the temporal relationship between the N-2 operation functions and the second operation function except for the first operation function. If the computer system provides all of the N operation functions, the encoding unit 830 may include N (N-1) / 2 elements in the behavior feature vector to describe all the temporal posterior relationships between the respective operation functions .

본 발명의 실시예에 따른 모델링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. The modeling method according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium.

또한, 본 발명의 실시예에 따른 방송 이력 정보를 전송하기 위한 데이터 프레임은 다양한 컴퓨터 수단을 통하여 판독될 수 있는 기록 매체에 기록될 수 있다.In addition, a data frame for transmitting broadcast history information according to an embodiment of the present invention can be recorded on a recording medium readable by various computer means.

상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 본 발명에서 설명된 단말기 또는 기지국의 동작의 전부 또는 일부가 컴퓨터 프로그램으로 구현된 경우, 상기 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체도 본 발명에 포함된다.The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions may be those specially designed and constructed for the present invention or may be available to those skilled in the art. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. When all or a part of the operations of the terminal or the base station described in the present invention are implemented by a computer program, the computer readable recording medium storing the computer program is also included in the present invention.

도 1은 본 발명에 따른 컴퓨터 프로그램의 행동 특징 벡터를 이용하여 악성 프로그램을 검사하는 방법을 단계별로 도시한 순서도이다.FIG. 1 is a flowchart showing a stepwise method of inspecting a malicious program using a behavioral feature vector of a computer program according to the present invention.

도 2는 본 발명에 다른 컴퓨터 프로그램의 행동 모델링 방법을 단계별로 도시한 순서도이다.FIG. 2 is a flowchart showing steps of a behavior modeling method of a computer program according to the present invention.

도 3은 악성 프로그램 중의 하나인 코드 워리어 웜 바이러스의 공격 대상인 심비안 운영체제의 파일 시스템 구조를 도시한 도면이다.3 is a diagram showing a file system structure of a Symbian operating system that is an attack target of a code warrior worm virus, which is one of malicious programs.

도 4는 본 발명의 일실시예에 따라서 추출한, 악성 프로그램 중의 하나인 코드 워리어 웜 바이러스의 행동 특징을 도시한 도면이다.4 is a diagram showing behavioral characteristics of a code warrior worm virus, which is one of malicious programs extracted according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따라서, 동작 함수의 발생 빈도를 저장한 행동 특징 벡터의 구조를 도시한 도면이다.FIG. 5 is a diagram illustrating a structure of a behavior feature vector storing an occurrence frequency of an operation function according to an embodiment of the present invention.

도 6은 본 발명의 일실시예에 따라서, 동작 함수 상호간의 시간적 선후 관계를 저장한 행동 특징 벡터의 구조를 도시한 도면이다.6 is a diagram showing a structure of a behavior feature vector storing a temporal posterior relationship between operation functions according to an embodiment of the present invention.

도 7은 본 발명의 일실시예에 따라서, 빈도 저장부와 선후 관계 저장부를 모두 구비한 행동 특징 벡터의 구조를 도시한 도면이다.7 is a diagram illustrating a structure of a behavior feature vector including both a frequency storage unit and a posterior relation storage unit according to an embodiment of the present invention.

도 8은 본 발명의 일실시예에 따라서, 컴퓨터 프로그램의 행동을 모델링하는 장치의 구조를 도시한 블록도이다.8 is a block diagram illustrating the structure of an apparatus for modeling the behavior of a computer program, in accordance with one embodiment of the present invention.

Claims (22)

컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 방법에 있어서,CLAIMS 1. A method of modeling a behavior of a computer program running on a computer system, 상기 컴퓨터 프로그램이 상기 컴퓨터 시스템의 자원(resource)을 사용하는 시스템 사용 정보를 수집하는 단계;The computer program comprising: collecting system usage information using resources of the computer system; 상기 수집된 시스템 사용 정보로부터 상기 컴퓨터 프로그램의 제1 행동 특징및 제2 행동 특징을 추출하는 단계; 및Extracting a first behavioral feature and a second behavioral feature of the computer program from the collected system usage information; And 상기 제1 행동 특징 및 제2 행동 특징을 인코딩하여 제1 행동 특징 벡터 및 제2 행동 특징 벡터를 생성하는 단계Generating a first behavior feature vector and a second behavior feature vector by encoding the first behavior feature and the second behavior feature 를 포함하고,Lt; / RTI > 상기 인코딩은 상기 제1 행동 특징 및 상기 제2 행동 특징 간의 유사성이 상기 제1 행동 특징에 상응하는 상기 제1 행동 특징 벡터와 상기 제2 행동 특징에 상응하는 상기 제2 행동 특징 벡터 간의 거리에 반비례하도록 상기 제1 행동 특징 벡터와 상기 제2 행동 특징 벡터를 인코딩하는 것이고,Wherein the encoding is such that the similarity between the first behavior feature and the second behavior feature is inversely proportional to the distance between the first behavior feature vector corresponding to the first behavior feature and the second behavior feature vector corresponding to the second behavior feature To encode the first behavior feature vector and the second behavior feature vector, 상기 컴퓨터 프로그램의 상기 제1 행동 특징은 악성 프로그램과 정상 프로그램을 구분할 수 있도록 악성 프로그램을 검사하는 프로그램을 훈련시키기 위해 이용되는 데이터인 것을 특징으로 하는 모델링 방법.Wherein the first behavioral characteristic of the computer program is data used for training a program for inspecting a malicious program so as to distinguish the malicious program from the normal program. 제1항에 있어서, 상기 시스템 사용 정보는,The system according to claim 1, 상기 컴퓨터 시스템이 제공하는 인터페이스 함수를 상기 컴퓨터 프로그램이 호출한 정보인 것을 특징으로 하는 모델링 방법.Wherein the interface function provided by the computer system is information called by the computer program. 제1항에 있어서, 상기 시스템 사용 정보는,The system according to claim 1, 상기 컴퓨터 프로그램과 연관된 상기 컴퓨터 시스템의 이벤트 발생 정보인 것을 특징으로 하는 모델링 방법.And event generation information of the computer system associated with the computer program. 제1항에 있어서, The method according to claim 1, 상기 시스템 사용 정보를 수집하는 단계는 복수의 서로 다른 시각에 걸쳐 복수의 시스템 사용 정보를 수집하고,Wherein collecting the system usage information comprises collecting a plurality of system usage information over a plurality of different times, 상기 행동 특징을 추출하는 단계는 상기 수집된 복수의 시스템 사용 정보 간의 상호 연관성에 기반하여 상기 컴퓨터 프로그램에 대한 복수의 동작 함수를 생성하는 것Wherein the act of extracting the behavior feature comprises generating a plurality of action functions for the computer program based on the correlation between the collected plurality of system usage information 을 특징으로 하는 모델링 방법.The modeling method comprising the steps of: 제4항에 있어서, 5. The method of claim 4, 상기 행동 특징을 추출하는 단계는 상기 각각의 동작 함수의 발생 빈도를 상기 행동 특징으로 추출하는 것The step of extracting the behavior feature may include extracting the occurrence frequency of each operation function with the behavior feature 을 특징으로 하는 모델링 방법A modeling method characterized by 제4항에 있어서,5. The method of claim 4, 상기 행동 특징을 추출하는 단계는 상기 복수의 동작 함수의 시간적 선후 관계를 상기 행동 특징으로 추출하는 것Wherein the extracting of the behavior feature comprises extracting a temporal posterior relationship of the plurality of operation functions with the behavior feature 을 특징으로 하는 모델링 방법.The modeling method comprising the steps of: 제4항에 있어서,5. The method of claim 4, 상기 행동 특징 벡터는 상기 복수의 동작 함수에 각각 상응하는 복수의 원소를 포함하고, 상기 각각의 원소는 상기 동작 함수의 발생 빈도를 저장하는 것을 특 징으로 하는 모델링 방법.Wherein the behavior feature vector includes a plurality of elements each corresponding to the plurality of operation functions, and each element stores the occurrence frequency of the operation function. 제4항에 있어서,5. The method of claim 4, 상기 행동 특징 벡터는 상기 복수의 동작 함수들 중에서 임의의 두 동작 함수의 조합들에 각각 상응하는 복수의 원소를 포함하고, 상기 각각의 원소는 상기 두 동작 함수간의 시간적 선후 관계를 저장하는 것을 특징으로 하는 모델링 방법.Wherein the behavior feature vector includes a plurality of elements each corresponding to a combination of any two of the plurality of operation functions and each element stores a temporal posterior relationship between the two operation functions Modeling method. 제8항에 있어서,9. The method of claim 8, 상기 각각의 원소는 이진화된 값을 가지는 것을 특징으로 하는 모델링 방법.Wherein each of the elements has a binarized value. 삭제delete 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 장치에 있어서,1. An apparatus for modeling behavior of a computer program running on a computer system, 상기 컴퓨터 프로그램이 상기 컴퓨터 시스템의 자원(resource)을 사용한 시스템 사용 정보를 수집하는 수집부;A collection unit for collecting system usage information using resources of the computer system; 상기 수집된 시스템 사용 정보로부터 상기 컴퓨터 프로그램의 제1 행동 특징 및 제2 행동 특징을 추출하는 추출부; 및An extracting unit for extracting a first behavioral feature and a second behavioral feature of the computer program from the collected system use information; And 상기 제1 행동 특징 및 상기 제2 행동 특징을 인코딩하여 제1 행동 특징 벡터 및 제2 행동 특징 벡터를 생성하는 인코딩부An encoding unit for encoding the first behavior feature and the second behavior feature to generate a first behavior feature vector and a second behavior feature vector, 를 포함하고,Lt; / RTI > 상기 인코딩은 상기 제1 행동 특징 및 상기 제2 행동 특징 간의 유사성이 상기 제1 행동 특징에 상응하는 상기 제1 행동 특징 벡터와 상기 제2 행동 특징에 상응하는 상기 제2 행동 특징 벡터 간의 거리에 반비례하도록 상기 제1 행동 특징 벡터와 상기 제2 행동 특징 벡터를 인코딩하는 것이고,Wherein the encoding is such that the similarity between the first behavior feature and the second behavior feature is inversely proportional to the distance between the first behavior feature vector corresponding to the first behavior feature and the second behavior feature vector corresponding to the second behavior feature To encode the first behavior feature vector and the second behavior feature vector, 상기 컴퓨터 프로그램의 상기 제1 행동 특징은 악성 프로그램과 정상 프로그램을 구분할 수 있도록 악성 프로그램을 검사하는 프로그램을 훈련시키기 위해 이용되는 데이터인 것을 특징으로 하는 모델링 장치.Wherein the first behavioral characteristic of the computer program is data used for training a program for inspecting a malicious program so as to distinguish the malicious program from the normal program. 제11항에 있어서, 상기 시스템 사용 정보는,The system according to claim 11, 상기 컴퓨터 시스템이 제공하는 인터페이스 함수를 상기 컴퓨터 프로그램이 호출한 정보인 것을 특징으로 하는 모델링 장치.And the interface function provided by the computer system is information called by the computer program. 제11항에 있어서, 상기 시스템 사용 정보는,The system according to claim 11, 상기 컴퓨터 프로그램과 연관된 상기 컴퓨터 시스템의 이벤트 발생 정보인 것을 특징으로 하는 모델링 장치.And event generation information of the computer system associated with the computer program. 제11항에 있어서, 12. The method of claim 11, 상기 수집부는 복수의 서로 다른 시각에 걸쳐 복수의 시스템 사용 정보를 수집하고,Wherein the collecting unit collects a plurality of system use information over a plurality of different time periods, 상기 추출부는 상기 수집된 복수의 시스템 사용 정보 간의 상호 연관성에 기반하여 상기 컴퓨터 프로그램에 대한 복수의 동작 함수를 생성하는 것Wherein the extractor is operable to generate a plurality of operating functions for the computer program based on the correlation between the collected plurality of system usage information 을 특징으로 하는 모델링 장치.The modeling device comprising: 제14항에 있어서,15. The method of claim 14, 상기 추출부는 상기 각각의 동작 함수의 발생 빈도를 상기 행동 특징으로 추출하는 것을 특징으로 하는 모델링 장치.Wherein the extracting unit extracts the occurrence frequency of each of the operation functions with the behavior feature. 제14항에 있어서,15. The method of claim 14, 상기 추출부는 상기 복수의 동작 함수의 시간적 선후 관계를 상기 행동 특징으로 추출하는 것을 특징으로 하는 모델링 장치.Wherein the extracting unit extracts a temporal posterior relationship of the plurality of operation functions with the behavior feature. 제14항에 있어서,15. The method of claim 14, 상기 행동 특징 벡터는 상기 복수의 동작 함수에 각각 상응하는 복수의 원소를 포함하고, 상기 각각의 원소는 상기 동작 함수의 발생 빈도를 저장하는 것을 특징으로 하는 모델링 장치.Wherein the behavior feature vector includes a plurality of elements each corresponding to the plurality of operation functions, and each of the elements stores the occurrence frequency of the operation function. 제14항에 있어서,15. The method of claim 14, 상기 행동 특징 벡터는 상기 복수의 동작 함수들 중에서 임의의 두 동작 함수의 조합들에 각각 상응하는 복수의 원소를 포함하고, 상기 각각의 원소는 상기 두 동작 함수간의 시간적 선후 관계를 저장하는 것을 특징으로 하는 모델링 장치.Wherein the behavior feature vector includes a plurality of elements each corresponding to a combination of any two of the plurality of operation functions and each element stores a temporal posterior relationship between the two operation functions Modeling device. 제18항에 있어서,19. The method of claim 18, 상기 각각의 원소는 이진화된 값을 가지는 것을 특징으로 하는 모델링 장치.Wherein each of the elements has a binarized value. 삭제delete 제1항 내지 제9항 중 어느 하나의 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method according to any one of claims 1 to 9. 삭제delete
KR1020070091117A 2007-07-10 2007-09-07 Method and apparatus for modeling computer program behavior for behavioral detection of malicious program KR101421136B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/106,144 US8713680B2 (en) 2007-07-10 2008-04-18 Method and apparatus for modeling computer program behaviour for behavioural detection of malicious program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US94877807P 2007-07-10 2007-07-10
US60/948,778 2007-07-10

Publications (2)

Publication Number Publication Date
KR20090005933A KR20090005933A (en) 2009-01-14
KR101421136B1 true KR101421136B1 (en) 2014-07-21

Family

ID=40487440

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020070091117A KR101421136B1 (en) 2007-07-10 2007-09-07 Method and apparatus for modeling computer program behavior for behavioral detection of malicious program
KR1020070099977A KR101329141B1 (en) 2007-07-10 2007-10-04 Apparatus and method for detection of malicious program using program behavior

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020070099977A KR101329141B1 (en) 2007-07-10 2007-10-04 Apparatus and method for detection of malicious program using program behavior

Country Status (1)

Country Link
KR (2) KR101421136B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052447A (en) 2017-11-08 2019-05-16 한국전력공사 Apparatus and method for detecting software procedure change operation based on pattern using control flow graph

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160099160A (en) 2015-02-11 2016-08-22 한국전자통신연구원 Method of modelling behavior pattern of instruction set in n-gram manner, computing device operating with the method, and program stored in storage medium configured to execute the method in computing device
KR102045772B1 (en) * 2015-02-11 2019-11-19 한국전자통신연구원 Electronic system and method for detecting malicious code
KR101858620B1 (en) * 2017-01-10 2018-05-17 고려대학교 산학협력단 Device and method for analyzing javascript using machine learning
KR102472850B1 (en) * 2021-01-07 2022-12-01 국민대학교산학협력단 Malware detection device and method based on hybrid artificial intelligence
KR20220155771A (en) 2021-05-17 2022-11-24 코드마이즈 주식회사 Managing method of disarmed contents for security improving and apparatus for thereof
KR20220158975A (en) 2021-05-25 2022-12-02 코드마이즈 주식회사 effective detoxification method of file-inserted malicious code using media player and device therefor
KR102513460B1 (en) 2021-07-30 2023-03-24 소프트캠프 주식회사 Method and system for transmitting safty file by remote browser

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060156404A1 (en) * 2002-07-30 2006-07-13 Day Christopher W Intrusion detection system
US7093239B1 (en) * 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
KR100733387B1 (en) * 2006-12-20 2007-06-29 주식회사 이세정보 A system for detecting harmful programs based on monitoring abnormal behaviors and the detection method used therefor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070095718A (en) * 2006-03-22 2007-10-01 한국전자통신연구원 System and method for detecting internet worm traffic by clustering traffic characterization classified by type

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093239B1 (en) * 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
US20060156404A1 (en) * 2002-07-30 2006-07-13 Day Christopher W Intrusion detection system
KR100733387B1 (en) * 2006-12-20 2007-06-29 주식회사 이세정보 A system for detecting harmful programs based on monitoring abnormal behaviors and the detection method used therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052447A (en) 2017-11-08 2019-05-16 한국전력공사 Apparatus and method for detecting software procedure change operation based on pattern using control flow graph

Also Published As

Publication number Publication date
KR20090005933A (en) 2009-01-14
KR20090005934A (en) 2009-01-14
KR101329141B1 (en) 2013-11-21

Similar Documents

Publication Publication Date Title
US8713680B2 (en) Method and apparatus for modeling computer program behaviour for behavioural detection of malicious program
KR101421136B1 (en) Method and apparatus for modeling computer program behavior for behavioral detection of malicious program
JP6228966B2 (en) Computing device that detects malware
US10505960B2 (en) Malware detection by exploiting malware re-composition variations using feature evolutions and confusions
US20130122861A1 (en) System and method for verifying apps for smart phone
Gianazza et al. Puppetdroid: A user-centric ui exerciser for automatic dynamic analysis of similar android applications
US20120131675A1 (en) Server, user device and malware detection method thereof
US10839074B2 (en) System and method of adapting patterns of dangerous behavior of programs to the computer systems of users
CN108694320B (en) Method and system for measuring sensitive application dynamic under multiple security environments
CN108280346B (en) Application protection monitoring method, device and system
US8448248B2 (en) Apparatus and method for repairing computer system infected by malware
CN103366116A (en) Predicting system, method and device for potential threats of application program of mobile terminal
US11003772B2 (en) System and method for adapting patterns of malicious program behavior from groups of computer systems
JP2006146600A (en) Operation monitoring server, terminal apparatus and operation monitoring system
CN116450533B (en) Security detection method and device for application program, electronic equipment and medium
CN105468531A (en) Vulnerability mining method and device and electronic equipment
CN103139169A (en) Virus detection system and method based on network behavior
JP2010134536A (en) Pattern file update system, pattern file update method, and pattern file update program
CN110611675A (en) Vector magnitude detection rule generation method and device, electronic equipment and storage medium
CN116595523A (en) Multi-engine file detection method, system, equipment and medium based on dynamic arrangement
KR101427357B1 (en) Apparatus and method for curing computer system infected by malware
US11763004B1 (en) System and method for bootkit detection
Babu Rajesh et al. Androinspector: A System for comprehensive analysis of android applications
CN111027062A (en) Assessment method and device for application collapse state of target range
JP2019220132A (en) System and method of adapting patterns of dangerous behavior of programs to computer systems of users

Legal Events

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

Payment date: 20170619

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180620

Year of fee payment: 5