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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security 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
본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 모델링하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 컴퓨터 프로그램이 악성 프로그램인지 여부를 컴퓨터 프로그램의 행동을 통하여 판단할 수 있도록, 컴퓨터 프로그램의 행동을 모델링하는 방법 및 장치에 관한 것이다.BACKGROUND OF THE
종래의 악성 프로그램 감시 기술에 따르면, 기존에 발생한 악성 프로그램의 샘플을 수집하여 악성 프로그램의 특징이 되는 일정한 문자열을 추출하고, 상기 문자열이 특정 컴퓨터의 파일 등에 존재하는지 여부를 이용하여 악성 프로그램에 감염 되었는지 여부를 판단하였다.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]
N은 두 행동 특징 벡터 x, y의 길이이고, 는 행동 특징 벡터 x의 i번째 원소, 는 행동 특징 벡터 y의 i번째 원소를 나타낸다.N is the length of the two behavior feature vectors x, y, Is the i-th element of the behavior feature vector x, Represents the i-th element of the behavior feature vector y.
만약 행동 특징 벡터 x가 이고, 행동 특징 벡터 y가 이라면, 두 행동 특징 벡터 x, y사이의 유클리디안 거리 z는 가 된다.If the behavioral feature vector x is , And the behavior feature vector y is , Then the Euclidean distance z between the two behavior feature vectors x, y is .
만약 두 행동 특징 벡터간의 거리가 작도록 인코딩 되려면, 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
어플리케이션 디렉토리(320)는 시스템 디렉토리(310)의 하위 디렉토리로서 심비안 운영체제에서 실행되는 각종 응용 프로그램이 설치된다. 심비안 운영체제가 설치된 장치를 공격하는 악성 프로그램은 어플리케이션 디렉토리(320)에 프로그램 파일을 저장하고 사용자의 데이터를 파괴하거나, 시스템 파일을 공격할 수 있다.The
자동 실행 디렉토리(330)는 시스템 디렉토리(310)의 하위 디렉토리로서 심비안 운영체제가 설치된 장치가 재시작(reboot)될 때마다 자동적으로 실행되는 파일들이 저장된다.The
라이브러리 디렉토리(340)는 각각의 응용프로그램이 작업을 수행하기 위하여 필요한 인터페이스 함수가 라이브러리 파일의 형태로 저장된다.The
설치 디렉토리(350)는 심비안 운영체제에 추가적으로 설치되는 파일들이 저장되는 디렉토리이다. 설치 디렉토리(350)에 저장된 설치 파일에서 추출된 실행 파일은 어플리케이션 디렉토리(320)에 저장된다The
사용자가 특정 응용프로그램을 설치하기 위하여 응용프로그램의 설치 파일 을 설치 디렉토리(350)에 저장하는 경우도 있고, 악성 프로그램이 자신을 복제하기 위하여 설치 디렉토리(350)에 설치 파일을 저장하는 경우도 있다. 따라서 설치 디렉토리에 특정 파일을 복사하는 것 만으로는 컴퓨터 프로그램이 악성 프로그램인지, 정상 프로그램인지 여부를 판단하기에 부족하다.The user may store the installation file of the application program in the
또, 컴퓨터 프로그램이 설치 디렉토리(350)에 저장된 파일을 다른 컴퓨터 시스템으로 전송하려는 경우에도, 전송을 시도 하려는 것 만으로는 컴퓨터 프로그램이 악성 프로그램인지, 정상 프로그램인지 여부를 판단하기에 부족하다.Even if a computer program attempts to transfer a file stored in the
그러나 만약 컴퓨터 프로그램이 컴퓨터 시스템의 외부에서 수신한 설치 파일을 설치 디렉토리(350)에 복사하고, 복사한 파일을 다른 컴퓨터 시스템으로 전송하려고 시도한다면 컴퓨터 프로그램을 악성 프로그램으로 판단할 수 있다.However, if a computer program copies an installation file received from outside the computer system to the
도 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
도 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
도 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
본 발명의 일실시예에 따르면 동작 특징 벡터(600)의 원소 중에서 제1 동작 함수와 제2 동작 함수의 조합에 상응하는 원소(612)는 제1 동작 함수와 제2 동작 함수간의 시간적 선후 관계를 저장할 수 있다.According to an embodiment of the present invention, among elements of the
본 발명의 일실시예에 따르면, 시간적 선후 관계를 '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
제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
제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
본 발명의 일실시예에 따르면, 제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
같은 방법으로 제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
본 발명의 일실시예에 따르면, 컴퓨터 시스템이 제공하는 동작 함수가 모두 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
특정 컴퓨터 프로그램의 행동 특징에는 각각의 동작 함수가 호출되어 실행된 발생 빈도뿐만 아니라, 각각의 동작 함수 상호간의 시간적 선후 관계도 포함될 수 있다.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
본 발명의 일실시예에 따르면, 행동 특징 벡터(700)는 컴퓨터 프로그램이 호출하는 동작 함수 상호간의 시간적 선후 관계를 저장하는 선후 관계 저장 영역(720)을 포함할 수 있다.According to one embodiment of the present invention, the
본 발명의 일실시예에 따르면, 컴퓨터 시스템이 제공하는 동작 함수의 개수가 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
또, 도 7에서는 빈도 저장 영역(710) 및 선후 관계 저장 영역(720)이 행동 특징 벡터(700)에 연속적으로 배치된 실시예가 도시되었으나, 본 발명의 다른 실시예에 따르면 빈도 저장 영역(710) 및 선후 관계 저장 영역(720)은 불연속적으로 배치될 수도 있다.7, the
도 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
수집부(810)는 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램이 상기 컴퓨터 시스템의 자원을 사용한 시스템 사용 정보를 수집한다.The collecting
컴퓨터 프로그램이 컴퓨터 시스템에서 실행되어 작업을 수행하기 위해서는 컴퓨터 시스템상의 메모리, 파일등의 자원에 접근해야 한다. 컴퓨터 시스템은 컴퓨터 프로그램이 컴퓨터 시스템상의 여러 자원에 접근할 수 있도록 인터페이스 함수를 제공하고, 컴퓨터 프로그램은 인터 페이스 함수를 통해 컴퓨터 시스템의 자원에 접근하여 작업을 수행한다.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
컴퓨터 프로그램의 행동을 모델링 하기 위해서, 수집부(810)에서 수집한 각 각의 시스템 사용 정보만으로는 불충분하다.In order to model the behavior of the computer program, each system usage information collected by the
예를 들어, 컴퓨터 프로그램이 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 파일을 복사하려는 것 만으로는 컴퓨터 프로그램이 정상적인 프로그램인지 악성 프로그램인지 판단할 수 없다. 악성 프로그램도 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 컴퓨터 시스템을 조작하기 위한 프로그램을 복사할 수 있지만, 정상적인 프로그램도 컴퓨터 시스템의 성능을 향상시키기 위하여 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 파일을 복사할 수 있기 때문이다.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
본 발명의 일실시예에 따르면, 추출부(820)는 상기 수집한 복수의 시스템 사용 정보간의 상호 연관성에 기반하여 상기 컴퓨터 프로그램에 대한 복수의 동작 함 수를 생성할 수 있다.According to an embodiment of the present invention, the
컴퓨터 프로그램은 컴퓨터 시스템이 제공하는 인터페이스 함수를 호출하여 컴퓨터 프로그램이 의도하는 작업을 수행하지만, 각각의 인터페이스 함수를 단위로 하여 컴퓨터 프로그램의 행동 특징을 추출하는 것은 타당하지 않다.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
각각의 악성 프로그램은 한 생명 주기 동안에 컴퓨터 시스템이 제공하는 모든 동작 함수 중에서, 특정 동작 함수를 여러 번 호출할 수도 있고, 특정 동작 함수는 전혀 호출하지 않을 수 있다. 따라서, 특정 동작 함수를 몇 번 호출하는지 여부가 특정 컴퓨터 프로그램의 행동 특징이 될 수 있다.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
본 발명의 일실시예에 따르면, 추출부(820)는 상기 복수의 동작 함수의 시간적 선후 관계를 상기 행동 특징으로 추출할 수 있다.According to an embodiment of the present invention, the extracting
인코딩부(830)는 추출부(820)가 추출한 행동 특징을 인코딩하여 행동 특징 벡터를 생성한다.The
추출부(820)에서 추출한 행동 특징은 컴퓨터 프로그램을 이용하여 쉽게 처리할 수 있는 형태가 아니므로, 인코딩부(830)는 추출부(820)에서 추출한 행동 특징을 컴퓨터 프로그램이 처리할 수 있는 형태로 인코딩하여 행동 특징 벡터를 생성한다.Since the behavior characteristic extracted by the extracting
행동 특징 벡터는 컴퓨터 프로그램의 행동으로 컴퓨터 프로그램의 특성을 기 술한 것이므로 서로 유사한 행동을 하는 컴퓨터 프로그램의 행동 특징 벡터는 서로 유사해야 한다.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
본 발명의 일실시예에 따르면, 제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
본 발명의 일실시예에 따르면, 제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
본 발명의 일실시예에 따르면 인코딩부(830)는 제1 행동 특징 및 제2 행동 특징 간의 유사성이 제1 행동 특징에 상응하는 제1 행동 특징 벡터와 제2 행동 특징에 상응하는 제2 행동 특징 벡터 간의 거리에 반비례하도록 제1 행동 특징 벡터와 제2 행동 특징 벡터를 인코딩 할 수 있다. 서로 유사한 두 행동 특징을 인코딩한 두 행동 특징 벡터사이의 거리가 가까우므로 두 행동 특징 벡터는 서로 유사하다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 추출부(820)는 악성 프로그램의 한 생명 주 기(life cycle)에 대하여 각각의 동작 함수의 발생 빈도를 행동 특징으로서 추출할 수 있다.According to an embodiment of the present invention, the extracting
생명 주기는 각각의 악성 프로그램이 특정 컴퓨터 시스템을 감염시키고, 사용자의 데이터 또는 시스템 데이터를 파괴하는 등 악성 프로그램의 증상을 나타내고, 다시 다른 컴퓨터 시스템을 감염시키는 시간으로 정의될 수 있다.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
본 발명의 일실시예에 따르면, 컴퓨터 시스템의 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
본 발명의 일실시예에 따르면 인코딩부(830)는 상기 복수의 동작 함수들 중에서 임의의 두 동작 함수의 조합들에 각각 상응하는 복수의 원소를 행동 특징 벡터에 포함시키고, 각각의 원소는 두 동작 함수간의 시간적 선후 관계를 저장할 수 있다.According to one embodiment of the present invention, the
본 발명의 일실시예에 따르면, 인코딩부(830)는 상기 두 동작 함수간의 시간적 선후 관계를 각각 '0'과 '1'에 대응시켜 선후 관계를 저장하는 각각의 원소가 이진화된 값을 가지도록 할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면 인코딩부(830)는 컴퓨터 시스템이 제공하는 모든 동작 함수를 소정의 기준에 따라서 정렬할 수 있다. 컴퓨터 시스템이 N개의 동작 함수를 제공한다고 가정하면, 각각의 동작 함수에는 '1'부터 'N'까지의 식별자를 부여할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 컴퓨터 시스템이 제공하는 동작 함수가 모두 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
본 발명의 실시예에 따른 모델링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 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)
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)
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)
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)
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)
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 |
-
2007
- 2007-09-07 KR KR1020070091117A patent/KR101421136B1/en active IP Right Grant
- 2007-10-04 KR KR1020070099977A patent/KR101329141B1/en active IP Right Grant
Patent Citations (3)
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)
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 |