The invention relates to the field of computer network security, and in particular, to an apparatus and method for detecting vulnerability based on data execution protection (DEP).
With the development of the computer network, the network application becomes increasingly popular. Since inevitably there are vulnerabilities in the operating system and application layer software of network servers on which network applications reside, hackers may illegally invade these network servers by exploiting these vulnerabilities, thereby bringing about a great threat to the network applications, especially to the property of users using these network applications.
The procedure exploiting the vulnerability generally comprises two parts: triggering the vulnerability and executing a shellcode. Firstly, a hacker will trigger the vulnerability on a target machine, and then successfully invade the target machine by executing a shellcode after triggering the vulnerability. The shellcode is a small piece of code used in the procedure of exploiting the vulnerability. Since generally the code will start a command line console in order that the hacker may utilize the console to control the invaded machine, the piece of code is called the shellcode in the field of network security. One typical procedure of exploiting the vulnerability is as follows: firstly, the vulnerability in a certain process on a target machine is utilized to obtain control of an instruction register, and a shellcode is inserted into the process simultaneously or in advance, then the instruction register is adjusted to point to the shellcode, and thereby the shellcode is executed to successfully invade the target machine.
Since the way in which the vulnerability is triggered will vary with a particular vulnerability, detection of the action triggering the vulnerability also needs to be processed differently with respect to the different vulnerabilities. As a result, there is not yet a unified way to monitor illegal operations exploiting the vulnerability on a target machine.
Since apparatuses (e.g., a network server and a client, etc.) employing the Microsoft Windows operating system are increasing, it becomes an increasingly important issue with respect to how to monitor illegal operations exploiting the vulnerability on the apparatuses.
The current Microsoft Windows operating system employs a security technology called data execution protection (DEP) in combination with software and hardware to prevent an application or service residing on the operating system from executing a code from nonexecutable memory area. In most network apparatuses employing the Microsoft Windows operating system, the data execution protection (DEP) has been enabled to enhance system security.
However, in existing apparatuses employing the Microsoft Windows operating system, there is not yet a method and apparatus enabled to monitor illegal operations exploiting the vulnerability in these apparatuses comprehensively and efficiently.
To this end, there needs a new vulnerability monitoring apparatus and method which may monitor such illegal operations exploiting the vulnerability in a unified, comprehensive and efficient way.
In view of the above problems, the invention is proposed to provide a vulnerability detecting apparatus and method which may overcome the above problems or at least in part solve or mitigate the above problems.
The applicant have noticed that, in an apparatus in which the Microsoft Windows operating system is employed and the data execution protection (DEP) is enabled, in the procedure of exploiting the vulnerability, a shellcode is usually located in a data area marked as “nonexecutable”, and the action to directly execute the shellcode will trigger an exception, which will ultimately lead to the execution failure of the shellcode. This results in that, if the shellcode will be executed normally, a closing or bypassing operation must be performed on the DEP. If the operation to close the DEP may be monitored, then an exceptional action exploiting the vulnerability in the apparatuses may be detected, and the invention is made based on this.
According to an aspect of the invention, there is provided a vulnerability monitoring method for performing a vulnerability monitoring on a system in which data execution protection (DEP) is enabled, which method comprises the steps of: monitoring an operation with respect to the data execution protection (DEP); and considering that an action exploiting a vulnerability has occurred in the system when an operation to close the data execution protection (DEP) is detected.
Optionally, the monitoring the operation with respect to the data execution protection (DEP) comprises monitoring any of one or more functions necessary for closing the data execution protection in the system. Additionally, these functions may be any one or both of NtSetInformationProcess( )and NtSetSystemInformation( ). Since the operation to close the DEP generally needs to be implemented by calling a certain function number of such functions as NtSetInformationProcess( ) and NtSetSystemInformation( ) etc., the objective to monitor the action attempting to execute a shellcode may be achieved by monitoring a call of such functions.
Furthermore, the hook technology can be used to handle the monitoring of any of one or more functions necessary for closing the data execution protection in the system. The hook is a point in the message handling mechanism of the Windows operating system, and at this point, some subroutines may be inserted to monitor a message or modify the message before it reaches the destination application. A technology utilizing a hook is generally called the hook technology, which is a technology commonly used in security software. The hook technology may realize functions such as audit and access control of a software code, etc. by modifying the execution flow of the software code. In a Windows operating system, monitoring a particular function may be accomplished by utilizing the hook technology.
According to another aspect of the invention, there is provided a vulnerability monitoring apparatus for performing a vulnerability monitoring on a system in which data execution protection (DEP) is enabled, which apparatus comprises: a monitoring unit adapted for monitoring an operation with respect to the data execution protection (DEP); and a judgment unit adapted for deciding that an action exploiting the vulnerability has occurred in the system when the monitoring unit detects an operation to close the data execution protection (DEP).
The vulnerability monitoring method and apparatus according to the invention takes it into account that, in a system in which DEP is enabled, an illegal operation exploiting the vulnerability existing in the system generally needs to close the DEP before executing the shellcode, and therefore may efficiently monitor such illegal operations by monitoring the operation with respect to the DEP, and provides a unified way to monitor these illegal operations.
Various other advantages and benefits will become apparent to those of ordinary skills in the art by reading the following detailed description of the preferred embodiments. The drawings are only for the purpose of showing the preferred embodiments, and are not considered to be limiting to the invention. And throughout the drawings, like reference signs are used to denote like components. In the drawings:
In the following the invention will be further described in connection with the drawings and the particular embodiments.
Optionally, in a Microsoft Windows operating system, an operation with respect to DEP, especially the operation to close the DEP, inevitably involves one or more system functions. For this reason, a monitoring operation may comprise monitoring at least one of one or more functions necessary for closing the DEP. For example, these functions may be NtSetInformationProcess( ) and NtSetSystemInformation( ). Of course, with the development of the Windows operating system, these functions may not be limited to the particular functions mentioned above. Hence, all the functions involved in closing the DEP fall within the protection scope of the invention.
Optionally, in the Windows operating system, a hook technology may be employed in order to monitor a function, i.e., monitor a certain point in the message handling mechanism of the operating system, to monitor calls for these functions as well as the message content involved in the calls. In particular, according to an embodiment, a module may be loaded in the kernel of the operating system, which module makes a hook on the function NtSetInformationProcess( ) and/or NtSetSystemInformation( ) in the SSDT (system service descriptor table), especially the related function numbers in these functions. If there is an action to call these functions, analyzing a parameter for calling these functions to determine whether it is an action to close the DEP.
Subsequently, at step S120, when an operation to close the DEP is detected at step S110, it is considered that an action exploiting the vulnerability has occurred in the target system. Optionally, at step S130, the detected action exploiting the vulnerability is informed to the system administrator in various ways, which, for example, comprise recording the actions in a log, issuing a warning to inform the system administrator, and the like. It should be noted that, any other ways that may be employed in the target system to record and/or inform the system administrator of the actions exploiting the vulnerability fall within the protection scope of the invention.
The vulnerability monitoring method according to the invention may effectively detect the action to perform an operation exploiting the system vulnerability in the target system by monitoring the operation to close DEP.
The monitoring unit 210 is adapted for monitoring an operation with respect to the DEP. As described above, in the system in which DEP is enabled, a malicious action exploiting the vulnerability has to close the DEP in order to be able to execute a shellcode, and therefore the monitoring unit 210 may find these malicious actions timely by monitoring the operations with respect to the DEP.
Optionally, in the Microsoft Windows operating system, the operation with respect to the DEP, especially the operation to close the DEP, inevitably involves one or more system functions. As such, the monitoring unit 210 may monitor at least one of one or more functions necessary for closing the DEP. For example, these functions may be NtSetInformationProcess( ) and NtSetSystemInformation( ). Of course, with the development of the Windows operating system, these functions may not be limited to the particular functions mentioned above. All the functions involved in closing the DEP fall within the protection scope of the invention.
Optionally, in a Microsoft Windows operating system, a hook technology may be employed in order to monitor the functions, i.e., monitor a certain point in the message handling mechanism of the operating system, to monitor calls for these functions as well as the message content involved in the calls. In particular, according to an embodiment, the monitoring unit 210 may comprise a module loaded in the kernel of the operating system, which module makes a hook on the function NtSetInformationProcess( ) and/or NtSetSystemInformation( ) in the SSDT (system service descriptor table), especially the related function numbers in these functions. If there is an action to call these functions, analyzing the parameters calling these functions to determine whether it is an action to close the DEP. Generally speaking, the monitoring unit 210 may perform step S110 of the monitoring method described above.
The judgment unit 220 analyzes the operation monitored by the monitoring unit 210. When the monitoring unit 210 detects an operation to close the DEP, the judgment unit 220 decides that an action exploiting the vulnerability has occurred in the target system. Optionally, the judgment unit 220 sends the judgment result to an alerting unit 230, so that the alerting unit 230 informs the system administrator of the detected action exploiting the vulnerability in various ways, which, for example, comprise recording the actions in a log, issuing a warning to inform the system administrator, and the like. It should be noted that, any other ways that may be employed in the target system to record and/or inform the system administrator of the action exploiting the vulnerability fall within the protection scope of the invention. Generally speaking, the judgment unit 220 may perform step S120 of the monitoring method described above, and the alerting unit 230 may perform step S130 of the monitoring method described above.
The vulnerability monitoring apparatus 200 according to the invention may effectively detect the action to perform the operation exploiting the system vulnerability in a target system by monitoring the operation to close DEP.
It is to be noted that, in individual components of the vulnerability monitoring apparatus 200 of the invention, the components therein are divided logically according to the functions to be realized by them, however, the invention is not limited thereto, and individual components may be re-divided or combined as needed, for example, some components may be combined into a single component, or some components may be further divided into more sub-components.
Embodiments of the individual components of the invention may be implemented in hardware, or in a software module running on one or more processors, or in a combination thereof. It is appreciated by those skilled in the art that, in practice, some or all of the functions of some or all of the components in a website scanning apparatus according to an embodiment of the invention may be realized using a microprocessor or a digital signal processor (DSP). The invention may also be implemented as an apparatus or a device program (e.g., a computer program or a computer program product) for carrying out a part or all of the method described herein. Such a program implementing the invention may be stored on a computer readable medium, or may be in the form of one or more signals. Such a signal may be obtained by downloading it from an Internet website, or provided on a carrier signal, or provided in any other forms.
For example,
It is to be noted that the above embodiments illustrate rather than limit the invention, and those skilled in the art may design alternative embodiments without departing the scope of the appended claims. In the claims, any reference sign placed between the parentheses shall not be construed as limiting to a claim. The word “comprise” does not exclude the presence of an element or a step not listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of a hardware comprising several distinct elements and by means of a suitably programmed computer. In a unit claim enumerating several devices, several of the devices may be embodied by one and the same hardware item. Use of the words first, second, and third, etc. does not mean any ordering. Such words may be construed as naming.
Number | Date | Country | Kind |
---|---|---|---|
201110008981.0 | Jan 2011 | CN | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2012/000080 | 1/17/2012 | WO | 00 | 6/25/2013 |