The present invention relates generally to a system and method for handling an event in a computer system that has a kernel-mode and a user-mode, and has particular—but by no means exclusive—application to computer security.
Today's computer systems commonly employ operating systems that allow a process (software module) to run in either a user-mode or a kernel-mode. Generally speaking, an operating system will not allow the process to perform certain actions when in the user-mode; for example, prevent access to a particular block of memory or prevent an attempt to modify certain data. However, when the process is in the kernel-mode the operating system generally does not place any restrictions on the actions performed by the process; for instance, the process can access a block of memory, which in the user-mode would not be possible.
In view of the fact that a process operating in the kernel-mode generally does not have any restrictions placed on its actions, it is of paramount importance a process operating in the kernel-mode is closely scrutinised to ensure the integrity of the computer systems is not compromised. There are numerous software packages on the market that scrutinise processes in the kernel-mode by analysing their actions. However, these software packages have been designed to operate in the kernel-mode when analysing the actions. Unfortunately, this not only makes the software packages relatively complex, but also has the potential to give rise to significant compatibility problems with other security software, and in some cases, standard software applications.
According to a first aspect of the present invention, there is provided a system for handling an event in a computer system which has a kernel-mode and a user-mode, the system comprising:
a kernel part that is operable to effect a suspension of the event in the kernel-mode; and
a user part that is operable to effect an occurrence of the event in the user-mode, thereby handling the event in the computer system.
Thus, by effecting the occurrence of the event in the user-mode the present invention has the ability to reduce the complexity associated with analysing the event in the kernel-mode. Furthermore, effecting the occurrence of the event in the user-mode has the potential to minimise compatibility problems between security software, and standard software applications.
Preferably, the user part is further operable to influence an operation of the computer system based on the occurrence of the event in the user-mode.
Thus, the ability to influence the operation of the computer system is advantageous because it can be used to overt an action which has the potential to compromise the integrity of the computer system.
Preferably, the user part is operable to influence the operation of the computer system by preventing the event from occurring in the kernel-mode.
Alternatively, the user part is operable to influence an occurrence of the event in the kernel-mode.
Preferably, the user part is operable to issue a request for the suspension, whilst the kernel part is operable to use the request in order to activate a provider part which is operable to effect suspension of a class of events that comprises the event.
Thus, providing the user part with the ability to initiate the suspension of the event when required.
Preferably, the provider part is operable to interact with an operating system of the computer system in order to effect the suspension.
Preferably, the kernel part is operable to issue an indication that the suspension has been effected, whilst the user part is operable to use the indication in effecting the occurrence of the event in the user-mode.
Preferably, the kernel part is operable to use an interprocess communication mechanism to transfer the indication to the user part, the user part being operable to use the interprocess communication mechanism to transfer the indication to the kernel part.
Thus, the interprocess communication mechanism allows the kernel part and the user part to be distinct processes on the computer system.
Preferably, the interprocess communication mechanism uses an Internet protocol.
Thus, using the Internet protocol provides the advantage of allowing the kernel part and the user part to be located on different computers.
Preferably, the kernel part and the user part are operable to respectively format the indication and the request according to a predefined format.
Preferably, the predefined format accords with a common information model defined by a distributed management task force.
Alternatively, the predefined format accords with another format defined by an application program interface.
Preferably, the kernel part operates in the kernel mode, whilst the user part operates in the user-mode.
Preferably, the user part comprises an anti-virus scan engine.
According to a second aspect of the present invention, there is provided a method of handling an event in a computer system which has a kernel-mode and a user-mode, the method comprising the steps of:
effecting a suspension of the event in the kernel-mode; and
effecting an occurrence of the event in the user-mode, thereby handling the event in the computer system.
Preferably, the method further comprises the further step of influencing an operation of the computer system based on the occurrence of the event in the user-mode.
Preferably, the step of influencing the operation of the computer system further comprises preventing the event from occurring in the kernel-mode.
Alternatively, the step of influencing the operation of the computer system further comprises influencing an occurrence of the event in the kernel-mode.
Preferably, the method further comprises the steps of:
issuing a request for the suspension; and
using the request in order to activate a provider part that is operable to effect suspension of a class of events that comprises the event.
Preferably, the method further comprises the step of using the provider to interact with an operating system of the computer system in order to effect the suspension.
Preferably, the method further comprises the steps of:
issuing an indication that the suspension has been effected; and
using the indication in effecting the occurrence of the event in the user-mode.
Preferably, the method further comprises the step of effecting a transfer of the indication to a user part for use thereby.
Preferably, the step of effecting a transfer of the indication comprises using an interprocess communication mechanism.
Preferably, the interprocess communication mechanism uses an Internet protocol.
Preferably, the method further comprises the step of formatting the indication and the request according to a predefined format.
Preferably, the predefined format accords with a common information model defined by a distributed management task force.
Alternatively, the predefined format accords with another format defined by an application program interface.
According to a third aspect of the present invention, there is provided software, which when executed on a computer, allows the computer to carry out the method according to the second aspect of the present invention.
According to a fourth aspect of the present invention, there is provided a computer readable medium comprising the software according to the third aspect of the present invention.
Notwithstanding any other embodiments that may fall within the scope of the present invention, an embodiment of the present invention will now be described, by way of example only, with reference to the accompanying figures, in which:
As can be seen in
With reference to
Persons skilled in the art will readily appreciate the differences between the kernel-mode and the user-mode of Windows NT operating system. However, those not skilled in the art are referred to the section of this document entitled “Background of the Invention” for a very brief overview of the basic difference between the kernel-mode and the user-mode.
As mentioned previously, the embodiment of the present invention also comprises a user part 13, which can be seen in
With reference to the
To enable the software applications 313a, 313b (not shown in
When the software applications 313a, 313b (not shown in
Once the interprocess communication mechanism has been established between the software applications 313a, 313b (not shown in
Subsequent to receiving the suspension request via the communication mechanism, the client manager 29 advises the provider manager 27 of the event that the suspension request identifies; that is, the event that the software application 313a, 313b (not shown in
Upon being advised of the event that the suspension request identifies, the provider manager 27 loads (activates) an appropriate one of the providers 25a, 25b (not shown in
Once the provider manager 27 has loaded the appropriate provider 25a, 25b (not shown in
The handler inserted into the execution path of the Windows NT operating system is such that once it has suspend the relevant event (which is the event identified in the suspension request issued by the software application 313a, 313b (not shown in
In response to being notified by the Windows NT operating system that an event in the kernel-mode has been suspended, the providers 25a, 25b (not shown in
The provider manager 27 passes the information onto the client manager 29 by invoking an appropriate method (software routine) in an application program interface of the client manager 29. Using the interprocess communication mechanism connecting the client manager 29 and the software applications 313a, 313b (not shown in
The information about the event provides sufficient information to enable to software applications 313a, 313b (not shown in
The software applications 313a, 313b (not shown in
As mentioned previously, the software applications 313a, 313b (not shown in
The predefined format used by the software applications 313a, 313b (not shown in
In addition to the previously described functions performed by the provider manager 27, client manager 29, and the software applications 313a, 313b (not shown in
The various steps performed by the embodiment of the present invention are shown in the flow chart of
It will be appreciated that whilst the previous description of the embodiment of the present invention refers to the Windows NT operating system, the present invention will have application to other operating systems that have a kernel-mode and a user-mode, or similar concept. Examples of another operating systems are UNIX based operating systems. Persons skilled in the art will also appreciate that whilst the present invention has been described in the context of software being executed under the NT operating system, it is possible that the present invention (or parts thereof) could be performed by dedicated hardware.
Those skilled in the art will appreciate that the invention described herein is susceptible to variations and modifications other than those specifically described. It should be understood that the invention includes all such variations and modifications which fall within the spirit and scope of the invention.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2004903759 | Jul 2004 | AU | national |
This application claims the benefit of U.S. Provisional Application No. 60/585,520 filed 6 Jul. 2004 and incorporates the same by reference.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5148544 | Cutler et al. | Sep 1992 | A |
| 6131163 | Wiegel | Oct 2000 | A |
| 6205492 | Shaw et al. | Mar 2001 | B1 |
| 6871350 | Wong et al. | Mar 2005 | B2 |
| 7000100 | Lacombe et al. | Feb 2006 | B2 |
| 7085928 | Schmid et al. | Aug 2006 | B1 |
| 7181382 | Shier et al. | Feb 2007 | B2 |
| 7363657 | Caccavale | Apr 2008 | B2 |
| 7437759 | Szor | Oct 2008 | B1 |
| 7472272 | Stamos et al. | Dec 2008 | B2 |
| 7530093 | Samuelsson et al. | May 2009 | B2 |
| 20020152331 | Wong et al. | Oct 2002 | A1 |
| 20030081601 | Morris et al. | May 2003 | A1 |
| 20030101381 | Mateev et al. | May 2003 | A1 |
| 20030120935 | Teal et al. | Jun 2003 | A1 |
| 20040003137 | Callender et al. | Jan 2004 | A1 |
| 20040098639 | Liu | May 2004 | A1 |
| 20040216145 | Wong et al. | Oct 2004 | A1 |
| 20040243783 | Ding et al. | Dec 2004 | A1 |
| 20050246522 | Samuelsson et al. | Nov 2005 | A1 |
| 20050246564 | Bhesania et al. | Nov 2005 | A1 |
| Number | Date | Country |
|---|---|---|
| WO-03058451 | Jul 2003 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 20060015880 A1 | Jan 2006 | US |
| Number | Date | Country | |
|---|---|---|---|
| 60585520 | Jul 2004 | US |