KR101427357B1 - Apparatus and method for curing computer system infected by malware - Google Patents
Apparatus and method for curing computer system infected by malware Download PDFInfo
- Publication number
- KR101427357B1 KR101427357B1 KR1020070099978A KR20070099978A KR101427357B1 KR 101427357 B1 KR101427357 B1 KR 101427357B1 KR 1020070099978 A KR1020070099978 A KR 1020070099978A KR 20070099978 A KR20070099978 A KR 20070099978A KR 101427357 B1 KR101427357 B1 KR 101427357B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- feature vector
- computer system
- malicious
- behavior feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 컴퓨터 시스템에서 실행되는 프로그램이 악성 프로그램인지 여부를 진단하고 치료하는 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and a method for diagnosing and remedying whether a program executed in a computer system is a malicious program.
본 발명에 따르면 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 장치에 있어서, 악성 프로그램 제어 서버로부터 상기 악성 프로그램에 대한 제1 행동 특징 벡터를 수신하는 수신부, 상기 수신한 제1 행동 특징 벡터 및 진단 대상 프로그램에 대한 제2 행동 특징 벡터에 기반하여 상기 진단 대상 프로그램이 상기 악성 프로그램에 상응하는지 여부를 판단하는 판단부, 및 상기 판단 결과에 따라서 상기 컴퓨터 시스템을 치료하는 치료부를 포함하는 것을 특징으로 하는 악성 프로그램 치료 장치가 제공된다.According to the present invention, there is provided an apparatus for treating a computer system infected with a malicious program, the apparatus comprising: a receiving unit for receiving a first behavioral feature vector for the malicious program from a malicious program control server; A second behavior feature vector for determining whether or not the diagnostic target program corresponds to the malicious program, and a treatment unit for treating the computer system according to the determination result Device is provided.
본 발명에 따르면 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 실시간으로 모델링할 수 있다.According to the present invention, the behavior of a computer program executed in a computer system can be modeled in real time.
악성 코드, 악성 프로그램, 행동 특징 Malicious code, malware, behavioral features
Description
본 발명은 컴퓨터 시스템에서 실행되는 프로그램이 악성 프로그램인지 여부를 진단하고 치료하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and a method for diagnosing and remedying whether a program executed in a computer system is a malicious program.
종래의 악성 프로그램 감시 기술에 따르면, 기존에 발생한 악성 프로그램의 샘플을 수집하여 악성 프로그램의 특징이 되는 일정한 문자열을 추출하고, 상기 문자열이 진단 대상 컴퓨터 시스템의 파일 등에 존재하는지 여부를 이용하여 악성 프로그램에 감염 되었는지 여부를 판단하였다.According to the conventional malicious program monitoring technology, samples of existing malicious programs are collected to extract a certain character string that is a characteristic of the malicious program, and whether or not the character string exists in a file of the diagnosis target computer system, It was judged whether or not it was infected.
따라서, 새로운 악성 프로그램이 발생하면, 새로운 악성 프로그램의 정체를 파악하고, 특징이 되는 문자열을 추출하여 상기 악성 프로그램에 대응하는 악성 프로그램을 감시하는 악성 프로그램 치료 장치가 개발되어야 했다. 이에, 기존의 악성 프로그램 치료 장치에 상기 악성 프로그램의 정보가 추가되기 전에는 상기 새로운 악성 프로그램에 대한 대비가 불가능하여, 새로운 악성 프로그램에 대한 피해는 막을 수 없다는 문제점을 가지고 있었다. 또, 악성 프로그램의 종류가 증가함에 따라서, 악성 프로그램의 특징이 되는 문자열의 종류도 비례하여 증가한다. 따라 서 악성 프로그램의 특징이 되는 문자열이 존재하는지 여부를 검사하는 과정에 소요되는 시간도 증가할 수 밖에 없었다.Therefore, when a new malicious program is generated, a malicious program remedy device has been developed which detects the identity of a new malicious program, extracts a character string that is characteristic, and monitors malicious programs corresponding to the malicious program. Accordingly, before the information of the malicious program is added to the existing malicious program remedy, the new malicious program can not be prepared and damage to the new malicious program can not be prevented. As the type of the malicious program increases, the type of the character string that characterizes the malicious program also increases proportionally. Therefore, the time required to check whether or not a character string which is a characteristic of a malicious program has increased.
만약 배터리등을 이용하여 전원을 공급받는 이동 전화, PDA등의 모바일 기기에서는 특정 프로그램에서 문자열을 추출하고, 종래 악성 프로그램의 특징이 되는 문자열과 동일한지 여부를 확인하는 절차에 소모되는 전력으로 인하여 모바일 기기의 동작 가능시간이 줄어드는 문제가 발생한다.If a mobile device such as a mobile phone or a PDA that receives power 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 that the operation time of the device 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, We could not cope with other attacks using numerous vulnerabilities.
대부분의 악성 프로그램들은 기존의 악성 프로그램과 전혀 다른, 새로운 프로그램이 아니라, 기존 악성 프로그램의 변종으로서 기존 악성 프로그램과 유사한 행동을 한다. 그러나 변종 악성 프로그램들을 검사하기 위해서는 종래 악성 프로그램으로부터 추출한 문자열이 아니라 변종 악성 프로그램으로부터 추출한 새로운 문자열을 사용해야 하므로, 각각의 변종 악성 프로그램들을 검사하기 위해서는 각각의 문자열을 구비해야 한다.Most malicious programs are not new programs that are completely different from existing malicious programs, but are variants of existing malicious programs that behave similar to existing malicious programs. However, in order to inspect variant malicious programs, it is necessary to use a new string extracted from a variant malicious program instead of a string extracted from a conventional malicious program. Therefore, each string must be provided in order to inspect each variant malicious program.
본 발명은 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 실시간으로 모델링하여 악성 프로그램 여부를 판단하는 것을 목적으로 한다.An object of the present invention is to determine the malicious program by modeling the behavior of a computer program executed in a computer system in real time.
본 발명은 진단 대상 프로그램이 악성 프로그램에 상응하는 것으로 판단된 경우에 악성 프로그램 제어 서버로부터 수신한 시스템 제어 신호에 기반하여 컴퓨터 시스템을 치료하고, 악성 프로그램의 확산을 방지하는 것을 목적으로 한다.The present invention aims at treating a computer system based on a system control signal received from a malicious program control server and preventing malicious programs from spreading when a program to be diagnosed is judged to correspond to a malicious program.
상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명은 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 장치에 있어서, 악성 프로그램 제어 서버로부터 상기 악성 프로그램에 대한 제1 행동 특징 벡터를 수신하는 수신부, 상기 수신한 제1 행동 특징 벡터 및 진단 대상 프로그램에 대한 제2 행동 특징 벡터에 기반하여 상기 진단 대상 프로그램이 상기 악성 프로그램에 상응하는지 여부를 판단하는 판단부, 및 상기 판단 결과에 따라서 상기 컴퓨터 시스템을 치료하는 치료부를 포함하는 것을 특징으로 하는 악성 프로그램 치료 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for treating a computer system infected with a malicious program, the apparatus comprising: a receiver for receiving a first behavioral feature vector for the malicious program from a malicious program control server; A determination unit configured to determine whether the diagnostic target program corresponds to the malicious program based on the received first behavior feature vector and a second behavior feature vector for the diagnostic target program; And a treatment unit for treating the malicious program.
본 발명의 일측에 따르면 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 방법에 있어서, 악성 프로그램 제어 서버로부터 상기 악성 프로그램에 대한 제1 행동 특징 벡터를 수신하는 단계, 상기 수신한 제1 행동 특징 벡터 및 진단 대상 프로그램에 대한 제2 행동 특징 벡터에 기반하여 상기 진단 대상 프로그램이 상기 악성 프로그램에 상응하는지 여부를 판단하는 단계, 및 상기 판단 결과에 따라서 상 기 컴퓨터 시스템을 치료하는 단계를 포함하는 것을 특징으로 하는 악성 프로그램 치료 방법이 제공된다.According to an aspect of the present invention, there is provided a method of treating a computer system infected with a malicious program, the method comprising: receiving a first behavioral feature vector for the malicious program from a malicious program control server; Judging whether or not the diagnostic target program corresponds to the malicious program based on a second behavioral feature vector for the program, and treating the computer system according to the determination result. A program therapy method is provided.
본 발명에 따르면 컴퓨터 시스템에서 실행되는 컴퓨터 프로그램의 행동을 실시간으로 모델링하여 악성 프로그램 여부를 판단할 수 있다.According to the present invention, the behavior of a computer program executed in a computer system can be modeled in real time to determine whether or not the program is malicious.
본 발명에 따르면 진단 대상 프로그램이 악성 프로그램에 상응하는 것으로 판단된 경우에 악성 프로그램 제어 서버로부터 수신한 시스템 제어 신호에 기반하여 컴퓨터 시스템을 치료하고, 악성 프로그램의 확산을 방지할 수 있다.According to the present invention, when it is determined that the program to be diagnosed corresponds to a malicious program, the computer system can be treated based on the system control signal received from the malicious program control server, and the malicious program can be prevented from spreading.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 진단 대상 프로그램의 행동을 이용하여 악성 프로그램을 검사하는 방법을 단계별로 도시한 순서도이다. 이하 도 1을 참조하여 악성 프로그램을 검사하는 방법을 상세히 설명하기로 한다.FIG. 1 is a flowchart showing a stepwise method of inspecting a malicious program using a behavior of a diagnostic target program. Hereinafter, a method for inspecting a malicious program will be described in detail with reference to FIG.
본 발명에서 설명하는 악성 프로그램 또는 악성 코드는 제작자가 의도적으로 사용자에게 피해를 주고자 만든 모든 악의의 목적을 가진 프로그램 및 매크로(macro), 스크립트(script) 등 컴퓨터 시스템상에서 작동하는 모든 실행가능한 형태의 프로그램을 말한다.The malicious program or malicious code described in the present invention may be any malicious program intended to cause harm to the user by the author, and may be any executable form that operates on a computer system such as a macro or a script. Program.
본 발명에서의 컴퓨터 시스템은 중앙 처리 장치(CPU)및 메모리가 포함되는 전자기기를 의미하는 것으로 해석된다. 구체적으로 이 전자기기는 PC, 노트북, 휴대폰, PDA(Personal Digital Assistant), 네비게이션 장치, 디지털 카메라, PMP(Portable Multimedia Player) 등의 다양한 형태의 전자 기기를 망라한다.The computer system in the present invention is interpreted to mean an electronic apparatus including a central processing unit (CPU) and a memory. Specifically, the electronic device covers various types of electronic devices such as a PC, a notebook, a mobile phone, a PDA (Personal Digital Assistant), a navigation device, a digital camera, and a PMP (Portable Multimedia Player).
단계(S110)에서는 악성 여부가 이미 알려진 샘플 프로그램의 행동을 모델링한다. 본 발명의 일실시예에 따르면 단계(S110)에서는 샘플 프로그램의 행동을 모델링 하여 행동 특징 벡터를 생성할 수 있다. 샘플 프로그램에는 악성 프로그램뿐만 아니라 정상 프로그램도 포함된다.In step S110, the behavior of the sample program, which is known to be malicious, is modeled. According to an embodiment of the present invention, in step S110, behavior of a sample program may be modeled to generate a behavior feature vector. The sample program includes normal programs as well as malicious programs.
단계(S120)에서는 생성된 행동 특징 벡터를 이용하여 악성 코드 진단 데이터를 생성한다. 본 발명의 일실시예에 따르면 악성 코드 진단 데이터는 가중치 벡터와 임계값을 포함할 수 있다.In step S120, malicious code diagnostic data is generated using the generated behavior feature vector. According to an embodiment of the present invention, the malicious code diagnostic data may include a weight vector and a threshold value.
단계(S130)에서는 진단 대상 프로그램으로부터 생성한 행동 특징 벡터를 이용하여 진단 대상 프로그램이 악성 코드인지 여부를 판단한다. 본 발명의 일실시예에 따르면 악성 코드 진단 데이터, 샘플 프로그램으로부터 생성한 행동 특징 벡터를 이용하여 전체 행동 특징 벡터 공간을 정상 행동 특징 벡터 영역과 악성 행동 특징 벡터 영역으로 구분한다. 본 발명의 일실시예에 따르면 진단 대상 프로그램으로부터 생성한 행동 특징 벡터가 정상 행동 특징 벡터 영역에 위치하면 진단 대상 프로그램을 정상 프로그램으로 판단하고, 진단 대상 프로그램으로부터 생성한 행동 특징 벡터가 악성 행동 특징 벡터 영역에 위치하면 진단 대상 프로그램을 악성 프로그램으로 판단할 수 있다.In step S130, it is determined whether the diagnostic target program is malicious code using the behavior feature vector generated from the diagnostic target program. According to an embodiment of the present invention, the entire behavior feature vector space is divided into a normal behavior feature vector region and a malicious behavior feature vector region using malicious code diagnosis data and behavior feature vectors generated from the sample program. According to an embodiment of the present invention, when the behavior feature vector generated from the diagnostic target program is located in the normal behavior feature vector area, the diagnostic program is determined as a normal program, and the behavior feature vector generated from the diagnostic program is determined as the malicious behavior feature vector Area, it is possible to judge the program to be diagnosed as a malicious program.
또 대부분의 악성 프로그램은 사용자의 컴퓨터 시스템에 침입하여 사용자의 데이터를 삭제하거나, 시스템 파일을 삭제하는 등 컴퓨터 시스템을 파괴하기 위한 행동은 대부분 유사하다.Most of the malicious programs are similar in behavior to destroy computer systems, such as infiltrating the user's computer system, deleting the user's data, or deleting system files.
따라서, 진단 대상 프로그램의 행동을 이용하여, 진단 대상 프로그램이 정상적인 프로그램인지, 악성 프로그램인지 여부를 판단한다면, 기존 문자열 비교 방식보다 훨씬 정확하게 악성 프로그램 여부를 판단할 수 있다. 또한 지금까지 알려지지 않은 새로운 변종 악성 프로그램에 대해서도 그 행동 만으로 악성 프로그램 여부를 판단할 수 있다.Therefore, if the program to be diagnosed is judged to be a normal program or a malicious program by using the behavior of the program to be diagnosed, the malicious program can be judged more accurately 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를 참조하여 컴퓨터 시스템을 치료하는 장치의 구조를 상세히 설명하기로 한다. 본 발명에 따른 악성 프로그램 치료 장치(200)는 수신부(210), 판단부(220), 치료부(230)를 포함한다.2 is a diagram showing a structure of an apparatus for treating a computer system infected with a malicious program according to the present invention. Hereinafter, the structure of an apparatus for treating a computer system will be described in detail with reference to FIG. The malicious program remedy apparatus 200 according to the present invention includes a receiving
수신부(210)는 악성 프로그램 치료 장치(200)와 통신망(240)을 통해 연결된 악성 프로그램 제어 서버(250)로부터 악성 프로그램에 대한 전부 또는 일부의 제1 행동 특징 벡터를 수신한다. 본 발명의 일실시예에 따르면 수신부(210)는 악성 프로그램에 대한 복수의 제1 행동 특징 벡터 중에서 악성 프로그램 제어 서버(250)에서 업데이트된 제1 행동 특징 벡터 또는 특정 제1 행동 특징 벡터 중에서 악성 프로그램 제어 서버(250)에서 업데이트된 부분만을 수신하여 제1 행동 특징 벡터를 업데이트 할 수 있다.The
판단부(220)는 상기 수신한 제1 행동 특징 벡터 및 진단 대상 프로그램에 대한 제2 행동 특징 벡터에 기반하여 상기 진단 대상 프로그램이 상기 악성 프로그램 에 상응하는지 여부를 판단한다.The
본 발명의 일실시예에 따르면 수신부(210)는 악성 프로그램뿐만 아니라 정상 프로그램에 대한 제1 행동 특징 벡터를 수신한다. 본 발명의 일실시예에 따르면 수신부(210) 는 정상 프로그램에 대한 복수의 제1 행동 특징 벡터 중에서 악성 프로그램 제어 서버(250)에서 업데이트된 제1 행동 특징 벡터 또는 특정 제1 행동 특징 벡터 중에서 악성 프로그램 제어 서버(250)에서 업데이트된 부분 만을 수신하여 제1 행동 특징 벡터를 업데이트할 수 있다. 판단부(220)는 악성 프로그램에 대한 제1 행동 특징 벡터 및 정상 특징 벡터에 대한 제1 행동 특징 벡터와 상기 진단 대상 프로그램에 대한 제2 행동 특징 벡터를 비교하고, 비교 결과에 따라서 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단할 수 있다.According to an embodiment of the present invention, the
치료부(230)는 판단부(220)의 판단 결과에 따라서 상기 컴퓨터 시스템을 치료한다. 본 발명의 일실시예에 따르면 치료부는 악성 프로그램에 감염된 파일을 삭제할 수 있다.The
본 발명의 일실시예에 따르면, 수신부(210)는 악성 프로그램 제어 서버(250)로부터 시스템 제어 신호를 수신하고, 치료부(230)는 상기 수신한 시스템 제어 신호에 기반하여 상기 컴퓨터 시스템을 치료할 수 있다. 본 발명의 일실시예에 따르면 시스템 제어 신호는 감염된 파일에 대한 삭제를 명령할 수도 있고, 상기 컴퓨터 시스템의 통신 장치 중에서 상기 진단 대상 프로그램과 연관된 통신 장치를 비활성화 시키는 것을 명령할 수도 있다.According to an embodiment of the present invention, the
악성 프로그램은 특정 컴퓨터 시스템에 장착된 통신 장치를 통하여 다른 컴 퓨터 시스템으로 침투한다. 예를 들어, 심비안 운영체제에서 동작 하는 컴워리어 바이러스는 블루투스(bluetooth) 통신 장치를 통하여 다른 컴퓨터 시스템으로 침투할 수 있다. 통신망(240)에 연결된 컴퓨터 시스템에서 컴워리어 바이러스가 발견된 경우에, 악성 프로그램 제어 서버(250)는 통신망(240)을 통하여 연결된 전체 컴퓨터 시스템으로 시스템 제어 신호를 전송할 수 있다. 시스템 제어 신호를 수신한 컴퓨터 시스템에서 실행되는 악성 프로그램 치료 장치는 컴퓨터 시스템에 설치된 통신 장치 중에서 블루투스 통신 장치를 비활성화 시킬 수 있다. 다른 컴퓨터 시스템으로부터 블루투스 통신 장치를 이용하여 컴워리어 바이러스가 침투할 수 없으므로, 통신망(240)에 연결된 컴퓨터 시스템간의 컴워리어 바이러스 확산을 막을 수 있다.A malicious program infiltrates another computer system through a communication device installed in a specific computer system. For example, a ComWorrier virus running on a Symbian operating system can penetrate other computer systems via a Bluetooth communication device. The malicious
본 발명의 일실시예에 따르면 치료부(230)는 판단부(220)의 판단 결과에 따라서 상기 컴퓨터 시스템의 통신 장치 중에서 상기 진단 대상 프로그램과 연관된 통신 장치를 비활성화 시키는 것을 명령할 수도 있다. 상기 컴퓨터 시스템이 악성 프로그램에 감염된 경우에도 상기 악성 프로그램이 다른 컴퓨터 시스템으로 침투하여 상기 다른 컴퓨터 시스템을 감염시키는 것을 방지할 수 있다.According to an embodiment of the present invention, the
도 3은 본 발명에 따라서 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 판단부의 구조를 도시한 도면이다. 이하 도 3을 참조하여 판단부의 구조를 상세히 설명하기로 한다. 본 발명에 따른 판단부는 시스템 사용 정보 저장부(310), 동작 함수 생성부(320), 연관성 판단부(330), 인코딩부(340) 및 결정부(350)를 포함한다.3 is a diagram showing a structure of a determination unit for determining whether or not a diagnostic target program corresponds to a malicious program according to the present invention. Hereinafter, the structure of the determination unit will be described in detail with reference to FIG. The determination unit according to the present invention includes a system usage
시스템 사용 정보 저장부(310)는 진단 대상 프로그램이 복수의 서로 다른 시각에 걸쳐 상기 컴퓨터 시스템의 자원을 사용하는 복수의 시스템 사용 정보를 저장한다. 진단 대상 프로그램은 컴퓨터 시스템이 제공하는 인터페이스 함수를 호출하거나, 상기 진단 대상 프로그램과 연관된 컴퓨터 시스템의 이벤트 발생 정보를 이용하여 작업을 수행한다. 본 발명의 일실시예에 따르면 시스템 사용 정보 저장부(310)는 진단 대상 프로그램이 특정 인터페이스 함수를 호출한 정보 또는, 이벤트 발생 정보를 이용한 정보 등을 저장할 수 있다.The system use
동작 함수 생성부(320)는 상기 저장된 복수의 시스템 사용 정보간의 상호 연관성에 기반하여 상기 진단 대상 프로그램과 연관된 동작 함수를 생성한다.The operation
예를 들어, 컴퓨터 프로그램이 컴퓨터 시스템에 설치된 무선 통신 장치를 이용하여 데이터를 다른 컴퓨터 시스템으로 전송하기 위해서, 컴퓨터 프로그램은 무선 통신 장치가 설치되어 있는지, 다른 컴퓨터 프로그램에 의해서 사용되고 있지는 않은지 여부를 확인한다. 또 무선 통신 장치에 대한 접근 권한을 획득하고, 무선 통신 장치로 데이터를 전송하며, 데이터 전송이 끝난 후에는 무선 통신 장치에 대한 접근 권한을 다시 컴퓨터 시스템에 반납한다.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 . Acquires an access right to the wireless communication device, transmits 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.
이러한 각각의 동작을 수행하기 위한 각각의 인터페이스 함수를 단위로 컴퓨터 프로그램의 행동 특징 벡터를 추출한다면, 그 과정이 너무 복잡하므로, 서로 연관된 시스템 사용 정보를 동작 함수로 구성하고, 동작 함수를 단위로 컴퓨터 프로그램의 행동 특징 벡터를 추출하면 추출 과정이 상대적으로 간단해 진다.If the behavioral feature vector of the computer program is 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, If the behavioral feature vector of the program is extracted, the extraction process becomes relatively simple.
인코딩부(340)는 상기 생성된 복수의 동작 함수를 인코딩하여 상기 진단 대 상 함수에 대한 제2 행동 특징 벡터를 생성한다.The
본 발명의 일실시예에 따라서 진단 대상 프로그램의 행동을 이용하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 방법은, 진단 대상 프로그램이 특정한 행동을 한 이후에만 판단 가능하다. 따라서, 본 발명을 실제 컴퓨터 시스템에 적용하기 위해서는 진단 대상 프로그램의 행동을 실시간(real time)으로 모델링하여 행동 특징 벡터를 생성하고, 생성한 행동 특징 벡터에 기반하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 신속히 판단해야 한다.The method for determining whether or not the diagnostic target program corresponds to the malicious program by using the behavior of the diagnostic object program according to the embodiment of the present invention can be determined only after the diagnostic object program has performed a specific action. Therefore, in order to apply the present invention to an actual computer system, it is necessary to model behavior of a program to be diagnosed in real time to generate a behavior feature vector, and based on the generated behavior feature vector, Judge promptly.
시스템 사용 정보 저장부(310)가 저장한 모든 시스템 사용 정보나, 동작 함수 생성부(320)가 생성한 모든 동작 함수를 대상으로 진단 대상 프로그램의 행동을 특정한다면 행동 특징 벡터를 실시간으로 생성하기 어렵다.It is difficult to generate a behavior feature vector in real time if all the system use information stored in the system use
동작 함수 생성부(320)가 생성한 복수의 동작 함수 중에는 진단 대상 프로그램의 행동을 특정하기에 적합한 동작 함수도 존재 하지만, 적합하지 않은 동작 함수도 존재한다. 진단 대상 프로그램의 행동을 특정하기에 적합한 동작 함수는 다른 동작 함수와 연관되어 있는 것이 일반적이다. 동작 함수 생성부(320)가 생성한 동작 함수 중에서 진단 대상 프로그램의 행동을 특정하기 위하여 적합한 동작 함수만을 대상으로 하여 행동 특징 벡터를 생성한다면, 진단 대상 프로그램에 대한 행동 특징 벡터를 실시간으로 생성할 수 있다.Among the plurality of operation functions generated by the operation
악성 프로그램도 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 컴퓨터 시스템을 조작하기 위한 프로그램을 복사할 수 있지만, 정상적인 프로그램도 컴퓨터 시스템의 성능을 향상시키기 위하여 컴퓨터 시스템의 시스템 파일이 저장된 디 렉토리에 파일을 복사할 수 있다. 컴퓨터 프로그램이 컴퓨터 시스템의 시스템 파일이 저장된 디렉토리에 파일을 복사하려는 것 만으로는 컴퓨터 프로그램이 정상적인 프로그램인지 악성 프로그램인지 판단할 수 없다.Malicious programs can also copy programs for operating the computer system to the directory where the system files of the computer system are stored. However, in order to improve the performance of the computer system, normal programs also copy files to the directory where the system files of the computer system are stored . The computer program can not determine whether the computer program is a normal program or a malicious program by merely copying the file to the directory where the system file of the computer system is stored.
그러나 특정 컴퓨터 프로그램이 컴퓨터 시스템의 외부로부터 실행 파일을 수신한 후에, 컴퓨터 시스템의 시스템 디렉토리에 수신한 실행 파일을 복사하고, 또 복사한 실행 파일을 주기적으로 외부 장치에 복사하려 한다면, 상기 특정 컴퓨터 프로그램을 악성 컴퓨터 프로그램으로 의심할 수 있다. 파일을 수신하는 동작 함수, 시스템 디렉토리에 파일을 복사하는 동작 함수, 외부 장치에 복사하는 동작 함수는 서로 연관되어 있고, 상기 특정 컴퓨터 프로그램의 행동을 특정하기에 적합하다.However, if a specific computer program receives an executable file from the outside of the computer system and then copies the executable file received in the system directory of the computer system and periodically copies the copied executable file to the external device, As a malicious computer program. An operation function for receiving a file, an operation function for copying a file in the system directory, and an operation function for copying to an external device are related to each other and are suitable for specifying the behavior of the specific computer program.
본 발명의 일실시예에 따르면, 판단부(300)는 상기 생성된 복수의 동작 함수들간의 상호 연관성을 판단하는 연관성 판단부를 더 포함하고, 상기 인코딩부(340)는 상기 상호 연관성을 가지는 동작 함수들을 인코딩하여 상기 제2 행동 특징 벡터를 생성할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 상기 인코딩부(340)는, 상기 복수의 동작함수 중에서 적어도 하나 이상의 동작 함수가 상기 컴퓨터 시스템의 시스템 디렉토리에 접근하는 경우에 한하여, 상기 진단 대상 프로그램에 대하여 제2 행동 특징 정보를 생성할 수 있다.According to one embodiment of the present invention, the
본 발명의 일실시예에 따르면 연관성 판단부(330)는 제1 동작 함수가 생성 또는 수정한 파일을 제2 동작 함수가 로드하는 경우에, 상기 제1 동작 함수 및 상기 제2 동작 함수는 상호 연관된 것으로 판단할 수 있다.According to an embodiment of the present invention, when the second operation function loads a file generated or modified by the first operation function, the association determining unit 330 determines that the first operation function and the second operation function are associated with each other .
본 발명의 일실시예에 따르면 연관성 판단부(330)는 제1 동작 함수의 실행 결과에 따라서 제2 동작 함수가 호출되는 경우에, 상기 제1 동작 함수 및 상기 제2 동작 함수는 상호 연관된 것으로 판단할 수 있다.According to an embodiment of the present invention, when the second operation function is called according to the execution result of the first operation function, the association determining unit 330 determines that the first operation function and the second operation function are correlated with each other can do.
본 발명의 일실시예에 따르면 연관성 판단부(330)는 제1 동작 함수가 실행되고, 소정의 시간 이내에 상기 제2 동작 함수가 호출되는 경우에 한하여, 상기 제1 동작 함수 및 상기 제2 동작 함수는 상호 연관된 것으로 판단할 수 있다.According to an embodiment of the present invention, the association determining unit 330 determines whether the first operation function is executed and the second operation function is called within a predetermined time, Can be judged to be correlated with each other.
본 발명의 일실시예에 따르면, 진단 대상 프로그램에 대한 행동 특징 벡터를 실시간으로 생성하기 위하여 제1 동작 함수의 실행 이후 소정의 시간 이내에 실행된 제2 동작 함수만을 대상으로 하여 상호 연관성을 판단할 수 있다.According to an embodiment of the present invention, in order to generate a behavior feature vector for a diagnosis target program in real time, only the second operation function executed within a predetermined time after execution of the first operation function can be determined have.
결정부(350)는 악성 프로그램에 대한 제1 행동 특징 벡터와 상기 생성한 진단 대상 프로그램에 대한 제2 행동 특징 벡터를 비교하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 결정한다. 본 발명의 일실시예에 따르면 결정부(350)는 악성 프로그램에 대한 제1 행동 특징 벡터뿐만 아니라, 정상 프로그램에 대한 제1 행동 특징 벡터와 진단 대상 프로그램에 대한 제2 행동 특징 벡터를 비교하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 결정할 수 있다.The
도 4는 본 발명에 따른 인코딩부가 복수의 동작 함수를 인코딩하여 생성한 행동 특징 벡터의 일실시예를 도시한 도면이다. 이하 도 4를 참조하여 인코딩부의 동작을 상세히 설명하기로 한다. 본 발명의 일실시예에 따른 행동 특징 벡터(400)는 빈도 저장 영역(410) 및 선후 관계 저장 영역(420)을 포함한다.FIG. 4 is a diagram illustrating an embodiment of a behavior feature vector generated by encoding a plurality of operation functions by the encoding unit according to the present invention. Hereinafter, the operation of the encoding unit will be described in detail with reference to FIG. The
본 발명의 일실시예에 따르면 인코딩부(340)는 진단 대상 프로그램의 한 생명 주기(Life Cycle)에 대하여 각각의 동작 함수의 발생 빈도를 진단 대상 프로그램의 행동 특징 벡터로서 인코딩할 수 있다.According to an embodiment of the present invention, the
생명 주기는 각각의 악성 프로그램이 컴퓨터 시스템을 감염시키고, 사용자의 데이터 또는 시스템 데이터를 파괴하는 등 악성 프로그램의 증상을 나타내고, 다시 다른 컴퓨터 시스템을 감염시키는 시간으로 정의될 수 있다.The life cycle can be defined as the time at which each malicious program infects a 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 call a specific action function many times, and not any other action function, among all the action functions that the computer system provides during a life cycle. Therefore, whether or not the diagnostic target computer program calls a specific operation function during one life cycle can be a feature of the diagnostic program.
본 발명의 일실시예에 따르면, 행동 특징 벡터(400)는 진단 대상 프로그램이 호출하는 각각의 동작 함수의 호출 빈도를 저장하는 빈도 저장 영역(720)을 포함할 수 있다.According to one embodiment of the present invention, the
본 발명의 일실시예에 따르면 인코딩부(340)는 상기 복수의 동작 함수에 각각 상응하는 복수의 원소를 빈도 저장 영역(720)에 포함시키고, 각각의 원소에 동작 함수의 발생 빈도를 저장할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면 인코딩부(340)는 특징에는 각각의 동작 함수가 호출되어 실행된 발생 빈도뿐만 아니라, 각각의 동작 함수 상호간의 시간적 선후 관계도 인코딩하여 진단 대상 프로그램의 행동 특징 벡터를 생성할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 행동 특징 벡터(400)는 컴퓨터 프로그램이 호출하는 동작 함수 상호간의 시간적 선후 관계를 저장하는 선후 관계 저장 영역(420)을 포함할 수 있다.According to one embodiment of the present invention, the
본 발명의 일실시예에 따르면 인코딩부(340)는 선후 관계 저장 영역(420)에 제1 동작 함수 및 제2 동작 함수의 조합에 상응하는 원소를 포함시키고, 각각의 원소에 상기 제1 동작 함수 및 제2 동작 함수간의 시간적 선후 관계를 저장할 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 인코딩부(340)는 제1 동작 함수 및 제2 동작 함수간의 시간적 선후 관계를 '0'과 '1'에 대응시켜 동작 함수간의 시간적 선후 관계를 저장하는 각각의 원소는 이진화된 값을 가질 수 있다.According to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 제1 동작 함수가 제2 동작 함수보다 먼저 호출된 경우에는 상기 함수의 조합에 상응하는 원소에 '1'을 저장하고, 나중에 호출된 경우에는 '0'을 저장할 수 있다.According to an embodiment of the present invention, when the first operation function is called before the second operation function, '1' is stored in the element corresponding to the combination of the functions, and '0' is stored when it is called later .
본 발명의 일실시예에 따르면 인코딩부(340)는 진단 대상 프로그램의 한 생명 주기에서 생성된 동작 함수 중에서, 일부 동작 함수만을 인코딩하여 제2 행동 특징 벡터를 생성하고, 결정부(350)는 상기 일부의 동작 함수만을 인코딩하여 생성된 제2 행동 특징 벡터와 악성 프로그램에 대한 제1 행동 특징 벡터를 비교하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 결정할 수 있다.According to an embodiment of the present invention, the
도 5는 본 발명에 따른 판단부가 제1 행동 특징 벡터 및 제2 행동 특징 벡터를 비교하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 개념을 도시한 도면이다. 이하 도 5를 참조하여 판단부의 동작을 상세히 설명하기로 한다.FIG. 5 is a diagram illustrating a concept of determining whether a diagnosis target program corresponds to a malicious program by comparing a first behavior feature vector and a second behavior feature vector with the determination unit according to the present invention. Hereinafter, the operation of the determination unit will be described in detail with reference to FIG.
도 5에서는 정상적인 프로그램으로부터 생성한 행동 특징 벡터(511, 512) 및 악성 프로그램으로부터 생성한 행동 특징 벡터(521, 522)가 2차원의 행동 특징 벡터 공간상에 위치한 실시예가 도시되었으나, 본 발명은 행동 특징 벡터 공간이 2차원 이상인 경우에 대해서도 적용 될 수 있다.In FIG. 5, the
정상적인 프로그램으로부터 추출한 행동 특징들은 서로 유사하고, 악성 프로그램으로부터 추출한 행동 특징들은 서로 유사하다. 그러나 정상 프로그램으로부터 추출한 행동 특징과 악성 프로그램으로부터 추출한 행동 특징은 서로 유사하지 않다. 따라서 정상적인 프로그램과 악성 프로그램으로부터 추출한 각각의 행동 특징에 기반하여 생성된 정상 행동 특징 벡터와 악성 행동 특징 벡터는 서로 비유사하다. 정상 행동 특징 벡터(511, 512)들과 악성 행동 특징 벡터(521, 522)들은 행동 특징 벡터 공간상에서 서로 구분된 영역에 위치한다.The behavioral features extracted from the normal program are similar to each other, and the behavioral characteristics extracted from the malicious program are similar to each other. However, behavioral features extracted from normal programs and behavioral features extracted from malicious programs are not similar. Therefore, the normal behavioral feature vector and the malicious behavioral feature vector generated based on the behavioral features extracted from the normal program and the malicious program are similar to each other. The normal
따라서, 본 발명에 따른 악성 프로그램 치료 장치는 행동 특징 벡터 공간을 정상 행동 특징 벡터(511, 512)가 위치하는 정상 행동 특징 벡터 영역(510)과 악성 행동 특징 벡터(521, 522)가 위치하는 악성 행동 특징 벡터 영역(520)으로 구분한다. 악성 프로그램 치료 장치는 진단 대상 프로그램으로부터 생성한 행동 특징 벡터가 정상 행동 특징 벡터 영역(510) 및 악성 행동 특징 벡터 영역(520) 중에서 어느 영역에 속하는지 여부로 진단 대상 프로그램이 악성 코드 인지 여부를 판단할 수 있다.Accordingly, the malicious program remedy apparatus according to the present invention is characterized in that the behavior feature vector space is divided into a normal behavior
행동 특징 벡터 공간상의 특정한 영역(540)에 위치한 행동 특징 벡터에 상응하는 진단 대상 프로그램들은 정상 행동 특징 벡터 영역(510)과 악성 행동 특징 벡터 영역(520)을 구분하는 경계(531, 532)에 따라서 악성 코드 여부에 대한 진단 결과가 달라질 수 있다. 본 발명의 일실시예에 따르면 특정한 영역(540)에 위치하는 행동특징 벡터에 상응하는 진단 대상 프로그램에 대해서도 악성 여부를 정확히 판단할 수 있는 경계(531, 532)를 선택할 수 있다.The diagnostic programs corresponding to the behavior feature vector located in the
도 6은 본 발명에 따라서 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 방법을 단계별로 설명한 순서도이다. 이하 도 6을 참조하여 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 방법을 상세히 설명하기로 한다.6 is a flowchart illustrating a step-by-step method for treating a computer system infected with a malicious program according to the present invention. Hereinafter, a method for treating a computer system infected with a malicious program will be described in detail with reference to FIG.
단계(S610)에서는 악성 프로그램 제어 서버로부터 상기 악성 프로그램에 대한 제1 행동 특징 벡터를 수신한다. 본 발명의 일실시예에 따르면 단계(S610)에서는 악성 프로그램에 대한 복수의 제1 행동 특징 벡터 중에서 악성프로그램 제어 서버에서 업데이트된 적어도 하나 이상의 제1 행동 특징 벡터 또는 특징 제1 행동 특징 벡터 중에서 악성 프로그램 제어 서버에서 업데이트된 부분만을 수신하여 제1 행동 특징 벡터를 업데이트할 수 있다. 악성 프로그램 제어 서버는 각각의 컴퓨터 시스템과 통신망을 통해 연결된다. 본 발명의 일실시예에 따르면 단계(S610)에서는 악성 프로그램에 대한 제1 행동 특징 벡터뿐만 아니라 정상 프로그램에 대한 제1 행동 특징 벡터를 수신할 수 있다. 본 발명의 일실시예에 따르면 정상 프로그램에 대한 복수의 제1 행동 특징 벡터 중에서 악성 프로그램 제어 서버에서 업데이트된 적어도 하나 이상의 제1 행동 특징 벡터 또는 특정 제1 행동 특징 벡터 중에서 악성 프로그램 제어 서버에서 업데이트된 일부분만을 수신하여 제1 행동 특징 벡터를 업데이트할 수 있다.In step S610, the first behavior feature vector for the malicious program is received from the malicious program control server. According to an embodiment of the present invention, among the plurality of first behavior feature vectors for the malicious program, at least one or more first behavior feature vectors or feature first behavior feature vectors updated by the malicious program control server, The first behavior feature vector can be updated by receiving only the updated part in the control server. The malicious program control server is connected to each computer system through a communication network. According to an embodiment of the present invention, in step S610, a first behavior feature vector for a malicious program as well as a first behavior feature vector for a normal program may be received. According to an embodiment of the present invention, among the plurality of first behavior feature vectors for the normal program, at least one of the at least one first behavior feature vector or the specific first behavior feature vector updated at the malicious program control server, It is possible to receive only a part and update the first behavior feature vector.
단계(S620)에서는 수신한 제1 행동 특징 벡터 및 진단 대상 프로그램에 대한 제2 행동 특징 벡터에 기반하여 상기 진단 대상 프로그램이 상기 악성 프로그램에 상응하는지 여부를 판단한다. 본 발명의 일실시예에 따르면 진단 대상 프로그램에 대한 제2 행동 특징 벡터를 생성한다. 정상 프로그램에 대한 제1 행동 특징 벡터 및 악성 프로그램에 대한 제1 행동 특징 벡터와 제2 행동 특징 벡터를 비교하여 상기 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단할 수 있다.In step S620, it is determined whether or not the diagnosis target program corresponds to the malicious program based on the received first behavior feature vector and the second behavior feature vector for the diagnosis target program. According to an embodiment of the present invention, a second behavior feature vector for a diagnosis target program is generated. The first behavior feature vector for the normal program and the first behavior feature vector for the malicious program are compared with the second behavior feature vector to determine whether or not the diagnosis target program corresponds to the malicious program.
단계(S630)에서는 단계(S620)에서의 판단 결과에 따라서 상기 컴퓨터 시스템을 치료할 수 있다. 본 발명의 일실시예에 따르면 진단 대상 프로그램이 악성 프로그램에 상응하는 것으로 판단된 경우에 상기 진단 대상 프로그램에 감염된 파일을 모두 삭제 할 수 있다.In step S630, the computer system may be treated according to the determination result in step S620. According to an embodiment of the present invention, when it is determined that the diagnostic target program corresponds to a malicious program, all of the files infected to the diagnostic target program can be deleted.
본 발명의 일실시예에 따르면 단계(S630)에서는 진단 대상 프로그램이 악성 프로그램에 상응하는 것으로 판단된 경우에, 상기 컴퓨터 시스템의 통신 장치 중에서 상기 진단 프로그램과 연관된 통신 장치를 비활성화 시킬 수 있다. 컴퓨터 시스템에 설치된 복수의 통신 장치 중에서 악성 프로그램이 컴퓨터 시스템으로 침입하는 통신 장치만을 비활성화할 수 있다. 다른 통신 장치는 정상적으로 사용하고, 악성 프로그램과 연관된 통신 장치만 사용할 수 없으므로, 컴퓨터 시스템을 사용하는 사용자의 불편을 최소화 할 수 있다.According to an embodiment of the present invention, in step S630, when it is determined that the diagnostic target program corresponds to a malicious program, the communication device associated with the diagnostic program among the communication devices of the computer system may be deactivated. It is possible to deactivate only a communication device which malicious program intrudes into the computer system among a plurality of communication devices installed in the computer system. Other communication apparatuses can normally use and only the communication apparatuses associated with the malicious program can be used, so that the inconvenience of the user using the computer system can be minimized.
도 7은 본 발명에 따라서 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 방법을 단계별로 설명한 순서도이다. 이하 도 7을 참조하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 방법을 상세히 설명하기로 한다.FIG. 7 is a flowchart illustrating a method of determining whether or not a diagnostic target program corresponds to a malicious program according to the present invention. Hereinafter, a method for determining whether a diagnostic target program corresponds to a malicious program will be described in detail with reference to FIG.
단계(S710)에서는 진단 대상 프로그램이 복수의 서로 다른 시각에 걸쳐 상기 컴퓨터 시스템의 자원을 사용하는 복수의 시스템 사용 정보를 저장한다. 본 발명의 일실시예에 따르면 진단 대상 프로그램이 특정 인터페이스 함수를 호출한 정보 또는, 이벤트 발생 정보를 이용한 정보 등을 시스템 사용 정보로서 저장할 수 있다.In step S710, the diagnosis target program stores a plurality of system usage information using resources of the computer system over a plurality of different time periods. According to an embodiment of the present invention, information that calls a specific interface function, information using event occurrence information, and the like can be stored as system use information.
단계(S720)에서는 저장된 시스템 사용 정보간의 상호 연관성에 기반하여 상기 진단 대상 프로그램과 연관된 복수의 동작 함수를 생성한다. 본 발명의 일실시예에 따르면 특정 파일을 로드하고, 상기 파일을 수정하고, 또 상기 파일을 저장하는 각각의 시스템 사용 정보는 서로 연관되어 있다고 볼 수 있다. 상기 연관된 시스템 사용 정보에 기반하여 상기 특정 파일을 수정하는 동작 함수를 생성하고, 상기 생성된 동작 함수를 기본 단위로 하여 진단 대상 프로그램의 행동을 특정할 수 있다.In step S720, a plurality of operation functions associated with the diagnosis target program are generated based on the correlation between the stored system usage information. According to an embodiment of the present invention, the system usage information for loading a specific file, modifying the file, and storing the file may be related to each other. An operation function for modifying the specific file may be generated based on the associated system usage information, and a behavior of the diagnostic target program may be specified using the generated operation function as a basic unit.
단계(S730)에서는 상기 생성된 복수의 동작 함수를 인코딩하여 상기 제2 행동 특징 벡터를 생성한다. 본 발명의 일실시예에 따르면 상기 생성된 복수의 동작 함수간의 상호 연관성을 판단하고, 상호 연관된 동작 함수만을 선택하여 상기 제2 행동 특징 벡터를 생성할 수 있다. 단계(S720)에서 생성된 동작 함수는 서로 연관된 시스템 사용 정보에 기반한 것이지만, 동작 함수 상호간에는 연관성이 없을 수 있다. 진단 대상 프로그램은 서로 연관된 동작 함수를 순차적으로 호출하여 작업을 수행하므로, 서로 연관된 동작 함수만을 인코딩하여 진단 대상 프로그램에 대한 제2 행동 특징 벡터를 생성할 수 있다.In operation S730, the generated plurality of operation functions are encoded to generate the second behavior feature vector. According to an embodiment of the present invention, it is possible to determine the correlation between the generated plurality of operation functions and to generate the second behavior feature vector by selecting only the mutually related operation functions. The operation functions generated in step S720 are based on mutually related system usage information, but may not be related to each other. Since the diagnostic target program sequentially performs the operations by calling the related operation functions, it is possible to generate the second behavior feature vectors for the diagnostic target program by encoding only the related operation functions.
본 발명의 일실시예에 따르면 상기 생성된 복수의 동작 함수간의 상호 연관성을 판단하는 단계를 더 포함하고, 상기 판단 결과에 기반하여 상기 상호 연관성을 가지는 동작 함수들을 인코딩하여 상기 진단 대상 프로그램에 대한 상기 제2 행동 특징 벡터를 생성할 수 있다.According to an embodiment of the present invention, the method further includes determining a correlation between the generated plurality of operation functions, encoding operation functions having the correlation based on the determination result, A second behavior feature vector may be generated.
본 발명의 일실시예에 따르면 상기 생성된 복수의 동작 함수간의 상호 연관성을 판단하는 단계는 제1 동작 함수의 실행 결과에 따라서 제2 동작 함수가 호출되는 경우에, 상기 제1 동작 함수 및 상기 제2 동작 함수는 상호 연관된 것으로 판단할 수 있다.According to an embodiment of the present invention, the step of determining the correlation between the generated plurality of operation functions may include determining, when the second operation function is called according to the execution result of the first operation function, 2 < / RTI > function can be determined to be correlated.
본 발명의 일실시예에 따르면 상기 생성된 복수의 동작 함수간의 상호 연관성을 판단하는 단계는 제1 동작 함수가 생성 또는 수정한 파일을 제2 동작 함수가 로드하는 경우에, 상기 제1 동작 함수 및 상기 제2 동작 함수는 상호 연관된 것으로 판단할 수 있다.According to an embodiment of the present invention, the step of determining the correlation between the generated plurality of operation functions may include determining whether the second operation function loads a file generated or modified by the first operation function, The second operation function may be determined to be correlated with each other.
본 발명의 일실시예에 따르면 상기 생성된 복수의 동작 함수간의 상호 연관성을 판단하는 단계는 제1 동작 함수가 실행되고 소정의 시간 이내에 제2 동작 함수가 호출되는 경우에 한하여, 상기 제1 동작 함수 및 상기 제2 동작 함수는 상호 연관된 것으로 판단할 수 있다. 제1 동작 함수가 실행된 이후, 상기 제1 동작 함수와 연관된 제2 동작 함수가 실행되는지 여부를 판단하기 위하여 무한한 시간 동 안 진단 대상 프로그램이 상기 컴퓨터 시스템의 자원을 사용하는 시스템 사용 정보를 수집할 수는 없다. 따라서 제1 동작 함수가 실행된 이후 소정의 시간 동안 호출된 동작 함수만을 대상으로 제1 동작 함수와의 상호 연관성이 있는지 여부를 판단한다.According to an embodiment of the present invention, the step of determining the correlation between the generated plurality of operation functions may be performed only when the first operation function is executed and the second operation function is called within a predetermined time, And the second operation function may be determined to be correlated with each other. After the first operation function is executed, the diagnostic program collects system usage information using resources of the computer system for an infinite period of time to determine whether or not a second operation function associated with the first operation function is executed There is no number. Therefore, it is determined whether there is a correlation with the first operation function only for the operation function called for a predetermined time after the first operation function is executed.
악성 프로그램은 실행 파일을 컴퓨터 시스템의 시스템 디렉토리에 복사하고 상기 실행 파일을 실행시키거나 다른 컴퓨터 시스템으로 복사하여 상기 다른 컴퓨터 시스템을 감염시킨다. 본 발명의 일실시예에 따르면 진단 대상 프로그램의 동작 함수 중에서 컴퓨터 시스템의 시스템 디렉토리에 접근하는 동작 함수가 없는 경우에는 상기 진단 대상 프로그램은 악성 프로그램이 아닌 것으로 판단하고 상기 진단 대상 프로그램에 대해서는 제2 행동 특징 벡터를 생성하지 않을 수 있다. 본 발명의 일실시예에 따르면 진단 대상 프로그램의 복수의 동작함수 중에서 적어도 하나 이상의 동작 함수가 상기 컴퓨터 시스템의 시스템 디렉토리에 접근하는 경우에 한하여, 상기 진단 대상 프로그램에 대하여 제2 행동 특징 정보를 생성할 수 있다.The malicious program copies the executable file into the system directory of the computer system and executes the executable file or copies it to another computer system to infect the other computer system. According to an embodiment of the present invention, when there is no operation function for accessing the system directory of the computer system among the operation functions of the diagnosis target program, it is determined that the diagnosis target program is not a malicious program, The feature vector may not be generated. According to an embodiment of the present invention, only when the at least one operation function among the plurality of operation functions of the diagnosis target program accesses the system directory of the computer system, second behavior feature information is generated for the diagnosis target program .
단계(S740)에서는 상기 제2 행동 특징 벡터에 기반하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단한다.In step S740, based on the second behavior feature vector, it is determined whether the diagnostic target program corresponds to the malicious program.
본 발명의 일실시예에 따르면 상기 진단 대상 프로그램에 대한 제2 행동 특징 벡터가 행동 특징 벡터 공간상에서 위치한 영역에 따라서 상기 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단 할 수 있다. 정상 프로그램의 시스템 사용 정보로부터 생성한 정상 행동 특징 벡터는 서로 유사하므로, 행동 특징 벡터 공간 상의 정상 행동 특징 벡터 영역에 위치한다. 악성 프로그램의 시스템 사용 정보로부터 생성한 악성 행동 특징 벡터는 서로 유사하므로, 행동 특징 벡터 공간상의 악성 행동 특징 벡터 영역에 위치한다. 진단 대상 프로그램의 시스템 사용 정보로부터 생성한 제2 행동 특징 벡터가 정상 행동 특징 벡터 공간에 위치하면 진단 대상 프로그램이 정상 프로그램에 상응하는 것으로 판단할 수 있다. 진단 대상 프로그램의 시스템 사용 정보로부터 생성한 제2 행동 특징 벡터가 악성 행동 특징 벡터 공간에 위치하면 진단 대상 프로그램이 악성 프로그램에 상응하는 것으로 판단할 수 있다.According to an embodiment of the present invention, it is possible to determine whether the diagnostic target program corresponds to a malicious program according to a region in which the second behavior feature vector for the diagnostic target program is located in the behavior feature vector space. Since the normal behavior feature vectors generated from the system usage information of the normal program are similar to each other, they are located in the normal behavior feature vector region on the behavior feature vector space. The malicious behavior feature vectors generated from the system usage information of the malicious program are similar to each other, and thus they are located in the malicious behavior feature vector region in the behavior feature vector space. If the second behavior feature vector generated from the system use information of the diagnosis target program is located in the normal behavior feature vector space, it can be determined that the diagnosis target program corresponds to the normal program. If the second behavior feature vector generated from the system use information of the diagnosis target program is located in the malicious behavior feature vector space, it can be determined that the diagnosis target program corresponds to the malicious program.
도 8은 본 별명에 따라서 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 방법을 단계별로 설명한 순서도이다. 이하 도 8을 참조하여 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 방법을 상세히 설명하기로 한다.FIG. 8 is a flowchart showing a step-by-step description of a method of treating a computer system infected with a malicious program according to this alias. Hereinafter, a method for treating a computer system infected with a malicious program will be described in detail with reference to FIG.
본 발명의 일실시예에 따르면 진단 대상 프로그램이 악성 프로그램으로 판단된 경우에 상기 진단 대상 프로그램과 연관된 파일을 모두 삭제할 수 있다.According to an embodiment of the present invention, when a diagnosis target program is determined to be a malicious program, all the files associated with the diagnosis target program can be deleted.
본 발명의 일실시예에 따르면 진단 대상 프로그램이 악성 프로그램으로 판단된 경우에는 상기 컴퓨터 시스템의 통신 장치 중에서 상기 진단 대상 프로그램과 연관된 통신 장치를 비활성화 할 수 있다.According to an embodiment of the present invention, when the diagnostic target program is determined to be a malicious program, the communication device associated with the diagnostic target program among the communication devices of the computer system may be deactivated.
컴퓨터 시스템에는 복수의 통신 장치가 설치되어 있으나, 그러나 악성 프로그램은 상기 컴퓨터 시스템의 통신 장치 중에서 특정 통신 장치를 통하여 컴퓨터 시스템으로 침입하는 것이 일반적이다. 상기 컴퓨터 시스템이 악성 프로그램에 감염된 것으로 판단된 경우에는 상기 악성 프로그램과 연관된 통신 장치를 비활성화 하여 상기 악성 프로그램이 다른 컴퓨터 시스템에 침입하고 감염시키는 것을 방지할 수 있다.A plurality of communication apparatuses are installed in the computer system, but malicious programs generally enter the computer system through a specific communication apparatus among the communication apparatuses of the computer system. If it is determined that the computer system is infected with a malicious program, the communication device associated with the malicious program may be disabled to prevent the malicious program from infiltrating and infecting another computer system.
본 발명의 일실시예에 따르면 단계(S810)에서는 악성 프로그램 제어 서버로부터 시스템 제어 신호를 수신할 수 있다.According to an embodiment of the present invention, the system control signal may be received from the malicious program control server in step S810.
단계(S820)에서는 상기 수신한 시스템 제어 신호에 기반하여 상기 컴퓨터 시스템을 치료할 수 있다.In step S820, the computer system may be remedied based on the received system control signal.
본 발명의 일실시예에 따르면 악성 프로그램 제어 서버는 통신망을 통해 연결된 복수의 컴퓨터 시스템 중의 어느 한 컴퓨터 시스템으로부터 특정 악성 프로그램에 감염되었다는 보고를 수신하고, 상기 악성 프로그램에 대하여 경계할 것을 지시하는 시스템 제어 신호를 상기 복수의 컴퓨터 시스템으로 전송할 수 있다. 각각의 컴퓨터 시스템은 상기 시스템 제어 신호를 수신하고 상기 컴퓨터 시스템의 통신 장치 중에서 상기 수신한 시스템 제어 신호에 상응하는 통신 장치를 비활성화 시켜 상기 악성 프로그램의 확산을 방지할 수 있다.According to an embodiment of the present invention, the malicious program control server receives a report that a malicious program is infected from a computer system among a plurality of computer systems connected through a communication network, Signals to the plurality of computer systems. Each computer system receives the system control signal and can disable the communication device corresponding to the received system control signal among the communication devices of the computer system to prevent the spread of the malicious program.
본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플 롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 본 발명에서 설명된 이동 단말 또는 기지국의 동작의 전부 또는 일부가 컴퓨터 프로그램으로 구현된 경우, 상기 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체도 본 발명에 포함된다.Embodiments of the present invention may be recorded in a computer-readable medium including program instructions for performing various computer-implemented operations. 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; and optical disks 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 operation of the mobile terminal or the base station described in the present invention is implemented by a computer program, the computer readable recording medium storing the computer program is also included in the present invention.
도 1은 컴퓨터 프로그램의 행동을 이용하여 악성 프로그램을 검사하는 방법을 단계별로 도시한 순서도이다.1 is a flowchart showing a step-by-step method for inspecting a malicious program using a behavior of a computer program.
도 2는 본 발명에 따라서 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 장치의 구조를 도시한 도면이다.2 is a diagram showing a structure of an apparatus for treating a computer system infected with a malicious program according to the present invention.
도 3은 본 발명에 따라서 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 판단부의 구조를 도시한 도면이다.3 is a diagram showing a structure of a determination unit for determining whether or not a diagnostic target program corresponds to a malicious program according to the present invention.
도 4는 본 발명에 따른 인코딩부가 복수의 동작 함수를 인코딩하여 생성한 행동 특징 벡터의 일실시예를 도시한 도면이다.FIG. 4 is a diagram illustrating an embodiment of a behavior feature vector generated by encoding a plurality of operation functions by the encoding unit according to the present invention.
도 5는 본 발명에 따른 판단부가 제1 행동 특징 벡터 및 제2 행동 특징 벡터를 비교하여 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 개념을 도시한 도면이다.FIG. 5 is a diagram illustrating a concept of determining whether a diagnosis target program corresponds to a malicious program by comparing a first behavior feature vector and a second behavior feature vector with the determination unit according to the present invention.
도 6은 본 발명에 따라서 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 방법을 단계별로 설명한 순서도이다.6 is a flowchart illustrating a step-by-step method for treating a computer system infected with a malicious program according to the present invention.
도 7은 본 발명에 따라서 진단 대상 프로그램이 악성 프로그램에 상응하는지 여부를 판단하는 방법을 단계별로 설명한 순서도이다.FIG. 7 is a flowchart illustrating a method of determining whether or not a diagnostic target program corresponds to a malicious program according to the present invention.
도 8은 본 별명에 따라서 악성 프로그램에 감염된 컴퓨터 시스템을 치료하는 방법을 단계별로 설명한 순서도이다.FIG. 8 is a flowchart showing a step-by-step description of a method of treating a computer system infected with a malicious program according to this alias.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/056,236 US8448248B2 (en) | 2007-07-23 | 2008-03-26 | Apparatus and method for repairing computer system infected by malware |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95130107P | 2007-07-23 | 2007-07-23 | |
US60/951,301 | 2007-07-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090010852A KR20090010852A (en) | 2009-01-30 |
KR101427357B1 true KR101427357B1 (en) | 2014-08-11 |
Family
ID=40489955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070099978A Active KR101427357B1 (en) | 2007-07-23 | 2007-10-04 | Apparatus and method for curing computer system infected by malware |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101427357B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9177154B2 (en) | 2010-10-18 | 2015-11-03 | Todd Wolff | Remediation of computer security vulnerabilities |
KR101256439B1 (en) * | 2010-11-30 | 2013-04-19 | 주식회사 안랩 | Information update apparatus and method, client terminal device and malicious code treatment method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060174344A1 (en) | 2005-01-31 | 2006-08-03 | Microsoft Corporation | System and method of caching decisions on when to scan for malware |
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 |
-
2007
- 2007-10-04 KR KR1020070099978A patent/KR101427357B1/en active Active
Patent Citations (2)
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 |
US20060174344A1 (en) | 2005-01-31 | 2006-08-03 | Microsoft Corporation | System and method of caching decisions on when to scan for malware |
Also Published As
Publication number | Publication date |
---|---|
KR20090010852A (en) | 2009-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8713680B2 (en) | Method and apparatus for modeling computer program behaviour for behavioural detection of malicious program | |
US10503904B1 (en) | Ransomware detection and mitigation | |
Sun et al. | Monet: a user-oriented behavior-based malware variants detection system for android | |
Breitenbacher et al. | HADES-IoT: A practical host-based anomaly detection system for IoT devices | |
US11882134B2 (en) | Stateful rule generation for behavior based threat detection | |
US8782792B1 (en) | Systems and methods for detecting malware on mobile platforms | |
US8464340B2 (en) | System, apparatus and method of malware diagnosis mechanism based on immunization database | |
JP6228966B2 (en) | Computing device that detects malware | |
CN108183900B (en) | A mining script detection method, server, system, terminal device and storage medium | |
JP6341964B2 (en) | System and method for detecting malicious computer systems | |
CN110941832A (en) | Embedded Internet of things equipment firmware vulnerability discovery method, device and equipment | |
US8448248B2 (en) | Apparatus and method for repairing computer system infected by malware | |
Almomani et al. | An efficient machine learning-based approach for android v. 11 ransomware detection | |
KR102180098B1 (en) | A malware detecting system performing monitoring of malware and controlling a device of user | |
KR101421136B1 (en) | A method and apparatus for modeling the behavior of a computer program for testing malicious programs | |
CN103473501A (en) | Malware tracking method based on cloud safety | |
Amer | Permission-based approach for android malware analysis through ensemble-based voting model | |
Memon et al. | A comparison of machine learning techniques for android malware detection using apache spark | |
Zhang et al. | A multiclass detection system for android malicious apps based on color image features | |
Han et al. | Identifying malicious Android apps using permissions and system events | |
Surendran et al. | Detection of malware applications from centrality measures of syscall graph | |
Hsieh et al. | A study of android malware detection technology evolution | |
KR101427357B1 (en) | Apparatus and method for curing computer system infected by malware | |
Zhang et al. | Android malware detection combined with static and dynamic analysis | |
JP2006146600A (en) | Operation monitoring server, terminal device, and operation monitoring system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20071004 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20120208 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20071004 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20130430 Patent event code: PE09021S01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20131130 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20140430 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20140731 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20140801 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20170619 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20170619 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180620 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20180620 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190619 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20190619 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20200616 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20210621 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20220615 Start annual number: 9 End annual number: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20250612 Start annual number: 12 End annual number: 12 |