KR20090005934A - Apparatus and method for detection of malicious program using program behavior - Google Patents
Apparatus and method for detection of malicious program using program behavior Download PDFInfo
- Publication number
- KR20090005934A KR20090005934A KR1020070099977A KR20070099977A KR20090005934A KR 20090005934 A KR20090005934 A KR 20090005934A KR 1020070099977 A KR1020070099977 A KR 1020070099977A KR 20070099977 A KR20070099977 A KR 20070099977A KR 20090005934 A KR20090005934 A KR 20090005934A
- Authority
- KR
- South Korea
- Prior art keywords
- malicious
- program
- feature vector
- vector
- behavioral feature
- 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
Abstract
Description
본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램이 악성 프로그램인지 여부를 진단하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 컴퓨터 프로그램의 행동을 이용하여 컴퓨터 프로그램이 악성 프로그램인지 여부를 진단하는 장치 및 방법과, 상기 장치를 생성하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for diagnosing whether a computer program executed in a computer system is a malicious program, and more particularly, to an apparatus and method for diagnosing whether a computer program is a malicious program using the behavior of a computer program; And a method and apparatus for generating the apparatus.
종래의 악성 프로그램 감시 기술에 따르면, 기존에 발생한 악성 프로그램의 샘플을 수집하여 악성 프로그램의 특징이 되는 일정한 문자열을 추출하고, 상기 문자열이 진단 대상 컴퓨터 시스템의 파일 등에 존재하는지 여부를 이용하여 악성 프로그램에 감염 되었는지 여부를 판단하였다.According to the conventional malicious program monitoring technology, a sample of a conventionally generated malicious program is collected to extract a constant character string that is characteristic of the malicious program, and whether the character string is present in a file of a diagnosis target computer system or the like is applied to the malicious program. It was determined whether it was infected.
따라서, 새로운 악성 프로그램이 발생하면, 상기 새로운 악성 프로그램의 정체를 파악하고, 특징이 되는 문자열을 추출하여 상기 악성 프로그램에 대응하는 악성 프로그램을 감시하는 악성 프로그램 진단 장치가 개발되어야 했다. 이에, 기존의 악성 프로그램 진단 장치에 상기 악성 프로그램의 정보가 추가되기 전에는 상 기 새로운 악성 프로그램에 대한 대비가 불가능하여, 새로운 악성 프로그램에 대한 피해는 막을 수 없다는 문제점을 가지고 있었다. 또, 악성 프로그램의 종류가 증가함에 따라서, 악성 프로그램의 특징이 되는 문자열의 종류도 비례하여 증가한다. 따라서 악성 프로그램을 진단 장치가 악성 프로그램의 특징이 문자열이 존재하는지 여부를 검사하는 과정에 소요되는 시간도 증가할 수 밖에 없었다.Therefore, when a new malicious program occurs, a malicious program diagnostic apparatus for identifying the identity of the new malicious program, extracting a character string, and monitoring the malicious program corresponding to the malicious program should be developed. Therefore, before the information of the malicious program is added to the existing malicious program diagnosis apparatus, it is impossible to prepare for the new malicious program, and thus, the damage to the new malicious program cannot be prevented. Also, as the types of malicious programs increase, the types of character strings that characterize the malicious programs also increase proportionally. Therefore, the time required to diagnose the malicious program was increased in the process of checking whether the character string of the malicious program is present.
만약 배터리등을 이용하여 전원을 공급받는 이동 전화, PDA등의 모바일 기기에서는 특정 프로그램에서 문자열을 추출하고, 종래 악성 프로그램의 특징인 문자열과 동일한지 여부를 확인하는 절차에 소모되는 전력으로 인하여 모바일 기기의 동작 가능시간이 줄어드는 문제가 발생한다.If a mobile device such as a mobile phone or PDA, which is powered by a battery, is used to extract a character string from a specific program and check whether it is the same as a character string, which is a characteristic of a conventional malicious program, the mobile device is consumed. The problem occurs that the operation time of the decrease.
또한, 종래의 기술로는, 해커의 공격으로 인하여 컴퓨터의 취약점이 공개되면, 프로그램의 제작사가 상기 취약점을 수정한 패치(patch) 프로그램을 이용하여 해커의 공격을 저지할 수 있을 뿐이고, 아직 공개되지 않은 수많은 취약점을 이용한 다른 공격에 대해서는 대처할 수 없었다.In addition, in the related art, when a vulnerability of a computer is disclosed due to a hacker's attack, the manufacturer of the program may stop the attack of the hacker by using a patch program that fixes the vulnerability, and is not yet disclosed. It could not cope with other attacks that used a number of vulnerabilities.
대부분의 악성 프로그램들은 기존의 악성 프로그램과 전혀 다른, 새로운 프로그램이 아니라, 기존 악성 프로그램의 변종이다. 그러나 변종 악성 프로그램들을 검사하기 위해서는 종래 악성 프로그램으로부터 추출한 문자열이 아니라 변종 악성 프로그램으로부터 추출한 새로운 문자열을 사용해야 하므로, 각각의 변종 악성 프로그램들을 검사하기 위해서는 각각의 문자열을 구비해야 하였다.Most malicious programs are not new programs, they are completely different from existing malicious programs, but variants of existing malicious programs. However, in order to check variant malicious programs, it is necessary to use a new string extracted from a variant malicious program, not a string extracted from a conventional malicious program. Therefore, each string has to be provided to check each variant malicious program.
본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 이용하여 특정 컴퓨터 프로그램이 정상적인 코드인지, 악성 코드인지 여부를 판단하는 것을 목적으로 한다.An object of the present invention is to determine whether a particular computer program is normal code or malicious code using the behavior of a computer program running on a computer system.
본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램이 정상적인 코드인지, 악성 코드인지 여부를 판단하기 위해 사용되는 악성 코드 진단 데이터를 생성하는 것을 목적으로 한다.An object of the present invention is to generate malicious code diagnostic data used to determine whether a computer program executed in a computer system is normal code or malicious code.
상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명은 진단 대상 프로그램으로부터 추출한 행동 특징에 기반하여 제1 행동 특징 벡터를 생성하는 행동 특징 벡터 생성부, 이미 악성 여부가 알려진 복수의 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터를 저장하는 진단 데이터 저장부, 및 상기 제1 행동 특징 벡터를 상기 복수의 제2 행동 특징 벡터와 비교하여, 상기 진단 대상 프로그램이 악성 코드인지 여부를 진단 하는 코드 진단부를 포함하는 것을 특징으로 하는 악성 코드 진단 장치를 제공한다.In order to achieve the above object and to solve the problems of the prior art, the present invention provides a behavioral feature vector generator for generating a first behavioral feature vector based on a behavioral feature extracted from a diagnosis target program, and a plurality of sample programs that are known to be malicious. A diagnostic data storage for storing a plurality of second behavioral feature vectors, and a code for diagnosing whether the target program is a malicious code by comparing the first behavioral feature vector with the plurality of second behavioral feature vectors It provides a malicious code diagnostic apparatus comprising a diagnostic unit.
본 발명의 일측에 따르면, 진단 대상 프로그램으로부터 추출한 행동 특징에 기반하여 제1 행동 특징 벡터를 생성하는 단계, 이미 악성 여부가 알려진 복수의 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터를 로드하는 단계, 및 상기 제1 행동 특징 벡터를 상기 복수의 제2 행동 특징 벡터와 비교하여, 상기 진단 대상 프 로그램이 악성 코드인지 여부를 진단하는 단계를 포함하는 것을 특징으로 하는 악성 코드 진단 방법이 제공된다.According to one aspect of the invention, generating a first behavioral feature vector based on the behavioral features extracted from the program to be diagnosed, loading a plurality of second behavioral feature vectors for a plurality of sample programs that are known to be malicious, And comparing the first behavioral feature vector with the plurality of second behavioral feature vectors to diagnose whether the program to be diagnosed is a malicious code.
본 발명의 일측에 따르면, 악성 코드 진단 데이터 생성 장치에 있어서, 이미 악성 여부가 알려진 복수의 샘플 프로그램으로부터 각각의 행동 특징 벡터를 생성하는 행동 특징 벡터 생성부, 상기 복수의 샘플 프로그램에 대한 행동 특징 벡터 및 악성 여부에 기반하여 가중치 벡터를 결정하는 가중치 벡터 결정부, 및 상기 각각의 행동 특징 벡터 및 상기 가중치 벡터를 저장하는 진단 데이터 저장부를 포함하고, 상기 행동 특징 벡터 및 상기 가중치 벡터는 상기 진단 대상 프로그램이 악성 코드인지 여부를 판단하는데 이용되는 것을 특징으로 하는 악성 코드 진단 데이터 생성 장치가 제공된다.According to an aspect of the present invention, in the apparatus for generating malicious code diagnostic data, a behavior feature vector generator for generating respective behavior feature vectors from a plurality of sample programs that are known to be malicious, and the behavior feature vectors for the plurality of sample programs. And a weight vector determiner configured to determine a weight vector based on the malicious status, and a diagnostic data storage configured to store the respective behavior feature vector and the weight vector, wherein the behavior feature vector and the weight vector are the diagnostic target program. Provided is an apparatus for generating malicious code diagnostic data, which is used to determine whether the malicious code is malicious.
본 발명의 일측에 따르면, 악성 코드 진단 데이터 생성 방법에 있어서, 이미 악성 여부가 알려진 복수의 샘플 프로그램으로부터 각각의 행동 특징 벡터를 생성하는 단계, 상기 복수의 샘플 프로그램에 대한 행동 특징 벡터 및 악성 여부에 기반하여 가중치 벡터를 결정하는 단계, 및 상기 각각의 행동 특징 벡터 및 상기 가중치 벡터를 저장하는 단계를 포함하고, 상기 행동 특징 벡터 및 상기 가중치 벡터는 상기 진단 대상 프로그램이 악성 코드인지 여부를 판단하는데 이용되는 것을 특징으로 하는 악성 코드 진단 데이터 생성 방법이 제공된다.According to one aspect of the present invention, in the method for generating malicious code diagnosis data, generating each behavioral feature vector from a plurality of sample programs that are known to be malicious; Determining a weight vector based on the weight vector, and storing the respective behavior feature vector and the weight vector, wherein the behavior feature vector and the weight vector are used to determine whether the diagnosis target program is a malicious code. Provided is a method for generating malicious code diagnostic data, characterized in that.
본 발명에 따르면 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 이용하여 특정 컴퓨터 프로그램이 정상적인 코드인지, 악성 코드인지 여부를 판단할 수 있다.According to the present invention, it is possible to determine whether a particular computer program is normal code or malicious code by using the behavior of the computer program running on the computer system.
본 발명에 따르면 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램이 정상적인 코드인지, 악성 코드인지 여부를 판단하기 위해 사용되는 최적의 악성 코드 진단 데이터를 생성할 수 있다.According to the present invention, it is possible to generate optimal malicious code diagnostic data used to determine whether a computer program running on a computer system is normal code or malicious code.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention;
도 1은 본 발명에 따라서 컴퓨터 프로그램의 행동을 이용하여 악성 프로그램을 검사하는 방법을 단계별로 도시한 순서도이다. 이하 도 1을 참조하여 본 발명에 따라서 모델링된 컴퓨터 프로그램의 행동을 이용하여 악성 프로그램을 검사하는 방법을 상세히 설명하기로 한다.1 is a flowchart illustrating a step-by-step method for checking malicious programs using the behavior of computer programs in accordance with the present invention. Hereinafter, a method of checking 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. 1.
본 발명에서 설명하는 악성 프로그램 또는 악성 코드는 제작자가 의도적으로 사용자에게 피해를 주고자 만든 모든 악의의 목적을 가진 프로그램 및 매크로(macro), 스크립트(script) 등 컴퓨터 시스템상에서 작동하는 모든 실행가능한 형태의 프로그램을 말한다.The malicious program or malicious code described in the present invention may be any and all forms of executable programs that operate on a computer system such as macros, scripts, and all malicious purposes created by the creators to intentionally damage the user. Say the program.
단계(S110)에서는 샘플 프로그램의 행동을 모델링하여 행동 특징 벡터를 생성한다. 샘플 프로그램에는 악성 프로그램뿐만 아니라, 정상 프로그램도 포함된다.In operation S110, a behavior feature vector is generated by modeling the behavior of the sample program. The sample program includes not only malicious programs but also normal programs.
단계(S120)에서는 악성 코드 진단 데이터를 생성한다. 악성 코드 진단 장치는 악성 코드 진단 데이터 및 단계(S110)에서 생성한 행동 특징 벡터를 이용하여 악성 프로그램과 정상 프로그램을 구분할 수 있다. 본 발명의 일실시예에 따르면, 악성 코드 진단 장치는 정상 프로그램의 행동을 모델링한 행동 특징 벡터에 대해서는 임계치 이상의 값을 산출하고, 악성 프로그램의 행동을 모델링한 행동 특징 벡터에 대해서는 임계치 미만의 값을 산출하도록 생성될 수 있다.In operation S120, malicious code diagnostic data is generated. The malware diagnosis apparatus may distinguish between a malicious program and a normal program using the malicious code diagnosis data and the behavioral feature vector generated in step S110. According to an embodiment of the present invention, the apparatus for diagnosing malware calculates a value greater than or equal to a threshold for a behavioral feature vector modeling the behavior of a normal program and a value less than or equal to a threshold for an behavioral feature vector modeling the behavior of a malicious program. Can be generated to calculate.
단계(S130)에서는 진단 대상 프로그램으로부터 생성한 행동 특징 벡터와 단계(S120)에서 생성된 악성 코드 진단 데이터를 이용하여 컴퓨터 시스템에서 실행되는 진단 대상 프로그램이 악성 프로그램인지, 정상 프로그램인지 여부를 진단한다.In operation S130, the diagnosis target program executed in the computer system is diagnosed as a malicious program or a normal program using the behavioral feature vector generated from the diagnostic target program and the malicious code diagnostic data generated in operation S120.
만약 진단 대상 프로그램이 정상 프로그램이라면, 악성 프로그램을 검사 장치는 진단 대상 프로그램의 행동 특징 벡터에 대하여 임계치 이상의 값을 산출하고, 만약 진단 대상 프로그램이 악성 프로그램이라면, 악성 프로그램을 검사하는 장치는 진단 대상 프로그램의 행동 특징 벡터에 대하여 임계치 미만의 값을 산출할 수 있다.If the program to be diagnosed is a normal program, the device for testing a malicious program calculates a value greater than or equal to a threshold for the behavioral feature vector of the program to be diagnosed. If the program to be diagnosed is a malicious program, the device for testing the malicious program is determined to be a program. A value below the threshold may be calculated for the behavioral feature vector of.
대부분의 악성 프로그램은 전혀 새로운 악성 프로그램이 아니다. 기존에 존재하는 악성 프로그램의 일부를 수정하여 개량한 변종 악성 프로그램에 불과하다. 따라서, 기존의 악성 프로그램 검사 장치로는 악성 프로그램으로 판단하지 못하는 새로운 악성 프로그램의 행동도 기존의 악성 프로그램의 행동과 유사하다.Most malicious programs are not new malicious programs at all. It is only a modified malicious program that has been modified by modifying some of the existing malicious programs. Therefore, the behavior of a new malicious program that cannot be determined as a malicious program by the existing malicious program inspection device is similar to that of an existing malicious program.
또 대부분의 악성 프로그램은 사용자의 컴퓨터 시스템에 침입하여 사용자의 데이터를 삭제하거나, 시스템 파일을 삭제하는 등 실제 행동은 대부분 유사하다.In addition, most malicious programs infiltrate the user's computer system and delete the user's data or delete the system files.
따라서, 진단 대상 프로그램의 행동을 이용하여, 진단 대상 프로그램이 정상적인 프로그램인지, 악성 프로그램인지 여부를 판단한다면, 기존 문자열 비교 방식보다 훨씬 정확하게 악성 프로그램 여부를 판단할 수 있다. 또한 지금까지 알려지 지 않은 새로운 변종 악성 프로그램에 대해서도 그 행동 만으로 악성 프로그램 여부를 판단할 수 있다.Therefore, if it is determined whether the diagnosis target program is a normal program or a malicious program using the behavior of the diagnosis target program, it is possible to determine whether the malicious program is much more accurate than the conventional string comparison method. In addition, the behavior of a new variant of a malicious program that has not been known so far can determine whether it is a malicious program.
종래 기술과 달리 새로운 악성 프로그램에 대한 정보를 분석할 필요가 없으므로, 새로운 악성 프로그램을 분석하는 시간에 발생하는 피해를 줄일 수 있다.Unlike the prior art, it is not necessary to analyze information on a new malicious program, thereby reducing damage occurring at the time of analyzing a new malicious program.
도 2는 샘플 프로그램으로부터 생성한 행동 특징 벡터를 행동 특징 벡터 공간상에 도시한 도면이다. 이하 도 2를 참조하여 진단 대상 프로그램으로부터 생성한 행동 특징 벡터를 이용하여 악성 프로그램 여부를 진단하는 개념을 상세히 설명하기로 한다.2 is a diagram illustrating a behavioral feature vector generated from a sample program in a behavioral feature vector space. Hereinafter, a concept of diagnosing a malicious program using a behavioral feature vector generated from a diagnosis target program will be described in detail with reference to FIG. 2.
도2 에서는 정상적인 프로그램으로부터 생성한 행동 특징 벡터(211, 212) 및 악성 프로그램으로부터 생성한 행동 특징 벡터(211, 222)가 2차원의 행동 특징 벡터 공간상에 위치한 실시예가 도시되었으나, 본 발명은 행동 특징 벡터 공간이 2차원 이상인 경우에 대해서도 적용 될 수 있다.2 illustrates an embodiment in which
정상적인 프로그램으로부터 추출한 행동 특징들은 서로 유사하고, 악성 프로그램으로부터 추출한 행동 특징들은 서로 유사하다. 그러나 정상 프로그램으로부터 추출한 행동 특징과 악성 프로그램으로부터 추출한 행동 특징은 서로 유사하지 않다. 따라서 정상적인 프로그램과 악성 프로그램으로부터 추출한 각각의 행동 특징에 기반하여 생성된 정상 행동 특징 벡터와 악성 행동 특징 벡터는 서로 비유사하다. 정상 행동 특징 벡터(211, 212)들과 악성 행동 특징 벡터(221, 222)들은 행동 특징 벡터 공간상에서 서로 구분된 영역에 위치한다.Behavioral features extracted from normal programs are similar to each other, and behavioral features extracted from malicious programs are similar to each other. However, behavioral features extracted from normal programs and behavioral features extracted from malicious programs are not similar. Therefore, normal and malignant feature vectors generated based on the behavioral features extracted from normal and malicious programs are similar to each other. The normal
따라서, 본 발명에 따른 악성 코드 진단 장치는 행동 특징 벡터 공간을 정상 행동 특징 벡터(211, 212)가 위치하는 정상 행동 특징 벡터 영역(210)과 악성 행동 특징 벡터(221, 222)가 위치하는 악성 행동 특징 벡터 영역(220)으로 구분한다. 악성 코드 진단 장치는 진단 대상 프로그램으로부터 생성한 행동 특징 벡터가 정상 행동 특징 벡터 영역(210) 및 악성 행동 특징 벡터 영역(220) 중에서 어느 영역에 속하는지 여부로 진단 대상 프로그램이 악성 코드 인지 여부를 판단할 수 있다.Accordingly, the apparatus for diagnosing malicious code according to the present invention includes a malicious
정상 행동 특징 벡터 영역(210)과 악성 행동 특징 벡터 영역(220)을 구분하는 악성 코드 진단 장치는 여러 가지(231, 232)가 있을 수 있다.There may be various types of
행동 특징 벡터 공간상의 특정한 영역(240)에 위치한 행동 특징 벡터에 상응하는 진단 대상 프로그램들은 각각의 악성 코드 진단 장치에 따라서 악성 코드 여부에 대한 진단 결과가 달라질 수 있다.The diagnostic target programs corresponding to the behavioral feature vector located in the
도 3은 본 발명에 따라 행동 특징 벡터 공간을 악성 벡터 공간과 정상 벡터 공간으로 구분하는 악성 코드 진단 데이터 중에서 최적의 데이터를 선택하는 개념을 도시한 도면이다. 이하 도 3을 참조하여 최적의 데이터를 선택하는 개념을 상세히 설명하기로 한다.3 is a diagram illustrating a concept of selecting optimal data from malicious code diagnostic data that divides a behavioral feature vector space into a malicious vector space and a normal vector space according to the present invention. Hereinafter, the concept of selecting the optimal data will be described in detail with reference to FIG. 3.
정상 행동 특징 벡터(311, 312, 313)가 정상 행동 특징 벡터 영역(310)에, 악성 행동 특징 벡터(321, 322, 323, 324)가 악성 행동 특징 벡터 영역(320)에 위치한다. 악성 코드 진단 장치는 제1 경계(330) 또는 제2 경계(340)을 이용하여 두 영역을 구분할 수 있다. 제1 경계(330) 및 제2 경계(340)는 악성 코드 진단 장치가 이용하는 진단 데이터에 따라서 결정된다.The normal
제1 경계(330)를 이용하여 두 영역을 구분하는 경우에는, 제1 경계(330)와 가장 가까이 위치한 정상 행동 특징 벡터(313) 및 악성 행동 특징 벡터(323) 사이의 거리(333)만큼의 여유(margin)를 가질 수 있다.When the two regions are distinguished by using the
제2 경계(340)를 이용하여 두 영역을 구분하는 경우에는, 제2 경계(340)와 가장 가까이 위치한 정상 행동 특징 벡터(313) 및 악성 행동 특징 벡터(324) 사이의 거리(343)만큼의 여유를 가질 수 있다.In the case of distinguishing the two regions using the
악성 코드 진단 장치가 진단 대상 프로그램의 악성 여부를 정확히 진단하기 위해서는, 정상 행동 특징 벡터 영역(310) 및 악성 행동 특징 벡터 영역(320)을 구분하는 거리(333, 343)가 최대가 되어야 한다. 따라서 본 발명의 일실시예에 따른 악성 코드 진단 장치는 두 영역(310, 320)을 구분하는 거리가 최대가 되는 제1 경계(330)를 이용하여 진단 대상 프로그램으로부터 생성한 행동 특징 벡터가 정상 행동 특징 벡터 영역(310)에 속하는지, 악성 행동 특징 벡터 영역(320)에 속하는지 여부를 정확히 판단할 수 있다.In order for the malicious code diagnosis apparatus to accurately diagnose whether the diagnosis target program is malicious, the
악성 코드 진단 장치는 정상 행동 특징 벡터 영역(310) 및 악성 행동 특징 벡터 영역(320)사이의 거리가 최대가 될 때 정상 프로그램과 악성 프로그램을 정확히 진단할 수 있다. 악성 코드 진단 장치가 정상 행동 특징 벡터 영역(310) 및 악성 행동 특징 벡터 영역(320)을 구분하는 경계는 악성 코드 진단 데이터에 의하여 결정되므로, 악성 코드 진단 장치가 제1 경계를 사용하게 하는 악성 코드 진단 데이터가 최적의 악성 코드 진단 데이터이다.The malicious code diagnosis apparatus may accurately diagnose the normal program and the malicious program when the distance between the normal behavior
도 4는 본 발명의 일실시예에 따라 진단 대상 프로그램으로부터 생성한 행동 특징 벡터에 기반하여 진단 대상 프로그램이 악성 코드인지 여부를 진단하는 악성 코드 진단 장치의 구조를 도시한 도면이다. 이하 도 4를 참조하여 악성 코드 진단 장치의 구조를 상세히 설명하기로 한다.4 is a diagram illustrating a structure of a malicious code diagnosis apparatus for diagnosing whether a diagnosis target program is a malicious code based on a behavioral feature vector generated from the diagnosis target program according to an embodiment of the present invention. Hereinafter, the structure of a malicious code diagnosis apparatus will be described in detail with reference to FIG. 4.
본 발명에 따른 악성 코드 진단 장치(400)는 행동 특징 벡터 생성부(410), 진단 데이터 저장부(420) 및 코드 진단부(430)를 포함한다.The malicious
본 발명의 일실시예에 따른 코드 진단부(430)는 거리 계산부(440) 및 코드 판단부(450)를 포함한다.The
행동 특징 벡터 생성부(410)는 진단 대상 프로그램으로부터 추출한 행동 특징에 기반하여 제1 행동 특징 벡터를 생성한다.The behavioral
진단 데이터 저장부(420)는 이미 악성 여부가 알려진 복수의 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터를 저장한다. 본 발명의 일실시예에 따르면 복수의 샘플 프로그램은 적어도 하나 이상의 정상 프로그램과 적어도 하나 이상의 악성 프로그램을 포함할 수 있다.The diagnostic
본 발명의 일실시예에 따르면, 진단 데이터 저장부(420)는 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터 및 상기 샘플 프로그램 각각의 악성 여부, 및 상기 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터에 기반하여 생성된 가중치 벡터를 저장할 수 있다.According to an embodiment of the present invention, the diagnostic
코드 진단부(430)는 제1 행동 특징 벡터를 상기 복수의 제2 행동 특징 벡터와 비교하여, 상기 진단 대상 프로그램이 악성 코드인지 여부를 진단한다.The
본 발명의 일실시예에 따르면 코드 진단부(430)는 상기 제1 행동 특징 벡터와 상기 복수의 제2 행동 특징 벡터간의 각각의 거리를 계산하여 서로 비교하는 거 리 계산부(440) 및 상기 계산된 거리에 기반하여 상기 진단 대상 프로그램이 악성 코드인지 여부를 판단하는 코드 판단부(450)를 포함할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 코드 판단부(450)는 정상 프로그램의 행동 특징 벡터와 진단 대상 프로그램의 행동 특징 벡터간의 거리 및 악성 프로그램의 행동 특징 벡터와 진단 대상 프로그램의 행동 특징 벡터간의 거리를 비교한다. 상기 비교된 거리에 기반하여 상기 진단 대상 프로그램의 행동 특징 벡터가 정상 행동 특징 벡터 영역(310) 또는 악성 행동 특징 벡터 영역(320)에 속하는지 여부를 판단하고, 그에 상응하여 진단 대상 프로그램이 악성 프로그램인지 여부를 판단한다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면 거리 계산부(440)는 제1 행동 특징 벡터와 제2 행동 특징 벡터간의 유클리디안 거리를 계산할 수 있다.According to an embodiment of the present invention, the
행동 특징 벡터 공간은 정상 행동 특징 벡터 영역(310)과 악성 행동 특징 벡터 영역(320)으로 구분된다.The behavioral feature vector space is divided into a normal behavioral
본 발명의 일실시예에 따르면 진단 데이터 저장부(420)는 상기 각각의 샘플 프로그램의 제2 행동 특징 벡터 및 악성 여부에 기반하여 결정된 가중치 벡터를 저장한다. 상기 코드 판단부(450)는 상기 계산된 거리에 상기 가중치 벡터의 원소를 곱하여 소정의 임계값과 비교함으로써 진단 대상 프로그램의 행동 특징 벡터가 정상 행동 특징 벡터 영역(310) 및 악성 행동 특징 벡터 영역(320)중에서 어느 영역에 위치하는지 결정할 수 있다.According to an embodiment of the present invention, the diagnostic
본 발명의 일실시예에 따르면 코드 판단부(450)는 하기 수학식 1의 값에 따라서 상기 계산된 거리에 상기 가중치 벡터의 원소를 곱할 수 있다.According to an embodiment of the present invention, the
[수학식 1][Equation 1]
여기서, 는 진단 대상 프로그램으로부터 추출한 제1 행동 특징 벡터를, 는 i번째 샘플 프로그램으로부터 추출한 제2 행동 특징 벡터를 각각 나타낸다. here, Is the first behavioral feature vector extracted from the program to be diagnosed, Respectively represent the second behavioral feature vectors extracted from the i th sample program.
는 i번째 샘플 프로그램의 악성 여부로서, 본 발명의 일실시예에 따르면 i번째 샘플 프로그램이 정상 프로그램이면 '-1', 악성 프로그램이면 '+1'이 될 수 있다. Denotes whether the i th sample program is malicious. According to an embodiment of the present invention, 'i' may be '-1' if the i th sample program is a normal program and '+1' if it is a malicious program.
는 두 행동 특징 벡터 a, b 간의 거리에 반비례 하는 값으로서 하기 수학식 2에 의하여 결정된다. Is a value inversely proportional to the distance between two behavioral feature vectors a and b, and is determined by Equation 2 below.
는 가중치 벡터의 i번째 원소를 나타낸다. Denotes the i th element of the weight vector.
[수학식 2][Equation 2]
여기서, 은 샘플 프로그램의 개수를, 는 임의의 값을 가지는 상수로 서, 본 발명의 일실시예에 따르면 는 '1'이 될 수 있다.here, Is the number of sample programs, Is a constant having an arbitrary value, according to an embodiment of the present invention. May be '1'.
여기서, 가 0이 아닐 경우에만 대응되는 를 진단 데이터 저장부(420)에 저장하고 수학식 1의 계산에 사용한다. 따라서, 그 외의 제2 행동 특징 벡터들은 수학식 1의 계산에 영향을 미치지 않는다. 이들 가 0이 아닐 경우에만 대응되는 를 지지 벡터(Support Vector)라고 한다. 지지 벡터들은 일반적으로 제1 경계(330) 또는 제2 경계(340) 부근에 위치하므로 그 수가 샘플 프로그램의 개수에 비해 매우 작으며, 따라서 진단 데이터 저장부(420)의 저장 용량 및 수학식 1의 계산량도 매우 작게 된다.here, Matches only if is not zero Is stored in the diagnostic
본 발명의 일실시예에 따르면 코드 판단부(450)는 하기 수학식 1의 값과 하기 수학식 3에 의하여 결정되는 소정의 임계값을 비교하여 진단 대상 프로그램에 대한 행동 특징 벡터가 정상 행동 특징 벡터 영역(310) 및 악성 행동 특징 벡터 영역(320)중에서 어느 영역에 위치하는지 결정할 수 있다.According to an embodiment of the present invention, the
[수학식 3][Equation 3]
여기서, 는 상기 소정의 임계값을, 은 정상 샘플 프로그램으로부터 추출한 제2 행동 특징 벡터를, 는 악성 샘플 프로그램으로부터 추출한 제2 행동특징 벡터를 각각 나타낸다.here, Is the predetermined threshold, Is the second behavioral feature vector extracted from the normal sample program, Respectively represent the second behavioral feature vectors extracted from the malicious sample program.
본 발명의 일실시예에 따르면, 코드 판단부(450)는 상기 수학식 1의 값에 상기 소정의 임계값을 더하고, 상기 계산결과가 '0'보다 작은 경우에는 진단 대상 프로그램에 대한 행동 특징 벡터가 정상 행동 특징 벡터 영역(310)에, '0'보다 큰 경우라면 진단 대상 프로그램에 대한 행동 특징 벡터가 악성 행동 특징 벡터 영역(320)에 위치한다고 결정할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 코드 판단부(450)는 하기 수학식 4의 값이 '0'보다 큰 경우에는 진단 대상 프로그램에 대한 행동 특징 벡터가 정상 행동 특징 벡터 영역(310)에, '0'보다 작은 경우라면 진단 대상 프로그램에 대한 행동 특징 벡터가 악성 행동 특징 벡터 영역(320)에 위치한다고 결정할 수 있다.According to the exemplary embodiment of the present invention, when the value of the following Equation 4 is greater than '0', the
[수학식 4][Equation 4]
도 5는 진단 대상 프로그램으로부터 생성한 행동 특징 벡터를 이용해서는 악성 프로그램인지 여부를 판단 할 수 없는 경우에, 행동 특징 벡터를 고차원 변환한 특성 벡터에 기반하여 진단 대상 프로그램이 악성 프로그램인지 여부를 진단하는 개념을 도시한 도면이다. 이하 도 5를 참조하여 행동 특징 벡터를 고차원 변환한 특성 벡터를 이용하여 진단 대상 프로그램이 악성 프로그램인지 여부를 진단하는 개념을 상세히 설명하기로 한다.5 is a method for diagnosing whether a program to be diagnosed is a malicious program based on a feature vector obtained by transforming a behavior feature vector into a high level when it is not possible to determine whether the program is a malicious program using the behavior feature vector generated from the diagnosis target program. It is a figure which shows a concept. Hereinafter, a concept of diagnosing whether a program to be diagnosed as a malicious program using a feature vector obtained by transforming a behavioral feature vector into a high level will be described in detail.
도 5의 (a)는 정상 행동 특징 벡터(511, 512) 및 악성 행동 특징 벡터(513, 514)가 행동 특징 벡터 공간상에 위치한 것을 도시한 도면이다. 정상 행동 특징 벡터(511, 512) 및 악성 행동 특징 벡터(513, 514)가 전체 행동 특징 벡터 공간상에 일정한 규칙 없이 위치한다. 전체 행동 특징 벡터 공간을 정상 행동 특징 벡터 공간(310) 및 악성 행동 특징 벡터 공간(320)으로 구분할 수 없다.FIG. 5A illustrates the normal
도 5의 (b)는 정상 행동 특징 벡터(511, 512) 및 악성 행동 특징 벡터(513, 514)를 변환하여 각각에 상응하는 특성 벡터(521, 522, 523, 524)를 생성하고, 생성된 특성 벡터(521, 522, 523, 524)를 특성 벡터 공간에 도시한 도면이다.FIG. 5B converts the normal
도 5의 (b)에서는 2차원의 행동 특징 벡터를 3차원의 특성 벡터로 변환한 실시예가 도시되었으나, 본 발명의 다른 실시예에서는 행동 특징 벡터보다 고차원인 4차원 이상으로도 변환할 수 있다.In FIG. 5B, an embodiment in which a two-dimensional behavior feature vector is converted into a three-dimensional feature vector is illustrated, but in another embodiment of the present invention, the embodiment may be converted to a four-dimensional or higher dimension than the behavior feature vector.
도 5의 (c)는 특성 벡터 공간 상에 위치한 정상 프로그램의 특성 벡터(531, 532) 및 악성 프로그램의 특성 벡터(533, 534)를 도시한 도면이다. 행동 특징 벡터로부터 변환된 각각의 특성 벡터(531, 532, 533, 534)는 특성 벡터 공간 상에서 서로 구분된 영역에 위치한다.FIG. 5C is a diagram showing
정상 프로그램의 특성 벡터(531, 532)와 악성 프로그램의 특성 벡터(533, 534)는 특정 경계(535)를 이용하여 구분할 수 있다.The
도 6는 본 발명의 일실시예에 따라서 진단 대상 프로그램으로부터 생성한 특성 벡터에 기반하여 진단 대상 프로그램이 악성 코드인지 여부를 진단하는 악성 코드 진단 장치의 구조를 도시한 도면이다. 이하 도 6을 참조하여 특성 벡터에 기반하여 진단 대상 프로그램이 악성 코드인지 진단하는 악성 코드 진단 장치의 구조를 상세히 설명하기로 한다.FIG. 6 is a diagram illustrating a structure of a malicious code diagnosis apparatus for diagnosing whether a diagnosis target program is a malicious code based on a feature vector generated from the diagnosis target program according to an embodiment of the present invention. Hereinafter, a structure of a malicious code diagnosis apparatus for diagnosing whether a diagnosis target program is a malicious code based on the characteristic vector will be described in detail with reference to FIG. 6.
본 발명에 따른 악성 코드 진단 장치(600)는 행동 특징 벡터 생성부(610), 진단 데이터 저장부(620) 및 코드 진단부(630)를 포함한다.The malicious code
본 발명의 일실시예에 따른 코드 진단부(630)는 벡터 변환부(640), 거리 계산부(650) 및 코드 판단부(660)를 포함한다.The
행동 특징 벡터 생성부(610)는 진단 대상 프로그램으로부터 추출한 행동 특징에 기반하여 제1 행동 특징 벡터를 생성한다.The behavioral
진단 데이터 저장부(620)는 이미 악성 여부가 알려진 복수의 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터를 저장한다. 본 발명의 일실시예에 따르면 복수의 샘플 프로그램은 적어도 하나 이상의 정상 프로그램과 적어도 하나 이상의 악성 프로그램을 포함할 수 있다.The diagnostic
본 발명의 일실시예에 따르면, 진단 데이터 저장부(620)는 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터 및 상기 샘플 프로그램 각각의 악성 여부, 및 상기 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터에 기반하여 생성된 가중치 벡터를 저장할 수 있다.According to an embodiment of the present invention, the diagnostic
코드 진단부(630)는 제1 행동 특징 벡터를 상기 복수의 제2 행동 특징 벡터와 비교하여, 상기 진단 대상 프로그램이 악성 코드인지 여부를 진단한다.The
본 발명의 일실시예에 따르면 코드 진단부(630)는 상기 제1 행동 특징 벡터를 제1 특성 벡터로 고차원 변환하고, 상기 복수의 제2 행동 특징 벡터를 복수의 제2 특성 벡터로 고차원 변환하는 벡터 변환부(640), 제1 특성 벡터 및 복수의 제2 특성 벡터간의 각각의 거리를 계산하는 거리 계산부(650) 및 상기 계산된 거리에 기반하여 상기 진단 대상 프로그램이 악성 코드인지 여부를 판단하는 코드 판단부(660)를 포함할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면 벡터 변환부(640)는 제1 행동 특징 벡터로부터 변환된 제1 특성 벡터와 제2 행동 특징 벡터로부터 변환된 제2 특성 벡터간의 거리가 제1 행동 특징 벡터 와 제2 행동 특징 벡터간의 거리에 비례하도록 각각의 벡터를 변환할 수 있다. 즉, 벡터 변환부(640)는 제1 행동 특징 벡터 및 제2 행동 특징 벡터간의 거리는 상기 제1 행동 특징 벡터에 상응하는 제1 특성 벡터 및 제2 행동 특징 벡터에 상응하는 제2 특성 벡터간의 거리에 비례하도록 상기 제1 행동 특징 벡터 및 상기 제2 행동 특징 벡터를 변환할 수 있다.According to an embodiment of the present invention, the
특성 벡터 공간은 정상 특성 벡터 영역과 악성 특성 벡터 영역으로 구분된다.The characteristic vector space is divided into a normal characteristic vector region and a malicious characteristic vector region.
본 발명의 일실시예에 따르면 진단 데이터 저장부(620)는 상기 각각의 샘플 프로그램의 제2 특성 벡터 및 악성 여부에 기반하여 결정된 가중치 벡터를 저장한다. 상기 코드 판단부(660)는 상기 계산된 거리에 상기 가중치 벡터의 원소를 곱하 여 소정의 임계값과 비교함으로써 진단 대상 프로그램의 특성 벡터가 정상 특성 벡터 영역 및 악성 특성 벡터 영역 중에서 어느 영역에 위치하는지 결정할 수 있다.According to an embodiment of the present invention, the diagnostic
코드 판단부(660)는 진단 대상 벡터의 특성 벡터가 정상 특성 벡터 영역에 위치하는 경우에는 진단 대상 프로그램을 정상 프로그램으로 진단하고, 진단 대상 벡터의 특성 벡터가 악성 특성 벡터 영역이 위치하는 경우에는 진단 대상 프로그램을 악성 프로그램으로 진단할 수 있다.The
도 7은 본 발명의 일실시예에 따라서 샘플 프로그램의 행동 특징 벡터를 이용하여 악성 코드 진단 데이터를 생성하는 장치의 구조를 도시한 도면이다. 이하 도 7을 참조하여 악성 코드 진단 데이터 생성 장치의 구조를 상세히 설명하기로 한다.FIG. 7 is a diagram illustrating a structure of an apparatus for generating malicious code diagnosis data using a behavioral feature vector of a sample program according to an embodiment of the present invention. Hereinafter, the structure of the apparatus for generating malicious code diagnosis data will be described in detail with reference to FIG. 7.
본 발명에 따른 악성 코드 진단 데이터 생성 장치(700)는 행동 특징 벡터 생성부(710), 거리 계산부(720), 가중치 벡터 결정부(730) 및 진단 데이터 저장부(740)를 포함한다.The malicious code diagnostic
행동 특징 벡터 생성부(710)는 이미 악성 여부가 알려진 복수의 샘플 프로그램으로부터 각각의 행동 특징 벡터를 생성한다. 본 발명의 일실시예에 따르면 복수의 샘플 프로그램은 적어도 하나 이상의 정상 프로그램과 적어도 하나 이상의 악성 프로그램을 포함할 수 있다.The behavioral
가중치 벡터 결정부(730)는 상기 복수의 샘플 프로그램에 대한 행동 특징 벡터 및 상기 복수의 샘플 프로그램 각각의 악성 여부에 기반하여 가중치 벡터를 결정한다.The
본 발명의 일실시예에 따르면 거리 계산부(720)는 상기 복수의 샘플 프로그램으로부터 생성한 복수의 행동 특징 벡터간의 거리를 각각 계산하고, 가중치 벡터 결정부(730)는 상기 계산된 복수의 행동 특징 벡터간의 거리 및 상기 샘플 프로그램의 악성 여부에 기반하여 상기 가중치 벡터를 결정할 수 있다.According to an embodiment of the present invention, the
진단 데이터 저장부(740)는 상기 복수의 샘플 프로그램으로부터 생성한 복수의 행동 특징 벡터 및 상기 결정한 가중치 벡터를 저장한다. 상기 저장된 복수의 행동 특징 벡터 및 상기 가중치 벡터는 악성 코드 진단 장치가 상기 진단 대상 프로그램이 악성 코드인지 여부를 판단하는데 이용된다.The diagnostic
도 3에서의 제1 경계(330) 및 제2 경계(340)는 상기 가중치 벡터에 의하여 결정 된다. 본 발명의 일실시예에 따르면 가중치 벡터 결정부(730)는 정상 행동 특징 벡터 영역(310)과 악성 행동 특징 벡터 영역(320)을 구분할 수 있는 복수의 가중치 벡터 중에서, 정상 행동 특징 벡터 영역(310)과 악성 행동 특징 벡터 영역(320)을 최대한 정확히 구분할 수 있는 가중치 벡터를 선택할 수 있다.The
본 발명의 일실시예에 따르면 가중치 벡터 결정부(730)는 정상 행동 특징 벡터 영역(310)과 악성 행동 특징 벡터 영역(320)을 정확히 구분하기 위하여, 하기 수학식 5에 따라 결정되는 을 최대화 하고, 하기 수학식 6 및 하기 수학식 7을 만족하도록 상기 가중치 벡터를 결정할 수 있다.According to an embodiment of the present invention, the
[수학식 5][Equation 5]
여기서, 는 i번째 샘플 프로그램으로부터 추출한 행동 특징 벡터를, 는 i번째 샘플 프로그램의 악성 여부를 각각 나타낸다. 본 발명의 일실시예에 따르면 i번째 샘플 프로그램이 정상 프로그램이면 '-1'를, 악성 프로그램이면 '+1'이 될 수 있다. 는 두 행동 특징 벡터 a, b 간의 거리를, 은 샘플 프로그램의 개수를 나타낸다. 는 가중치 벡터의 i번째 원소를 나타낸다.here, Is the behavioral feature vector extracted from the i th sample program, Indicates whether the i th sample program is malicious. According to an embodiment of the present invention, if the i th sample program is a normal program, it may be '-1', and if it is a malicious program, it may be '+1'. Is the distance between two behavioral feature vectors a and b, Represents the number of sample programs. Denotes the i th element of the weight vector.
[수학식 6][Equation 6]
[수학식 7][Equation 7]
본 발명의 일실시예에 따르면 가중치 벡터 결정부(730)는 정상 행동 특징 벡터 영역(310)과 악성 행동 특징 벡터 영역(320)을 구분하기 위한 소정의 임계값을 하기 수학식 8에 따라서 결정할 수 있다.According to an embodiment of the present invention, the
[수학식 8][Equation 8]
는 상기 소정의 임계값을, 은 정상 샘플 프로그램으로부터 추출한 제2 행동 특징 벡터를, 는 악성 샘플 프로그램으로부터 추출한 제2 행동특징 벡터를 각각 나타낸다. Is the predetermined threshold, Is the second behavioral feature vector extracted from the normal sample program, Respectively represent the second behavioral feature vectors extracted from the malicious sample program.
도 8는 본 발명의 일실시예에 따라서 진단 대상 프로그램의 행동 특징 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 방법을 단계별로 도시한 순서도이다. 이하 도 8를 참조하여 행동 특징 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 방법을 상세히 설명하기로 한다.8 is a flowchart illustrating a step-by-step method of diagnosing whether a malicious program is a malicious program using a behavioral feature vector of a diagnostic target program according to an embodiment of the present invention. Hereinafter, a method of diagnosing whether a malicious program is a malicious program using a behavioral feature vector will be described in detail.
단계(S810)에서는 진단 대상 프로그램으로부터 추출한 행동 특징에 기반하여 제1 행동 특징 벡터를 생성한다. 본 발명의 일실시예에 따르면 진단 대상 프로그램 으로부터 전체 행동 특징이 아니라 일부 행동 특징만을 추출하고, 상기 일부 행동 특징에 기반하여 제1 행동 특징 벡터를 생성할 수 있다.In operation S810, a first behavioral feature vector is generated based on the behavioral feature extracted from the diagnosis target program. According to an embodiment of the present invention, only some behavioral features may be extracted from the program to be diagnosed, not all behavioral features, and a first behavioral feature vector may be generated based on the partial behavioral features.
단계(S820)에서는 이미 악성 여부가 알려진 복수의 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터를 로드(load)한다. 본 발명의 일실시예에 따르면 복수의 샘플 프로그램은 적어도 하나 이상의 정상 프로그램 및 적어도 하나 이상의 악성 프로그램을 포함할 수 있다.In operation S820, a plurality of second behavioral feature vectors for a plurality of sample programs that are known to be malicious are loaded. According to an embodiment of the present invention, the plurality of sample programs may include at least one normal program and at least one malicious program.
단계(S830)에서는 상기 제1 행동 특징 벡터와 제2 행동 특징 벡터를 비교하여, 거리를 계산한다. 제2 행동 특징 벡터가 복수인 경우에는 제1 행동 특징 벡터와 각각의 제2 행동 특징 벡터간의 각각의 거리를 계산한다.In operation S830, a distance is calculated by comparing the first behavioral feature vector and the second behavioral feature vector. When there are a plurality of second behavioral feature vectors, respective distances between the first behavioral feature vector and each second behavioral feature vector are calculated.
본 발명의 일실시예에 따르면 단계(S830)에서는 제1 행동 특징 벡터와 제2 행동 특징 벡터간의 유클리디안 거리를 계산할 수 있다.According to an embodiment of the present invention, in step S830, the Euclidean distance between the first behavioral feature vector and the second behavioral feature vector may be calculated.
단계(S840)에서는 단계(S830)에서 계산한 행동 특징 벡터간의 거리에 기반하여 상기 진단 대상 프로그램이 악성 코드인지 여부를 진단한다. 본 발명의 일실시예에 따르면 단계(S840)에서는 상기 계산된 거리에 상기 가중치 벡터의 원소를 곱하여 소정의 임계값과 비교함으로써 진단 대상 프로그램의 행동 특징 벡터가 정상 행동 특징 벡터 영역(310) 및 악성 행동 특징 벡터 영역(320)중에서 어느 영역에 위치하는지 결정할 수 있다. 진단 대상 프로그램의 행동 특징 벡터가 정상 행동 특징 벡터 영역(310)에 위치하면 진단 대상 프로그램을 정상 프로그램으로, 진단 대상 프로그램의 행동 특징 벡터가 악성 행동 특징 벡터 영역(310)에 위치하면 진단 대상 프로그램을 악성 프로그램으로 진단할 수 있다.In step S840, based on the distance between the behavioral feature vectors calculated in step S830, it is diagnosed whether the diagnosis target program is a malicious code. According to an embodiment of the present invention, in step S840, the calculated feature is multiplied by an element of the weight vector to be compared with a predetermined threshold, so that the feature vector of the diagnosis target program is a normal behavior
본 발명의 일실시예에 따르면 단계(S840)에서는 하기 수학식 9의 값에 따라서 상기 계산된 거리에 상기 가중치 벡터의 원소를 곱할 수 있다.According to an embodiment of the present invention, in step S840, the element of the weight vector may be multiplied by the calculated distance according to the value of Equation 9 below.
[수학식 9][Equation 9]
는 진단 대상 프로그램으로부터 추출한 제1 행동 특징 벡터를, 는 i번째 샘플 프로그램으로부터 추출한 제2 행동 특징 벡터의 i번째 원소를 각각 나타낸다. 는 i번째 샘플 프로그램의 악성 여부로서, 본 발명의 일실시예에 따르면 i번째 샘플 프로그램이 정상 프로그램이면 -1'의 값을, 악성 프로그램이면 '+1'이 될 수 있다. 은 샘플 프로그램의 개수를, 는 가중치 벡터의 i번째 원소를 각각 나타낸다. 는 두 행동 특징 벡터 a, b 간의 거리에 반비례 하는 값으로서 하기 수학식 10에 의하여 결정된다. Is the first behavioral feature vector extracted from the program to be diagnosed, Denote i-th elements of the second behavioral feature vector extracted from the i-th sample program, respectively. Denotes whether the i th sample program is malicious, and according to an embodiment of the present invention, 'i' may be a value of -1 'if the i th sample program is a normal program and' +1 'if it is a malicious program. Is the number of sample programs, Each represents the i th element of the weight vector. Is a value inversely proportional to the distance between two behavioral feature vectors a and b, and is determined by Equation 10 below.
여기서, 가 0이 아닐 경우에만 대응되는 를 수학식 9의 계산에 사용한다. 따라서, 그 외의 제2 행동 특징 벡터들은 수학식 9의 계산에 영향을 미치지 않는다. 이들 가 0이 아닐 경우에만 대응되는 를 지지 벡터(Support Vector)라고 한다. 지지 벡터들은 일반적으로 정상 행동 특징 벡터 영역(310)과 악성 행동 특징 벡터 영역(320)의 경계 부근에 위치하므로 그 수가 전체 샘플 프로그램의 개수 에 비해 매우 작으며, 따라서 수학식 9의 계산량도 매우 작게 된다.here, Matches only if is not zero Is used in the calculation of equation (9). Thus, the other second behavioral feature vectors do not affect the calculation of equation (9). these Matches only if is not zero Is called a Support Vector. The support vectors are generally located near the boundary between the normal behavior
[수학식 10][Equation 10]
는 임의의 값을 가지는 상수로서, 본 발명의 일실시예에 따르면 는 '1'이 될 수 있다. Is a constant having an arbitrary value, according to an embodiment of the present invention. May be '1'.
본 발명의 일실시예에 따르면 단계(S840)는 상기 수학식 9의 값과 하기 수학식 11에 의하여 결정되는 소정의 임계값을 비교하여 진단 대상 프로그램에 대한 행동 특징 벡터가 정상 행동 특징 벡터 영역(310) 및 악성 행동 특징 벡터 영역(320)중에서 어느 영역에 위치하는지 결정할 수 있다.According to an embodiment of the present invention, step S840 may be performed by comparing the value of Equation 9 with a predetermined threshold value determined by Equation 11 below to determine whether the behavioral feature vector for the diagnosis target program is a normal behavioral feature vector region ( 310 and the malicious behavior
[수학식 11][Equation 11]
는 상기 소정의 임계값을, 은 정상 샘플 프로그램으로부터 추출한 제2 행동 특징 벡터를, 는 악성 샘플 프로그램으로부터 추출한 제2 행동특징 벡터를 각각 나타낸다. Is the predetermined threshold, Is the second behavioral feature vector extracted from the normal sample program, Respectively represent the second behavioral feature vectors extracted from the malicious sample program.
본 발명의 일실시예에 따르면, 단계(S840)에서는 상기 수학식 9의 값에 상기 소정의 임계값을 더하고, 상기 계산결과가 '0'보다 작은 경우에는 진단 대상 프로그램에 대한 행동 특징 벡터가 정상 행동 특징 벡터 영역(310)에, '0'보다 큰 경우라면 진단 대상 프로그램에 대한 행동 특징 벡터가 악성 행동 특징 벡터 영역(320)에 위치한다고 결정할 수 있다.According to an embodiment of the present invention, in step S840, the predetermined threshold value is added to the value of Equation 9, and when the calculation result is smaller than '0', the behavioral feature vector for the diagnosis target program is normal. If the behavioral
본 발명의 일실시예에 따르면, 단계(S840)는 하기 수학식 12의 값이 '0'보다 작은 경우에는 진단 대상 프로그램에 대한 행동 특징 벡터가 정상 행동 특징 벡터 영역(310)에, '0'보다 큰 경우라면 진단 대상 프로그램에 대한 행동 특징 벡터가 악성 행동 특징 벡터 영역(320)에 위치한다고 결정할 수 있다.According to an embodiment of the present invention, in step S840, when the value of Equation 12 is smaller than '0', the behavioral feature vector for the program to be diagnosed is '0' in the normal behavioral
[수학식 12][Equation 12]
도 9은 본 발명의 일실시예에 따라서 진단 대상 프로그램의 특성 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 방법을 단계별로 도시한 순서도이다. 이하 도 9을 참조하여 특성 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 방법을 상세히 설명하기로 한다.9 is a flowchart illustrating a step-by-step method of diagnosing whether a malicious program is a malicious program using a characteristic vector of a program to be diagnosed according to an embodiment of the present invention. Hereinafter, a method of diagnosing whether a malicious program is a malicious program using a characteristic vector will be described in detail with reference to FIG. 9.
단계(S910)에서는 진단 대상 프로그램으로부터 추출한 행동 특징에 기반하여 제1 행동 특징 벡터를 생성한다. 본 발명의 일실시예에 따르면 진단 대상 프로그램으로부터 전체 행동 특징이 아니라 일부 행동 특징만을 추출하고, 상기 일부 행동 특징에 기반하여 제1 행동 특징 벡터를 생성할 수 있다.In operation S910, a first behavioral feature vector is generated based on the behavioral feature extracted from the diagnosis target program. According to an embodiment of the present invention, only some behavioral features may be extracted from the program to be diagnosed, not all behavioral features, and a first behavioral feature vector may be generated based on the partial behavioral features.
단계(S920)에서는 이미 악성 여부가 알려진 복수의 샘플 프로그램에 대한 복수의 제2 행동 특징 벡터를 로드(load)한다. 본 발명의 일실시예에 따르면 복수의 샘플 프로그램은 적어도 하나 이상의 정상 프로그램 및 적어도 하나 이상의 악성 프로그램을 포함할 수 있다.In step S920, a plurality of second behavioral feature vectors for a plurality of sample programs that are known to be malicious are loaded. According to an embodiment of the present invention, the plurality of sample programs may include at least one normal program and at least one malicious program.
본 발명의 일실시예에 따르면 단계(S920)에서는 상기 복수의 샘플 프로그램의 복수의 제2 행동 특징 벡터 및 상기 복수의 샘플 프로그램 각각의 악성 여부에 기반하여 결정된 가중치 벡터를 로드할 수 있다.According to an embodiment of the present invention, in step S920, a weight vector determined based on whether a plurality of second behavioral feature vectors of the plurality of sample programs and each of the plurality of sample programs is malicious may be loaded.
단계(S930)에서는 생기 생성한 제1 행동 특징 벡터를 제1 특성 벡터로 고차 원 변환하고, 상기 로드한 복수의 제2 행동 특징 벡터를 제2 특성 벡터로 고차원 변환한다.In operation S930, the high-order transform of the generated first behavioral feature vector is transformed into a first characteristic vector, and the plurality of loaded second behavioral feature vectors are high-dimensionally transformed into a second characteristic vector.
단계(S940)에서는 제1 특성 벡터 및 상기 복수의 제2 특성 벡터간의 각각의 거리를 계산한다.In operation S940, respective distances between the first feature vector and the plurality of second feature vectors are calculated.
단계(S950)에서는 계산된 거리에 기반하여 상기 진단 대상 프로그램이 악성 코드인지 여부를 판단한다. 본 발명의 일실시예에 따르면 상기 계산된 거리에 상기 가중치 벡터의 원소를 곱하여 소정의 임계값과 비교함으로써 진단 대상 프로그램의 특성 벡터가 정상 특성 벡터 영역 및 악성 특성 벡터 영역 중에서 어느 영역에 위치하는지 결정할 수 있다.In step S950, it is determined whether the diagnosis target program is a malicious code based on the calculated distance. According to an embodiment of the present invention, the calculated distance is multiplied by an element of the weight vector to be compared with a predetermined threshold to determine which region of the feature vector of the diagnosis target program is located between a normal feature region and a malicious feature vector region. Can be.
본 발명의 일실시예에 따르면 단계(S950)에서는 진단 대상 벡터의 특성 벡터가 정상 특성 벡터 영역에 위치하는 경우에는 진단 대상 프로그램을 정상 프로그램으로 진단하고, 진단 대상 벡터의 특성 벡터가 악성 특성 벡터 영역이 위치하는 경우에는 진단 대상 프로그램을 악성 프로그램으로 진단할 수 있다.According to an embodiment of the present invention, in step S950, when the characteristic vector of the diagnosis target vector is located in the normal characteristic vector region, the diagnosis target program is diagnosed as a normal program, and the characteristic vector of the diagnosis target vector is a malicious characteristic vector region. In this case, the diagnosis target program can be diagnosed as a malicious program.
도 10은 본 발명의 일실시예에 따라서 진단 대상 프로그램의 행동 특징 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 악성 코드 진단 데이터를 생성하는 방법을 단계별로 도시한 순서도이다. 이하 도 10을 참조하여 행동 특징 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 악성 코드 진단 데이터를 생성하는 방법을 상세히 설명하기로 한다.10 is a flowchart illustrating a step-by-step method of generating malicious code diagnostic data for diagnosing whether a malicious program is a malicious program using a behavioral feature vector of a diagnostic target program according to an embodiment of the present invention. Hereinafter, a method of generating malicious code diagnostic data for diagnosing whether a malicious program is a malicious program using a behavioral feature vector will be described in detail.
단계(S1010)에서는 이미 악성 여부가 알려진 복수의 샘플 프로그램으로부터 각각의 행동 특징 벡터를 생성한다. 본 발명의 일실시예에 따르면 상기 복수의 샘 플 프로그램은 적어도 하나의 정상 프로그램 및 적어도 하나의 악성 프로그램을 포함할 수 있다.In step S1010, each behavioral feature vector is generated from a plurality of sample programs that are known to be malicious. According to an embodiment of the present invention, the plurality of sample programs may include at least one normal program and at least one malicious program.
단계(S1020)에서는 단계(S1010)생성한 복수의 행동 특징 벡터간의 각각의 거리를 계산한다. 본 발명의 일실시예에 따르면 상기 거리는 유클리디안 거리일 수 있다.In step S1020, each distance between the plurality of behavioral feature vectors generated in step S1010 is calculated. According to an embodiment of the present invention, the distance may be an Euclidean distance.
단계(S1030)에서는 단계(S1020)에서 계산한 복수의 행동 특징 벡터간의 거리 및 상기 샘플 프로그램 각각의 악성 여부에 기반하여 가중치 벡터를 결정한다.In step S1030, a weight vector is determined based on the distance between the plurality of behavior feature vectors calculated in step S1020 and whether each of the sample programs is malicious.
본 발명의 일실시예에 따르면 단계(S1030)에서는 정상 행동 특징 벡터 영역(310)과 악성 행동 특징 벡터 영역(320)을 정확히 구분하기 위하여, 하기 수학식 13에 따라 결정되는 을 최대화 하고, 하기 수학식 14 및 하기 수학식 15을 만족하도록 상기 가중치 벡터를 결정할 수 있다.According to an embodiment of the present invention, in step S1030, in order to accurately distinguish between the normal behavioral
[수학식 13][Equation 13]
는 i번째 샘플 프로그램으로부터 추출한 행동 특징 벡터를, 는 i번째 샘플 프로그램의 악성 여부로서 본 발명의 일실시예에 따르면 i번째 샘플 프로그램이 정상 프로그램이면 -1'의 값을, 악성 프로그램이면 '+1'이 될 수 있다. 는 두 행동 특징 벡터 a, b 간의 거리를, 은 샘플 프로그램의 개수를 는 가중치 벡터의 i번째 원소를 각각 나타낸다. Is the behavioral feature vector extracted from the i th sample program, The i-th sample program is malicious or not according to one embodiment of the present invention. If the i-th sample program is a normal program, the value may be -1, and if it is a malicious program, the value may be '+1'. Is the distance between two behavioral feature vectors a and b, Number of sample programs Each represents the i th element of the weight vector.
[수학식 14][Equation 14]
[수학식 15][Equation 15]
본 발명의 일실시예에 따르면 단계(S1030)에서는 악성 코드 진단 장치가 진단 대상 프로그램이 악성 프로그램인지 여부를 진단 하는데 이용되는 임계값을 결정할 수 있다.According to an embodiment of the present invention, in step S1030, the malware diagnosis apparatus may determine a threshold value used to diagnose whether the diagnosis target program is a malicious program.
[수학식 16][Equation 16]
는 상기 소정의 임계값을, 은 정상 샘플 프로그램으로부터 추출한 제2 행동 특징 벡터를, 는 악성 샘플 프로그램으로부터 추출한 제2 행동특징 벡터를 각각 나타낸다. Is the predetermined threshold, Is the second behavioral feature vector extracted from the normal sample program, Respectively represent the second behavioral feature vectors extracted from the malicious sample program.
단계(S1040)에서는 상기 생성된 각각의 행동 특징 벡터 및 상기 결정된 가중치 벡터를 저장한다. 본 발명의 일실시예에 따르면 단계(S1040)에서는 상기 결정된 소정의 임계값도 저장할 수 있다.In step S1040, the generated behavioral feature vector and the determined weight vector are stored. According to an embodiment of the present invention, in operation S1040, the determined predetermined threshold value may also be stored.
상기 저장된 소정의 임계값 및 가중치 벡터는 악성 코드 진단 장치가 진단 대상 프로그램이 악성 코드인지 여부를 판단하는데 이용된다.The stored predetermined threshold value and weight vector are used by the malicious code diagnosis apparatus to determine whether the diagnosis target program is malicious code.
본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매 체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 본 발명에서 설명된 이동 단말 또는 기지국의 동작의 전부 또는 일부가 컴퓨터 프로그램으로 구현된 경우, 상기 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체도 본 발명에 포함된다.Embodiments of the invention may be recorded on a computer readable medium containing program instructions for performing various computer-implemented operations. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those skilled in the art. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and floptical 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 not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. When all or part of the operation of the mobile terminal or base station described in the present invention is implemented as a computer program, a computer readable recording medium storing the computer program is also included in the present invention.
도 1은 본 발명에 따라서 컴퓨터 프로그램의 행동을 이용하여 악성 프로그램을 검사하는 방법을 단계별로 도시한 순서도이다.1 is a flowchart illustrating a step-by-step method for checking malicious programs using the behavior of computer programs in accordance with the present invention.
도 2는 샘플 프로그램으로부터 생성한 행동 특징 벡터를 행동 특징 벡터 공간상에 도시한 도면이다.2 is a diagram illustrating a behavioral feature vector generated from a sample program in a behavioral feature vector space.
도 3은 본 발명에 따라 행동 특징 벡터 공간을 악성 벡터 공간과 정상 벡터 공간으로 구분하는 악성 코드 진단 데이터 중에서 최적의 데이터를 선택하는 개념을 도시한 도면이다.3 is a diagram illustrating a concept of selecting optimal data from malicious code diagnostic data that divides a behavioral feature vector space into a malicious vector space and a normal vector space according to the present invention.
도 4는 본 발명의 일실시예에 따라 진단 대상 프로그램으로부터 생성한 행동 특징 벡터에 기반하여 진단 대상 프로그램이 악성 코드인지 여부를 진단하는 악성 코드 진단 장치의 구조를 도시한 도면이다.4 is a diagram illustrating a structure of a malicious code diagnosis apparatus for diagnosing whether a diagnosis target program is a malicious code based on a behavioral feature vector generated from the diagnosis target program according to an embodiment of the present invention.
도 5는 진단 대상 프로그램으로부터 생성한 행동 특징 벡터를 이용해서는 악성 프로그램인지 여부를 판단 할 수 없는 경우에, 행동 특징 벡터를 고차원 변환한 특성 벡터에 기반하여 진단 대상 프로그램이 악성 프로그램인지 여부를 진단하는 개념을 도시한 도면이다.5 is a method for diagnosing whether a program to be diagnosed is a malicious program based on a feature vector obtained by transforming a behavior feature vector into a high level when it is not possible to determine whether the program is a malicious program using the behavior feature vector generated from the diagnosis target program. It is a figure which shows a concept.
도 6는 본 발명의 일실시예에 따라서 진단 대상 프로그램으로부터 생성한 특성 벡터에 기반하여 진단 대상 프로그램이 악성 코드인지 여부를 진단하는 악성 코드 진단 장치의 구조를 도시한 도면이다.FIG. 6 is a diagram illustrating a structure of a malicious code diagnosis apparatus for diagnosing whether a diagnosis target program is a malicious code based on a feature vector generated from the diagnosis target program according to an embodiment of the present invention.
도 7은 본 발명의 일실시예에 따라서 샘플 프로그램의 행동 특징 벡터를 이용하여 악성 코드 진단 데이터를 생성하는 장치의 구조를 도시한 도면이다.FIG. 7 is a diagram illustrating a structure of an apparatus for generating malicious code diagnosis data using a behavioral feature vector of a sample program according to an embodiment of the present invention.
도 8는 본 발명의 일실시예에 따라서 진단 대상 프로그램의 행동 특징 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 방법을 단계별로 도시한 순서도이다.8 is a flowchart illustrating a step-by-step method of diagnosing whether a malicious program is a malicious program using a behavioral feature vector of a diagnostic target program according to an embodiment of the present invention.
도 9은 본 발명의 일실시예에 따라서 진단 대상 프로그램의 행동 특징 벡터를 이용하여 악성 프로그램인지 여부를 진단하는 방법을 단계별로 도시한 순서도이다.9 is a flowchart illustrating a step-by-step method of diagnosing whether a malicious program is a malicious program using a behavioral feature vector of a program to be diagnosed according to an embodiment of the present invention.
도 10은 본 발명의 일실시예에 따라서 진단 대상 프로그램의 행동 특징 벡터를 이용하여 악성 프로그램인지 여부를 진단하기 위해 사용되는 악성 코드 진단 데이터를 생성하는 방법을 단계별로 도시한 순서도이다.10 is a flowchart illustrating a step-by-step method of generating malicious code diagnostic data used for diagnosing whether a malicious program is a malicious program using a behavioral feature vector of a program to be diagnosed according to an embodiment of the present invention.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/099,649 US8245295B2 (en) | 2007-07-10 | 2008-04-08 | Apparatus and method for detection of malicious program using program behavior |
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 |
---|---|
KR20090005934A true KR20090005934A (en) | 2009-01-14 |
KR101329141B1 KR101329141B1 (en) | 2013-11-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 Before (1)
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 |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR101421136B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101858620B1 (en) * | 2017-01-10 | 2018-05-17 | 고려대학교 산학협력단 | Device and method for analyzing javascript using machine learning |
KR20220099749A (en) * | 2021-01-07 | 2022-07-14 | 국민대학교산학협력단 | Malware detection device and method based on hybrid artificial intelligence |
Families Citing this family (6)
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 |
KR102392642B1 (en) | 2017-11-08 | 2022-04-29 | 한국전력공사 | Apparatus and method for detecting software procedure change operation based on pattern using control flow graph |
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 |
Family Cites Families (4)
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 |
US7017186B2 (en) * | 2002-07-30 | 2006-03-21 | Steelcloud, Inc. | Intrusion detection system using self-organizing clusters |
KR20070095718A (en) * | 2006-03-22 | 2007-10-01 | 한국전자통신연구원 | System and method for detecting internet worm traffic by clustering traffic characterization classified by type |
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 |
-
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
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101858620B1 (en) * | 2017-01-10 | 2018-05-17 | 고려대학교 산학협력단 | Device and method for analyzing javascript using machine learning |
KR20220099749A (en) * | 2021-01-07 | 2022-07-14 | 국민대학교산학협력단 | Malware detection device and method based on hybrid artificial intelligence |
Also Published As
Publication number | Publication date |
---|---|
KR101421136B1 (en) | 2014-07-21 |
KR20090005933A (en) | 2009-01-14 |
KR101329141B1 (en) | 2013-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8245295B2 (en) | Apparatus and method for detection of malicious program using program behavior | |
KR101329141B1 (en) | Apparatus and method for detection of malicious program using program behavior | |
Hussain et al. | IMIAD: intelligent malware identification for android platform | |
US8713680B2 (en) | Method and apparatus for modeling computer program behaviour for behavioural detection of malicious program | |
CN109145600B (en) | System and method for detecting malicious files using static analysis elements | |
US20160021174A1 (en) | Computer implemented method for classifying mobile applications and computer programs thereof | |
US20100058475A1 (en) | Feedback-guided fuzz testing for learning inputs of coma | |
RU2617654C2 (en) | System and method of formation of anti-virus records used to detect malicious files on user's computer | |
US20090319829A1 (en) | Pattern extraction method and apparatus | |
JP2019057268A (en) | System and method of machine learning of malware detection model | |
RU2651196C1 (en) | Method of the anomalous events detecting by the event digest popularity | |
Yerima et al. | Longitudinal performance analysis of machine learning based Android malware detectors | |
RU2634177C1 (en) | System and method for unwanted software detection | |
CN107145446B (en) | Application program APP test method, device and medium | |
US8448248B2 (en) | Apparatus and method for repairing computer system infected by malware | |
Kuperberg et al. | Performance prediction for black-box components using reengineered parametric behaviour models | |
KR102000133B1 (en) | Apparatus and method for detecting malicious code based on collecting event information | |
CN115017505A (en) | PE virus detection method and device, electronic equipment and storage medium | |
KR102151318B1 (en) | Method and apparatus for malicious detection based on heterogeneous information network | |
KR102437278B1 (en) | Document malware detection device and method combining machine learning and signature matching | |
CN112632548B (en) | Malicious android program detection method and device, electronic equipment and storage medium | |
KR102110735B1 (en) | Method and system for re-generating binary for vulnerability detection | |
KR102046249B1 (en) | Method for Feature Selection of Machine Learning Based Malware Detection, RECORDING MEDIUM and Apparatus FOR PERFORMING THE METHOD | |
De Lille et al. | Automatically combining static malware detection techniques | |
Hu et al. | Malware Detection Based on Feature Library and Machine Learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161018 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171019 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20181024 Year of fee payment: 6 |