WO2014168406A1 - Apparatus and method for diagnosing attack which bypasses memory protection mechanisms - Google Patents

Apparatus and method for diagnosing attack which bypasses memory protection mechanisms Download PDF

Info

Publication number
WO2014168406A1
WO2014168406A1 PCT/KR2014/003052 KR2014003052W WO2014168406A1 WO 2014168406 A1 WO2014168406 A1 WO 2014168406A1 KR 2014003052 W KR2014003052 W KR 2014003052W WO 2014168406 A1 WO2014168406 A1 WO 2014168406A1
Authority
WO
WIPO (PCT)
Prior art keywords
malicious
memory area
attribute
memory
access violation
Prior art date
Application number
PCT/KR2014/003052
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 WO2014168406A1 publication Critical patent/WO2014168406A1/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
    • 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

Definitions

  • the present invention relates to an apparatus and method for diagnosing a memory protection method bypass attack for determining whether a malicious code is targeted to a shell code that causes an attack that bypasses a memory protection function, that is, an attack that bypasses a memory protection method.
  • Malware is software that is intentionally designed to perform malicious activities, such as destroying the system or leaking information, contrary to the user's intentions and interests.
  • malicious code types include hacking tools such as viruses, worms, trojans, backdoors, logic bombs, and trap doors, and malicious spywares. spyware and ad-ware.
  • hacking tools such as viruses, worms, trojans, backdoors, logic bombs, and trap doors
  • malicious spywares spyware and ad-ware.
  • self-replicating or automatic propagation function malicious code can leak personal information such as user ID and password, control target system, delete / change file, destroy system, denial of application / system, leak of key data, It is causing problems such as installing other hacking programs, and the damage is very diverse and serious.
  • a malicious code treatment system for detecting and treating malware
  • Most of the malware detection systems (vaccine programs) known to date use file-based diagnostics. This is due to the fact that most malicious codes are executed in the form of files that can be executed on a specific system.
  • the malicious code in order for malicious code to run on a Windows system, the malicious code usually has a format of an executable file (PE).
  • File extensions with PE format include exe, cpl, ocx, dll, vxd, sys, scr, and drv.
  • the malware treatment system In order to diagnose malware in the form of an executable file (PE), the malware treatment system also needs to have a signature of a specific type that can recognize the file type and determine it as malicious code.
  • These diagnostics are the same as the signature-based or string-testing methods used by most malware treatment systems.
  • This signature-based diagnostic method targets specific or unique parts of a file classified as malicious code, enabling accurate diagnosis that minimizes false positives and false negatives.
  • the advantage is that fast scanning can be achieved by comparing only the characteristic parts of the files.
  • the signature-based diagnostic method cannot detect a new file that has been changed by only a few files since the malicious code does not diagnose even if the file itself changes only a few hundred bytes. In addition, since it can only respond to known malicious code, it cannot cope with new and unknown malicious code.
  • Non-PE non-portable Executable
  • the term "non-executable file” refers to a file that is not executed by itself as opposed to an executable file or an executable file.
  • the non-executable file may be a Korean file, a document file such as a word file, an image file such as a JPG file, a video file, a Java script file, an HTML file, or the like.
  • Such a conventional countermeasure against malicious code using a non-executable file includes a region in which a malicious shellcode is located in memory that is moved by an exploit during execution of a non-executable file in a malware detection engine. It checks whether it is set to determine whether it is malicious code and block it.
  • An embodiment of the present invention provides an apparatus and method for diagnosing a memory protection method bypass attack for determining whether a malicious code is targeted to a shell code that causes an attack that bypasses the memory protection method such as an ROP attack.
  • a method for diagnosing a memory protection technique bypass attack includes: a function detector for detecting whether a specific program function capable of modulating attribute information of a memory area is called; and the specific program function by the function detector.
  • a property checker that checks whether the property information is an execution property with respect to a corresponding position of the memory area when a call is detected; and if an execution property is confirmed by the property checker, an access violation occurs at the corresponding location of the memory area.
  • An attribute change unit for changing attribute information, an event detector for detecting whether the access violation occurs in the memory area, and a shellcode for generating the access violation if the access violation is detected by the event detector; It may include a malicious determination unit for determining whether or not malicious.
  • the memory map generation unit may further include a memory map generation unit configured to generate a memory map in which address information of a location where the property information is changed by the property change unit is stored, wherein the malicious determination unit includes the address information of the location where the access violation has occurred. In the case of the address information stored in the map, it can be determined whether the malicious information.
  • the malicious determination unit may determine whether malicious by comparing an entropy value of the memory area with a preset reference value.
  • the malicious determination unit may set a target memory area for calculating the entropy value by using a start address and a size of the memory area allocated by the specific program function.
  • the malicious determination unit may calculate an entropy value for codes except for “0” among codes recorded in the memory area when the entropy value is calculated.
  • the apparatus may further include a pattern storage unit in which pattern information is stored, and the malicious determination unit may determine whether malicious by comparing the shellcode with the pattern information.
  • the attribute changing unit may restore the attribute information to a state before the change so that the access violation does not occur after the shell determining unit determines that the shellcode is not malicious.
  • the apparatus When the call of the specific program function is detected, the apparatus further includes an infection checker that checks whether the register is infected.
  • the malicious determination unit may determine that the shellcode is malicious when the infection checker detects the infection of the register. .
  • the infection checker may compare the stored value of the register with the shellcode to check for infection.
  • the infection inspecting unit may identify an infection based on a matching ratio between at least one or more stored values of the general registers constituting the register and the shellcode.
  • a method for diagnosing a memory protection method bypass attack may include detecting whether a specific program function capable of modulating attribute information of a memory area is called, and when a call of the specific program function is detected, the memory area. Checking whether the attribute information is an execution attribute with respect to the corresponding position of, changing the attribute information so that an access violation occurs at a corresponding position of the memory area when the attribute information is identified as an execution attribute, and the memory The method may include detecting whether an access violation occurs in an area, and determining whether the malicious code is targeted to the shellcode that caused the access violation when the access violation is detected.
  • the method may further include generating a memory map in which address information of a location where the attribute information is changed is stored, and determining whether the malicious information comprises address information of a location where the access violation occurs is address information stored in the memory map. In this case, it can be determined whether the malicious.
  • the entropy value of the memory area and the predetermined reference value may be compared to determine whether malicious.
  • the determining of the malicious status may include setting a target memory area for calculating the entropy value by using a start address and a size of the memory area allocated by the specific program function.
  • the entropy value may be calculated for codes except for “0” among codes recorded in the memory area.
  • the shell code and the previously stored pattern information may be compared to determine whether malicious.
  • the attribute information may be restored to a state before the change so that the access violation does not occur thereafter.
  • the method may further include checking whether a register is infected when a call of the specific program function is detected, and determining whether the register is malicious may determine the shellcode as malicious when the infection of the register is confirmed.
  • the checking of the infection may include detecting the infection by comparing the stored value of the register with the shellcode.
  • the infection may be confirmed based on a matching ratio between at least one or more stored values of the general registers constituting the register and the shellcode.
  • a method of detecting whether a specific program function capable of modulating property information of a memory area is called, and when a call of the specific program function is detected, the property of a corresponding location of the memory area is detected.
  • Checking whether the information is an execution attribute if the attribute information is identified as an execution attribute, changing the attribute information so that an access violation occurs at a corresponding location in the memory area, and the access violation occurs in the memory area Detecting whether the access violation is detected, and determining whether the malicious code is targeted to the shellcode that caused the access violation, and performing each step according to the memory protection method bypass attack diagnosis method.
  • a computer readable recording medium having recorded thereon a program is provided. .
  • the present invention it is possible to determine whether or not malicious, that is, memory protection bypass attack, by targeting a shell code that causes an attack that bypasses a memory protection technique such as a ROP attack. Accordingly, it is possible to alert the malicious determination result so that an operator can recognize it, or perform a countermeasure such as deleting a shell code that causes an access violation.
  • FIG. 1 is a block diagram of a memory protection method bypass attack diagnosis apparatus according to a first embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a first embodiment of the present invention.
  • FIG. 3 is a block diagram of a memory protection method bypass attack diagnosis apparatus according to a second embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a second embodiment of the present invention.
  • FIG. 1 is a block diagram illustrating a memory protection method bypass attack diagnosis apparatus according to a first embodiment of the present invention
  • FIG. 2 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a first embodiment of the present invention
  • 3 is a block diagram of a memory protection method bypass attack diagnosis apparatus according to a second embodiment of the present invention
  • FIG. 4 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a second embodiment of the present invention. to be.
  • a first embodiment of the present invention will be described with reference to FIGS. 1 and 2, and then a second embodiment of the present invention will be described with reference to FIGS. 3 and 4.
  • the memory protection technique bypass attack diagnosis apparatus 100 includes a function detection unit 110, an infection inspection unit 120, an attribute inspection unit 130, and an attribute change unit ( 140, a memory map generator 150, an event detector 160, a malicious determiner 170, and the like.
  • the function detector 110 detects whether a specific program function that can modulate the attribute information of the memory area is called. For example, the function detector 110 may detect whether a virtual memory related application programming interface (API) is called through the kernel mode entry library file.
  • API application programming interface
  • the infection checker 120 checks whether a register is infected when a call of a specific program function is detected by the function detector 110.
  • the infection checker 120 compares the stored value of the register with the shellcode calling a specific program function and checks for infection.
  • the infection inspecting unit 120 may identify an infection based on a matching ratio between at least one stored value and a shell code among the general registers constituting the register.
  • the infection checker 120 may be included in order to quickly diagnose an attack state if the register is already infected, but may be excluded.
  • the attribute checker 130 detects that the register is not infected by the infection detector 120 after the call of the specific program function is detected by the function detector 110 or the call of the specific program function is detected. Check whether the attribute information is the execution attribute for the location.
  • the attribute changing unit 140 changes the attribute information so that an access violation occurs at a corresponding position in the memory area when the execution attribute is confirmed by the attribute inspecting unit 130.
  • the attribute inspecting unit 130 may not recognize the attribute information by deleting it, changing it to a non-executable attribute, or by modulating the stored attribute information.
  • the property changing unit 140 may restore the property information to the state before the change so that an access violation does not occur thereafter.
  • the memory map generator 150 generates a memory map in which address information of a location where attribute information is changed by the attribute change unit 140 is stored. This memory map is then used to determine if there is a need to determine whether the shellcode is executing at the location of the access violation.
  • the event detector 160 detects whether an access violation occurs in the memory area.
  • the malicious determination unit 170 determines that the shellcode is malicious when the infection checker 120 confirms that the register is infected. Alternatively, when the access violation is detected by the event detector 160, the malicious code is determined by targeting the shell code that caused the access violation. In this case, the malicious determination unit 170 may selectively determine whether the address information of the location where the access violation has occurred is address information stored in the memory map generated by the memory map generation unit 150. To determine whether this is malicious, the malicious determination unit 170 may compare the entropy value of the memory area with a preset reference value and determine whether the malicious is malicious according to the comparison result.
  • a target memory area for calculating an entropy value may be set using a start address and a size of a memory area allocated by a specific program function, except for "0" among codes recorded in the memory area. You can calculate entropy values for your code.
  • a specific program function capable of modulating attribute information of a memory area is provided. Detecting whether it is called (S201), and when a call of a specific program function is detected, checking whether the register is infected (S203), and when a call of the specific program function is detected or subsequently determined that the register is not infected (S205 and S207) checking whether the attribute information is the execution attribute for the corresponding position in the memory area, and if the attribute information is confirmed as the execution attribute, changing the attribute information so that an access violation occurs at the corresponding position in the memory region ( S209 and S211, generating a memory map storing address information of the location where the attribute information is changed (S213), and Detecting whether an access violation occurs (S215), and determining whether the malicious code is targeted to the shellcode that caused the access violation when the address information of the location that caused the access violation is the address information stored in
  • the function detection unit 110 of the memory protection technique bypass attack diagnosis apparatus 100 may modify attribute information of a memory region. Detect if a particular program function can be called. For example, the function detector 110 may detect whether a virtual memory related API is called through the kernel mode entry library file. For example, the function detector 110 may detect whether VirtualAlloc, HeapCreate, etc. are called in the virtual memory related API (S201).
  • ROI return oriented programming
  • the infection inspection unit 120 checks whether an infection is performed by targeting a register of a central processing unit (CPU) (S203). ).
  • the infection checker 120 compares the stored value of the register with the shellcode calling a specific program function and checks for infection.
  • the infection inspecting unit 120 may identify an infection based on a matching ratio between at least one stored value and a shell code among the general registers constituting the register.
  • the attack is when the stored code of Extended Accumulator Register (EAX), Extended Counter Register (ECX), Extended Data Register (EDX), Extended Base Register (EBX), Extended Stack Pointer (ESP) and shell code match.
  • EAX Extended Accumulator Register
  • ECX Extended Counter Register
  • EDX Extended Data Register
  • EBX Extended Base Register
  • ESP Extended Stack Pointer
  • the condition can be diagnosed (S205 and S225).
  • the attribute inspecting unit 130 checks whether the attribute information is an execution attribute for a corresponding position of the memory area.
  • the property inspection unit 130 inspects the property information immediately after the call of a specific program function is detected by the function detection unit 110. .
  • the infection inspection unit 120 determines that the register is not infected, It is checked whether the attribute information is an execution attribute for the position (S207).
  • the property changing unit 140 changes the property information so that an access violation occurs at the location.
  • the attribute inspecting unit 130 may delete the attribute information, change it to a non-executable attribute, or modulate the stored attribute information so as not to recognize the attribute information (S209 and S211).
  • the memory map generator 150 generates a memory map in which address information of a location where attribute information is changed by the attribute change unit 140 is stored (S213). This memory map is then used to determine if there is a need to determine whether the shellcode is executing at the location of the access violation.
  • the event detector 160 detects whether an access violation occurs in the memory area (S215).
  • the malicious determination unit 170 determines whether the address information of the location that caused the access violation is address information stored in the memory map generated by the memory map generator 150. Check (S217 and S219). This is because, even if an access violation occurs, it is not necessary to diagnose whether there is a bypass attack if it occurs in a position where the attribute information is not intentionally changed in step S211.
  • the malicious determination unit 170 calculates an entropy value of the memory area to determine whether malicious. For example, when calculating an entropy value, a target memory area for calculating an entropy value may be set using a start address and a size of a memory area allocated by a specific program function, except for "0" among codes recorded in the memory area. An entropy value can be calculated for the code (S221).
  • the malicious determination unit 170 compares the entropy value calculated in step S221 with a preset reference value and determines the current shellcode as malicious when the calculated entropy value is determined to be a malicious range (S223). . That is, it is determined that the shellcode is involved in a ROP attack or the like bypassing the memory protection technique (S225). In this case, the malicious determination unit 170 may alert the result of the malicious determination so that an operator can recognize it or perform a response such as deleting a shell code that causes an access violation.
  • the malicious determination unit 170 restores the attribute information to the state before the change so that an access violation does not occur thereafter. For example, if the attribute information is changed from the execution attribute to the non-execution attribute in step S211, the execution attribute can be restored to the execution attribute in its original state (S227).
  • the memory protection technique bypass attack diagnosis apparatus 100 ′ includes a function detector 110, an infection checker 120, a property checker 130, and a property changer. 140, the memory map generation unit 150, the event detection unit 160, the malicious determination unit 170, the pattern storage unit 180, and the like.
  • the memory protection method bypass attack diagnosis apparatus 100 Compared with the memory protection method bypass attack diagnosis apparatus 100 ′ according to the second embodiment of the present invention, the memory protection method bypass attack diagnosis apparatus 100 according to the first embodiment of the present invention shown in FIG. It can be seen that the storage unit 180 is included.
  • the pattern storage unit 180 stores pattern information for determining whether a shell code for calling a specific program function capable of tampering with attribute information of a memory area corresponds to malicious shell code involved in a memory protection technique bypass attack. Such pattern information may be obtained and stored through a pre-collecting process or updated by learning after malicious determination.
  • the malicious determination unit 170 may use the shell code and the pattern storage unit 180 to call a specific program function. By comparison, it is determined whether or not malicious based on the match.
  • the memory protection method bypass attack diagnosis method by the memory protection method bypass attack diagnosis apparatus 100 ′ according to the second embodiment of the present invention is illustrated in FIG. 4.
  • the same reference numerals are given for the same processing procedure when comparing FIG. 2 and FIG. 4.
  • the memory protection method bypass attack diagnosis method includes detecting whether a specific program function that can modulate the attribute information of the memory area is called (S201), and a call of the specific program function is performed. If it is detected, checking whether the register is infected (S203), and if it is determined that a call of a specific program function is detected or the register is not infected thereafter, checking whether the attribute information is an execution attribute for a corresponding position in the memory area. (S205 and S207), when the attribute information is confirmed as the execution attribute, changing the attribute information so that an access violation occurs at a corresponding position in the memory area (S209 and S211), and the memory in which the address information of the position where the attribute information is changed is stored.
  • Memory protection method bypass attack diagnosis method by the memory protection method bypass attack diagnosis apparatus 100 ′ according to the second embodiment of the present invention and memory protection method bypass attack diagnosis apparatus 100 according to the first embodiment The following is a closer look at the differences from the technique bypass attack diagnosis method.
  • the malicious determination unit 170 reads the pattern information previously stored in the pattern storage unit 180 and compares it with the pattern of the shell code identified in step S321, even if the patterns are not identical or completely identical to each other according to the comparison result. If the pattern matching ratio is high, the malicious pattern is determined, and the current shellcode is determined to be malicious. That is, it is determined that the shellcode is involved in a ROP attack or the like bypassing the memory protection technique (S325). In this case, the malicious determination unit 170 may alert the result of the malicious determination so that an operator can recognize it or perform a response such as deleting a shell code that causes an access violation.
  • the malicious determination unit 170 restores the attribute information to the state before the change so that an access violation does not occur thereafter. For example, if the attribute information is changed from the execution attribute to the non-execution attribute in step S211, the execution attribute may be restored to the execution attribute in its original state (S327).
  • Combinations of each block of the block diagrams and respective steps of the flowcharts attached to the present invention may be performed by computer program instructions.
  • These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step.
  • These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory.
  • instructions stored in may produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of each step of the block diagram.
  • Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.
  • each block or step may represent a portion of a module, segment or code that includes one or more executable instructions for executing a specified logical function (s).
  • a specified logical function s.
  • the functions noted in the blocks or steps may occur out of order.
  • the two blocks or steps shown in succession may in fact be executed substantially concurrently or the blocks or steps may sometimes be performed in the reverse order, depending on the functionality involved.

Abstract

Disclosed is an apparatus for diagnosing an attack which bypasses memory protection techniques, the apparatus comprising: a function detection unit for detecting whether a specific program function, which can alter the attribute information of a memory area, is called; an attribute inspection unit for inspecting whether the attribute information at the corresponding location of the memory area corresponds to an execution attribute when the called specific program function is detected by the function detection unit; an attribute changing unit for changing the attribute information such that an access violation occurs at the corresponding location of the memory area when the execution attribution is identified by the attribute inspection unit; an event detection unit for detecting whether the access violation occurs in the memory area; and a malicious determination unit for determining whether a shell code, which causes the access violation, is malicious when the access violation is detected by the event detection unit.

Description

메모리 보호기능 우회 공격 진단 장치 및 방법Memory protection function bypass attack diagnosis device and method
본 발명은 메모리 보호기능을 우회하는 공격, 즉 메모리 보호기법을 우회하는 공격을 유발하는 쉘코드(shell code)를 대상으로 하여 악성 여부를 판정하는 메모리 보호기법 우회 공격 진단 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for diagnosing a memory protection method bypass attack for determining whether a malicious code is targeted to a shell code that causes an attack that bypasses a memory protection function, that is, an attack that bypasses a memory protection method.
근래에 들어, 광범위한 인터넷 및 무선통신 기기의 보급에 따라 악성 소프트웨어 또는 악성 코드(malicious code)의 전염경로가 다양해지고 있으며, 이로 인한 피해 정도가 매년 증가하고 있다. 악성 코드란 사용자의 의사와 이익에 반하여 시스템을 파괴하거나 정보를 유출하는 등의 악의적 활동을 수행하도록 의도적으로 제작된 소프트웨어를 말한다. 이러한 악성 코드의 종류로는 바이러스(virus), 웜(worm), 트로이얀(trojan), 백도어(backdoor), 논리폭탄(logic bomb), 트랩도어(trap door) 등의 해킹 툴, 악의적인 스파이웨어(spyware), 애드웨어(ad-ware) 등이 있다. 악성 코드는 자기복제나 자동번식 기능을 통하여, 사용자 식별정보(ID)와 암호 등의 개인정보 유출, 대상 시스템 통제, 파일 삭제/변경, 시스템 파괴, 응용프로그램 /시스템의 서비스 거부, 핵심 자료 유출, 다른 해킹 프로그램 설치 등의 문제를 일으키고 있으며, 그 피해도 매우 다양하고 심각하다.In recent years, the spread of malicious software or malicious code has been diversified with the widespread spread of Internet and wireless communication devices, and the damage caused by this has been increasing every year. Malware is software that is intentionally designed to perform malicious activities, such as destroying the system or leaking information, contrary to the user's intentions and interests. Such malicious code types include hacking tools such as viruses, worms, trojans, backdoors, logic bombs, and trap doors, and malicious spywares. spyware and ad-ware. Through self-replicating or automatic propagation function, malicious code can leak personal information such as user ID and password, control target system, delete / change file, destroy system, denial of application / system, leak of key data, It is causing problems such as installing other hacking programs, and the damage is very diverse and serious.
이러한 문제를 해결하기 위하여, 악성코드를 탐지하고 치료하는 악성 코드 치료 시스템(백신 프로그램)이 개발되고 있다. 현재까지 알려진 악성 코드 치료 시스템(백신 프로그램) 대부분은 파일 기반 진단법을 사용하고 있다. 이는 대부분의 악성 코드가 특정 시스템에서 실행되기 위해서는 해당 시스템에서 실행 가능한 파일 형태로 되어 있다는 점에서 기인한 것이다. 예를 들어, 악성 코드가 윈도우 시스템에서 실행되기 위해서는 악성 코드는 실행 파일(PE: Portable Executable)의 포맷을 가지고 있는 것이 대부분이다. PE 포맷을 가지는 파일의 확장자는 exe, cpl, ocx, dll, vxd, sys, scr, drv 등이 있다. 이러한 실행 파일(PE) 형식의 악성 코드를 진단하기 위해서는 악성 코드 치료 시스템 또한 이러한 파일 형식을 인식하고 악성 코드로 판단할 수 있는 특정 형식의 시그니처(signature)를 가지고 있어야 된다. 이러한 진단법이 대부분의 악성 코드 치료 시스템이 사용하는 시그니처 기반 또는 스트링(string) 검사 방식과 같은 진단법이다. 이러한 시그니처 기반의 진단법은 악성 코드로 분류되는 파일의 특정 부분 또는 고유한 부분을 검사대상으로 하기 때문에 오탐(false positive)과 미탐(false negative)을 최소화하는 정확한 진단이 가능하다는 점과 파일 검사 시에 파일들의 특징적인 부분들만 비교함으로 빠른 스캐닝을 할 수 있다는 장점을 가진다. 그러나 이러한 시그니처 기반 진단법은 악성 코드의 파일 자체가 몇 백 바이트만 바뀌어도 진단이 되지 않는 미탐이 발생하기 때문에, 파일이 조금만 변경된 새로운 변형에 대해서는 대응을 할 수가 없게 된다. 그리고 기존에 알려진 악성 코드에 대해서만 대응을 할 수 있으므로 새로운 형태의 알려지지 않은 악성 코드에 대해서는 대응을 할 수 없다는 단점을 가지고 있다.In order to solve this problem, a malicious code treatment system (vaccine program) for detecting and treating malware has been developed. Most of the malware detection systems (vaccine programs) known to date use file-based diagnostics. This is due to the fact that most malicious codes are executed in the form of files that can be executed on a specific system. For example, in order for malicious code to run on a Windows system, the malicious code usually has a format of an executable file (PE). File extensions with PE format include exe, cpl, ocx, dll, vxd, sys, scr, and drv. In order to diagnose malware in the form of an executable file (PE), the malware treatment system also needs to have a signature of a specific type that can recognize the file type and determine it as malicious code. These diagnostics are the same as the signature-based or string-testing methods used by most malware treatment systems. This signature-based diagnostic method targets specific or unique parts of a file classified as malicious code, enabling accurate diagnosis that minimizes false positives and false negatives. The advantage is that fast scanning can be achieved by comparing only the characteristic parts of the files. However, the signature-based diagnostic method cannot detect a new file that has been changed by only a few files since the malicious code does not diagnose even if the file itself changes only a few hundred bytes. In addition, since it can only respond to known malicious code, it cannot cope with new and unknown malicious code.
한편, 최근 이슈가 되고 있는 지능형 지속 위협(APT: Advanced Persistent Threat) 공격은 공격자가 특정 타깃을 정하고 목표한 정보를 빼내기 위해 고도의 공격기법을 적용하여 지속적으로 다양한 형태 악성코드를 활용한다. 특히 APT 공격은 초기 침입단계에서 탐지하지 못하는 경우가 많으며, 주로 악성 코드를 포함하는 비실행(Non-PE: Non-Portable Executable) 파일을 이용하는 경우가 많다. 이는 비실행 파일을 실행하는 프로그램(예: 문서작성 또는 이미지 프로그램)이 기본적으로 어느 정도의 보안 취약성을 가지고 있을 뿐만 아니라, 악성 코드를 비실행 파일에 포함시키면 파일 변경에 따라 손쉽게 변종 악성 코드를 만들 수 있기 때문이다. 여기서, "비실행 파일"이란 실행 파일 또는 실행 가능한 파일과 반대되는 개념으로서 자체적으로 실행되지 않는 파일을 의미한다. 예를 들어, 비실행 파일은 한글 파일, 워드 파일과 같은 문서 파일, JPG 파일과 같은 이미지 파일, 동영상 파일, 자바 스크립크 파일, HTML 파일 등이 될 수 있다.On the other hand, Advanced Persistent Threat (APT) attack, which is an issue recently, utilizes various types of malware continuously by applying advanced attack techniques to target specific targets and extract targeted information. In particular, APT attacks are often undetectable in the early stages of intrusion, often using non-portable Executable (Non-PE) files containing malicious code. Not only does a program that runs a non-executable file (such as a document or image program) have some security vulnerabilities by default, but if you include malicious code in a non-executable file, you can easily create variant malware as the file changes. Because it can. Here, the term "non-executable file" refers to a file that is not executed by itself as opposed to an executable file or an executable file. For example, the non-executable file may be a Korean file, a document file such as a word file, an image file such as a JPG file, a video file, a Java script file, an HTML file, or the like.
이러한, 비실행 파일을 이용하는 악성코드에 대한 종래 대처 방법으로는 악성코드 탐지 엔진에서 비실행 파일의 수행 중 익스플로잇에 의해 이동되는 메모리상 악성 쉘코드가 위치한 영역에 대해 해당 영역이 메모리상 정상적으로 실행 영역으로 설정되어 있는지를 확인하는 것을 통해 악성코드 여부를 판단하고 차단하도록 하고 있다.Such a conventional countermeasure against malicious code using a non-executable file includes a region in which a malicious shellcode is located in memory that is moved by an exploit during execution of a non-executable file in a malware detection engine. It checks whether it is set to determine whether it is malicious code and block it.
그러나, 최근 나오는 악성 파일 중에 ROP(Return Oriented Programming) 기술 등을 이용하여 악성행위 탐지를 우회하는 샘플들이 발견되고 있다. 이러한 악성행위 탐지 우회 공격은 메모리 영역을 정상적인 메모리 영역처럼 만든 후에 악성행위를 하는 특성을 가지며, 정상 메모리를 만드는 기능을 하는 부분은 정상적인 모듈의 내부에서 ROP 체인을 이용하여 악성행위를 하기 때문에 종래의 진단 기술들로는 이러한 악성 행위를 탐지할 수 없는 문제점이 있었다.However, recent malicious files have been found to bypass malicious behavior detection using Return Oriented Programming (ROP) technology. Such malicious behavior detection bypass attacks have a characteristic of making malicious behavior after making the memory area like a normal memory area, and the function of making a normal memory uses malicious ROP chain inside the normal module. Diagnostic techniques have been unable to detect these malicious behaviors.
본 발명의 실시예는, ROP 공격 등과 같이 메모리 보호기법을 우회하는 공격을 유발하는 쉘코드를 대상으로 하여 악성 여부를 판정하는 메모리 보호기법 우회 공격 진단 장치 및 방법을 제공한다.An embodiment of the present invention provides an apparatus and method for diagnosing a memory protection method bypass attack for determining whether a malicious code is targeted to a shell code that causes an attack that bypasses the memory protection method such as an ROP attack.
본 발명의 제 1 관점으로서 메모리 보호기법 우회 공격 진단 방법은, 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 함수 탐지부와, 상기 함수 탐지부에 의해 상기 특정 프로그램 함수의 호출이 탐지되면 상기 메모리 영역의 해당 위치에 대해 상기 속성정보가 실행 속성인지를 검사하는 속성 검사부와, 상기 속성 검사부에 의해 실행 속성이 확인되면 상기 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 상기 속성정보를 변경하는 속성 변경부와, 상기 메모리 영역에서 상기 액세스 위반이 발생하는지를 탐지하는 이벤트 탐지부와, 상기 이벤트 탐지부에 의해 상기 액세스 위반이 탐지되면 상기 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 악성 판단부를 포함할 수 있다.As a first aspect of the present invention, a method for diagnosing a memory protection technique bypass attack includes: a function detector for detecting whether a specific program function capable of modulating attribute information of a memory area is called; and the specific program function by the function detector. A property checker that checks whether the property information is an execution property with respect to a corresponding position of the memory area when a call is detected; and if an execution property is confirmed by the property checker, an access violation occurs at the corresponding location of the memory area. An attribute change unit for changing attribute information, an event detector for detecting whether the access violation occurs in the memory area, and a shellcode for generating the access violation if the access violation is detected by the event detector; It may include a malicious determination unit for determining whether or not malicious.
여기서, 상기 속성 변경부에 의해 상기 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성하는 메모리 맵 생성부를 더 포함하며, 상기 악성 판단부는, 상기 액세스 위반을 발생시킨 위치의 주소 정보가 상기 메모리 맵에 저장된 주소 정보일 경우에 상기 악성 여부를 판단할 수 있다.The memory map generation unit may further include a memory map generation unit configured to generate a memory map in which address information of a location where the property information is changed by the property change unit is stored, wherein the malicious determination unit includes the address information of the location where the access violation has occurred. In the case of the address information stored in the map, it can be determined whether the malicious information.
상기 악성 판단부는, 상기 메모리 영역의 엔트로피 값과 기 설정된 기준값을 비교하여 악성 여부를 판단할 수 있다.The malicious determination unit may determine whether malicious by comparing an entropy value of the memory area with a preset reference value.
상기 악성 판단부는, 상기 특정 프로그램 함수에 의해 할당된 상기 메모리 영역의 시작주소와 크기를 이용하여 상기 엔트로피 값을 산출할 대상 메모리 영역을 설정할 수 있다.The malicious determination unit may set a target memory area for calculating the entropy value by using a start address and a size of the memory area allocated by the specific program function.
상기 악성 판단부는, 상기 엔트로피 값의 산출 시, 상기 메모리 영역에 기록된 코드 중 "0"을 제외한 코드에 대해서 엔트로피 값을 산출할 수 있다.The malicious determination unit may calculate an entropy value for codes except for “0” among codes recorded in the memory area when the entropy value is calculated.
패턴 정보가 저장된 패턴 저장부를 더 포함하며, 상기 악성 판단부는, 상기 쉘코드와 상기 패턴 정보를 비교하여 악성 여부를 판단할 수 있다.The apparatus may further include a pattern storage unit in which pattern information is stored, and the malicious determination unit may determine whether malicious by comparing the shellcode with the pattern information.
상기 속성 변경부는, 상기 악성 판단부에 의해 상기 쉘코드가 악성이 아닌 것으로 판정되면 이후 상기 액세스 위반이 발생하지 않도록 상기 속성정보를 변경 전의 상태로 복원할 수 있다.The attribute changing unit may restore the attribute information to a state before the change so that the access violation does not occur after the shell determining unit determines that the shellcode is not malicious.
상기 특정 프로그램 함수의 호출이 탐지되면 레지스터의 감염 여부를 검사하는 감염 검사부를 더 포함하며, 상기 악성 판단부는, 상기 감염 검사부에 의해 상기 레지스터의 감염이 확인되면 상기 쉘코드를 악성으로 판정할 수 있다.When the call of the specific program function is detected, the apparatus further includes an infection checker that checks whether the register is infected. The malicious determination unit may determine that the shellcode is malicious when the infection checker detects the infection of the register. .
상기 감염 검사부는, 상기 레지스터의 저장값과 상기 쉘코드를 비교하여 감염 여부를 검사할 수 있다.The infection checker may compare the stored value of the register with the shellcode to check for infection.
상기 감염 검사부는, 상기 레지스터를 구성하는 범용 레지스터 중에서 적어도 하나 이상의 저장값과 상기 쉘코드의 일치율에 의거하여 감염을 확인할 수 있다.The infection inspecting unit may identify an infection based on a matching ratio between at least one or more stored values of the general registers constituting the register and the shellcode.
본 발명의 제 2 관점으로서 메모리 보호기법 우회 공격 진단 방법은, 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 단계와, 상기 특정 프로그램 함수의 호출이 탐지되면 상기 메모리 영역의 해당 위치에 대해 상기 속성정보가 실행 속성인지를 검사하는 단계와, 상기 속성정보가 실행 속성으로 확인되면 상기 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 상기 속성정보를 변경하는 단계와, 상기 메모리 영역에서 상기 액세스 위반이 발생하는지를 탐지하는 단계와, 상기 액세스 위반이 탐지되면 상기 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 단계를 포함할 수 있다.In accordance with a second aspect of the present invention, a method for diagnosing a memory protection method bypass attack may include detecting whether a specific program function capable of modulating attribute information of a memory area is called, and when a call of the specific program function is detected, the memory area. Checking whether the attribute information is an execution attribute with respect to the corresponding position of, changing the attribute information so that an access violation occurs at a corresponding position of the memory area when the attribute information is identified as an execution attribute, and the memory The method may include detecting whether an access violation occurs in an area, and determining whether the malicious code is targeted to the shellcode that caused the access violation when the access violation is detected.
상기 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성하는 단계를 더 포함하며, 상기 악성 여부를 판단하는 단계는, 상기 액세스 위반을 발생시킨 위치의 주소 정보가 상기 메모리 맵에 저장된 주소 정보일 경우에 상기 악성 여부를 판단할 수 있다.The method may further include generating a memory map in which address information of a location where the attribute information is changed is stored, and determining whether the malicious information comprises address information of a location where the access violation occurs is address information stored in the memory map. In this case, it can be determined whether the malicious.
상기 악성 여부를 판단하는 단계는, 상기 메모리 영역의 엔트로피 값과 기 설정된 기준값을 비교하여 악성 여부를 판단할 수 있다.In the determining of whether malicious, the entropy value of the memory area and the predetermined reference value may be compared to determine whether malicious.
상기 악성 여부를 판단하는 단계는, 상기 특정 프로그램 함수에 의해 할당된 상기 메모리 영역의 시작주소와 크기를 이용하여 상기 엔트로피 값을 산출할 대상 메모리 영역을 설정할 수 있다.The determining of the malicious status may include setting a target memory area for calculating the entropy value by using a start address and a size of the memory area allocated by the specific program function.
상기 악성 여부를 판단하는 단계는, 상기 엔트로피 값의 산출 시, 상기 메모리 영역에 기록된 코드 중 "0"을 제외한 코드에 대해서 엔트로피 값을 산출할 수 있다.In the determining of the malicious status, when calculating the entropy value, the entropy value may be calculated for codes except for “0” among codes recorded in the memory area.
상기 악성 여부를 판단하는 단계는, 상기 쉘코드와 기 저장된 패턴 정보를 비교하여 악성 여부를 판단할 수 있다.In the determining of whether malicious, the shell code and the previously stored pattern information may be compared to determine whether malicious.
상기 속성정보를 변경하는 단계는, 상기 쉘코드가 악성이 아닌 것으로 판정되면 이후 상기 액세스 위반이 발생하지 않도록 상기 속성정보를 변경 전의 상태로 복원할 수 있다.In the changing of the attribute information, if it is determined that the shellcode is not malicious, the attribute information may be restored to a state before the change so that the access violation does not occur thereafter.
상기 특정 프로그램 함수의 호출이 탐지되면 레지스터의 감염 여부를 검사하는 단계를 더 포함하며, 상기 악성 여부를 판단하는 단계는, 상기 레지스터의 감염이 확인되면 상기 쉘코드를 악성으로 판정할 수 있다.The method may further include checking whether a register is infected when a call of the specific program function is detected, and determining whether the register is malicious may determine the shellcode as malicious when the infection of the register is confirmed.
상기 감염 여부를 검사하는 단계는, 상기 레지스터의 저장값과 상기 쉘코드를 비교하여 감염 여부를 검사할 수 있다.The checking of the infection may include detecting the infection by comparing the stored value of the register with the shellcode.
상기 감염 여부를 검사하는 단계는, 상기 레지스터를 구성하는 범용 레지스터 중에서 적어도 하나 이상의 저장값과 상기 쉘코드의 일치율에 의거하여 감염을 확인할 수 있다.In the detecting of the infection, the infection may be confirmed based on a matching ratio between at least one or more stored values of the general registers constituting the register and the shellcode.
본 발명의 제 3 관점에 따르면, 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 단계와, 상기 특정 프로그램 함수의 호출이 탐지되면 상기 메모리 영역의 해당 위치에 대해 상기 속성정보가 실행 속성인지를 검사하는 단계와, 상기 속성정보가 실행 속성으로 확인되면 상기 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 상기 속성정보를 변경하는 단계와, 상기 메모리 영역에서 상기 액세스 위반이 발생하는지를 탐지하는 단계와, 상기 액세스 위반이 탐지되면 상기 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 단계를 포함하는 메모리 보호기법 우회 공격 진단 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독가능 기록매체를 제공한다.According to a third aspect of the present invention, there is provided a method of detecting whether a specific program function capable of modulating property information of a memory area is called, and when a call of the specific program function is detected, the property of a corresponding location of the memory area is detected. Checking whether the information is an execution attribute, if the attribute information is identified as an execution attribute, changing the attribute information so that an access violation occurs at a corresponding location in the memory area, and the access violation occurs in the memory area Detecting whether the access violation is detected, and determining whether the malicious code is targeted to the shellcode that caused the access violation, and performing each step according to the memory protection method bypass attack diagnosis method. A computer readable recording medium having recorded thereon a program is provided. .
본 발명의 실시예에 따르면, ROP 공격 등과 같이 메모리 보호기법을 우회하는 공격을 유발하는 쉘코드를 대상으로 하여 악성 여부를 판정, 즉 메모리 보호 우회 공격을 진단할 수 있다. 이에 따라, 악성 판정 결과를 경보하여 운용자가 인지할 수 있도록 하거나 액세스 위반을 발생시킨 쉘코드를 삭제하는 등의 대응을 수행할 수 있다.According to an embodiment of the present invention, it is possible to determine whether or not malicious, that is, memory protection bypass attack, by targeting a shell code that causes an attack that bypasses a memory protection technique such as a ROP attack. Accordingly, it is possible to alert the malicious determination result so that an operator can recognize it, or perform a countermeasure such as deleting a shell code that causes an access violation.
도 1은 본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 장치의 블록 구성도이다.1 is a block diagram of a memory protection method bypass attack diagnosis apparatus according to a first embodiment of the present invention.
도 2는 본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a first embodiment of the present invention.
도 3은 본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 장치의 블록 구성도이다.3 is a block diagram of a memory protection method bypass attack diagnosis apparatus according to a second embodiment of the present invention.
도 4는 본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a second embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the embodiments make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, terms to be described below are terms defined in consideration of functions in the embodiments of the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the contents throughout the specification.
도 1은 본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 장치의 블록 구성도이며, 도 2는 본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 방법을 설명하기 위한 흐름도이고, 도 3은 본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 장치의 블록 구성도이며, 도 4는 본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 방법을 설명하기 위한 흐름도이다. 이하에서는, 도 1 및 도 2를 참조하여 본 발명의 제 1 실시예에 대해 먼저 살펴본 후에, 도 3 및 도 4를 참조하여 본 발명의 제 2 실시예에 대해 살펴보기로 한다.1 is a block diagram illustrating a memory protection method bypass attack diagnosis apparatus according to a first embodiment of the present invention, and FIG. 2 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a first embodiment of the present invention. 3 is a block diagram of a memory protection method bypass attack diagnosis apparatus according to a second embodiment of the present invention, and FIG. 4 is a flowchart illustrating a memory protection method bypass attack diagnosis method according to a second embodiment of the present invention. to be. Hereinafter, a first embodiment of the present invention will be described with reference to FIGS. 1 and 2, and then a second embodiment of the present invention will be described with reference to FIGS. 3 and 4.
<제 1 실시예><First Embodiment>
본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100)는 도 1에 나타낸 바와 같이, 함수 탐지부(110), 감염 검사부(120), 속성 검사부(130), 속성 변경부(140), 메모리 맵 생성부(150), 이벤트 탐지부(160), 악성 판단부(170) 등을 포함한다.As shown in FIG. 1, the memory protection technique bypass attack diagnosis apparatus 100 according to the first embodiment of the present invention includes a function detection unit 110, an infection inspection unit 120, an attribute inspection unit 130, and an attribute change unit ( 140, a memory map generator 150, an event detector 160, a malicious determiner 170, and the like.
함수 탐지부(110)는 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지한다. 예컨대, 함수 탐지부(110)는 커널모드 진입 라이브러리 파일을 통해 가상 메모리 관련 API(application programming interface)가 호출되는지를 탐지할 수 있다.The function detector 110 detects whether a specific program function that can modulate the attribute information of the memory area is called. For example, the function detector 110 may detect whether a virtual memory related application programming interface (API) is called through the kernel mode entry library file.
감염 검사부(120)는 함수 탐지부(110)에 의해 특정 프로그램 함수의 호출이 탐지되면 레지스터의 감염 여부를 검사한다. 여기서, 감염 검사부(120)는 레지스터의 저장값과 특정 프로그램 함수를 호출한 쉘코드를 비교하여 감염 여부를 검사한다. 예컨대, 감염 검사부(120)는 레지스터를 구성하는 범용 레지스터 중에서 적어도 하나 이상의 저장값과 쉘코드의 일치율에 의거하여 감염을 확인할 수 있다. 이러한 감염 검사부(120)는 레지스터가 이미 감염된 경우라면 신속히 공격 상태로 진단하기 위해 포함되지만 제외될 수도 있다.The infection checker 120 checks whether a register is infected when a call of a specific program function is detected by the function detector 110. Here, the infection checker 120 compares the stored value of the register with the shellcode calling a specific program function and checks for infection. For example, the infection inspecting unit 120 may identify an infection based on a matching ratio between at least one stored value and a shell code among the general registers constituting the register. The infection checker 120 may be included in order to quickly diagnose an attack state if the register is already infected, but may be excluded.
속성 검사부(130)는 함수 탐지부(110)에 의해 특정 프로그램 함수의 호출이 탐지되거나, 특정 프로그램 함수의 호출이 탐지된 후에 감염 검사부(120)에 의해 레지스터가 감염되지 않은 것으로 판정되면 메모리 영역의 해당 위치에 대해 속성정보가 실행 속성인지를 검사한다.The attribute checker 130 detects that the register is not infected by the infection detector 120 after the call of the specific program function is detected by the function detector 110 or the call of the specific program function is detected. Check whether the attribute information is the execution attribute for the location.
속성 변경부(140)는 속성 검사부(130)에 의해 실행 속성이 확인되면 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 속성정보를 변경한다. 예컨대, 속성 검사부(130)는 속성정보를 삭제하거나 비실행 속성으로 변경하거나 또는 저장된 속성정보를 변조하여 인식할 수 없도록 할 수 있다. 또한, 속성 변경부(140)는 악성 판단부(170)에 의해 쉘코드가 악성이 아닌 것으로 판정되면 이후 액세스 위반이 발생하지 않도록 속성정보를 변경 전의 상태로 복원할 수 있다.The attribute changing unit 140 changes the attribute information so that an access violation occurs at a corresponding position in the memory area when the execution attribute is confirmed by the attribute inspecting unit 130. For example, the attribute inspecting unit 130 may not recognize the attribute information by deleting it, changing it to a non-executable attribute, or by modulating the stored attribute information. In addition, when the property determining unit 140 determines that the shellcode is not malicious by the malicious determining unit 170, the property changing unit 140 may restore the property information to the state before the change so that an access violation does not occur thereafter.
메모리 맵 생성부(150)는 속성 변경부(140)에 의해 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성한다. 이러한 메모리 맵은 이후 액세스 위반이 발생한 위치에서 실행되는 쉘코드에 대해 악성 여부를 판단할 필요가 있는지를 확인하기 위해 사용된다.The memory map generator 150 generates a memory map in which address information of a location where attribute information is changed by the attribute change unit 140 is stored. This memory map is then used to determine if there is a need to determine whether the shellcode is executing at the location of the access violation.
이벤트 탐지부(160)는 메모리 영역에서 액세스 위반이 발생하는지를 탐지한다.The event detector 160 detects whether an access violation occurs in the memory area.
악성 판단부(170)는 감염 검사부(120)에 의해 레지스터의 감염이 확인되면 쉘코드를 악성으로 판정한다. 또는, 이벤트 탐지부(160)에 의해 액세스 위반이 탐지되면 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단한다. 여기서, 악성 판단부(170)는 액세스 위반을 발생시킨 위치의 주소 정보가 메모리 맵 생성부(150)에 의해 생성된 메모리 맵에 저장된 주소 정보일 경우에만 선택적으로 악성 여부를 판단할 수 있다. 이러한 악성 여부의 판단을 위해 악성 판단부(170)는 메모리 영역의 엔트로피 값과 기 설정된 기준값을 비교하여 그 비교 결과에 따라 악성 여부를 판단할 수 있다. 예컨대, 엔트로피 값의 산출 시에는 특정 프로그램 함수에 의해 할당된 메모리 영역의 시작주소와 크기를 이용하여 엔트로피 값을 산출할 대상 메모리 영역을 설정할 수 있으며, 메모리 영역에 기록된 코드 중 "0"을 제외한 코드에 대해서 엔트로피 값을 산출할 수 있다.The malicious determination unit 170 determines that the shellcode is malicious when the infection checker 120 confirms that the register is infected. Alternatively, when the access violation is detected by the event detector 160, the malicious code is determined by targeting the shell code that caused the access violation. In this case, the malicious determination unit 170 may selectively determine whether the address information of the location where the access violation has occurred is address information stored in the memory map generated by the memory map generation unit 150. To determine whether this is malicious, the malicious determination unit 170 may compare the entropy value of the memory area with a preset reference value and determine whether the malicious is malicious according to the comparison result. For example, when calculating an entropy value, a target memory area for calculating an entropy value may be set using a start address and a size of a memory area allocated by a specific program function, except for "0" among codes recorded in the memory area. You can calculate entropy values for your code.
본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100)에 의한 메모리 보호기법 우회 공격 진단 방법은 도 2에 나타낸 바와 같이, 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 단계(S201)와, 특정 프로그램 함수의 호출이 탐지되면 레지스터의 감염 여부를 검사하는 단계(S203)와, 특정 프로그램 함수의 호출이 탐지되거나 그 후 레지스터가 감염되지 않은 것으로 판정되면 메모리 영역의 해당 위치에 대해 속성정보가 실행 속성인지를 검사하는 단계(S205 및 S207)와, 속성정보가 실행 속성으로 확인되면 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 속성정보를 변경하는 단계(S209 및 S211)와, 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성하는 단계(S213)와, 메모리 영역에서 액세스 위반이 발생하는지를 탐지하는 단계(S215)와, 액세스 위반을 발생시킨 위치의 주소 정보가 메모리 맵에 저장된 주소 정보일 경우에 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 단계(S217 내지 S223)와, 레지스터의 감염이 확인되거나, 메모리 영역의 엔트로피 값과 기 설정된 기준값을 비교하여 악성 범위로 판단되면 공격 상태로 진단하는 단계(S225)와, 쉘코드가 악성이 아닌 것으로 판정되면 이후 액세스 위반이 발생하지 않도록 속성정보를 변경 전의 상태로 복원하는 단계(S227)를 포함한다.In the memory protection method bypass attack diagnosis method by the memory protection method bypass attack diagnosis apparatus 100 according to the first embodiment of the present invention, as shown in FIG. 2, a specific program function capable of modulating attribute information of a memory area is provided. Detecting whether it is called (S201), and when a call of a specific program function is detected, checking whether the register is infected (S203), and when a call of the specific program function is detected or subsequently determined that the register is not infected (S205 and S207) checking whether the attribute information is the execution attribute for the corresponding position in the memory area, and if the attribute information is confirmed as the execution attribute, changing the attribute information so that an access violation occurs at the corresponding position in the memory region ( S209 and S211, generating a memory map storing address information of the location where the attribute information is changed (S213), and Detecting whether an access violation occurs (S215), and determining whether the malicious code is targeted to the shellcode that caused the access violation when the address information of the location that caused the access violation is the address information stored in the memory map. (S217 to S223), and if the infection of the register is confirmed, or if it is determined that the malicious range by comparing the entropy value of the memory area and the predetermined reference value (S225) and diagnoses the attack state (S225), and determines that the shell code is not malicious If so, a step (S227) of restoring the attribute information to the state before the change is performed so that an access violation does not occur.
이하, 도 1 및 도 2를 참조하여 본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100)가 메모리 보호기법 우회 공격을 진단하는 과정에 대해 더 자세히 살펴보기로 한다.Hereinafter, a process of diagnosing the memory protection method bypass attack by the memory protection method bypass attack diagnosis apparatus 100 according to the first embodiment of the present invention will be described in more detail with reference to FIGS. 1 and 2.
먼저, ROP(Return Oriented Programming) 공격 등과 같이 메모리 보호기법을 우회하는 공격에 대한 진단이 시작되면 메모리 보호기법 우회 공격 진단 장치(100)의 함수 탐지부(110)가 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지한다. 예컨대, 함수 탐지부(110)는 커널모드 진입 라이브러리 파일을 통해 가상 메모리 관련 API가 호출되는지를 탐지할 수 있다. 예컨대, 함수 탐지부(110)는 가상 메모리 관련 API 중에서 VirtualAlloc, HeapCreate 등이 호출되는지를 탐지할 수 있다(S201).First, when a diagnosis of an attack bypassing a memory protection technique is started, such as a return oriented programming (ROP) attack, the function detection unit 110 of the memory protection technique bypass attack diagnosis apparatus 100 may modify attribute information of a memory region. Detect if a particular program function can be called. For example, the function detector 110 may detect whether a virtual memory related API is called through the kernel mode entry library file. For example, the function detector 110 may detect whether VirtualAlloc, HeapCreate, etc. are called in the virtual memory related API (S201).
이어서, 함수 탐지부(110)에 의해 특정 프로그램 함수의 호출이 탐지되면 감염 검사부(120)는 중앙 처리 유닛(CPU: Central Processing Unit)의 레지스터(register)를 대상으로 하여 감염 여부를 검사한다(S203). 여기서, 감염 검사부(120)는 레지스터의 저장값과 특정 프로그램 함수를 호출한 쉘코드를 비교하여 감염 여부를 검사한다. 예컨대, 감염 검사부(120)는 레지스터를 구성하는 범용 레지스터 중에서 적어도 하나 이상의 저장값과 쉘코드의 일치율에 의거하여 감염을 확인할 수 있다. 범용 레지스터 중에서는 EAX(Extended Accumulator Register), ECX(Extended Counter Register), EDX(Extended Data Register), EBX(Extended Base Register), ESP(Extended Stack Pointer)의 저장값과 쉘코드가 일치할 경우에 공격 상태로 진단할 수 있다(S205 및 S225).Subsequently, when a call of a specific program function is detected by the function detection unit 110, the infection inspection unit 120 checks whether an infection is performed by targeting a register of a central processing unit (CPU) (S203). ). Here, the infection checker 120 compares the stored value of the register with the shellcode calling a specific program function and checks for infection. For example, the infection inspecting unit 120 may identify an infection based on a matching ratio between at least one stored value and a shell code among the general registers constituting the register. Among general purpose registers, the attack is when the stored code of Extended Accumulator Register (EAX), Extended Counter Register (ECX), Extended Data Register (EDX), Extended Base Register (EBX), Extended Stack Pointer (ESP) and shell code match. The condition can be diagnosed (S205 and S225).
다음으로, 속성 검사부(130)는 메모리 영역의 해당 위치에 대해 속성정보가 실행 속성인지를 검사한다. 이러한 속성 검사부(130)는 감염 검사부(120)가 메모리 보호기법 우회 공격 진단 장치(100)에서 제외된 경우에는 함수 탐지부(110)에 의해 특정 프로그램 함수의 호출이 탐지되면 곧바로 속성정보를 검사한다. 하지만 감염 검사부(120)가 메모리 보호기법 우회 공격 진단 장치(100)에 포함된 경우에는 특정 프로그램 함수의 호출이 탐지된 후에 감염 검사부(120)에 의해 레지스터가 감염되지 않은 것으로 판정된 후에 메모리 영역의 해당 위치에 대해 속성정보가 실행 속성인지를 검사한다(S207).Next, the attribute inspecting unit 130 checks whether the attribute information is an execution attribute for a corresponding position of the memory area. When the infection detection unit 120 is excluded from the memory protection technique bypass attack diagnosis apparatus 100, the property inspection unit 130 inspects the property information immediately after the call of a specific program function is detected by the function detection unit 110. . However, when the infection detection unit 120 is included in the memory protection technique bypass attack diagnosis apparatus 100, after the call of a specific program function is detected, the infection inspection unit 120 determines that the register is not infected, It is checked whether the attribute information is an execution attribute for the position (S207).
이어서, 속성 변경부(140)는 속성 검사부(130)에 의해 메모리 영역의 해당 위치가 실행 속성으로 확인되면 해당 위치에서 액세스 위반이 발생하도록 속성정보를 변경한다. 예컨대, 속성 검사부(130)는 속성정보를 삭제하거나 비실행 속성으로 변경하거나 또는 저장된 속성정보를 변조하여 인식할 수 없도록 할 수 있다(S209 및 S211).Subsequently, when the property inspecting unit 130 confirms that the location of the memory area is the execution property, the property changing unit 140 changes the property information so that an access violation occurs at the location. For example, the attribute inspecting unit 130 may delete the attribute information, change it to a non-executable attribute, or modulate the stored attribute information so as not to recognize the attribute information (S209 and S211).
아울러, 메모리 맵 생성부(150)는 속성 변경부(140)에 의해 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성한다(S213). 이러한 메모리 맵은 이후 액세스 위반이 발생한 위치에서 실행되는 쉘코드에 대해 악성 여부를 판단할 필요가 있는지를 확인하기 위해 사용된다.In addition, the memory map generator 150 generates a memory map in which address information of a location where attribute information is changed by the attribute change unit 140 is stored (S213). This memory map is then used to determine if there is a need to determine whether the shellcode is executing at the location of the access violation.
이 때, 이벤트 탐지부(160)는 메모리 영역에서 액세스 위반이 발생하는지를 탐지한다(S215).At this time, the event detector 160 detects whether an access violation occurs in the memory area (S215).
여기서, 이벤트 탐지부(160)에 의해 액세스 위반이 탐지되면 악성 판단부(170)는 액세스 위반을 발생시킨 위치의 주소 정보가 메모리 맵 생성부(150)에 의해 생성된 메모리 맵에 저장된 주소 정보인지를 확인한다(S217 및 S219). 이는 액세스 위반이 발생하였더라도 단계 S211에서 그 속성정보를 고의로 변경하지 않은 위치에서 발생한 경우라면 우회 공격 여부를 진단할 필요가 없기 때문이다.Here, when the access violation is detected by the event detector 160, the malicious determination unit 170 determines whether the address information of the location that caused the access violation is address information stored in the memory map generated by the memory map generator 150. Check (S217 and S219). This is because, even if an access violation occurs, it is not necessary to diagnose whether there is a bypass attack if it occurs in a position where the attribute information is not intentionally changed in step S211.
이어서, 악성 판단부(170)는 단계 S219에서 액세스 위반을 발생시킨 위치의 주소 정보가 메모리 맵에 기 저장된 주소 정보라고 판정되면 악성 여부의 판단을 위해 메모리 영역의 엔트로피 값을 산출한다. 예컨대, 엔트로피 값의 산출 시에는 특정 프로그램 함수에 의해 할당된 메모리 영역의 시작주소와 크기를 이용하여 엔트로피 값을 산출할 대상 메모리 영역을 설정할 수 있으며, 메모리 영역에 기록된 코드 중 "0"을 제외한 코드에 대해서 엔트로피 값을 산출할 수 있다(S221).Subsequently, if it is determined in step S219 that the address information of the location where the access violation has occurred is address information previously stored in the memory map, the malicious determination unit 170 calculates an entropy value of the memory area to determine whether malicious. For example, when calculating an entropy value, a target memory area for calculating an entropy value may be set using a start address and a size of a memory area allocated by a specific program function, except for "0" among codes recorded in the memory area. An entropy value can be calculated for the code (S221).
그리고, 악성 판단부(170)는 단계 S221에서 산출된 엔트로피 값과 기 설정된 기준값을 비교하여 그 비교 결과에 따라 산출된 엔트로피 값이 악성 범위로 판단(S223)되면 현재의 쉘코드를 악성으로 판정한다. 즉, 해당 쉘코드가 메모리 보호기법을 우회하는 ROP 공격 등에 관여하는 것으로 판정한다(S225). 이 경우에, 악성 판단부(170)는 악성 판정 결과를 경보하여 운용자가 인지할 수 있도록 하거나 액세스 위반을 발생시킨 쉘코드를 삭제하는 등의 대응을 수행할 수 있다.The malicious determination unit 170 compares the entropy value calculated in step S221 with a preset reference value and determines the current shellcode as malicious when the calculated entropy value is determined to be a malicious range (S223). . That is, it is determined that the shellcode is involved in a ROP attack or the like bypassing the memory protection technique (S225). In this case, the malicious determination unit 170 may alert the result of the malicious determination so that an operator can recognize it or perform a response such as deleting a shell code that causes an access violation.
한편, 악성 판단부(170)는 쉘코드가 악성이 아닌 것으로 판정되면 이후 액세스 위반이 발생하지 않도록 속성정보를 변경 전의 상태로 복원한다. 예컨대, 단계 S211에서 속성정보를 실행 속성에서 비실행 속성으로 변경한 경우라면 그 실행 속성을 원래의 상태인 실행 속성으로 복원할 수 있다(S227).On the other hand, if it is determined that the shell code is not malicious, the malicious determination unit 170 restores the attribute information to the state before the change so that an access violation does not occur thereafter. For example, if the attribute information is changed from the execution attribute to the non-execution attribute in step S211, the execution attribute can be restored to the execution attribute in its original state (S227).
<제 2 실시예>Second Embodiment
본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100')는 도 3에 나타낸 바와 같이, 함수 탐지부(110), 감염 검사부(120), 속성 검사부(130), 속성 변경부(140), 메모리 맵 생성부(150), 이벤트 탐지부(160), 악성 판단부(170), 패턴 저장부(180) 등을 포함한다.As shown in FIG. 3, the memory protection technique bypass attack diagnosis apparatus 100 ′ according to the second embodiment of the present invention includes a function detector 110, an infection checker 120, a property checker 130, and a property changer. 140, the memory map generation unit 150, the event detection unit 160, the malicious determination unit 170, the pattern storage unit 180, and the like.
이러한 본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100')를 도 1에 나타낸 본 발명의 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100)와 비교하면, 패턴 저장부(180)를 포함하는 것을 알 수 있다.Compared with the memory protection method bypass attack diagnosis apparatus 100 ′ according to the second embodiment of the present invention, the memory protection method bypass attack diagnosis apparatus 100 according to the first embodiment of the present invention shown in FIG. It can be seen that the storage unit 180 is included.
이러한 패턴 저장부(180)는 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수를 호출하는 쉘코드가 메모리 보호기법 우회 공격에 관여하는 악성 쉘코드에 해당하는지를 판단하기 위한 패턴 정보가 저장된다. 이러한 패턴 정보는 사전 수집 과정을 통해 획득 및 저장되거나 악성 판단 후의 학습에 의해 업데이트될 수 있다.The pattern storage unit 180 stores pattern information for determining whether a shell code for calling a specific program function capable of tampering with attribute information of a memory area corresponds to malicious shell code involved in a memory protection technique bypass attack. Such pattern information may be obtained and stored through a pre-collecting process or updated by learning after malicious determination.
이러한 패턴 저장부(180)를 포함하는 메모리 보호기법 우회 공격 진단 장치(100')에서 악성 판단부(170)는 특정 프로그램 함수를 호출하는 쉘코드와 패턴 저장부(180)에 기 저장된 패턴 정보를 비교하여 일치 여부에 따라 악성 여부를 판단한다.In the memory protection method bypass attack diagnosis apparatus 100 ′ including the pattern storage unit 180, the malicious determination unit 170 may use the shell code and the pattern storage unit 180 to call a specific program function. By comparison, it is determined whether or not malicious based on the match.
본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100')에 의한 메모리 보호기법 우회 공격 진단 방법은 도 4에 나타낸 바와 같다. 여기서, 도 2와 도 4를 비교할 때에 동일한 처리 과정에 대해서는 동일한 도면부호를 명기하였다.The memory protection method bypass attack diagnosis method by the memory protection method bypass attack diagnosis apparatus 100 ′ according to the second embodiment of the present invention is illustrated in FIG. 4. Here, the same reference numerals are given for the same processing procedure when comparing FIG. 2 and FIG. 4.
이에 나타낸 바와 같이 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 방법은, 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 단계(S201)와, 특정 프로그램 함수의 호출이 탐지되면 레지스터의 감염 여부를 검사하는 단계(S203)와, 특정 프로그램 함수의 호출이 탐지되거나 그 후 레지스터가 감염되지 않은 것으로 판정되면 메모리 영역의 해당 위치에 대해 속성정보가 실행 속성인지를 검사하는 단계(S205 및 S207)와, 속성정보가 실행 속성으로 확인되면 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 속성정보를 변경하는 단계(S209 및 S211)와, 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성하는 단계(S213)와, 메모리 영역에서 액세스 위반이 발생하는지를 탐지하는 단계(S215)와, 액세스 위반을 발생시킨 위치의 주소 정보가 메모리 맵에 저장된 주소 정보일 경우에 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 단계(S217, S219, S321, S323)와, 레지스터의 감염이 확인되거나, 쉘코드와 기 저장된 패턴 정보를 비교하여 그 일치 여부에 따라 악성 패턴으로 판단되면 공격 상태로 진단하는 단계(S325)와, 쉘코드가 악성이 아닌 것으로 판정되면 이후 액세스 위반이 발생하지 않도록 속성정보를 변경 전의 상태로 복원하는 단계(S327)를 포함한다.As described above, the memory protection method bypass attack diagnosis method according to the second embodiment includes detecting whether a specific program function that can modulate the attribute information of the memory area is called (S201), and a call of the specific program function is performed. If it is detected, checking whether the register is infected (S203), and if it is determined that a call of a specific program function is detected or the register is not infected thereafter, checking whether the attribute information is an execution attribute for a corresponding position in the memory area. (S205 and S207), when the attribute information is confirmed as the execution attribute, changing the attribute information so that an access violation occurs at a corresponding position in the memory area (S209 and S211), and the memory in which the address information of the position where the attribute information is changed is stored. Generating a map (S213), detecting whether an access violation occurs in a memory area (S215), and accessing If the address information of the location that caused the violation is the address information stored in the memory map, determining whether the malicious code is targeted to the shellcode that caused the access violation (S217, S219, S321, S323), and the infection of the register If it is confirmed or compared to the shellcode and the pre-stored pattern information is determined to be a malicious pattern according to the matching step (S325), and if the shellcode is determined to be not malicious to prevent any subsequent access violations Restoring the attribute information to the state before the change (S327).
본 발명의 제 2 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100')에 의한 메모리 보호기법 우회 공격 진단 방법과 제 1 실시예에 따른 메모리 보호기법 우회 공격 진단 장치(100)에 의한 메모리 보호기법 우회 공격 진단 방법과의 차이점에 대해 자세히 살펴보면 다음과 같다.Memory protection method bypass attack diagnosis method by the memory protection method bypass attack diagnosis apparatus 100 ′ according to the second embodiment of the present invention and memory protection method bypass attack diagnosis apparatus 100 according to the first embodiment The following is a closer look at the differences from the technique bypass attack diagnosis method.
단계 S219에서 메모리 보호기법 우회 공격 진단 장치(100')의 악성 판단부(170)는 액세스 위반을 발생시킨 위치의 주소 정보가 메모리 맵에 기 저장된 주소 정보라고 판정되면 악성 여부의 판단을 위해 해당 쉘코드가 가지고 있는 코드 패턴을 파악한다.In operation S219, when the malicious determination unit 170 of the memory protection technique bypass attack diagnosis apparatus 100 ′ determines that the address information of the location where the access violation has occurred is address information previously stored in the memory map, the shell determines whether the shell is malicious. Identify the code patterns that your code has.
그리고, 악성 판단부(170)는 패턴 저장부(180)에 기 저장된 패턴 정보를 읽어 들여서 단계 S321에서 파악된 쉘코드의 패턴과 비교하며, 그 비교 결과에 따라 패턴이 서로 동일하거나 완전히 동일하지 않더라도 패턴 일치율이 높으면 악성 패턴으로 판정하여 현재의 쉘코드를 악성으로 판정한다. 즉, 해당 쉘코드가 메모리 보호기법을 우회하는 ROP 공격 등에 관여하는 것으로 판정한다(S325). 이 경우에, 악성 판단부(170)는 악성 판정 결과를 경보하여 운용자가 인지할 수 있도록 하거나 액세스 위반을 발생시킨 쉘코드를 삭제하는 등의 대응을 수행할 수 있다.Then, the malicious determination unit 170 reads the pattern information previously stored in the pattern storage unit 180 and compares it with the pattern of the shell code identified in step S321, even if the patterns are not identical or completely identical to each other according to the comparison result. If the pattern matching ratio is high, the malicious pattern is determined, and the current shellcode is determined to be malicious. That is, it is determined that the shellcode is involved in a ROP attack or the like bypassing the memory protection technique (S325). In this case, the malicious determination unit 170 may alert the result of the malicious determination so that an operator can recognize it or perform a response such as deleting a shell code that causes an access violation.
한편, 악성 판단부(170)는 쉘코드가 악성이 아닌 것으로 판정되면 이후 액세스 위반이 발생하지 않도록 속성정보를 변경 전의 상태로 복원한다. 예컨대, 단계 S211에서 속성정보를 실행 속성에서 비실행 속성으로 변경한 경우라면 그 실행 속성을 원래의 상태인 실행 속성으로 복원할 수 있다(S327).On the other hand, if it is determined that the shell code is not malicious, the malicious determination unit 170 restores the attribute information to the state before the change so that an access violation does not occur thereafter. For example, if the attribute information is changed from the execution attribute to the non-execution attribute in step S211, the execution attribute may be restored to the execution attribute in its original state (S327).
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Combinations of each block of the block diagrams and respective steps of the flowcharts attached to the present invention may be performed by computer program instructions. These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of each step of the block diagram. Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or step may represent a portion of a module, segment or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative embodiments, the functions noted in the blocks or steps may occur out of order. For example, the two blocks or steps shown in succession may in fact be executed substantially concurrently or the blocks or steps may sometimes be performed in the reverse order, depending on the functionality involved.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those skilled in the art to which the present invention pertains may make various modifications and changes without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas falling within the scope of the present invention should be construed as being included in the scope of the present invention.

Claims (21)

  1. 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 함수 탐지부와,A function detector for detecting whether a specific program function that can modulate the attribute information of the memory area is called;
    상기 함수 탐지부에 의해 상기 특정 프로그램 함수의 호출이 탐지되면 상기 메모리 영역의 해당 위치에 대해 상기 속성정보가 실행 속성인지를 검사하는 속성 검사부와,An attribute inspecting unit checking whether the attribute information is an execution attribute with respect to a corresponding position of the memory area when a call of the specific program function is detected by the function detecting unit;
    상기 속성 검사부에 의해 실행 속성이 확인되면 상기 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 상기 속성정보를 변경하는 속성 변경부와,An attribute change unit which changes the attribute information so that an access violation occurs at a corresponding position in the memory area when the execution attribute is confirmed by the attribute check unit;
    상기 메모리 영역에서 상기 액세스 위반이 발생하는지를 탐지하는 이벤트 탐지부와,An event detector for detecting whether the access violation occurs in the memory area;
    상기 이벤트 탐지부에 의해 상기 액세스 위반이 탐지되면 상기 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 악성 판단부를 포함하는 메모리 보호기법 우회 공격 진단 장치.And a malicious determination unit configured to determine whether or not the malicious code is targeted to the shellcode that caused the access violation when the access violation is detected by the event detection unit.
  2. 제 1 항에 있어서,The method of claim 1,
    상기 속성 변경부에 의해 상기 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성하는 메모리 맵 생성부를 더 포함하며,And a memory map generator for generating a memory map storing address information of a location where the attribute information is changed by the attribute changing unit.
    상기 악성 판단부는, 상기 액세스 위반을 발생시킨 위치의 주소 정보가 상기 메모리 맵에 저장된 주소 정보일 경우에 상기 악성 여부를 판단하는 메모리 보호기법 우회 공격 진단 장치.The malicious determination unit, the memory protection method bypass attack diagnosis apparatus for determining whether the malicious when the address information of the location that caused the access violation is the address information stored in the memory map.
  3. 제 1 항에 있어서,The method of claim 1,
    상기 악성 판단부는, 상기 메모리 영역의 엔트로피 값과 기 설정된 기준값을 비교하여 악성 여부를 판단하는 메모리 보호기법 우회 공격 진단 장치.The malicious determination unit, the memory protection method bypass attack diagnosis apparatus for determining whether the malicious by comparing the entropy value of the memory area with a predetermined reference value.
  4. 제 3 항에 있어서,The method of claim 3, wherein
    상기 악성 판단부는, 상기 특정 프로그램 함수에 의해 할당된 상기 메모리 영역의 시작주소와 크기를 이용하여 상기 엔트로피 값을 산출할 대상 메모리 영역을 설정하는 메모리 보호기법 우회 공격 진단 장치.And the malicious determining unit sets a target memory area for calculating the entropy value by using a start address and a size of the memory area allocated by the specific program function.
  5. 제 3 항에 있어서,The method of claim 3, wherein
    상기 악성 판단부는, 상기 엔트로피 값의 산출 시, 상기 메모리 영역에 기록된 코드 중 "0"을 제외한 코드에 대해서 엔트로피 값을 산출하는 메모리 보호기법 우회 공격 진단 장치.The malicious determination unit, when calculating the entropy value, the memory protection method bypass attack diagnosis apparatus for calculating an entropy value for the code except for "0" of the code recorded in the memory area.
  6. 제 1 항에 있어서,The method of claim 1,
    패턴 정보가 저장된 패턴 저장부를 더 포함하며,Further comprising a pattern storage unit for storing the pattern information,
    상기 악성 판단부는, 상기 쉘코드와 상기 패턴 정보를 비교하여 악성 여부를 판단하는 메모리 보호기법 우회 공격 진단 장치.The malicious determination unit, the memory protection method bypass attack diagnosis device for determining whether the malicious by comparing the shell code and the pattern information.
  7. 제 1 항에 있어서,The method of claim 1,
    상기 속성 변경부는, 상기 악성 판단부에 의해 상기 쉘코드가 악성이 아닌 것으로 판정되면 이후 상기 액세스 위반이 발생하지 않도록 상기 속성정보를 변경 전의 상태로 복원하는 메모리 보호기법 우회 공격 진단 장치.And the attribute changing unit restores the attribute information to the state before the change so that the access code does not occur after the shell determining unit determines that the shellcode is not malicious.
  8. 제 1 항에 있어서,The method of claim 1,
    상기 특정 프로그램 함수의 호출이 탐지되면 레지스터의 감염 여부를 검사하는 감염 검사부를 더 포함하며,When the call of the specific program function is detected further comprises an infection check unit for checking whether the register is infected,
    상기 악성 판단부는, 상기 감염 검사부에 의해 상기 레지스터의 감염이 확인되면 상기 쉘코드를 악성으로 판정하는 메모리 보호기법 우회 공격 진단 장치.And the malicious determination unit determines the shellcode as malicious when the infection checker confirms that the register is infected.
  9. 제 8 항에 있어서,The method of claim 8,
    상기 감염 검사부는, 상기 레지스터의 저장값과 상기 쉘코드를 비교하여 감염 여부를 검사하는 메모리 보호기법 우회 공격 진단 장치.The infection detection unit, the memory protection method bypass attack diagnostic apparatus for comparing the stored value of the register and the shell code to check whether the infection.
  10. 제 9 항에 있어서,The method of claim 9,
    상기 감염 검사부는, 상기 레지스터를 구성하는 범용 레지스터 중에서 적어도 하나 이상의 저장값과 상기 쉘코드의 일치율에 의거하여 감염을 확인하는 메모리 보호기법 우회 공격 진단 장치.And the infection detecting unit checks an infection based on a matching ratio between at least one stored value and the shell code among general registers constituting the register.
  11. 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 단계와,Detecting whether a specific program function that can modulate the attribute information of the memory area is called;
    상기 특정 프로그램 함수의 호출이 탐지되면 상기 메모리 영역의 해당 위치에 대해 상기 속성정보가 실행 속성인지를 검사하는 단계와,Checking whether the attribute information is an execution attribute for a corresponding position of the memory area when a call of the specific program function is detected;
    상기 속성정보가 실행 속성으로 확인되면 상기 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 상기 속성정보를 변경하는 단계와,Changing the attribute information so that an access violation occurs at a corresponding position in the memory area when the attribute information is identified as an execution attribute;
    상기 메모리 영역에서 상기 액세스 위반이 발생하는지를 탐지하는 단계와,Detecting whether the access violation occurs in the memory area;
    상기 액세스 위반이 탐지되면 상기 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 단계를 포함하는 메모리 보호기법 우회 공격 진단 방법.If the access violation is detected, the method for diagnosing a memory protection technique bypass attack comprising determining a malicious target of the shell code that caused the access violation.
  12. 제 11 항에 있어서,The method of claim 11,
    상기 속성정보가 변경된 위치의 주소 정보가 저장된 메모리 맵을 생성하는 단계를 더 포함하며,Generating a memory map in which address information of a location where the attribute information is changed is stored;
    상기 악성 여부를 판단하는 단계는, 상기 액세스 위반을 발생시킨 위치의 주소 정보가 상기 메모리 맵에 저장된 주소 정보일 경우에 상기 악성 여부를 판단하는 메모리 보호기법 우회 공격 진단 방법.And determining whether the malicious information is malicious when the address information of the location where the access violation has occurred is address information stored in the memory map.
  13. 제 11 항에 있어서,The method of claim 11,
    상기 악성 여부를 판단하는 단계는, 상기 메모리 영역의 엔트로피 값과 기 설정된 기준값을 비교하여 악성 여부를 판단하는 메모리 보호기법 우회 공격 진단 방법.The determining of the malicious step may include comparing the entropy value of the memory area with a preset reference value and determining whether the malicious item is malicious.
  14. 제 13 항에 있어서,The method of claim 13,
    상기 악성 여부를 판단하는 단계는, 상기 특정 프로그램 함수에 의해 할당된 상기 메모리 영역의 시작주소와 크기를 이용하여 상기 엔트로피 값을 산출할 대상 메모리 영역을 설정하는 메모리 보호기법 우회 공격 진단 방법.The determining of the malicious status may include setting a target memory area for calculating the entropy value by using a start address and a size of the memory area allocated by the specific program function.
  15. 제 13 항에 있어서,The method of claim 13,
    상기 악성 여부를 판단하는 단계는, 상기 엔트로피 값의 산출 시, 상기 메모리 영역에 기록된 코드 중 "0"을 제외한 코드에 대해서 엔트로피 값을 산출하는 메모리 보호기법 우회 공격 진단 방법.The determining of the malicious step may include calculating an entropy value for codes other than “0” among codes recorded in the memory area, when calculating the entropy value.
  16. 제 11 항에 있어서,The method of claim 11,
    상기 악성 여부를 판단하는 단계는, 상기 쉘코드와 기 저장된 패턴 정보를 비교하여 악성 여부를 판단하는 메모리 보호기법 우회 공격 진단 방법.The determining of the malicious step may include comparing the shellcode with pre-stored pattern information and determining whether the malicious code is malicious.
  17. 제 11 항에 있어서,The method of claim 11,
    상기 속성정보를 변경하는 단계는, 상기 쉘코드가 악성이 아닌 것으로 판정되면 이후 상기 액세스 위반이 발생하지 않도록 상기 속성정보를 변경 전의 상태로 복원하는 메모리 보호기법 우회 공격 진단 방법.In the changing of the attribute information, if it is determined that the shellcode is not malicious, the memory protection technique bypass attack diagnosis method of restoring the attribute information to a state before the change so that the access violation does not occur thereafter.
  18. 제 11 항에 있어서,The method of claim 11,
    상기 특정 프로그램 함수의 호출이 탐지되면 레지스터의 감염 여부를 검사하는 단계를 더 포함하며,If the call of the specific program function is detected, further comprising: checking whether the register is infected;
    상기 악성 여부를 판단하는 단계는, 상기 레지스터의 감염이 확인되면 상기 쉘코드를 악성으로 판정하는 메모리 보호기법 우회 공격 진단 방법.The determining of the malicious step may include determining that the shellcode is malicious when an infection of the register is confirmed.
  19. 제 18 항에 있어서,The method of claim 18,
    상기 감염 여부를 검사하는 단계는, 상기 레지스터의 저장값과 상기 쉘코드를 비교하여 감염 여부를 검사하는 메모리 보호기법 우회 공격 진단 방법.The detecting of the infection may include comparing the stored value of the register with the shell code to detect the infection.
  20. 제 19 항에 있어서,The method of claim 19,
    상기 감염 여부를 검사하는 단계는, 상기 레지스터를 구성하는 범용 레지스터 중에서 적어도 하나 이상의 저장값과 상기 쉘코드의 일치율에 의거하여 감염을 확인하는 메모리 보호기법 우회 공격 진단 방법.The method of claim 1, wherein the detecting of the infection comprises: detecting an infection based on a matching ratio between at least one or more stored values of the general registers constituting the register and the shellcode.
  21. 메모리 영역의 속성정보를 변조할 수 있는 특정 프로그램 함수가 호출되는지를 탐지하는 단계와,Detecting whether a specific program function that can modulate the attribute information of the memory area is called;
    상기 특정 프로그램 함수의 호출이 탐지되면 상기 메모리 영역의 해당 위치에 대해 상기 속성정보가 실행 속성인지를 검사하는 단계와,Checking whether the attribute information is an execution attribute for a corresponding position of the memory area when a call of the specific program function is detected;
    상기 속성정보가 실행 속성으로 확인되면 상기 메모리 영역의 해당 위치에서 액세스 위반이 발생하도록 상기 속성정보를 변경하는 단계와,Changing the attribute information so that an access violation occurs at a corresponding position in the memory area when the attribute information is identified as an execution attribute;
    상기 메모리 영역에서 상기 액세스 위반이 발생하는지를 탐지하는 단계와,Detecting whether the access violation occurs in the memory area;
    상기 액세스 위반이 탐지되면 상기 액세스 위반을 발생시킨 쉘코드를 대상으로 하여 악성 여부를 판단하는 단계를 포함하는 메모리 보호기법 우회 공격 진단 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독가능 기록매체.When the access violation is detected, a program including a command for performing each step according to the memory protection technique bypass attack diagnosis method including determining whether the malicious code is targeted to the shellcode that caused the access violation is recorded. Computer-readable recording medium.
PCT/KR2014/003052 2013-04-09 2014-04-08 Apparatus and method for diagnosing attack which bypasses memory protection mechanisms WO2014168406A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130038639A KR101311367B1 (en) 2013-04-09 2013-04-09 Method and apparatus for diagnosing attack that bypass the memory protection
KR10-2013-0038639 2013-04-09

Publications (1)

Publication Number Publication Date
WO2014168406A1 true WO2014168406A1 (en) 2014-10-16

Family

ID=49456680

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/003052 WO2014168406A1 (en) 2013-04-09 2014-04-08 Apparatus and method for diagnosing attack which bypasses memory protection mechanisms

Country Status (2)

Country Link
KR (1) KR101311367B1 (en)
WO (1) WO2014168406A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904780B2 (en) * 2014-07-31 2018-02-27 Nec Corporation Transparent detection and extraction of return-oriented-programming attacks
KR102304332B1 (en) * 2014-11-21 2021-09-23 에스케이텔레콤 주식회사 Method and apparatus for blocking web page attack
KR102156340B1 (en) * 2014-11-21 2020-09-15 에스케이텔레콤 주식회사 Method and apparatus for blocking web page attack
WO2016204770A1 (en) * 2015-06-18 2016-12-22 Hewlett Packard Enterprise Development Lp Protected loading of a module

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100954355B1 (en) * 2008-01-18 2010-04-21 주식회사 안철수연구소 Diagnosis And Cure Apparatus For Malicious Code
US7971255B1 (en) * 2004-07-15 2011-06-28 The Trustees Of Columbia University In The City Of New York Detecting and preventing malcode execution
KR101244731B1 (en) * 2012-09-11 2013-03-18 주식회사 안랩 Apparatus and method for detecting malicious shell code by using debug event

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100992434B1 (en) * 2008-07-07 2010-11-05 주식회사 안철수연구소 Method for Detecting the file with fraud name and apparatus thereof
KR101228900B1 (en) 2010-12-31 2013-02-06 주식회사 안랩 System and method for detecting malicious content in a non-pe file

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971255B1 (en) * 2004-07-15 2011-06-28 The Trustees Of Columbia University In The City Of New York Detecting and preventing malcode execution
KR100954355B1 (en) * 2008-01-18 2010-04-21 주식회사 안철수연구소 Diagnosis And Cure Apparatus For Malicious Code
KR101244731B1 (en) * 2012-09-11 2013-03-18 주식회사 안랩 Apparatus and method for detecting malicious shell code by using debug event

Also Published As

Publication number Publication date
KR101311367B1 (en) 2013-09-25

Similar Documents

Publication Publication Date Title
KR101265173B1 (en) Apparatus and method for inspecting non-portable executable files
JP6639588B2 (en) System and method for detecting malicious files
US9418227B2 (en) Detecting malicious software
KR101212553B1 (en) Apparatus and method for detecting malicious files
EP3462358B1 (en) System and method for detection of malicious code in the address space of processes
CA3017936A1 (en) System and method for reverse command shell detection
US8782615B2 (en) System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
WO2015178578A1 (en) System and method for analyzing patch file
US11288362B2 (en) System and method for creating antivirus records for antivirus applications
KR20180032566A (en) Systems and methods for tracking malicious behavior across multiple software entities
US10339305B2 (en) Sub-execution environment controller
WO2014042344A1 (en) Apparatus and method for detecting malicious shellcode by using debug event
WO2014168406A1 (en) Apparatus and method for diagnosing attack which bypasses memory protection mechanisms
KR100745639B1 (en) Method for protecting file system and registry and apparatus thereof
WO2010093071A1 (en) Internet site security system and method thereof
WO2023027228A1 (en) Method and device for detecting malignancy of non-portable executable file through execution flow change of application program
RU2665910C1 (en) System and method of detecting the harmful code in the address process space
KR101908517B1 (en) Method for malware detection and unpack of malware using string and code signature
KR20180045397A (en) Apparatus and method for detecting malicious code
EP3522058B1 (en) System and method of creating antivirus records
RU2673407C1 (en) System and method for identifying malicious files
CN117235714A (en) File-free attack detection method, device, equipment and storage medium

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: 14782638

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: 14782638

Country of ref document: EP

Kind code of ref document: A1