WO2018043885A1 - System for detecting malicious code and method for detecting malicious code - Google Patents

System for detecting malicious code and method for detecting malicious code Download PDF

Info

Publication number
WO2018043885A1
WO2018043885A1 PCT/KR2017/006466 KR2017006466W WO2018043885A1 WO 2018043885 A1 WO2018043885 A1 WO 2018043885A1 KR 2017006466 W KR2017006466 W KR 2017006466W WO 2018043885 A1 WO2018043885 A1 WO 2018043885A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
path
target file
virtual
malicious code
Prior art date
Application number
PCT/KR2017/006466
Other languages
French (fr)
Korean (ko)
Inventor
강경완
김유현
Original Assignee
주식회사 안랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 안랩 filed Critical 주식회사 안랩
Publication of WO2018043885A1 publication Critical patent/WO2018043885A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems

Definitions

  • the present invention relates to a technique for protecting a file from malicious code.
  • the present invention relates to a malware detection technology that detects malicious code before actual damage caused by the malicious code occurs, but is exposed only to a process to be detected without being exposed to a user or a malicious code producer.
  • Malicious code can be attacked in various forms, such as attacks that randomly tamper with information (files), disable them, leak information (files) to the outside, or delete information (files). There are various kinds of ventures.
  • a malicious code that performs an attack in the form of randomly tampering with information (files) and makes it unusable may be difficult to see again by users by randomly tampering, such as encrypting or compressing information (files). Exploit the attack made with).
  • This malicious code is not used to destroy information (files), but to make it unusable, and it is used for malicious purposes to inform users of information (file) attacks and extort money in return for information (file) restoration.
  • the existing malicious code detection technique detects malicious codes based on indirect actions such as distribution method or infection method of malicious code, not detection based on direct malicious behavior of malicious code, that is, attack.
  • malware detection methods are based on indirect actions such as distribution and infection methods of malicious code. Therefore, malicious code is detected after malicious damage or unique behaviors are caused by malicious activity. There is a problem that detection may fail.
  • the present invention while the malicious code is detected before the actual damage caused by the malicious code, to propose a new malware detection technique that is exposed only to the process to be detected without being exposed to the user or malicious code producer.
  • An object of the present invention is to realize a new malware detection technique that detects malicious code before actual damage caused by the malicious code, but is exposed only to a process to be detected without being exposed to a user or a malicious code producer. .
  • Malware detection method the step of creating a separate random file for malware detection, defining a path of the virtual file associated with the arbitrary file; Discriminating whether the process is a normal process or a suspicious process when a process of attempting to search for a target file for performing an action is identified; A first providing step of providing a path of the searched target file to the process as a search result when it is distinguished from a normal process; When distinguished by a suspicious process, when providing a path of the target file as a search result to the process, the path of the virtual file is provided together, so that the arbitrary file associated with the path of the virtual file only in a process identified as a suspicious process. And a second providing step of allowing the presence of the to be recognized.
  • the file generation and path definition unit for generating a separate random file for malware detection, and defines the path of the virtual file associated with the arbitrary file;
  • a process discriminating unit for discriminating whether the process is a normal process or a suspicious process when a process of attempting to search for a target file for performing an action is confirmed; If it is classified as a normal process, the path of the target file searched according to the target file search attempt is provided to the process as a search result, and if it is classified as a suspicious process, the path of the target file is provided to the process as a search result.
  • the control unit to provide the path of the virtual file.
  • the malicious code is detected before the actual damage caused by the malicious code, but through a malicious code detection technique that is limited to only the process to be detected, the malicious code without being easily exposed to the user or malicious code producer Derive the effect of effectively detecting
  • FIG. 1 is a block diagram showing the configuration of a malicious code detection system according to an embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a malicious code detection method according to an embodiment of the present invention.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • FIG. 1 shows a configuration of a malicious code detection system according to an embodiment of the present invention.
  • the malware detection system 100 is preferably mounted on an independent user device 500 such as a computer.
  • the malware detection system 100 of the present invention may be in the form of an application installed in the user device 500.
  • FIG. 1 for convenience of description, a process of attempting to access a storage unit 400 storing information (file) in the user device 500 and information (file) stored in the storage unit 400 (The configuration of the file system 200 that controls the I / O for information (file) between the storage unit 300 and the storage unit 300 is illustrated.
  • the malware detection system 100 generates a separate random file for malware detection and defines a path of a virtual file associated with the random file.
  • the process discrimination unit 120 distinguishes whether the process is a normal process or a suspicious process.
  • the target file is searched, the path of the searched target file is provided to the process as a search result, and when it is classified as a suspicious process, the virtual file is provided when the path of the target file is provided to the process as a search result. It includes a control unit 130 to provide a path with.
  • the malicious code by generating a random file in the form of a file (for example, document, media, etc.) that the malicious code targets the attack, the malicious code itself to attack the arbitrary file to attack It is important to make sure that it is recognized as the target file.
  • a file for example, document, media, etc.
  • the arbitrary file is not a file that actually stores meaningful data, but a file having only the purpose of performing malicious behavior (attack) of the malicious code instead of the file that is the actual target of the malicious code.
  • the file generation and path definition unit 110 stores information (files) in an arbitrary file in the form of a file (for example, document, media, etc.) that the malicious code targets for performing malicious actions. It is created in a directory (path) for exposing to malicious code in the storage unit 400.
  • the file generation and path definition unit 110 when the file generation and path definition unit 110 generates an arbitrary file as described above, the file generation and path definition unit 110 defines the path of the virtual file associated with the arbitrary file.
  • the virtual file is a file that does not actually exist, unlike an arbitrary file that is actually created and exists. Therefore, the path of the virtual file is also information associated with an arbitrary file and is not an actual accessible directory (path).
  • the file generation and path defining unit 110 defines the path of the virtual file as information associated with the arbitrary file when generating the arbitrary file as described above.
  • the process discriminating unit 120 distinguishes whether the process 300 is a normal process or a suspect process.
  • the process discrimination unit 120 may distinguish whether the process 300 is a normal process or a suspect process according to a predefined discrimination policy.
  • the discrimination policy may be a policy for distinguishing a process belonging to a whitelist based on the accumulated malware detection result as a normal processor, and distinguishing a process not belonging to the whitelist as a suspicious process.
  • the process discrimination unit 120 if the process 300 belongs to the white list, it will be classified as a normal process, and if not belonging to the white list, it will be classified as a suspicious process.
  • the discrimination policy identifies a process that belongs to a whitelist based on the accumulated malware detection result and does not have an unknown module among the loaded modules as a normal processor.
  • the module may be a policy that distinguishes a process having an unknown module among the modules as a suspicious process.
  • the process discrimination unit 120 classifies the process as a normal process and does not belong to or belong to the whitelist. Even if it is known, any module that is loaded will be identified as a suspicious process.
  • the controller 130 When the process 300 is classified as a normal process, the controller 130 provides the process 300 with the path of the searched target file as a search result according to the target file search attempt.
  • a process 300 distinguished as a normal process will be referred to as a normal process 300
  • a process 300 distinguished as a suspicious process will be referred to as a suspicious process 300.
  • the controller 130 provides a path of the target file searched according to the target file search attempt as a search result to the normal process 300 that attempts to search the target file for performing the action.
  • the controller 130 provides the path of the previously defined virtual file when providing the path of the target file to the process 300 as a search result.
  • control unit 130 provides the suspect process 300 that attempts to search the target file for performing the action, as a search result, as well as the path of the target file searched according to the target file search attempt, as a search result. It is.
  • the suspicious process 300 unlike the normal process 300 that receives only the path (directory) of the target file through the target file search as a search result, the path (directory) and virtual of the target file through the target file search The path of the file is provided as a search result.
  • the suspicious process 300 since the suspicious process 300 provides the path (directory) of the target file and the path of the virtual file as a search result, the presence of any file associated with the path of the virtual file is only present in the suspicious process 300. It can be recognized.
  • the normal process 300 cannot recognize the existence of any file associated with the path of the virtual file because the path of the virtual file is not known, the malicious code of the present invention based on the arbitrary file.
  • the detection technique is not exposed to normal process 300.
  • the process that may be the malware to be detected that is, the suspicious process 300, since the path of the virtual file is known, recognizes the existence of any file associated with the path of the virtual file, and thus, The malware detection technique of the present invention based on the file is limited to the suspicious process 300 only.
  • the malicious code to be detected in the present invention may be a malicious code to attack in the form of randomly tampering with information (file), or to leak information (file) to the outside It may be malicious code that performs an attack or malicious code that performs an attack in the form of deleting information (file).
  • the controller 130 detects the suspicious process 300 as malicious code based on an action performed by the suspicious process 300 in an arbitrary file by accessing the path of the virtual file.
  • the suspicious process 300 accesses a path of a virtual file that is only information associated with an arbitrary file and does not actually exist, the suspicious process 300 accesses an arbitrary file associated with a path of the virtual file. .
  • the controller 130 is based on the action performed by the suspicious process 300 in the arbitrary file after accessing the path of the virtual file to the arbitrary file, the malicious behavior of the malicious code (detected in the present invention) ( Attack), the suspicious process 300 may be detected as being malicious code.
  • the controller 130 may block the suspicious process 300 from accessing another file anymore.
  • the suspicion process 300 is to only access the path of the virtual file of the path of the target file and the path of the virtual file provided as a search result first, if the suspicious process 300 is malicious code, the actual damage Can be detected as malware before it occurs.
  • the suspicious process 300 accesses the path of the target file before the path of the virtual file among the paths of the target file and the virtual file provided as a search result to detect malicious behavior (attack) in the target file, that is, the actual target file. If you do, you may encounter a situation where you cannot detect malware before the actual damage caused by the malware occurs.
  • the present invention proposes a function of causing the suspicious process 300 to preferentially access the path of the virtual file among the path of the target file and the path of the virtual file provided as a search result.
  • the controller 130 may include a specific factor that causes the suspicious process 300 to access the path of the virtual file before the path of the target file when the file is accessed based on the search result. Provide after reflecting on the path.
  • the controller 130 provides the path of the virtual file as a search result when providing the path of the target file and the path of the virtual file searched to the suspicious process 300 that attempts to search the target file for performing an action. Will reflect on and provide.
  • the specific factor is defined as a factor that causes the suspicious process 300 to attempt to access the path of the virtual file before the path of the target file when the file is accessed based on the search result.
  • a specific factor may be defined based on a result of analyzing a file access pattern in which order the malware to be detected accesses the files in order to access the files.
  • the controller 130 when providing the path of the target file and the virtual file searched by the suspicious process 300 as a search result, the controller 130 reflects a specific factor "! At the beginning of the path of the virtual file and provides the result. will be.
  • the suspicious process 300 attempts to access the path of the virtual file beginning with "! Of the path of the target file and the path of the virtual file provided as a search result, so that the suspicious process 300 In the case of malware, it can be detected as malware before the actual damage occurs.
  • the controller 130 provides a pair of paths of the virtual file for each path of the target file in units of paths of the target file searched according to the target file search attempt, and the suspicious process 300 randomly based on the search result. Even if the file is accessed, try to access the virtual file path before the target file path.
  • the controller 130 when providing the path of the target file and the virtual file searched by the suspicious process 300 as a search result, the virtual file reflecting a specific factor (for example!) For each path of the target file To provide the path of the pair together.
  • the controller 130 controls each target in units of paths of the target file.
  • the path of the virtual file and the path of the target file 1, the path of the virtual file, and the destination file are paired by pairing the path of the virtual file reflecting a specific factor (e.g.!) For each file path 1, 2, 3, 4, 5.
  • the search results are provided in the form of path 2, path of virtual file and path of target file 3, path of virtual file and path of target file 4, path of virtual file and path 5 of target file.
  • the suspicious process 300 attempts to access a path (eg, path 2) of the first target file selected at random among the paths of the target file provided as a search result. Since the path is paired with the path2 of the target file, we will attempt to access the path of the virtual file starting with "! Before the path2 of the target file.
  • a path eg, path 2 of the first target file selected at random among the paths of the target file provided as a search result. Since the path is paired with the path2 of the target file, we will attempt to access the path of the virtual file starting with "! Before the path2 of the target file.
  • the suspicious process 300 through a method of reflecting a specific factor (eg,!) In the path of the virtual file and / or providing a path of the virtual file in pairs with the path of the target file. Attempts to access the path of the virtual file first when accessing the file based on the search result, so that the random file is preferentially accessed, so that if the suspicious process 300 is malicious code, the malicious code before the actual damage occurs. Can be detected.
  • a specific factor eg,! In the path of the virtual file and / or providing a path of the virtual file in pairs with the path of the target file.
  • Block access if the process 300 that attempts to perform an action on the arbitrary file by directly accessing the path of the arbitrary file is confirmed, regardless of whether the process 300 is a normal process or a suspect process, Block access
  • the malicious code detection system 100 implements a new malicious code detection technique for detecting malicious code before actual damage caused by the malicious code occurs.
  • the malware detection technique of the present invention is a detection target through a method in which the path of the virtual file is unknown to the normal process 300 and only the path of the virtual file is known to the suspicious process 300. Limited exposure to suspicious process 300 is provided.
  • a key element for detecting malicious code i.e., an arbitrary file is easily exposed before the actual damage occurs, so that the user misunderstands the arbitrary file as the malicious code and deletes it arbitrarily, It also achieves the effect of preventing the use of files with impure intentions.
  • FIG. 2 the malicious code detection method according to an exemplary embodiment of the present invention will be described in more detail.
  • the configuration shown in FIG. 1 described above will be described with reference to the corresponding reference numerals.
  • the malicious code detection method according to an embodiment of the present invention will be described by referring to the operation method that is operated by the malicious code detection system 100 shown in FIG.
  • the operation method of the malicious code detection system 100 may be any type of file such as a file type (eg, document, media, etc.) that the malicious code targets to perform malicious actions.
  • a file type eg, document, media, etc.
  • the storage unit 400 that stores the information (file) it is created in a directory (path) for exposing to malicious code (S100).
  • the file generation and operation method of the malicious code detection system 100 when generating an arbitrary file as described above, defines the path of the virtual file associated with the arbitrary file (S100).
  • the arbitrary file is not a file that actually stores meaningful data, but a file having only the purpose of performing malicious behavior (attack) of the malicious code instead of the file which is the actual attack target of the malicious code.
  • the virtual file is a file that does not exist, unlike a random file that is actually created and exists. Therefore, the path of the virtual file is also information associated with an arbitrary file and is not an actual accessible directory (path).
  • the path of the virtual file is defined as information associated with the random file.
  • the process 300 for attempting to search for a target file for performing an action is confirmed (S110)
  • the process 300 is suspected to be a normal process.
  • the process is distinguished (S120).
  • the operation method of the malware detection system 100 may distinguish whether the process 300 is a normal process or a suspect process according to a predefined discrimination policy.
  • the discrimination policy may be a policy for distinguishing a process belonging to a whitelist based on the accumulated malware detection result as a normal processor, and distinguishing a process not belonging to the whitelist as a suspicious process.
  • the operation method of the malicious code detection system 100 if the process 300 belongs to a white list according to the discrimination policy, distinguished as a normal process, and if it does not belong to the white list, We will distinguish it by process.
  • the discrimination policy identifies a process that belongs to a whitelist based on the accumulated malware detection result and does not have an unknown module among the loaded modules as a normal processor.
  • the module may be a policy that distinguishes a process having an unknown module among the modules as a suspicious process.
  • the operation method of the malware detection system 100 is normal if there is no known module among the modules that the process 300 belongs to the whitelist and loads according to the discrimination policy. It will be identified as a process, and even if it is not on the whitelist or if it is a module that is unknown, it will be identified as a suspicious process.
  • a search result of the target file searched according to the target file search attempt is searched. As provided to the process 300 (S160).
  • a process 300 distinguished as a normal process will be referred to as a normal process 300
  • a process 300 distinguished as a suspicious process will be referred to as a suspicious process 300.
  • the operating method of the malicious code detection system 100 includes a path of the target file searched according to the target file search attempt to the normal process 300 that attempts to search the target file for performing the action. As a search result.
  • the operating method of the malware detection system 100 when the process 300 is distinguished as a suspicious process (S120 Yes), the process 300 to the path of the target file as a search result When providing to provide the path of the previously defined virtual file (S130).
  • the operation method of the malicious code detection system 100 includes a path of the target file searched according to the target file search attempt to the suspicious process 300 attempting to search the target file for performing an action.
  • the path of the previously defined virtual file is also provided as a search result.
  • the suspicious process 300 unlike the normal process 300 that receives only the path (directory) of the target file through the target file search as a search result, the path (directory) and virtual of the target file through the target file search Since the path of the file is provided as a search result, only the suspicious process 300 will recognize the existence of any file associated with the path of the virtual file.
  • the normal process 300 cannot recognize the existence of any file associated with the path of the virtual file because the path of the virtual file is not known, the malicious code of the present invention based on the arbitrary file.
  • the detection technique is not exposed to normal process 300.
  • the process that may be malicious code that is, the suspicious process 300 to be detected, recognizes the existence of any file associated with the path of the virtual file because the path of the virtual file is known.
  • the malware detection technique of the present invention based on arbitrary files is limited to the suspicious process 300 only.
  • the suspicious process 300 accesses the path of the target file before the path of the virtual file among the paths of the target file and the virtual file provided as a search result, and performs malicious action (attack) on the target file, that is, the file that is the actual target of attack.
  • malicious action attack
  • the malware cannot be detected before the actual damage caused by the malware occurs.
  • the method and / or the path of the virtual file reflects a specific factor (eg!) In the path of the next virtual file. Provides a way to pair with the path of the target file.
  • the path of the virtual file is larger than the path of the target file. Provide a specific argument to try to access the file first, as reflected in the path of the virtual file.
  • the operating method of the malicious code detection system 100 together with the path of the target file and the path of the virtual file detected by the suspicious process 300 attempting to search the target file for performing the action.
  • a search result S130
  • it is provided after reflecting a specific factor to the path of the virtual file.
  • the specific factor is defined as a factor that causes the suspicious process 300 to attempt to access the path of the virtual file before the path of the target file when the file is accessed based on the search result.
  • a specific factor may be defined based on a result of analyzing a file access pattern in which order the malware to be detected accesses the files in order to access the files.
  • the operation method of the malware detection system 100 the path of the target file and the virtual file searched by the suspicious process 300 attempting to search the target file for performing the action
  • the specific argument "! Is provided at the beginning of the path of the virtual file.
  • the suspicious process 300 attempts to access the path of the virtual file beginning with "! Of the path of the target file and the path of the virtual file provided as a search result, so that the suspicious process 300 In the case of malware, it can be detected as malware before the actual damage occurs.
  • the operation method of the malware detection system 100 provides a pair of paths of a virtual file for each path of each target file in units of paths of the target files searched according to a target file search attempt.
  • the suspicious process 300 randomly accesses the file based on the search result, the suspicious process 300 attempts to access the path of the virtual file before the path of the target file.
  • the operating method of the malicious code detection system 100 together with the path of the target file and the path of the virtual file detected by the suspicious process 300 attempting to search the target file for performing the action.
  • the path of the virtual file reflecting a specific factor (for example!) Is provided together in pairs for each path of the target file.
  • the malware detection system 100 For example, assuming that five (eg, paths 1, 2, 3, 4, 5) paths of a target file searched according to a target file search attempt, the malware detection system 100 according to an embodiment of the present invention. ), The path of the virtual file in pairs of the paths of the target file reflecting a specific factor (for example,!) For each path 1, 2, 3, 4, 5 of the target file. Path 1 of the target file, path of the virtual file and path of the target file 2, path of the virtual file and path of the target file 3, path of the virtual file and path of the target file 4, path of the virtual file and path of the target file 5 To provide search results.
  • the suspicious process 300 attempts to access a path (eg, path 2) of the first target file selected at random among the paths of the target file provided as a search result. Since the path is paired with the path2 of the target file, we will attempt to access the path of the virtual file starting with "! Before the path2 of the target file.
  • a path eg, path 2 of the first target file selected at random among the paths of the target file provided as a search result. Since the path is paired with the path2 of the target file, we will attempt to access the path of the virtual file starting with "! Before the path2 of the target file.
  • the suspicious process 300 through a method of reflecting a specific factor (eg,!) In the path of the virtual file and / or providing a path of the virtual file in pairs with the path of the target file. Attempts to access the path of the virtual file first when accessing the file based on the search result, so that the random file is preferentially accessed, so that if the suspicious process 300 is malicious code, the malicious code before the actual damage occurs. Can be detected.
  • a specific factor eg,! In the path of the virtual file and / or providing a path of the virtual file in pairs with the path of the target file.
  • the operation method of the malware detection system 100 if the suspicious process 300 performs an action performed on an arbitrary file by accessing the path of the virtual file (S140 Yes), The suspicious process 300 is detected as malware based on the behavior (S150).
  • the suspicious process 300 accesses a path of a virtual file that is only information associated with an arbitrary file and does not actually exist, the suspicious process 300 accesses an arbitrary file associated with a path of the virtual file. .
  • the suspicious process 300 accesses the path of the virtual file based on the action performed on the arbitrary file after accessing the arbitrary file.
  • the suspicious process 300 may be detected as the malicious code.
  • the suspicious process 300 when the malicious code detection system 100 operates according to an embodiment of the present invention, when the suspicious process 300 is detected as malicious code, the suspicious process 300 may block access to another file. Can be.
  • the operation method of the malicious code detection system 100 that is, the malicious code detection method according to an embodiment of the present invention, detects malicious code before actual damage caused by the malicious code, but is limited to only the process to be detected.
  • New malware detection techniques are exposed, which can effectively detect malware without being easily exposed to users or malware authors.
  • Implementations of the subject matter described in this specification may be implemented in digital electronic circuitry, computer software, firmware or hardware including the structures and structural equivalents disclosed herein, or one or more of them. It can be implemented in combination. Implementations of the subject matter described herein are one or more computer program products, ie one or more modules pertaining to computer program instructions encoded on a program storage medium of tangible type for controlling or by the operation of a processing system. Can be implemented.
  • the computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of materials affecting a machine readable propagated signal, or a combination of one or more thereof.
  • system encompasses all the instruments, devices, and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers.
  • the processing system may include, in addition to hardware, code that forms an execution environment for a computer program on demand, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. .
  • Computer programs may be written in any form of programming language, including compiled or interpreted languages, or a priori or procedural languages. It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment. Computer programs do not necessarily correspond to files in the file system.
  • a program may be in a single file provided to the requested program, in multiple interactive files (eg, a file that stores one or more modules, subprograms, or parts of code), or part of a file that holds other programs or data. (Eg, one or more scripts stored in a markup language document).
  • the computer program may be deployed to run on a single computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.
  • Computer-readable media suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks, and CDs. It may include all types of nonvolatile memory, media and memory devices, including -ROM and DVD-ROM disks.
  • semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks, and CDs. It may include all types of nonvolatile memory, media and memory devices, including -ROM and DVD-ROM disks.
  • the processor and memory can be supplemented by or integrated with special purpose logic circuitry.
  • Implementations of the subject matter described herein may include, for example, a backend component such as a data server, or include a middleware component such as, for example, an application server, or a web browser or graphical user, for example, where a user may interact with the implementation of the subject matter described herein. It may be implemented in a computing system that includes a front end component, such as a client computer with an interface, or any combination of one or more of such back end, middleware or front end components. The components of the system may be interconnected by any form or medium of digital data communication such as, for example, a communication network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention implements a malicious code detecting technique which detects a malicious code before an actual damage is caused by the malicious code, wherein the technique is exposed only to a process to be detected without being exposed to a user or a malicious code creator.

Description

악성코드탐지시스템 및 악성코드 탐지 방법Malware Detection System and Malware Detection Method
본 발명은, 악성코드로부터 파일을 보호하는 기술에 관한 것이다.The present invention relates to a technique for protecting a file from malicious code.
더욱 상세하게, 본 발명은, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지하되, 사용자나 악성코드 제작자에게 노출되는 일 없이 탐지 대상인 프로세스에게만 노출되는 악성코드 탐지 기술에 관한 것이다.More specifically, the present invention relates to a malware detection technology that detects malicious code before actual damage caused by the malicious code occurs, but is exposed only to a process to be detected without being exposed to a user or a malicious code producer.
악성코드는, 정보(파일)을 임의로 변조시켜 사용 불가능 상태로 만드는 형태의 공격, 정보(파일)을 외부로 유출시키는 형태의 공격, 정보(파일)을 삭제하는 형태의 공격 등 다양한 형태의 공격을 감행하는, 다양한 종류가 존재한다.Malicious code can be attacked in various forms, such as attacks that randomly tamper with information (files), disable them, leak information (files) to the outside, or delete information (files). There are various kinds of ventures.
예를 들어, 정보(파일)을 임의로 변조시켜 사용 불가능 상태로 만드는 형태의 공격을 감행하는 악성코드는, 정보(파일)를 암호화하거나 압축하는 등 임의로 변조시켜 사용자가 다시 보기 어려운 상태(사용 불가능 상태)로 만드는 공격을 감행한다.For example, a malicious code that performs an attack in the form of randomly tampering with information (files) and makes it unusable may be difficult to see again by users by randomly tampering, such as encrypting or compressing information (files). Exploit the attack made with).
이 악성코드는, 정보(파일)를 완전히 파괴하지는 않고 사용 불가능 상태로만 만든 후 정보(파일) 공격 사실을 사용자에게 알려, 정보(파일) 복원의 대가로 금전을 갈취하는 악의적 목적으로 사용되고 있다. This malicious code is not used to destroy information (files), but to make it unusable, and it is used for malicious purposes to inform users of information (file) attacks and extort money in return for information (file) restoration.
한편, 정보(파일)를 외부로 유출시키는 형태의 공격, 정보(파일)을 삭제하는 형태의 공격 등의 기타 다른 악성코드는, 사용자 모르게 정보(파일)에 접근하여 외부로 유출하거나 삭제하는 등의 공격을 감행한다. On the other hand, other malicious codes such as an attack that leaks information (files) to the outside, an attack that deletes information (files), and the like, access or leak information or delete the information (files) without the user's knowledge. Attack
악성코드에 의한 공격으로 실제 피해가 발생한 이후에는 피해를 복구하는 것이 어렵기 때문에, 악성코드를 피해가 발생하기 전에 탐지하는 것이 가장 이상적일 것이다.Since it is difficult to recover damage after the actual attack caused by the malicious code, it would be ideal to detect the malware before the damage occurred.
하지만, 기존의 악성코드 탐지 기법은, 악성코드의 직접적인 악성행위 즉 공격을 토대로 탐지하는 것이 아니라, 악성코드의 배포 방식이나 감염 방식과 같이 간접적인 동작을 토대로 악성코드를 탐지하고 있다.However, the existing malicious code detection technique detects malicious codes based on indirect actions such as distribution method or infection method of malicious code, not detection based on direct malicious behavior of malicious code, that is, attack.
기존의 악성코드 탐지 방식은, 악성코드의 배포 방식이나 감염 방식과 같이 간접적인 동작을 토대로 탐지하기 때문에, 악성코드의 악성행위 즉 공격으로 인해 실제 피해가 발생한 후에 악성코드가 탐지되거나, 독특한 행위를 하는 경우 탐지 실패될 수 있다는 문제점을 갖는다.Conventional malware detection methods are based on indirect actions such as distribution and infection methods of malicious code. Therefore, malicious code is detected after malicious damage or unique behaviors are caused by malicious activity. There is a problem that detection may fail.
한편, 실제 피해가 발생하기 전에 악성코드를 탐지하는 기존의 악성코드 탐지 기법의 경우는, 정상적인 프로세스의 행위를 악성행위로 과잉 탐지할 우려가 있고, 실제 피해 발생 전 악성코드 탐지를 위한 핵심 요소를 노출하기 때문에, 이 핵심 요소가 사용자에게 악성코드로 오해되거나 악성코드 제작자에게 변종 악성코드 개발에 이용되는 상황이 우려된다.On the other hand, in the case of existing malware detection techniques that detect malicious code before the actual damage occurs, there is a risk of over-detecting the normal process behavior as malicious behavior, and the core element for detecting malicious code before actual damage occurs. Because of the exposure, there is concern that this key element may be misunderstood by users as malware or used by malware authors to develop variant malware.
이에, 본 발명에서는, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지하되, 사용자나 악성코드 제작자에게 노출되는 일 없이 탐지 대상인 프로세스에게만 노출되는 새로운 악성코드 탐지 기법을 제안하고자 한다.Accordingly, the present invention, while the malicious code is detected before the actual damage caused by the malicious code, to propose a new malware detection technique that is exposed only to the process to be detected without being exposed to the user or malicious code producer.
본 발명에서 도달하고자 하는 목적은, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지하되, 사용자나 악성코드 제작자에게 노출되는 일 없이 탐지 대상인 프로세스에게만 노출되는 새로운 악성코드 탐지 기법을 실현하는데 있다.An object of the present invention is to realize a new malware detection technique that detects malicious code before actual damage caused by the malicious code, but is exposed only to a process to be detected without being exposed to a user or a malicious code producer. .
본 발명의 일 실시예에 따른 악성코드 탐지 방법은, 악성코드 탐지를 위한 별도의 임의 파일을 생성하고, 상기 임의 파일과 연계되는 가상 파일의 경로를 정의하는 정의단계; 행위 수행을 위한 대상파일 검색을 시도하는 프로세스가 확인되면, 상기 프로세스가 정상 프로세스인지 의심 프로세스인지 구별하는 구별단계; 정상 프로세스로 구별되는 경우, 상기 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 상기 프로세스로 제공하는 제1제공단계; 의심 프로세스로 구별되는 경우, 검색결과로서 상기 대상파일의 경로를 상기 프로세스로 제공할 때 상기 가상 파일의 경로를 함께 제공하여, 의심 프로세스로 구별된 프로세스에서만 상기 가상 파일의 경로와 연계된 상기 임의 파일의 존재가 인지되도록 하는 제2제공단계를 포함한다.Malware detection method according to an embodiment of the present invention, the step of creating a separate random file for malware detection, defining a path of the virtual file associated with the arbitrary file; Discriminating whether the process is a normal process or a suspicious process when a process of attempting to search for a target file for performing an action is identified; A first providing step of providing a path of the searched target file to the process as a search result when it is distinguished from a normal process; When distinguished by a suspicious process, when providing a path of the target file as a search result to the process, the path of the virtual file is provided together, so that the arbitrary file associated with the path of the virtual file only in a process identified as a suspicious process. And a second providing step of allowing the presence of the to be recognized.
본 발명의 일 실시예에 따른 악성코드탐지시스템은, 악성코드 탐지를 위한 별도의 임의 파일을 생성하고, 상기 임의 파일과 연계되는 가상 파일의 경로를 정의하는 파일생성 및 경로정의부; 행위 수행을 위한 대상파일 검색을 시도하는 프로세스가 확인되면, 상기 프로세스가 정상 프로세스인지 의심 프로세스인지 구별하는 프로세스구별부; 정상 프로세스로 구별되는 경우, 상기 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 상기 프로세스로 제공하고, 의심 프로세스로 구별되는 경우, 검색결과로서 상기 대상파일의 경로를 상기 프로세스로 제공할 때 상기 가상 파일의 경로를 함께 제공하는 제어부를 포함한다.Malware detection system according to an embodiment of the present invention, the file generation and path definition unit for generating a separate random file for malware detection, and defines the path of the virtual file associated with the arbitrary file; A process discriminating unit for discriminating whether the process is a normal process or a suspicious process when a process of attempting to search for a target file for performing an action is confirmed; If it is classified as a normal process, the path of the target file searched according to the target file search attempt is provided to the process as a search result, and if it is classified as a suspicious process, the path of the target file is provided to the process as a search result. When including the control unit to provide the path of the virtual file.
이에, 본 발명에 따르면, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지하되 탐지 대상인 프로세스에게만 제한적으로 노출되는 악성코드 탐지 기법을 통해, 사용자나 악성코드 제작자에게 쉽게 노출되는 일 없이 악성코드를 효과적으로 탐지해내는 효과를 도출한다.Therefore, according to the present invention, the malicious code is detected before the actual damage caused by the malicious code, but through a malicious code detection technique that is limited to only the process to be detected, the malicious code without being easily exposed to the user or malicious code producer Derive the effect of effectively detecting
도 1은 본 발명의 일 실시예에 따른 악성코드탐지시스템의 구성을 보여주는 구성도이다. 1 is a block diagram showing the configuration of a malicious code detection system according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 악성코드 탐지 방법을 보여주는 흐름도이다.2 is a flowchart illustrating a malicious code detection method according to an embodiment of the present invention.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다. It is to be noted that the technical terms used herein are merely used to describe particular embodiments and are not intended to limit the spirit of the technology disclosed herein. In addition, the technical terms used herein should be construed as meanings generally understood by those skilled in the art to which the technology disclosed herein belongs, unless defined otherwise in this specification. It should not be interpreted in a comprehensive sense, or in an overly reduced sense. In addition, when the technical terms used herein are incorrect technical terms that do not accurately express the spirit of the technology disclosed herein, it should be replaced with technical terms that can be understood correctly by those skilled in the art. In addition, the general terms used herein should be interpreted as defined in the dictionary, or according to the context before and after, and should not be interpreted in an excessively reduced sense.
또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. Also, the singular forms used herein include the plural forms unless the context clearly indicates otherwise. In this specification, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or steps described in the specification, and some of the components or some steps It should be construed that it may not be included or may further include additional components or steps.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다. In addition, terms including ordinal numbers, such as first and second, as used herein may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments disclosed herein will be described in detail with reference to the accompanying drawings, and the same or similar components will be given the same reference numerals regardless of the reference numerals, and redundant description thereof will be omitted.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the technology disclosed herein, if it is determined that the detailed description of the related known technology may obscure the gist of the technology disclosed herein, the detailed description thereof will be omitted. In addition, it is to be noted that the accompanying drawings are only for easily understanding the spirit of the technology disclosed in this specification, and the spirit of the technology should not be construed as being limited by the accompanying drawings.
이하에서는, 본 발명의 일 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, one embodiment of the present invention will be described in detail by way of example drawings. In adding reference numerals to the components of each drawing, it should be noted that the same reference numerals are assigned to the same components as much as possible even though they are shown in different drawings. In addition, in describing the present invention, when it is determined that the detailed description of the related well-known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention.
도 1은 본 발명의 일 실시예에 따른 악성코드탐지시스템의 구성을 보여주고 있다.1 shows a configuration of a malicious code detection system according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)은, 컴퓨터와 같이 독립된 사용자 디바이스(500)에 탑재되는 것이 바람직하다. 이러한 본 발명의 악성코드탐지시스템(100)은, 사용자 디바이스(500)에 설치되는 어플리케이션 형태일 수도 있다.As shown in FIG. 1, the malware detection system 100 according to an embodiment of the present invention is preferably mounted on an independent user device 500 such as a computer. The malware detection system 100 of the present invention may be in the form of an application installed in the user device 500.
도 1에서는, 설명의 편의를 위해, 사용자 디바이스(500)에서 정보(파일)를 저장하고 있는 저장부(400)와, 저장부(400)에 저장된 정보(파일)에 대한 접근을 시도하는 프로세스(300)와, 저장부(400) 및 프로세스(300) 사이에서 정보(파일)에 대한 I/O를 제어하는 파일시스템(200)의 구성을 도시하였다.In FIG. 1, for convenience of description, a process of attempting to access a storage unit 400 storing information (file) in the user device 500 and information (file) stored in the storage unit 400 ( The configuration of the file system 200 that controls the I / O for information (file) between the storage unit 300 and the storage unit 300 is illustrated.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)은, 악성코드 탐지를 위한 별도의 임의 파일을 생성하고, 상기 임의 파일과 연계되는 가상 파일의 경로를 정의하는 파일생성 및 경로정의부(110)와, 행위 수행을 위한 대상파일 검색을 시도하는 프로세스가 확인되면, 상기 프로세스가 정상 프로세스인지 의심 프로세스인지 구별하는 프로세스구별부(120)와, 정상 프로세스로 구별되는 경우, 상기 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 상기 프로세스로 제공하고, 의심 프로세스로 구별되는 경우, 검색결과로서 상기 대상파일의 경로를 상기 프로세스로 제공할 때 상기 가상 파일의 경로를 함께 제공하는 제어부(130)를 포함한다.As shown in FIG. 1, the malware detection system 100 according to an embodiment of the present invention generates a separate random file for malware detection and defines a path of a virtual file associated with the random file. When the file creation and path definition unit 110 and the process of attempting to search the target file for performing the action are confirmed, the process discrimination unit 120 distinguishes whether the process is a normal process or a suspicious process. When the target file is searched, the path of the searched target file is provided to the process as a search result, and when it is classified as a suspicious process, the virtual file is provided when the path of the target file is provided to the process as a search result. It includes a control unit 130 to provide a path with.
본 발명에서는, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지하되, 탐지 대상인 프로세스에게만 제한적으로 노출되는 새로운 악성코드 탐지 기법을 제안하고자 한다.In the present invention, while detecting the malicious code before the actual damage caused by the malicious code, we propose a new malware detection technique that is limited to only the process to be detected.
따라서, 본 발명에서는, 악성코드가 공격 목표로 하는 파일의 형태(예: 문서, 미디어 등)와 같은 형태로 임의 파일을 생성함으로써, 공격 즉 악성행위을 감행하는 악성코드로 하여금 임의 파일을 자신이 공격 목표로 하는 파일로 인식하도록 하는 것이 중요하다.Therefore, in the present invention, by generating a random file in the form of a file (for example, document, media, etc.) that the malicious code targets the attack, the malicious code itself to attack the arbitrary file to attack It is important to make sure that it is recognized as the target file.
즉, 임의 파일은, 실제로 의미 있는 데이터를 저장하고 있는 파일이 아니라, 악성코드의 실제 공격 목표인 파일 대신 악성코드의 악성행위(공격)가 수행되기 위한 목적 만을 갖는 파일이다.In other words, the arbitrary file is not a file that actually stores meaningful data, but a file having only the purpose of performing malicious behavior (attack) of the malicious code instead of the file that is the actual target of the malicious code.
따라서, 파일생성 및 경로정의부(110)는, 악성코드가 악성행위를 수행을 위한 목표로 하는 파일의 형태(예: 문서, 미디어 등)와 같은 형태의 임의 파일을, 정보(파일)를 저장하고 있는 저장부(400) 내에서 악성코드에게 노출시키기 위한 디렉토리(경로)에 생성한다.Accordingly, the file generation and path definition unit 110 stores information (files) in an arbitrary file in the form of a file (for example, document, media, etc.) that the malicious code targets for performing malicious actions. It is created in a directory (path) for exposing to malicious code in the storage unit 400.
아울러, 파일생성 및 경로정의부(110)는, 전술과 같이 임의 파일을 생성하면, 임의 파일과 연계되는 가상 파일의 경로를 정의한다.In addition, when the file generation and path definition unit 110 generates an arbitrary file as described above, the file generation and path definition unit 110 defines the path of the virtual file associated with the arbitrary file.
이때, 가상 파일은, 실제로 생성 및 존재하는 임의 파일과는 달리 실제로는 존재하지 않는 파일이며, 따라서 가상 파일의 경로 역시 임의 파일과 연계되는 정보일 뿐 실제 접근 가능한 디렉토리(경로)가 아니다.In this case, the virtual file is a file that does not actually exist, unlike an arbitrary file that is actually created and exists. Therefore, the path of the virtual file is also information associated with an arbitrary file and is not an actual accessible directory (path).
즉, 파일생성 및 경로정의부(110)는, 전술과 같이 임의 파일을 생성하면, 임의 파일과 연계되는 정보로서 가상 파일의 경로를 정의하는 것이다.That is, the file generation and path defining unit 110 defines the path of the virtual file as information associated with the arbitrary file when generating the arbitrary file as described above.
프로세스구별부(120)는, 행위 수행을 위한 대상파일 검색을 시도하는 프로세스(300)가 확인되면, 프로세스(300)가 정상 프로세스인지 의심 프로세스인지 구별한다.When the process 300 that attempts to search for a target file for performing an action is confirmed, the process discriminating unit 120 distinguishes whether the process 300 is a normal process or a suspect process.
구체적으로, 프로세스구별부(120)는, 사전에 정의된 구별정책에 따라, 프로세스(300)가 정상 프로세스인지 의심 프로세스인지 구별할 수 있다. In detail, the process discrimination unit 120 may distinguish whether the process 300 is a normal process or a suspect process according to a predefined discrimination policy.
예를 들면, 구별정책은, 누적된 악성코드 탐지 결과를 바탕으로 작성된 화이트리스트에 속해 있는 프로세스를 정상 프로세서로 구별하고, 화이트리스트에 속해 있지 않는 프로세스를 의심 프로세스로 구별하는 정책일 수 있다.For example, the discrimination policy may be a policy for distinguishing a process belonging to a whitelist based on the accumulated malware detection result as a normal processor, and distinguishing a process not belonging to the whitelist as a suspicious process.
이 경우, 프로세스구별부(120)는, 구별정책 따라, 프로세스(300)가 화이트리스트에 속해 있으면 정상 프로세스로 구별하고, 화이트리스트에 속해 있지 않으면 의심 프로세스로 구별할 것이다.In this case, the process discrimination unit 120, according to the discrimination policy, if the process 300 belongs to the white list, it will be classified as a normal process, and if not belonging to the white list, it will be classified as a suspicious process.
또는, 구별정책은, 누적된 악성코드 탐지 결과를 바탕으로 작성된 화이트리스트에 속해 있으면서 로드하는 모듈 중 언노운(Unknown)인 모듈이 없는 프로세스를 정상 프로세서로 구별하고, 화이트리스트에 속해 있지 않거나 속해 있더라도 로드하는 모듈 중 언노운(Unknown)인 모듈이 있는 프로세스를 의심 프로세스로 구별하는 정책일 수 있다.Alternatively, the discrimination policy identifies a process that belongs to a whitelist based on the accumulated malware detection result and does not have an unknown module among the loaded modules as a normal processor. The module may be a policy that distinguishes a process having an unknown module among the modules as a suspicious process.
이 경우, 프로세스구별부(120)는, 구별정책 따라, 프로세스(300)가 화이트리스트에 속해 있고 로드하는 모듈 중 언노운(Unknown)인 모듈이 없으면 정상 프로세스로 구별하고, 화이트리스트에 속해 있지 않거나 속해 있더라도 로드하는 모듈 중 언노운(Unknown)인 모듈이 있으면 의심 프로세스로 구별할 것이다.In this case, according to the discrimination policy, if the process 300 belongs to the whitelist and there is no module that is unknown among the modules to be loaded, the process discrimination unit 120 classifies the process as a normal process and does not belong to or belong to the whitelist. Even if it is known, any module that is loaded will be identified as a suspicious process.
전술한 구별정책의 2가지 예시는 설명의 편의 상 언급한 실시예일 뿐이다.The two examples of the above-mentioned distinction policy are only the embodiments mentioned for convenience of description.
본 발명에서는, 전술한 2가지 예시에 한정되지 않고 이 외에도 다양하게 구별정책을 사전 정의하여, 정상 프로세스/의심 프로세스를 구별할 수 있을 것이다.In the present invention, it is not limited to the two examples described above, and in addition to this, it is possible to distinguish normal processes / suspect processes by pre-defined various discrimination policies.
제어부(130)는, 프로세스(300)가 정상 프로세스로 구별되는 경우, 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 프로세스(300)로 제공한다.When the process 300 is classified as a normal process, the controller 130 provides the process 300 with the path of the searched target file as a search result according to the target file search attempt.
이하에서는 설명의 편의 상, 정상 프로세스로 구별된 프로세스(300)을 정상 프로세스(300)으로 지칭하고, 의심 프로세스로 구별된 프로세스(300)을 의심 프로세스(300)으로 지칭하겠다.Hereinafter, for convenience of description, a process 300 distinguished as a normal process will be referred to as a normal process 300, and a process 300 distinguished as a suspicious process will be referred to as a suspicious process 300.
즉, 제어부(130)는, 행위 수행을 위한 대상파일 검색을 시도하는 정상 프로세스(300)에게, 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 제공하는 것이다.That is, the controller 130 provides a path of the target file searched according to the target file search attempt as a search result to the normal process 300 that attempts to search the target file for performing the action.
이는, 기존에 프로세스가 행위 수행을 위한 대상파일 검색을 시도하여 대상파일의 경로(디렉토리)를 검색결과로 제공받는, 일반적인 검색결과 제공 방식이다.This is a general search result providing method in which a process attempts to search a target file for performing an action and receives a path (directory) of the target file as a search result.
한편, 제어부(130)는, 프로세스(300)가 의심 프로세스로 구별되는 경우, 검색결과로서 대상파일의 경로를 프로세스(300)로 제공할 때 앞서 정의한 가상 파일의 경로를 함께 제공한다.Meanwhile, when the process 300 is classified as a suspicious process, the controller 130 provides the path of the previously defined virtual file when providing the path of the target file to the process 300 as a search result.
즉, 제어부(130)는, 행위 수행을 위한 대상파일 검색을 시도하는 의심 프로세스(300)에게, 대상파일 검색 시도에 따라 검색된 대상파일의 경로 뿐 아니라 앞서 정의한 가상 파일의 경로도 함께 검색결과로서 제공하는 것이다.That is, the control unit 130 provides the suspect process 300 that attempts to search the target file for performing the action, as a search result, as well as the path of the target file searched according to the target file search attempt, as a search result. It is.
이렇게 되면, 의심 프로세스(300)는, 대상파일 검색을 통해 대상파일의 경로(디렉토리) 만을 검색결과로서 제공받는 정상 프로세스(300)와 달리, 대상파일 검색을 통해 대상파일의 경로(디렉토리) 및 가상 파일의 경로를 검색결과로서 제공받는다.In this case, the suspicious process 300, unlike the normal process 300 that receives only the path (directory) of the target file through the target file search as a search result, the path (directory) and virtual of the target file through the target file search The path of the file is provided as a search result.
이에, 본 발명에서는, 의심 프로세스(300)에게 대상파일의 경로(디렉토리) 및 가상 파일의 경로를 검색결과로서 제공하기 때문에, 의심 프로세스(300)에서만 가상 파일의 경로와 연계된 임의 파일의 존재가 인지될 수 있다.Thus, in the present invention, since the suspicious process 300 provides the path (directory) of the target file and the path of the virtual file as a search result, the presence of any file associated with the path of the virtual file is only present in the suspicious process 300. It can be recognized.
즉, 본 발명에 따르면, 정상 프로세스(300)는, 가상 파일의 경로를 알 수 없기 때문에 가상 파일의 경로와 연계된 임의 파일의 존재를 인지하는 것이 불가능하므로, 임의 파일에 근거한 본 발명의 악성코드 탐지 기법은 정상 프로세스(300)에게는 노출되지 않는다.That is, according to the present invention, since the normal process 300 cannot recognize the existence of any file associated with the path of the virtual file because the path of the virtual file is not known, the malicious code of the present invention based on the arbitrary file. The detection technique is not exposed to normal process 300.
반면, 본 발명에 따르면, 탐지 대상인 악성코드일 수도 있는 프로세스 즉 의심 프로세스(300)는, 가상 파일의 경로를 알 수 있기 때문에 가상 파일의 경로와 연계된 임의 파일의 존재를 인지하게 되고, 따라서 임의 파일에 근거한 본 발명의 악성코드 탐지 기법은 의심 프로세스(300)에게만 제한적으로 노출되는 것이다.On the other hand, according to the present invention, the process that may be the malware to be detected, that is, the suspicious process 300, since the path of the virtual file is known, recognizes the existence of any file associated with the path of the virtual file, and thus, The malware detection technique of the present invention based on the file is limited to the suspicious process 300 only.
한편, 본 발명에서 탐지 대상으로 하는 악성코드는, 정보(파일)을 임의로 변조시켜 사용 불가능 상태로 만드는 형태의 공격을 감행하는 악성코드일 수 있고, 또는 정보(파일)을 외부로 유출시키는 형태의 공격을 감행하는 악성코드일 수도 있고, 또는 정보(파일)을 삭제하는 형태의 공격을 감행하는 악성코드일 수도 있다.On the other hand, the malicious code to be detected in the present invention may be a malicious code to attack in the form of randomly tampering with information (file), or to leak information (file) to the outside It may be malicious code that performs an attack or malicious code that performs an attack in the form of deleting information (file).
제어부(130)는, 의심 프로세스(300)가 가상 파일의 경로에 접근하여 임의 파일에서 수행하는 행위를 기반으로, 의심 프로세스(300)를 악성코드로 탐지한다.The controller 130 detects the suspicious process 300 as malicious code based on an action performed by the suspicious process 300 in an arbitrary file by accessing the path of the virtual file.
즉, 본 발명에서는, 의심 프로세스(300)가 임의 파일과 연계되는 정보일 뿐 실제로 존재하지 않은 가상 파일의 경로로 접근하면, 의심 프로세스(300)를 가상 파일의 경로와 연계된 임의 파일로 접근시킨다.That is, in the present invention, when the suspicious process 300 accesses a path of a virtual file that is only information associated with an arbitrary file and does not actually exist, the suspicious process 300 accesses an arbitrary file associated with a path of the virtual file. .
이에, 제어부(130)는, 의심 프로세스(300)가 가상 파일의 경로에 접근하여 임의 파일에 접근한 후 임의 파일에서 수행하는 행위를 기반으로, 본 발명에서 탐지 대상으로 하는 악성코드의 악성행위(공격)로 판단되면 의심 프로세스(300)를 악성코드인 것으로 탐지할 수 있다.Thus, the controller 130 is based on the action performed by the suspicious process 300 in the arbitrary file after accessing the path of the virtual file to the arbitrary file, the malicious behavior of the malicious code (detected in the present invention) ( Attack), the suspicious process 300 may be detected as being malicious code.
이때, 의심 프로세스(300)가 악성행위(공격)를 수행한 임의 파일은, 실제로는 의미 있는 데이터를 저장하고 있는 파일이 아니기 때문에, 금번 임의 파일에서 수행된 의심 프로세스(300)의 악성행위(공격)로 인한 실제 피해는 발생되지 않은 것이다. At this time, since the random file that the suspicious process 300 has performed a malicious action (attack) is not a file that actually stores meaningful data, the malicious behavior (attack of the suspicious process 300 performed on the random file this time) There is no actual damage caused by).
그리고, 제어부(130)는, 의심 프로세스(300)를 악성코드인 것으로 탐지하면, 의심 프로세스(300)가 더 이상 다른 파일에 접근하지 못하도록 차단할 수 있다.If the suspicious process 300 is detected as malicious code, the controller 130 may block the suspicious process 300 from accessing another file anymore.
이에, 본 발명에 따르면, 의심 프로세스(300)가 검색결과로서 제공된 대상파일의 경로 및 가상 파일의 경로 중 가상 파일의 경로에 먼저 접근하게만 한다면, 의심 프로세스(300)가 악성코드인 경우 실제 피해가 발생하기 전에 악성코드로 탐지해낼 수 있다.Thus, according to the present invention, if the suspicion process 300 is to only access the path of the virtual file of the path of the target file and the path of the virtual file provided as a search result first, if the suspicious process 300 is malicious code, the actual damage Can be detected as malware before it occurs.
하지만, 의심 프로세스(300)가 검색결과로서 제공된 대상파일의 경로 및 가상 파일의 경로 중 가상 파일의 경로 보다 먼저 대상파일의 경로에 접근하여 대상파일 즉 실제 공격 목표인 파일에서 악성행위(공격)를 수행한다면, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지해내지 못하는 상황이 발생할 수 있다.However, the suspicious process 300 accesses the path of the target file before the path of the virtual file among the paths of the target file and the virtual file provided as a search result to detect malicious behavior (attack) in the target file, that is, the actual target file. If you do, you may encounter a situation where you cannot detect malware before the actual damage caused by the malware occurs.
이러한 상황을 미연에 방지하고자, 본 발명에서는, 의심 프로세스(300)가 검색결과로서 제공된 대상파일의 경로 및 가상 파일의 경로 중 가상 파일의 경로에 우선적으로 접근하게 하는 기능을 제안한다.In order to prevent such a situation, the present invention proposes a function of causing the suspicious process 300 to preferentially access the path of the virtual file among the path of the target file and the path of the virtual file provided as a search result.
구체적으로 설명하면, 제어부(130)는, 의심 프로세스(300)가 검색결과를 기반으로 파일에 접근할 때 대상파일의 경로 보다 가상 파일의 경로에 먼저 접근을 시도하게 하는 특정 인자를, 가상 파일의 경로에 반영한 후에 제공한다.Specifically, the controller 130 may include a specific factor that causes the suspicious process 300 to access the path of the virtual file before the path of the target file when the file is accessed based on the search result. Provide after reflecting on the path.
즉, 제어부(130)는, 행위 수행을 위한 대상파일 검색을 시도하는 의심 프로세스(300)로 검색된 대상파일의 경로 및 가상 파일의 경로를 함께 검색결과로서 제공할 때, 특정 인자를 가상 파일의 경로에 반영한 후 제공하는 것이다.That is, the controller 130 provides the path of the virtual file as a search result when providing the path of the target file and the path of the virtual file searched to the suspicious process 300 that attempts to search the target file for performing an action. Will reflect on and provide.
여기서, 특정 인자는, 의심 프로세스(300)가 검색결과를 기반으로 파일에 접근할 때 대상파일의 경로 보다 가상 파일의 경로에 먼저 접근을 시도하게 하는 인자로 정의한다.Here, the specific factor is defined as a factor that causes the suspicious process 300 to attempt to access the path of the virtual file before the path of the target file when the file is accessed based on the search result.
따라서, 특정 인자는, 탐지 대상인 악성코드가 여러 파일을 접근 대상으로 할 때 어떤 순서로 파일에 접근하는지 파일접근패턴을 분석한 결과에 기초하여, 정의될 수 있다. Therefore, a specific factor may be defined based on a result of analyzing a file access pattern in which order the malware to be detected accesses the files in order to access the files.
예를 들어, 파일접근패턴을 분석한 결과, 탐지 대상인 악성코드가 여러 파일을 접근 대상으로 할 때 "!"로 시작하는 경로(디렉토리)를 갖는 파일에 가장 먼저 접근을 시도한다면, 특정 인자로서 "!"를 정의한다.For example, after analyzing the file access pattern, if the malicious code to detect attempts to access a file with a path (directory) beginning with "!" When accessing multiple files, " ! "
이 경우, 제어부(130)는, 의심 프로세스(300)로 검색된 대상파일의 경로 및 가상 파일의 경로를 함께 검색결과로서 제공할 때, 특정 인자 "!"를 가상 파일의 경로 맨 앞에 반영한 후 제공하는 것이다.In this case, when providing the path of the target file and the virtual file searched by the suspicious process 300 as a search result, the controller 130 reflects a specific factor "!" At the beginning of the path of the virtual file and provides the result. will be.
이렇게 되면, 의심 프로세스(300)는, 검색결과로서 제공된 대상파일의 경로 및 가상 파일의 경로 중 "!"로 시작하는 가상 파일의 경로에 가장 먼저 접근을 시도할 것이기 때문에, 의심 프로세스(300)가 악성코드인 경우 실제 피해가 발생하기 전에 악성코드로 탐지해낼 수 있을 것이다.The suspicious process 300 then attempts to access the path of the virtual file beginning with "!" Of the path of the target file and the path of the virtual file provided as a search result, so that the suspicious process 300 In the case of malware, it can be detected as malware before the actual damage occurs.
한편, 악성코드 중에는, 여러 파일을 접근 대상으로 할 때 랜덤하게 파일에 접근하는 악성코드가 존재하며, 이러한 악성코드는 앞서 제안한 특정 인자(예: !)를 가상 파일의 경로에 반영하는 것만으로 실제 피해 발생 전에 탐지해내기 어려울 수 있다.On the other hand, among the malicious codes, there are malicious codes that randomly access files when accessing several files, and these malicious codes actually apply only a specific factor (eg!) Suggested above to the virtual file path. It can be difficult to detect before damage occurs.
이에, 제어부(130)는, 대상파일 검색 시도에 따라 검색된 대상파일의 경로 단위로 각 대상파일의 경로 마다 가상 파일의 경로를 쌍으로 함께 제공하여, 의심 프로세스(300)가 검색결과를 기반으로 랜덤하게 파일에 접근하더라도 대상파일의 경로 보다 가상 파일의 경로에 먼저 접근을 시도하도록 한다.Accordingly, the controller 130 provides a pair of paths of the virtual file for each path of the target file in units of paths of the target file searched according to the target file search attempt, and the suspicious process 300 randomly based on the search result. Even if the file is accessed, try to access the virtual file path before the target file path.
즉, 제어부(130)는, 의심 프로세스(300)로 검색된 대상파일의 경로 및 가상 파일의 경로를 함께 검색결과로서 제공할 때, 각 대상파일의 경로 마다 특정 인자(예: !)를 반영한 가상 파일의 경로를 쌍으로 함께 제공하는 것이다.That is, the controller 130, when providing the path of the target file and the virtual file searched by the suspicious process 300 as a search result, the virtual file reflecting a specific factor (for example!) For each path of the target file To provide the path of the pair together.
예를 들어, 대상파일 검색 시도에 따라 검색된 대상파일의 경로가 5개(예: 경로1,2,3,4,5)라고 가정하면, 제어부(130)는, 대상파일의 경로 단위로 각 대상파일의 경로1,2,3,4,5 마다 특정 인자(예: !)를 반영한 가상 파일의 경로를 쌍으로 하여, 가상 파일의 경로 및 대상파일의 경로1, 가상 파일의 경로 및 대상파일의 경로2, 가상 파일의 경로 및 대상파일의 경로3, 가상 파일의 경로 및 대상파일의 경로4, 가상 파일의 경로 및 대상파일의 경로5의 형태로 검색결과를 제공하는 것이다.For example, assuming that there are five paths of the target file searched according to the target file search attempt (for example, paths 1, 2, 3, 4, and 5), the controller 130 controls each target in units of paths of the target file. The path of the virtual file and the path of the target file 1, the path of the virtual file, and the destination file are paired by pairing the path of the virtual file reflecting a specific factor (e.g.!) For each file path 1, 2, 3, 4, 5. The search results are provided in the form of path 2, path of virtual file and path of target file 3, path of virtual file and path of target file 4, path of virtual file and path 5 of target file.
이렇게 되면, 의심 프로세스(300)는, 검색결과로서 제공된 대상파일의 경로 중 랜덤하게 가장 먼저 선택한 대상파일의 경로(예: 경로2)에 접근을 시도하려 한다면, "!"로 시작하는 가상 파일의 경로가 대상파일의 경로2와 한 쌍이기 때문에 대상파일의 경로2 보다"!"로 시작하는 가상 파일의 경로에 먼저 접근을 시도할 것이다.In this case, the suspicious process 300 attempts to access a path (eg, path 2) of the first target file selected at random among the paths of the target file provided as a search result. Since the path is paired with the path2 of the target file, we will attempt to access the path of the virtual file starting with "!" Before the path2 of the target file.
전술과 같이, 본 발명에서는, 가상 파일의 경로에 특정 인자(예: !)를 반영하는 방식 및/또는 가상 파일의 경로를 대상파일의 경로와 쌍으로 제공하는 방식을 통해서, 의심 프로세스(300)가 검색결과를 기반으로 파일에 접근할 때 가장 먼저 가상 파일의 경로에 접근을 시도하여 임의 파일에 우선적으로 접근하도록 함으로써, 의심 프로세스(300)가 악성코드인 경우 실제 피해가 발생하기 전에 악성코드로 탐지해낼 수 있다. As described above, in the present invention, the suspicious process 300 through a method of reflecting a specific factor (eg,!) In the path of the virtual file and / or providing a path of the virtual file in pairs with the path of the target file. Attempts to access the path of the virtual file first when accessing the file based on the search result, so that the random file is preferentially accessed, so that if the suspicious process 300 is malicious code, the malicious code before the actual damage occurs. Can be detected.
또한, 본 발명에서는, 랜덤하게 파일에 접근하여 악성행위(공격)을 수행하는 악성코드까지도, 실제 피해가 발생하기 전에 탐지해낼 수 있다. In addition, in the present invention, even malicious code that randomly accesses a file and performs malicious actions (attack) can be detected before actual damage occurs.
아울러, 본 발명에서 제어부(130)는, 임의 파일의 경로에 직접 접근하여 임의 파일에서 행위 수행을 시도하는 프로세스(300)가 확인되면, 프로세스(300)가 정상 프로세스인지 의심 프로세스인지 여부와 무관하게 접근을 차단한다.In addition, in the present invention, if the process 300 that attempts to perform an action on the arbitrary file by directly accessing the path of the arbitrary file is confirmed, regardless of whether the process 300 is a normal process or a suspect process, Block access
이는, 실제 피해 발생 전에 악성코드를 탐지하기 위한 핵심 요소 즉 임의 파일이 임의로 삭제되는 것을 방지하기 위함이다.This is to prevent the random deletion of a key element for detecting malicious code before actual damage occurs.
이상에서 설명한 바와 같이, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)은, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지하는 새로운 악성코드 탐지 기법을 실현하고 있다.As described above, the malicious code detection system 100 according to an embodiment of the present invention implements a new malicious code detection technique for detecting malicious code before actual damage caused by the malicious code occurs.
특히, 본 발명에서는, 정상 프로세스(300)에게는 가상 파일의 경로를 알 수 없게 하고 의심 프로세스(300)에게만 가상 파일의 경로를 알 수 있게 하는 방식을 통해, 본 발명의 악성코드 탐지 기법이 탐지 대상인 의심 프로세스(300)에게만 제한적으로 노출되도록 하고 있다.In particular, in the present invention, the malware detection technique of the present invention is a detection target through a method in which the path of the virtual file is unknown to the normal process 300 and only the path of the virtual file is known to the suspicious process 300. Limited exposure to suspicious process 300 is provided.
따라서, 본 발명에서는, 실제 피해 발생 전에 악성코드를 탐지하기 위한 핵심 요소 즉 임의 파일이 쉽게 노출되는 상황을 억제하여, 오히려 사용자가 임의 파일을 악성코드로 오해하고 임의대로 삭제하거나 악성코드 제작자가 임의 파일을 불순한 의도로 이용하는 일이 발생되지 않도록 하는 효과까지 달성하고 있다.Therefore, in the present invention, a key element for detecting malicious code, i.e., an arbitrary file is easily exposed before the actual damage occurs, so that the user misunderstands the arbitrary file as the malicious code and deletes it arbitrarily, It also achieves the effect of preventing the use of files with impure intentions.
이하에서는, 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 악성코드 탐지 방법을 보다 구체적으로 설명하도록 한다. 여기서, 설명의 편의를 위해 전술한 도 1에 도시된 구성은 해당 참조번호를 언급하여 설명하겠다. Hereinafter, referring to FIG. 2, the malicious code detection method according to an exemplary embodiment of the present invention will be described in more detail. Here, for the convenience of description, the configuration shown in FIG. 1 described above will be described with reference to the corresponding reference numerals.
설명의 편의를 위해, 본 발명의 일 실시예에 따른 악성코드 탐지 방법은, 도 1에 도시된 악성코드탐지시스템(100)에 의해 동작되는 동작 방법인 것으로 언급하여 설명하도록 하겠다.For convenience of description, the malicious code detection method according to an embodiment of the present invention will be described by referring to the operation method that is operated by the malicious code detection system 100 shown in FIG.
본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 악성코드가 악성행위를 수행을 위해 목표로 하는 파일의 형태(예: 문서, 미디어 등)와 같은 형태의 임의 파일을, 정보(파일)를 저장하고 있는 저장부(400) 내에서 악성코드에게 노출시키기 위한 디렉토리(경로)에 생성한다(S100).The operation method of the malicious code detection system 100 according to an embodiment of the present invention may be any type of file such as a file type (eg, document, media, etc.) that the malicious code targets to perform malicious actions. In the storage unit 400 that stores the information (file), it is created in a directory (path) for exposing to malicious code (S100).
아울러, 파일생성 및 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 전술과 같이 임의 파일을 생성하면, 임의 파일과 연계되는 가상 파일의 경로를 정의한다(S100).In addition, the file generation and operation method of the malicious code detection system 100 according to an embodiment of the present invention, when generating an arbitrary file as described above, defines the path of the virtual file associated with the arbitrary file (S100).
이때, 임의 파일은, 실제로는 의미 있는 데이터를 저장하고 있는 파일이 아니라, 악성코드의 실제 공격 목표인 파일 대신에 악성코드의 악성행위(공격)가 수행되기 위한 목적 만을 갖는 파일이다.At this time, the arbitrary file is not a file that actually stores meaningful data, but a file having only the purpose of performing malicious behavior (attack) of the malicious code instead of the file which is the actual attack target of the malicious code.
이때, 가상 파일은, 실제로 생성 및 존재하는 임의 파일과는 달리, 실제로는 존재하지 않는 파일이며 따라서 가상 파일의 경로 역시 임의 파일과 연계되는 정보일 뿐 실제 접근 가능한 디렉토리(경로)가 아니다.In this case, the virtual file is a file that does not exist, unlike a random file that is actually created and exists. Therefore, the path of the virtual file is also information associated with an arbitrary file and is not an actual accessible directory (path).
즉, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 전술과 같이 임의 파일을 생성하면, 임의 파일과 연계되는 정보로서 가상 파일의 경로를 정의하는 것이다.That is, in the method of operating the malicious code detection system 100 according to an embodiment of the present invention, when a random file is generated as described above, the path of the virtual file is defined as information associated with the random file.
본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 행위 수행을 위한 대상파일 검색을 시도하는 프로세스(300)가 확인되면(S110), 프로세스(300)가 정상 프로세스인지 의심 프로세스인지 구별한다(S120).In the method of operating the malware detection system 100 according to an embodiment of the present invention, when the process 300 for attempting to search for a target file for performing an action is confirmed (S110), the process 300 is suspected to be a normal process. The process is distinguished (S120).
구체적으로, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 사전에 정의된 구별정책에 따라, 프로세스(300)가 정상 프로세스인지 의심 프로세스인지 구별할 수 있다. Specifically, the operation method of the malware detection system 100 according to an embodiment of the present invention may distinguish whether the process 300 is a normal process or a suspect process according to a predefined discrimination policy.
예를 들면, 구별정책은, 누적된 악성코드 탐지 결과를 바탕으로 작성된 화이트리스트에 속해 있는 프로세스를 정상 프로세서로 구별하고, 화이트리스트에 속해 있지 않는 프로세스를 의심 프로세스로 구별하는 정책일 수 있다.For example, the discrimination policy may be a policy for distinguishing a process belonging to a whitelist based on the accumulated malware detection result as a normal processor, and distinguishing a process not belonging to the whitelist as a suspicious process.
이 경우, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 구별정책 따라, 프로세스(300)가 화이트리스트에 속해 있으면 정상 프로세스로 구별하고, 화이트리스트에 속해 있지 않으면 의심 프로세스로 구별할 것이다.In this case, the operation method of the malicious code detection system 100 according to an embodiment of the present invention, if the process 300 belongs to a white list according to the discrimination policy, distinguished as a normal process, and if it does not belong to the white list, We will distinguish it by process.
또는, 구별정책은, 누적된 악성코드 탐지 결과를 바탕으로 작성된 화이트리스트에 속해 있으면서 로드하는 모듈 중 언노운(Unknown)인 모듈이 없는 프로세스를 정상 프로세서로 구별하고, 화이트리스트에 속해 있지 않거나 속해 있더라도 로드하는 모듈 중 언노운(Unknown)인 모듈이 있는 프로세스를 의심 프로세스로 구별하는 정책일 수 있다.Alternatively, the discrimination policy identifies a process that belongs to a whitelist based on the accumulated malware detection result and does not have an unknown module among the loaded modules as a normal processor. The module may be a policy that distinguishes a process having an unknown module among the modules as a suspicious process.
이 경우, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 구별정책 따라, 프로세스(300)가 화이트리스트에 속해 있고 로드하는 모듈 중 언노운(Unknown)인 모듈이 없으면 정상 프로세스로 구별하고, 화이트리스트에 속해 있지 않거나 속해 있더라도 로드하는 모듈 중 언노운(Unknown)인 모듈이 있으면 의심 프로세스로 구별할 것이다.In this case, the operation method of the malware detection system 100 according to an embodiment of the present invention is normal if there is no known module among the modules that the process 300 belongs to the whitelist and loads according to the discrimination policy. It will be identified as a process, and even if it is not on the whitelist or if it is a module that is unknown, it will be identified as a suspicious process.
본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 프로세스(300)가 정상 프로세스로 구별되는 경우(S120 No), 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 프로세스(300)로 제공한다(S160).In the method of operating the malware detection system 100 according to an embodiment of the present invention, when the process 300 is classified as a normal process (S120 No), a search result of the target file searched according to the target file search attempt is searched. As provided to the process 300 (S160).
이하에서는 설명의 편의 상, 정상 프로세스로 구별된 프로세스(300)을 정상 프로세스(300)으로 지칭하고, 의심 프로세스로 구별된 프로세스(300)을 의심 프로세스(300)으로 지칭하겠다.Hereinafter, for convenience of description, a process 300 distinguished as a normal process will be referred to as a normal process 300, and a process 300 distinguished as a suspicious process will be referred to as a suspicious process 300.
즉, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 행위 수행을 위한 대상파일 검색을 시도하는 정상 프로세스(300)에게, 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 제공하는 것이다.That is, the operating method of the malicious code detection system 100 according to an embodiment of the present invention includes a path of the target file searched according to the target file search attempt to the normal process 300 that attempts to search the target file for performing the action. As a search result.
이는, 기존에 프로세스가 행위 수행을 위한 대상파일 검색을 시도하여 대상파일의 경로(디렉토리)를 검색결과로 제공받는, 일반적인 검색결과 제공 방식이다.This is a general search result providing method in which a process attempts to search a target file for performing an action and receives a path (directory) of the target file as a search result.
한편, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 프로세스(300)가 의심 프로세스로 구별되는 경우(S120 Yes), 검색결과로서 대상파일의 경로를 프로세스(300)로 제공할 때 앞서 정의한 가상 파일의 경로를 함께 제공한다(S130).On the other hand, the operating method of the malware detection system 100 according to an embodiment of the present invention, when the process 300 is distinguished as a suspicious process (S120 Yes), the process 300 to the path of the target file as a search result When providing to provide the path of the previously defined virtual file (S130).
즉, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 행위 수행을 위한 대상파일 검색을 시도하는 의심 프로세스(300)에게, 대상파일 검색 시도에 따라 검색된 대상파일의 경로 뿐 아니라 앞서 정의한 가상 파일의 경로도 함께 검색결과로서 제공하는 것이다.That is, the operation method of the malicious code detection system 100 according to an embodiment of the present invention includes a path of the target file searched according to the target file search attempt to the suspicious process 300 attempting to search the target file for performing an action. In addition, the path of the previously defined virtual file is also provided as a search result.
이렇게 되면, 의심 프로세스(300)는, 대상파일 검색을 통해 대상파일의 경로(디렉토리) 만을 검색결과로서 제공받는 정상 프로세스(300)와 달리, 대상파일 검색을 통해 대상파일의 경로(디렉토리) 및 가상 파일의 경로를 검색결과로서 제공받기 때문에, 의심 프로세스(300)에서만 가상 파일의 경로와 연계된 임의 파일의 존재가 인지될 것이다.In this case, the suspicious process 300, unlike the normal process 300 that receives only the path (directory) of the target file through the target file search as a search result, the path (directory) and virtual of the target file through the target file search Since the path of the file is provided as a search result, only the suspicious process 300 will recognize the existence of any file associated with the path of the virtual file.
즉, 본 발명에 따르면, 정상 프로세스(300)는, 가상 파일의 경로를 알 수 없기 때문에 가상 파일의 경로와 연계된 임의 파일의 존재를 인지하는 것이 불가능하므로, 임의 파일에 근거한 본 발명의 악성코드 탐지 기법은 정상 프로세스(300)에게는 노출되지 않는다.That is, according to the present invention, since the normal process 300 cannot recognize the existence of any file associated with the path of the virtual file because the path of the virtual file is not known, the malicious code of the present invention based on the arbitrary file. The detection technique is not exposed to normal process 300.
반면, 본 발명에 따르면, 악성코드일 수도 있는 프로세스, 즉 탐지 대상인 의심 프로세스(300)는, 가상 파일의 경로를 알 수 있기 때문에 가상 파일의 경로와 연계된 임의 파일의 존재를 인지하게 되고, 따라서 임의 파일에 근거한 본 발명의 악성코드 탐지 기법은 의심 프로세스(300)에게만 제한적으로 노출되는 것이다.On the other hand, according to the present invention, the process that may be malicious code, that is, the suspicious process 300 to be detected, recognizes the existence of any file associated with the path of the virtual file because the path of the virtual file is known. The malware detection technique of the present invention based on arbitrary files is limited to the suspicious process 300 only.
의심 프로세스(300)가 검색결과로서 제공된 대상파일의 경로 및 가상 파일의 경로 중 가상 파일의 경로 보다 먼저 대상파일의 경로에 접근하여 대상파일 즉 실제 공격 목표인 파일에서 악성행위(공격)를 수행한다면, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지해내지 못하는 상황이 발생할 수 있다.If the suspicious process 300 accesses the path of the target file before the path of the virtual file among the paths of the target file and the virtual file provided as a search result, and performs malicious action (attack) on the target file, that is, the file that is the actual target of attack. However, there may be situations where the malware cannot be detected before the actual damage caused by the malware occurs.
이러한 상황을 미연에 방지하고자, 본 발명에서는, 의심 프로세스(300)로 검색결과를 제공할 때, 다음의 가상 파일의 경로에 특정 인자(예: !)를 반영하는 방식 및/또는 가상 파일의 경로를 대상파일의 경로와 쌍으로 제공하는 방식을 제공한다.In order to prevent such a situation, in the present invention, when providing a search result to the suspicious process 300, the method and / or the path of the virtual file reflects a specific factor (eg!) In the path of the next virtual file. Provides a way to pair with the path of the target file.
구체적으로 설명하면, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 의심 프로세스(300)가 검색결과를 기반으로 파일에 접근할 때 대상파일의 경로 보다 가상 파일의 경로에 먼저 접근을 시도하게 하는 특정 인자를, 가상 파일의 경로에 반영한 후에 제공한다.Specifically, in the method of operating the malware detection system 100 according to an embodiment of the present invention, when the suspicious process 300 accesses a file based on a search result, the path of the virtual file is larger than the path of the target file. Provide a specific argument to try to access the file first, as reflected in the path of the virtual file.
즉, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 행위 수행을 위한 대상파일 검색을 시도하는 의심 프로세스(300)로 검색된 대상파일의 경로 및 가상 파일의 경로를 함께 검색결과로서 제공할 때(S130), 특정 인자를 가상 파일의 경로에 반영한 후 제공하는 것이다.That is, the operating method of the malicious code detection system 100 according to an embodiment of the present invention, together with the path of the target file and the path of the virtual file detected by the suspicious process 300 attempting to search the target file for performing the action. When providing as a search result (S130), it is provided after reflecting a specific factor to the path of the virtual file.
여기서, 특정 인자는, 의심 프로세스(300)가 검색결과를 기반으로 파일에 접근할 때 대상파일의 경로 보다 가상 파일의 경로에 먼저 접근을 시도하게 하는 인자로 정의한다.Here, the specific factor is defined as a factor that causes the suspicious process 300 to attempt to access the path of the virtual file before the path of the target file when the file is accessed based on the search result.
따라서, 특정 인자는, 탐지 대상인 악성코드가 여러 파일을 접근 대상으로 할 때 어떤 순서로 파일에 접근하는지 파일접근패턴을 분석한 결과에 기초하여, 정의될 수 있다. Therefore, a specific factor may be defined based on a result of analyzing a file access pattern in which order the malware to be detected accesses the files in order to access the files.
예를 들어, 파일접근패턴을 분석한 결과, 탐지 대상인 악성코드가 여러 파일을 접근 대상으로 할 때 "!"로 시작하는 경로(디렉토리)를 갖는 파일에 가장 먼저 접근을 시도한다면, 특정 인자로서 "!"를 정의한다.For example, after analyzing the file access pattern, if the malicious code to detect attempts to access a file with a path (directory) beginning with "!" When accessing multiple files, " ! "
이 경우, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 행위 수행을 위한 대상파일 검색을 시도하는 의심 프로세스(300)로 검색된 대상파일의 경로 및 가상 파일의 경로를 함께 검색결과로서 제공할 때, 특정 인자 "!"를 가상 파일의 경로 맨 앞에 반영한 후 제공하는 것이다.In this case, the operation method of the malware detection system 100 according to an embodiment of the present invention, the path of the target file and the virtual file searched by the suspicious process 300 attempting to search the target file for performing the action When provided as a search result, the specific argument "!" Is provided at the beginning of the path of the virtual file.
이렇게 되면, 의심 프로세스(300)는, 검색결과로서 제공된 대상파일의 경로 및 가상 파일의 경로 중 "!"로 시작하는 가상 파일의 경로에 가장 먼저 접근을 시도할 것이기 때문에, 의심 프로세스(300)가 악성코드인 경우 실제 피해가 발생하기 전에 악성코드로 탐지해낼 수 있을 것이다.The suspicious process 300 then attempts to access the path of the virtual file beginning with "!" Of the path of the target file and the path of the virtual file provided as a search result, so that the suspicious process 300 In the case of malware, it can be detected as malware before the actual damage occurs.
한편, 악성코드 중에는, 여러 파일을 접근 대상으로 할 때 랜덤하게 파일에 접근하는 악성코드가 존재하며, 이러한 악성코드는 앞서 제안한 특정 인자(예: !)를 가상 파일의 경로에 반영하는 것만으로 실제 피해 발생 전에 탐지해내기 어려울 수 있다.On the other hand, among the malicious codes, there are malicious codes that randomly access files when accessing several files, and these malicious codes actually apply only a specific factor (eg!) Suggested above to the virtual file path. It can be difficult to detect before damage occurs.
이에, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 대상파일 검색 시도에 따라 검색된 대상파일의 경로 단위로 각 대상파일의 경로 마다 가상 파일의 경로를 쌍으로 함께 제공하여, 의심 프로세스(300)가 검색결과를 기반으로 랜덤하게 파일에 접근하더라도 대상파일의 경로 보다 가상 파일의 경로에 먼저 접근을 시도하게 한다.Accordingly, the operation method of the malware detection system 100 according to an embodiment of the present invention provides a pair of paths of a virtual file for each path of each target file in units of paths of the target files searched according to a target file search attempt. Thus, even when the suspicious process 300 randomly accesses the file based on the search result, the suspicious process 300 attempts to access the path of the virtual file before the path of the target file.
즉, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 행위 수행을 위한 대상파일 검색을 시도하는 의심 프로세스(300)로 검색된 대상파일의 경로 및 가상 파일의 경로를 함께 검색결과로서 제공할 때(S130), 각 대상파일의 경로 마다 특정 인자(예: !)를 반영한 가상 파일의 경로를 쌍으로 함께 제공하는 것이다.That is, the operating method of the malicious code detection system 100 according to an embodiment of the present invention, together with the path of the target file and the path of the virtual file detected by the suspicious process 300 attempting to search the target file for performing the action. When providing as a search result (S130), the path of the virtual file reflecting a specific factor (for example!) Is provided together in pairs for each path of the target file.
예를 들어, 대상파일 검색 시도에 따라 검색된 대상파일의 경로가 5개(예: 경로1,2,3,4,5)라고 가정하면, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 대상파일의 경로 단위로 각 대상파일의 경로1,2,3,4,5 마다 특정 인자(예: !)를 반영한 가상 파일의 경로를 쌍으로 하여, 가상 파일의 경로 및 대상파일의 경로1, 가상 파일의 경로 및 대상파일의 경로2, 가상 파일의 경로 및 대상파일의 경로3, 가상 파일의 경로 및 대상파일의 경로4, 가상 파일의 경로 및 대상파일의 경로5의 형태로 검색결과를 제공하는 것이다.For example, assuming that five (eg, paths 1, 2, 3, 4, 5) paths of a target file searched according to a target file search attempt, the malware detection system 100 according to an embodiment of the present invention. ), The path of the virtual file in pairs of the paths of the target file reflecting a specific factor (for example,!) For each path 1, 2, 3, 4, 5 of the target file. Path 1 of the target file, path of the virtual file and path of the target file 2, path of the virtual file and path of the target file 3, path of the virtual file and path of the target file 4, path of the virtual file and path of the target file 5 To provide search results.
이렇게 되면, 의심 프로세스(300)는, 검색결과로서 제공된 대상파일의 경로 중 랜덤하게 가장 먼저 선택한 대상파일의 경로(예: 경로2)에 접근을 시도하려 한다면, "!"로 시작하는 가상 파일의 경로가 대상파일의 경로2와 한 쌍이기 때문에 대상파일의 경로2 보다"!"로 시작하는 가상 파일의 경로에 먼저 접근을 시도할 것이다.In this case, the suspicious process 300 attempts to access a path (eg, path 2) of the first target file selected at random among the paths of the target file provided as a search result. Since the path is paired with the path2 of the target file, we will attempt to access the path of the virtual file starting with "!" Before the path2 of the target file.
전술과 같이, 본 발명에서는, 가상 파일의 경로에 특정 인자(예: !)를 반영하는 방식 및/또는 가상 파일의 경로를 대상파일의 경로와 쌍으로 제공하는 방식을 통해서, 의심 프로세스(300)가 검색결과를 기반으로 파일에 접근할 때 가장 먼저 가상 파일의 경로에 접근을 시도하여 임의 파일에 우선적으로 접근하도록 함으로써, 의심 프로세스(300)가 악성코드인 경우 실제 피해가 발생하기 전에 악성코드로 탐지해낼 수 있다. As described above, in the present invention, the suspicious process 300 through a method of reflecting a specific factor (eg,!) In the path of the virtual file and / or providing a path of the virtual file in pairs with the path of the target file. Attempts to access the path of the virtual file first when accessing the file based on the search result, so that the random file is preferentially accessed, so that if the suspicious process 300 is malicious code, the malicious code before the actual damage occurs. Can be detected.
또한, 본 발명에서는, 랜덤하게 파일에 접근하여 악성행위(공격)을 수행하는 악성코드까지도, 실제 피해가 발생하기 전에 탐지해낼 수 있다. In addition, in the present invention, even malicious code that randomly accesses a file and performs malicious actions (attack) can be detected before actual damage occurs.
이후, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 의심 프로세스(300)가 가상 파일의 경로에 접근하여 임의 파일에서 수행하는 행위를 수행하면(S140 Yes), 이 행위를 기반으로 의심 프로세스(300)를 악성코드로 탐지한다(S150).Then, the operation method of the malware detection system 100 according to an embodiment of the present invention, if the suspicious process 300 performs an action performed on an arbitrary file by accessing the path of the virtual file (S140 Yes), The suspicious process 300 is detected as malware based on the behavior (S150).
즉, 본 발명에서는, 의심 프로세스(300)가 임의 파일과 연계되는 정보일 뿐 실제로 존재하지 않은 가상 파일의 경로로 접근하면, 의심 프로세스(300)를 가상 파일의 경로와 연계된 임의 파일로 접근시킨다.That is, in the present invention, when the suspicious process 300 accesses a path of a virtual file that is only information associated with an arbitrary file and does not actually exist, the suspicious process 300 accesses an arbitrary file associated with a path of the virtual file. .
이에, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 의심 프로세스(300)가 가상 파일의 경로에 접근하여 임의 파일에 접근한 후 임의 파일에서 수행하는 행위를 기반으로, 본 발명에서 탐지 대상으로 하는 악성코드의 악성행위(공격)로 판단되면 의심 프로세스(300)를 악성코드인 것으로 탐지할 수 있다.Thus, the operation method of the malware detection system 100 according to an embodiment of the present invention, the suspicious process 300 accesses the path of the virtual file based on the action performed on the arbitrary file after accessing the arbitrary file In the present invention, if it is determined that the malicious activity (attack) of the malicious code to be detected, the suspicious process 300 may be detected as the malicious code.
이때, 의심 프로세스(300)가 악성행위(공격)를 수행한 임의 파일은, 실제로는 의미 있는 데이터를 저장하고 있는 파일이 아니기 때문에, 금번 임의 파일에서 수행된 의심 프로세스(300)의 악성행위(공격)으로 인한 실제 피해는 발생되지 않은 것이다. At this time, since the random file that the suspicious process 300 has performed a malicious action (attack) is not a file that actually stores meaningful data, the malicious behavior (attack of the suspicious process 300 performed on the random file this time) There is no actual damage caused by).
그리고, 본 발명의 일 실시예에 따른 악성코드탐지시스템(100)의 동작 방법은, 의심 프로세스(300)를 악성코드인 것으로 탐지하면, 의심 프로세스(300)가 더 이상 다른 파일에 접근하지 못하도록 차단할 수 있다.In addition, when the malicious code detection system 100 operates according to an embodiment of the present invention, when the suspicious process 300 is detected as malicious code, the suspicious process 300 may block access to another file. Can be.
이상에서 설명한 바와 같이 악성코드탐지시스템(100)의 동작 방법 즉 본 발명의 일 실시예에 따른 악성코드 탐지 방법은, 악성코드에 의한 실제 피해가 발생하기 전에 악성코드를 탐지하되 탐지 대상인 프로세스에게만 제한적으로 노출되는 새로운 악성코드 탐지 기법을 실현하고 있으며, 이로 인해 사용자나 악성코드 제작자에게 쉽게 노출되는 일 없이 악성코드를 효과적으로 탐지해낼 수 있다.As described above, the operation method of the malicious code detection system 100, that is, the malicious code detection method according to an embodiment of the present invention, detects malicious code before actual damage caused by the malicious code, but is limited to only the process to be detected. New malware detection techniques are exposed, which can effectively detect malware without being easily exposed to users or malware authors.
한편, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다.  본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.Meanwhile, the functional operations and implementations of the subject matter described in this specification may be implemented in digital electronic circuitry, computer software, firmware or hardware including the structures and structural equivalents disclosed herein, or one or more of them. It can be implemented in combination. Implementations of the subject matter described herein are one or more computer program products, ie one or more modules pertaining to computer program instructions encoded on a program storage medium of tangible type for controlling or by the operation of a processing system. Can be implemented.
컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.The computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of materials affecting a machine readable propagated signal, or a combination of one or more thereof.
본 명세서에서 "시스템"이나 "장치"라 함은 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.As used herein, the term "system" or "device" encompasses all the instruments, devices, and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers. The processing system may include, in addition to hardware, code that forms an execution environment for a computer program on demand, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. .
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.Computer programs (also known as programs, software, software applications, scripts, or code) may be written in any form of programming language, including compiled or interpreted languages, or a priori or procedural languages. It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment. Computer programs do not necessarily correspond to files in the file system. A program may be in a single file provided to the requested program, in multiple interactive files (eg, a file that stores one or more modules, subprograms, or parts of code), or part of a file that holds other programs or data. (Eg, one or more scripts stored in a markup language document). The computer program may be deployed to run on a single computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.
한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.Computer-readable media suitable for storing computer program instructions and data, on the other hand, include, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks, and CDs. It may include all types of nonvolatile memory, media and memory devices, including -ROM and DVD-ROM disks. The processor and memory can be supplemented by or integrated with special purpose logic circuitry.
본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.Implementations of the subject matter described herein may include, for example, a backend component such as a data server, or include a middleware component such as, for example, an application server, or a web browser or graphical user, for example, where a user may interact with the implementation of the subject matter described herein. It may be implemented in a computing system that includes a front end component, such as a client computer with an interface, or any combination of one or more of such back end, middleware or front end components. The components of the system may be interconnected by any form or medium of digital data communication such as, for example, a communication network.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 마찬가지로, 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.Although the specification includes numerous specific implementation details, these should not be construed as limiting to any invention or the scope of the claims, but rather as a description of features that may be specific to a particular embodiment of a particular invention. It must be understood. Likewise, certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable subcombination. Furthermore, while the features may operate in a particular combination and may be initially depicted as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, the claimed combination being a subcombination Or a combination of subcombinations.
또한, 본 명세서에서는 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.In addition, although the drawings depict operations in a particular order, it is to be understood that such operations must be performed in the specific order or sequential order shown in order to obtain desirable results or that all illustrated acts must be performed. Can not be done. In certain cases, multitasking and parallel processing may be advantageous. Moreover, the separation of the various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged into multiple software products. It should be understood that it can.
이와 같이, 본 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하려는 의도가 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, the specification is not intended to limit the invention to the specific terms presented. Thus, while the present invention has been described in detail with reference to the above examples, those skilled in the art can make modifications, changes, and variations to the examples without departing from the scope of the invention. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.

Claims (10)

  1. 악성코드 탐지를 위한 별도의 임의 파일을 생성하고, 상기 임의 파일과 연계되는 가상 파일의 경로를 정의하는 정의단계;A definition step of creating a separate random file for malware detection and defining a path of a virtual file associated with the random file;
    행위 수행을 위한 대상파일 검색을 시도하는 프로세스가 확인되면, 상기 프로세스가 정상 프로세스인지 의심 프로세스인지 구별하는 구별단계;Discriminating whether the process is a normal process or a suspicious process when a process of attempting to search for a target file for performing an action is identified;
    정상 프로세스로 구별되는 경우, 상기 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 상기 프로세스로 제공하는 제1제공단계;A first providing step of providing a path of the searched target file to the process as a search result when it is distinguished from a normal process;
    의심 프로세스로 구별되는 경우, 검색결과로서 상기 대상파일의 경로를 상기 프로세스로 제공할 때 상기 가상 파일의 경로를 함께 제공하여, 의심 프로세스로 구별된 프로세스가 상기 가상 파일의 경로와 연계된 상기 임의 파일의 존재를 인지하도록 하는 제2제공단계를 포함하는 것을 특징으로 하는 악성코드 탐지 방법.When distinguished as a suspicious process, when providing a path of the target file as the search result to the process, the path of the virtual file is provided together, such that the process identified as suspicious process is associated with the path of the virtual file. Malware detection method comprising a second providing step to recognize the presence of.
  2. 제 1 항에 있어서, The method of claim 1,
    상기 프로세스가 상기 가상 파일의 경로에 접근하여 상기 임의 파일에서 수행하는 행위를 기반으로, 상기 프로세스를 악성코드로 탐지하는 단계를 더 포함하는 것을 특징으로 하는 악성코드 탐지 방법.And detecting the process as malicious code based on an action of the process accessing the path of the virtual file and executing the random file.
  3. 제 1 항에 있어서,The method of claim 1,
    상기 구별단계는,The distinguishing step,
    기 정의된 구별정책에 따라, 상기 프로세스가 정상 프로세스인지 의심 프로세스인지 구별하는 것을 특징으로 하는 악성코드 탐지 방법.According to a predefined discrimination policy, the malware detection method, characterized in that distinguishing whether the process is a normal process or a suspect process.
  4. 제 1 항에 있어서, The method of claim 1,
    상기 제2제공단계는,The second providing step,
    상기 프로세스가 검색결과를 기반으로 파일에 접근할 때 상기 대상파일의 경로 보다 상기 가상 파일의 경로에 먼저 접근을 시도하게 하는 특정 인자를, 상기 가상 파일의 경로에 반영 후 제공하는 것을 특징으로 하는 악성코드 탐지 방법.When a process accesses a file based on a search result, a malicious factor is provided after reflecting a specific factor to the path of the virtual file before attempting to access the path of the virtual file rather than the path of the target file. Code detection method.
  5. 제 4 항에 있어서, The method of claim 4, wherein
    상기 제2제공단계는,The second providing step,
    상기 대상파일 검색 시도에 따라 검색된 대상파일의 경로 단위로 각 대상파일의 경로 마다 상기 가상 파일의 경로를 쌍으로 함께 제공하는 것을 특징으로 하는 악성코드 탐지 방법.Malware detection method characterized in that it provides a pair of paths of the virtual file for each path of the target file in the unit of the path of the target file retrieved in accordance with the target file search attempt.
  6. 제 1 항에 있어서, The method of claim 1,
    상기 임의 파일의 경로에 직접 접근하여 상기 임의 파일에서 행위 수행을 시도하는 프로세스가 확인되면, 상기 프로세스가 정상 프로세스인지 의심 프로세스인지 여부와 무관하게 접근을 차단하는 단계를 더 포함하는 것을 특징으로 하는 악성코드 탐지 방법.If the process of attempting to perform an action on the arbitrary file by directly accessing the path of the arbitrary file is confirmed, further comprising the step of blocking access regardless of whether the process is a normal process or a suspect process Code detection method.
  7. 악성코드 탐지를 위한 별도의 임의 파일을 생성하고, 상기 임의 파일과 연계되는 가상 파일의 경로를 정의하는 파일생성 및 경로정의부;A file generation and path definition unit for generating a separate random file for malware detection and defining a path of a virtual file associated with the random file;
    행위 수행을 위한 대상파일 검색을 시도하는 프로세스가 확인되면, 상기 프로세스가 정상 프로세스인지 의심 프로세스인지 구별하는 프로세스구별부;A process discriminating unit for discriminating whether the process is a normal process or a suspicious process when a process of attempting to search for a target file for performing an action is confirmed;
    정상 프로세스로 구별되는 경우 상기 대상파일 검색 시도에 따라 검색된 대상파일의 경로를 검색결과로서 상기 프로세스로 제공하고, 의심 프로세스로 구별되는 경우 검색결과로서 상기 대상파일의 경로를 상기 프로세스로 제공할 때 상기 가상 파일의 경로를 함께 제공하는 제어부를 포함하는 것을 특징으로 하는 악성코드탐지시스템.When it is classified as a normal process, the path of the target file searched according to the target file search attempt is provided to the process as a search result, and when it is classified as a suspicious process, the path of the target file is provided to the process as a search result. Malware detection system comprising a control unit for providing a path of the virtual file.
  8. 제 7 항에 있어서, The method of claim 7, wherein
    상기 제어부는, The control unit,
    상기 프로세스가 상기 가상 파일의 경로에 접근하여 상기 임의 파일에서 수행하는 행위를 기반으로, 상기 프로세스를 악성코드로 탐지하는 것을 특징으로 하는 악성코드탐지시스템.And detecting the process as malicious code based on an action performed by the process in the arbitrary file by accessing the path of the virtual file.
  9. 제 8 항에 있어서, The method of claim 8,
    상기 제어부는,The control unit,
    상기 프로세스가 검색결과를 기반으로 파일에 접근할 때 상기 대상파일의 경로 보다 상기 가상 파일의 경로에 먼저 접근을 시도하게 하는 특정 인자를, 상기 가상 파일의 경로에 반영 후 제공하는 것을 특징으로 하는 악성코드탐지시스템.When a process accesses a file based on a search result, a malicious factor is provided after reflecting a specific factor to the path of the virtual file before attempting to access the path of the virtual file rather than the path of the target file. Code Detection System.
  10. 제 9 항에 있어서, The method of claim 9,
    상기 제어부는,The control unit,
    상기 대상파일 검색 시도에 따라 검색된 대상파일의 경로 단위로 각 대상파일의 경로 마다 상기 가상 파일의 경로를 쌍으로 함께 제공하는 것을 특징으로 하는 악성코드탐지시스템.And a path of the virtual file in pairs for each path of the target file in units of paths of the target file searched according to the target file search attempt.
PCT/KR2017/006466 2016-09-02 2017-06-20 System for detecting malicious code and method for detecting malicious code WO2018043885A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0113127 2016-09-02
KR1020160113127A KR101857575B1 (en) 2016-09-02 2016-09-02 Malicious code detection system and malicious code detecting method

Publications (1)

Publication Number Publication Date
WO2018043885A1 true WO2018043885A1 (en) 2018-03-08

Family

ID=61301219

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/006466 WO2018043885A1 (en) 2016-09-02 2017-06-20 System for detecting malicious code and method for detecting malicious code

Country Status (2)

Country Link
KR (1) KR101857575B1 (en)
WO (1) WO2018043885A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211511A1 (en) * 2021-03-31 2022-10-06 계명대학교 산학협력단 Detection method of ransomware, restoration method, and computing device for performing such methods
KR102494454B1 (en) * 2021-03-31 2023-02-06 계명대학교 산학협력단 Method of detecting and restoration for ransomeware, and computing device for performing the method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110083180A1 (en) * 2009-10-01 2011-04-07 Kaspersky Lab, Zao Method and system for detection of previously unknown malware
KR20110119918A (en) * 2010-04-28 2011-11-03 한국전자통신연구원 Apparatus, system and method for detecting malicious code injected with fraud into normal process
KR101086203B1 (en) * 2011-07-15 2011-11-23 에스지에이 주식회사 A proactive system against malicious processes by investigating the process behaviors and the method thereof
KR20120073020A (en) * 2010-12-24 2012-07-04 한국인터넷진흥원 Activity monitoring system of malicious code to create a child process and activity monitoring method thereof
KR101625643B1 (en) * 2016-04-26 2016-05-30 주식회사 이노티움 Apparatus and method for detecting malicious code based on volatile virtual file

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110083180A1 (en) * 2009-10-01 2011-04-07 Kaspersky Lab, Zao Method and system for detection of previously unknown malware
KR20110119918A (en) * 2010-04-28 2011-11-03 한국전자통신연구원 Apparatus, system and method for detecting malicious code injected with fraud into normal process
KR20120073020A (en) * 2010-12-24 2012-07-04 한국인터넷진흥원 Activity monitoring system of malicious code to create a child process and activity monitoring method thereof
KR101086203B1 (en) * 2011-07-15 2011-11-23 에스지에이 주식회사 A proactive system against malicious processes by investigating the process behaviors and the method thereof
KR101625643B1 (en) * 2016-04-26 2016-05-30 주식회사 이노티움 Apparatus and method for detecting malicious code based on volatile virtual file

Also Published As

Publication number Publication date
KR101857575B1 (en) 2018-05-14
KR20180026139A (en) 2018-03-12

Similar Documents

Publication Publication Date Title
WO2013168913A1 (en) Apparatus and method for checking non-executable files
WO2013168951A1 (en) Apparatus and method for checking malicious file
US8955118B2 (en) Detecting malicious software
KR101626424B1 (en) System and method for virtual machine monitor based anti-malware security
US8370931B1 (en) Multi-behavior policy matching for malware detection
RU2679175C1 (en) Method of behavioral detection of malicious programs using a virtual interpreter machine
EP3335146B1 (en) Systems and methods for detecting unknown vulnerabilities in computing processes
WO2018056601A1 (en) Device and method for blocking ransomware using contents file access control
WO2012015171A2 (en) Hacker virus security-integrated control device
TWI396995B (en) Method and system for cleaning malicious software and computer program product and storage medium
WO2010062063A2 (en) Method and system for preventing browser-based abuse
KR20180032566A (en) Systems and methods for tracking malicious behavior across multiple software entities
WO2017034072A1 (en) Network security system and security method
WO2019160195A1 (en) Apparatus and method for detecting malicious threats contained in file, and recording medium therefor
WO2018164503A1 (en) Context awareness-based ransomware detection
WO2019039730A1 (en) Device and method for preventing ransomware
CN110135151B (en) Trusted computing implementation system and method based on matching of LSM and system call interception
CN109684829B (en) Service call monitoring method and system in virtualization environment
JP2010262609A (en) Efficient technique for dynamic analysis of malware
US8782809B2 (en) Limiting information leakage and piracy due to virtual machine cloning
WO2018208032A1 (en) Computer having isolated user computing unit
WO2014200201A1 (en) File security management apparatus and management method for system protection
WO2018043885A1 (en) System for detecting malicious code and method for detecting malicious code
WO2020111504A1 (en) Ransomware detection method and ransomware detection system
WO2014185627A1 (en) Data processing system security device and security method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17846810

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17846810

Country of ref document: EP

Kind code of ref document: A1