The present invention relates to a data leak protection application. In particular, the present invention is a data leak protection software method (or corresponding system or application) which monitors usage of a computing device and which is capable of enforcing a security policy on the computing device (be it a PC, laptop or other processing means). The invention may be operated on a stand-alone machine or within a computer network.
In any modern operating system, the CPU (central processing unit) is actually spending time in two distinct modes: kernel mode and user mode,
In Kernel mode (also referred to as system mode or supervisor mode), the executing code has complete and unrestricted access to the underlying hardware. It can execute any CPU instruction and reference any memory address. Kernel mode is generally reserved for the lowest-level, most trusted functions of the operating system. Crashes in kernel mode are catastrophic and will halt the entire computer.
In User mode, executing code has no ability to directly access hardware or reference memory. Code running in user mode must delegate to system APIs (application programming interfaces) to access hardware or memory. Due to the protection afforded by this sort of isolation, crashes in user mode are recoverable. Most of the code running on a computer will execute in user mode. User mode is a non-privileged mode for user programs.
When the CPU is in kernel mode, it is assumed to be executing trusted software, and thus it can execute any instructions and reference any memory addresses (i.e., locations in memory). The kernel (which is the core of the operating system and has complete control over everything that occurs in the system) is trusted software, but all other programs are considered untrusted software. Thus, all user mode software must request use of the kernel by means of a system call in order to perform privileged instructions, such as process creation or input/output operations.
A system call is a request to the kernel in a Unix-like operating system by an active process for a service performed by the kernel. A process is an executing instance of a program. An active process is a process that is currently advancing in the CPU (while other processes are waiting in memory for their turns to use the CPU). Input/output (I/O) is any program, operation or device that transfers data to or from the CPU and to or from a peripheral device (such as disk drives, keyboards, mice and printers).
An interrupt is a signal to the operating system that an event has occurred, and it results in a change in the sequence of instructions that is executed by the CPU. In the case of a hardware interrupt, the signal originates from a hardware device such as a keyboard (i.e., when a user presses a key), mouse or system clock (a circuit that generates pulses at precise intervals that are used to coordinate the computer's activities). A software interrupt is an interrupt that originates in software, and it is usually triggered by a program in user mode. The standard procedure to change from user mode to kernel mode is to call the software interrupt 0×80. An exception is an unusual condition, for example an invalid instruction in a program.
All processes begin execution in user mode, and they switch to kernel mode only when obtaining a service provided by the kernel. This change in mode is termed a mode switch, not to be confused with a context switch (although it sometimes is), which is the switching of the CPU from one process to another.
When a user process runs a portion of the kernel code via a system call, the process temporarily becomes a kernel process and is in kernel mode. While in kernel mode, the process will have root (i.e., administrative) privileges and access to key system resources. The entire kernel, which is not a process but a controller of processes, executes only in kernel mode. When the kernel has satisfied the request by a process, it returns the process to user mode.
Some CPUs, including the nearly ubiquitous x86-compatible (i.e., Intel-compatible) processors, are designed to accommodate more than two execution modes. However, all standard kernels in Unix-like operating systems utilize only kernel mode and user mode.
Some operating systems, such as MS-DOS (the predecessor to the Microsoft Windows operating systems) do not have a distinct kernel mode; rather, they allow user programs to interact directly with the hardware components. However, Unix-like operating systems use the dual mode mechanism to hide all of the low level details regarding the physical organization of the system from application programs launched by the user as a means of assuring system stability and security.
The Linux kernel Version 2.6 (which was introduced in late 2003) is preemptive. That is, a process running in kernel mode can be suspended in order to run a different process.
This can be an important benefit for real time applications (i.e., systems which must respond to external events nearly simultaneously).
Unix-like kernels are also reentrant, which means that several processes can be in kernel mode simultaneously. However, on a single-processor system, only one process, regardless of its mode, will be progressing in the CPU at any point in time, and the others will be temporarily blocked until their turns.
Most processors have at least two different modes. The x86-processors have four different modes divided into four different rings (see
It can therefore be appreciated that unauthorised access of the kernel mode of a computer can cause serious problems. Existing methods/systems for preventing unauthorised access attempts include: hardware based firewalls which configure a programmable router to block ports; software based firewalls where the operating system defines rules to block ports; software based firewalls which control packets sent and received by permitted ports (In the Windows environment this software based method is achieved using Filter-Hook which is a kernel mode driver. The driver sends the address of a Callback function via IRP (I/O Request Packet) to an existing IP Filter Driver. Any IP packet will be sent to the Callback function. These packets are then processed and their content can be monitored by advanced data mining tools in order to detect malicious requests). It is noted that Filter-Hook drivers were first introduced by Microsoft in Windows 2000 DDK (Driver Development Kit).
It is noted that the above methods/systems protect against external attempts to access a computer or computer network. However, it is noted that computers and computer networks may also be compromised by authorised users deliberately or accidentally copy, sending or printing data once logged into the computer or network. Such activities may be referred to a data leak events and it is an object of the present invention to provide a mechanism for mitigating against such events occurring.
According to a first aspect of the present invention there is provided a data leak protection method for managing user interaction with a computing device, the computing device comprising a kernel mode of operation and a user mode of operation, the method comprising: monitoring the kernel mode of the computing device in order to detect user-initiated events; determining whether a given user-initiated event has a forbidden status or an allowed status; performing an action in dependence on the status of the given user-initiated event.
The present invention operates essentially as an “inside” firewall, i.e. it protects a computing device, computer or a wide-area-network on which the computer is connected from data leakage or information theft. The present invention therefore provides a data leak protection method (further aspects of the present invention described below relate to a corresponding data leak protection system, data leak protection application, data leak protection computer program etc.)
It is also noted that the present invention may be applied to any suitable computing device, such as computers, servers, networks, PCs, laptops, “smartphones”, PDAs and any other processing means where data leakage is a potential issue. The term “computing device” should therefore be understood to encompass all such devices and processing means.
The present invention may be embodied as a software application which monitors computer usage and which can enforce an organization's security policy on each user's computer whether desktop or laptop or any other computing device. The invention operates by tracking the internal processes of computing devices and detecting forbidden events and activities in real-time. A number of examples of the use of the invention are discussed below in which a Listener Object (referred to below as the Enforcer Agent Events Listener Object or EAEL) receives messages from the operating system object (OSO) running in kernel mode of a computing device running a software application in accordance with an embodiment of the present invention. It is noted that the invention covers system setups in which the EAEL listens passively to message traffic within the computing device and also to setups where the OSO is managed to send messages to the EAEL in kernel mode.
It is further noted that the present invention may be operative to detect, alert, record and block unauthorised activities that occur.
The present invention may detect forbidden events in real-time using a sniffing mechanism. Operating system events may be detected and, derived from that, the invention may detect running applications events in real-time (including events associated with removable devices).
The present invention may be configured to alert an organization's security team in real-time on each high risk event as derived from a security policy. Forbidden activities may be initiated by the operating system and/or by third parties running software applications and/or by an authorized user using the user's credentials (SID—Security Token).
The present invention may be configured to report on any detected event transactions, to a central database. Such reporting would, if enabled, provide IT forensic services in real-time rather than recovering forensic information for future inspections. Furthermore, recorded event transaction may provide a clear picture about any security policy breach which is executed by the end-user or by third party applications using the user's credentials.
The present invention may be configured to block forbidden activities as derived from the enforced security policy and therefore, minimize the overall damage which can be caused by the forbidden activities
It is noted that in particular, the present invention may monitor and prevent the following events from occurring:
Further features according to the first aspect of the present invention are detailed below.
The data leak protection method may conveniently further comprise providing a data leak protection object in the user mode of the computing device. The data leak protection object in the user mode may be injected into every running application in the user mode and conveniently may be provided by injecting computer code into executable files [running services/running processes].
Conveniently, the monitoring step of the first aspect of the present invention may then comprise the data leak protection object listening to kernel mode message traffic. Alternatively, the monitoring step may comprise the data leak protection object receiving notifications from an operating system object in the kernel mode whenever a user-initiated event occurs. The data leak protection object may also indirectly monitor the kernel mode of the computing device by listening to user mode message traffic.
The data leak protection method may also conveniently further comprise a data leak protection agent in the kernel mode of the computing device. The monitoring step may then comprise the data leak protection agent intercepting a system call from a user mode application. Conveniently, the determining step may comprise the data leak protection agent checking with a kernel mode memory unit to determine if the system call relates to a forbidden status event.
The data leak protection agent in the kernel mode of the computing device may also be embodied within a device driver that hooks to system calls from user mode applications.
Preferably, the determining step comprises checking a monitored event against a database containing a data leak protection security policy.
Conveniently, a database comprising a list of allowed status and forbidden status events may be defined. Defining such a database may conveniently comprise defining what system calls given user mode applications are allowed to place.
Preferably the performing step comprises outputting a notification signal whenever a forbidden status event is detected. The performing step may also comprise storing a record of the detected event.
Preferably, the performing step comprises blocking the user-initiated event.
Preferably, the method according to the first aspect of the present invention further comprises watching for user-initiated attempts to circumvent data leak protection. In the event that a circumvention attempt is detected the computing device may either be shut down or rebooted.
Conveniently, the user-initiated events that the data leak protection method may monitor comprise one or more of the following: a copy/paste event (either a copy to system clipboard event or a drag/drop event that uses a different mechanism); a file renaming event; a file deletion event; mounting or dismounting a removable device; a printscreen event; a network change event; a console command event, a task scheduler event; a Save As event; a Print event.
Conveniently, the performing step may comprise raising a flag upon detection of a first event and monitoring for a given further user-initiated event, a further action being performed on detection of the given further event.
Preferably, where the monitored event is checked against a database or kernel mode memory unit, the determining step comprises checking name and a hash code of a program requiring access to system resources of the computing device.
According to a second aspect of the present invention there is provided a data leak protection system data leakage protection system for managing user interaction with a computing device, the computing device comprising a kernel mode of operation and a user mode of operation, the method comprising: monitoring means arranged to monitor the kernel mode of the computing device in order to detect user-initiated events; determining means arranged to determine whether a given user-initiated event has a forbidden status or an allowed status; performing means arranged to perform an action in dependence on the status of the given user-initiated event.
The invention extends to a carrier medium for carrying a computer readable code for controlling a computing device to carry out the method of the first aspect of the invention and a computer program embodied on a computer readable medium for controlling a computing device to manage user interaction with the computing device.
According to a third aspect of the present invention there is provided a computer program embodied on a computer readable medium for controlling a computing device to manage user interaction with the computing device, the computing device comprising a kernel mode of operation and a user mode of operation, wherein the computer program comprises: a code segment for monitoring the kernel mode of the computing device in order to detect user-initiated events; a code segment for determining whether a given user-initiated event has a forbidden status or an allowed status; a code segment for performing an action in dependence on the status of the given user-initiated event.
According to a fourth aspect of the present invention there is provided a data leakage protection application for managing user interaction with a computing device, the computing device comprising a kernel mode of operation and a user mode of operation, the method comprising: monitoring means arranged to monitor the kernel mode of the computing device in order to detect user-initiated events; determining means arranged to determine whether a given user-initiated event has a forbidden status or an allowed status; performing means arranged to perform an action in dependence on the status of the given user-initiated event.
The invention also extends to a network comprising a plurality of computing devices in communication with a server wherein each computing device comprises a data leak protection application according to the fourth aspect of the invention. Conveniently, a data leak protection policy is stored on the server. This policy may be periodically updated. Preferably, a computing device is arranged to download a current version of the data leak protection policy from the server each time it connects to the network, the current version of the data leak protection policy being used by the data leak protection application. In the event that a computing device is left permanently connected to the network then conveniently the computing device may either periodically update the data leak protection policy or be instructed to update the data leak protection policy (e.g. by the server or by a data security team).
The present invention is described, by way of example only, with reference to the following figures, in which:
a and 4b illustrate a data leak protection method in accordance with embodiments of the present invention and a data leak protection system/application in accordance with embodiments of the present invention;
The present invention provides a data leak protection method. This method is also referred to herein as “Enforcer” and the terms “Enforcer” and “data leak protection” should therefore be regarded as referring to the same method, system or application.
The present invention may be integrated with Microsoft Active Directory in order to support groups and users policies. An organization's security team may easily define a protection policy according to the organization's specific requirements.
In general, the present invention may run in two different modes: Online and offline. When a user is connected (online mode) to an organization's Domain server (Active Directory), his login process is performed based on his personal and predefined user account privileges in the Domain Active Directory. In this case, the present invention may load the user's security policy from the Active Directory as part of the general login process.
When the user is disconnected (Offline mode) from the organization's Domain server (Active Directory), his login process is performed based on his personal text-password which is stored locally in his working PC (logged machine) and a local user account in his working PC. In this case, the present invention may load the user security policy locally as part of the general login process. The user local security policy is identical to the last logged security policy in the organization Active Directory.
The main objective of integrating the present invention with Microsoft Active Directory is to store the Enforcer security policy for each user within a world-wide standard and to integrate the present invention within the users' login process while users get their personal privileges in the operating domain (logged domain) by using the standard personal SID (Security Token) generation. Other third party applications (such as Microsoft Exchange Server) use the Active Directory schema to store each user's personal records within the application.
In order to integrate the security application in accordance with embodiments of the present invention with Microsoft Active Directory, the Active Directory Schema may be extended based on pre-defined properties of a security policy rule-base associated with the present invention.
This Active Directory schema represents a “map” of an organization's IT resources in a hierarchical structure using forest, tree, trusted domains, each domain's users, each domain computers and much more. The Active Directory schema stores all object definitions and their pre-defined attributes.
Based on this defined standard, the security application in accordance with the present invention may extend the Active Directory schema as detailed below thereby enabling it to support Enforcer security policy objects and attributes:
[Remark: Class Objects must start with capital letters while Schema Attributes must start with lower-case letters.]
To ease the process of defining the Enforcer security policy, the present invention may provide a Security Team Configuration Tool that is used to define the Enforcer Rule-base for each user group.
The configuration tool enables an organization's security team to define the monitored application attributes and also enables the security team to define what user activities are forbidden (e.g. to define that source application “A” cannot export information to a target application “B”).
It is noted that before activities can be defined as forbidden or allowed, the security application, in accordance with the present invention, needs to ascertain the running applications on the computer or network to be protected. A “Sniffer” agent may be used to perform this task. In Windows 2000 (and later versions) Device drivers install a sniffer by calling the kernel mode API PsSetLoadImageNotifyRoutine that installs a Callback function which is such a sniffer. To stop the sniffer, the driver has to call PsRemoveLoadImageNotifyRoutine.
A simple representation of a security policy in accordance with an embodiment of the present invention is illustrated by an XML file below.
Security Policy Rule-Base—the security policy represents the enforced security policy for each user (authorized employee) in the organization. The policy defines what information exchange activities/events are forbidden inside the organization while users are logged into the organization domain controller (Active Directory). Any activity which is not defined as forbidden activity is allowed.
The Enforcer Security Policy is stored as part of the user's account in the organization's Active Directory. An example of a policy in accordance with an embodiment of the present invention is represented by the following XML file:
The present invention may be integrated with a security solution, e.g. a biometric signature system such as ANB's BioSign® Solution (see U.S. Pat. No. 6,687,390). Alternatively, the present invention may be implemented as a stand-alone security solution with a software tool that can be used to scan running applications. An example of such a software tool, commonly referred to as sniffer agents, is the ANB Sniffer Agent™.
In the case of an integrated solution, the user login process may be based on authenticating the user's biometric signature. An example of such an integrated solution may use the ANB Biosign® Identify and Access Management (IAM) system which provides stronger authentication than any text-password. In such an example, the user signs online and then, his sampled signature is compared against the user's stored signature (user's biometric identity) in ANB BioSign® Authentication Server. Integrating ANB Enforcer™ with ANB BioSign® provides high confidence about who is behind the forbidden activities which is detected by ANB Enforcer™.
The operation of the present invention will now be described with reference to a number of different “data leakage” scenarios.
Login Process—General
The present invention is an event driven application which provides Data Leakage Protection (DLP services) in real-time. In addition, the present invention may provide event transactions archiving for further inspection by a security team and for forensic information for future inquiries.
In general a user of a system equipped with the present invention may log into the organization's domain. As part of the login process the user will retrieve his personal user account credentials. The organisation's security policy will also be retrieved by the system in accordance with embodiments of the present invention from the domain Active Directory. The user may then work with his personal PC using his user credentials. While the user works on his PC, forbidden events may occur and as a consequence, the system in accordance with embodiments of the present invention will be able to respond to these events based on the user personal security policy.
In general, there are two modes of the login process: online and offline. An online login process is performed while the user is connected to the organization Domain Controller. An offline login process is performed while the user is disconnected from the organization Domain Controller. In the latter case, the login process is performed locally at the user's PC using the local user's account and the user's local security policy. The user's local security policy is identical to the last logged user's security policy which is stored in the domain Active Directory.
Online Login Process (
The user 10 (organization authorized employee) logs into the organization's domain using his personal text-password and/or his biometric identity and/or his personal smart-card. Within this process, the user gets his credentials as derived from his user's account privileges in the organization Active Directory 12. This is the standard login process to the domain server while the user is connected (online mode). Within this process, the data leak protection application/system 14 in accordance with the present invention (referred to in
b) (Step 202)The user 10 gets his credentials (SID—security token) and the data leak protection application loads the user's personal security policy.
It is noted that
Offline Login Process (
While the user's PC is disconnected from the organization's Domain Controller 12, the user 10 (organization authorized employee) logs on to his working PC 16 using his personal text-password and/or his biometric identity and/or his personal smart-card. Within this process, the user gets his credentials as derived from his local user's account privileges, in the working PC. This is the standard offline login process to the working PC while the user is disconnected (offline mode). Within this process, ANB Enforcer™ 14 which runs on the user PC, loads the user's Enforcer security policy from the ANB Application Folder 24 (encrypted binary file). This user's Enforcer security policy is identical to the last logged user's Enforcer security policy in the Active Directory 12. The user's Enforcer security policy is derived from the user membership to users groups which are defined in the organization Active Directory.
Only the user is logged into his PC (Online or Offline modes) ANB Enforcer™ loads the user personal Enforcer security policy and only then the ANB Enforcer™ DTP (Data Leak Protection) is activated.
a and 4b illustrate a data leak protection method in accordance with embodiments of the present invention and a data leak protection system/application in accordance with embodiments of the present invention.
In
b represents the data leak protection system/application that corresponds to the method of
Removable Device Mounting/Dismounting Process
In an operating system, all removable device mounting events are detected by the operating system as part of the Plug-n-Play features. Examples of the “mounting” of a removable device Disk-On-Key include insertion into a USB port, Fire wire port, connection via Blue Tooth, connection via Infra-red device, PCMCIA connector, DVD RW, CD-RW, RS232 RS423, RS422, RS485 port, parallel LPT port etc. Removable devices may include iPhone, Palm, memory cards, U3 Disk On Key, ordinary Disk on Key and others.
The mode of operation of the data leak protection application is now described.
In Step 220, a mounting/dismounting event 50 occurs and is detected by the operating system object 44 (OSO) running in kernel mode 40.
In Step 222, the OSO 44 sends a message to the Enforcer Agent Events Listener object 46 (EAEL).
In Step 224, the EAEL object 46 reports on a new removable device 50 to the Enforcer Agent object 48 (EAO). The EAEL 46 also generates a recorded event transaction and recorded security alert which may be sent to the security and forensic database 20 and also the IT security team 22.
The Enforcer™ object is a software component (DLL file) which is responsible for low-level operations in real-time such as: Windows messages hooking, new removable device dismounting, internal protection services and others. In Step 226, the Enforcer™ object 48 responds to the EAEL report received in Step 224 based on the user's personal security policy and where necessary, blocks the forbidden activity by dismounting the removable device using the operating system agent.
Applications Information Flow Process
Information exchange may occur between applications using the operating system clipboard, Drag & Drop or the GDI (graphic device interface) device context copy. In such cases, when information is copied from one running application, the data is in fact copied to the operating system clipboard or to shell data transfer objects such as, in Windows, DoDragDrop API. At this stage, the clipboard content or a shell data transfer object's memory content is changed. This event is reported [It is noted that if an ordinary copy occurs then the EAEL may capture clipboard changes in due course after it registers itself as a Clipboard Viewer. If, on the other hand, a Drag/Drop occurs then this would be monitored by API hooks as drag/drop events do not use the clipboard) to the operating system object (OSO) and then forwarded to the EAEL. When the EAEL gets the (“Draw Clipboard Change”) message from the OSO, it checks for the source of the information copy operation, in other words the EAEL “asks” itself: “what is the source application that initiated that information copy operation?”. After identifying the source of the information copy event, it checks the rule-base as to what other applications the source application is allowed to export information.
Only when the operating system activates an application window of a forbidden application (to which the information should not be exported), will the operating system clipboard be cleared by the EAEL object.
It is noted that a forbidden application may not be explicitly defined as forbidden. It can simply be an unauthorized application. If the source program in which the copy or drag operations took place, had opened a file that is defined as confidential then copy/paste, drag/drop operations can be done in the program itself only.
The above information exchange using the clipboard feature is depicted in
In Step 234 the EAEL 46 detects the source application that triggered the clipboard change by checking with the agent object 48 and in Step 236 the EAO 48 (which is a low level program) reports the details of the source application to the EAEL 46.
In Step 238, the EAEL 46 then checks the rule-base to decide if the source application is allowed to copy data to other applications (the security policy will be checked). The events listener object 46 will then wait for further activity before taking any further action.
In Step 240, a new application is opened by the user. This application opening event is reported to the OSO in Step 242.
In Step 244 the OSO 44 reports to the EAEL 46 that a new application has been opened. The EAEL 46 can then take appropriate action depending on whether a copy to the new application is defined as forbidden or not. In the example of
An independent process starts when a confidential file is opened and this process is also depicted in
As the confidential file is opened, an Open-File call is intercepted (at Step 250) by the EKMA. In Step 252, a Copy action is detected by the EKMA 54.
The file name of the file being opened is then checked in Step 254 against a list of protected files in a shared memory unit 56 located either within the kernel mode 40 (as depicted in
Subsequently, if another application calls a “paste operation” (Step 258) then the clipboard/copy buffer will be cleared in Step 260 if the copy-from-protected file flag is “true”. In addition Drag/Drop shell calls are intercepted by the EKMA.
Printscreen Information Flow Process
A Printscreen event may be initiated by typing on the Printscreen key on a computer keyboard and it is noted that this event once selected is reported to the operating system object (OSO).
Turning to
In turn, in Step 266, the clipboard change is reported from the OSO to the Enforcer Agent Object (EAO).
The printscreen event is then reported to the Enforcer agent listener object in Step 268 by the low level EAO program.
In Step 270, the EAEL responds by requesting from the EAO a list of all visible windows. In Step 272, the EAO reports back to the EAEL with information relating to the visible application windows (the EAO sends a list of windows and their owning application names).
In Step 274, the EAEL decides whether to clear the clipboard (based on the active security policy). In Step 276, a copy of the printscreen image may be saved to the security and forensic server 20 for inspection and forensic purposes and the EAEL may send a report about the event.
Graphic Device Interface (GDI) Information Flow Process
When a running application 60 at the user mode level calls a GDI function/resource for getting Printscreen image copy, the data leak protection application according to an embodiment of the present invention may intercept the GDI API (Application Programming Interface) and, in the event of a forbidden exchange event may reject the API call.
Turning to
When a GDI API call for full screen access is made in Step 282 by a user level application 60, the call is intercepted by the Enforcer Kernel Mode Agent (EKMA) 54. In Step 284 the EKMA checks against the list of allowed applications stored in the shared memory object 56 whether the program that has initiated the call is authorised to do so. In Step 286, the shared memory object reports back to the EKMA.
In Step 288 the EKMA reports the call (including the program name of the program that made the call and the process ID) to the events listener object (EAEL) 46.
The EAEL then performs a check of all visible application windows with the agent object 48 (EAO) in step 290 and in step 292 the EAO reports back to the listener object on all open application windows. In Step 294 the EAEL checks if the information exchange is allowed in the rule base and if it is forbidden calls the kernel mode agent to reject the GDI API call or if it is allowed informs the kernel mode agent that the call can be forwarded. In Step 296 the kernel mode agent forwards the allowed GDI call to the GDI 62.
It is noted that in the event of a forbidden call then the listener object may output an alert notification and report on the forbidden GDI call transaction (Step 298). A copy of the Printscreen image may also be saved for future inspection and for forensic purposes.
File Deletion Process
When a file deletion event occurs by the user and/or by a running application and/or by the operating system internal process, the file deletion event may be intercepted by the EKMA and is reported to the EAEL. The EAEL alerts and records the file deletion transaction based on the organization security policy. It supports protection on folder deletion events.
Referring to
In Step 302, when a file and/or folder deletion event is called by a user level application 60, the call runs through EKMA which in turn (Step 304) checks the shared memory unit to see if the file is confidential/protected or not. In Step 306 the memory object 56 reports back to the kernel mode agent 54 as to whether the call is allowed or not.
In Step 308 the kernel mode agent reports about the call to the listener object (file name, process ID and process name are reported to the EAEL).
In Step 310, if the call is approved (from Step 306) then the kernel mode agent passes the call to the operating system 44 (file system 64). If the file is reported as protected in Step 306 then the call is denied and thus not passed to the operating system. The deletion or deletion denial report is recorded in Step 312 by the EAEL.
File Renaming Process
The file renaming process is handled by the present invention in an almost identical way to file deletion, however, renaming involves a new name. If the file is confidential/protected then the new name can differ only by path but not by file name, in other words it is a copy/ move action. When a file renaming event occurs by the user and/or by a running application and/or by the O/S internal process, the file renaming call is intercepted by the EKMA which forwards the event message to the EAEL. The EAEL alerts and records the file renaming transaction based on the organization security policy. The present invention protects against folder renaming events
Referring to
In Step 316, when a file and/or folder renaming event is called by a user level application 60, the call runs through the EKMA 54. The EKMA, in step 318, checks the shared memory unit 56 to see if the file is confidential or not. In Step 320, the shared memory object reports whether the file is confidential or not.
In Step 322 the EKMA 54 reports about the call to the EAEL 46.
In Step 324, if the call is approved it is passed to the operating system 44. If the call is denied then the EKMA does not pass the file renaming call to the operating system.
The renaming or renaming denial report is recorded in Step 326 by the EAEL.
It is noted that
Network Change Event
When a new IP address is bound to a PC's NIC (Network Information Centre) MAC (Media Access Control) and/or the logged Domain is changed and/or the PC name (NetBIOS name) is changed then the present invention may be configured such that an event message is sent by the OSO to the EAEL. The EAEL alerts and reports on this networking change event in order to continue tracking down the PC machine which is being used by the user. The EAEL reports on:
Referring to
Console Command Event
When a console command is Entered, the Enter command is captured by a keyboard hook and the command itself is extracted from the console buffer by the EKMA which is injected into the console process.
Referring to
In Step 342, the “Enter” key is pressed within a console application 60 and the event is detected by the keyboard hook in the EAO 48 (Low level C++API—Enforcer Agent Object) and reported to the EAEL 46.
In Step 344, the EAEL 46 calls the EAO 48 for the console buffer in order to receive the command that was executed by the console application and in Step 346, the EAO calls the EKMA.
In Step 348, the EKMA 54 checks the console command and sends it to the shared memory unit 56 to verify the command is authorized.
In Step 350, the shared memory unit 56 sends a reply with the command to the EKMA.
In Step 352, the EKMA sends the command buffer to the EAO. If the command is forbidden an additional report is generated.
In Step 354, the EAO sends the message with the command string to the EAEL. The EAEL then reports (in Step 356) the event.
If the command is approved (following Step 350) then it is relayed as is in Step 358 to the operating system 44.
Task Scheduler Request
A task scheduler request schedules the activation of an application, command or batch file if a condition or time is met. In accordance with embodiments of the present invention, the EKMA intercepts the request and sends the command in it to the shared memory unit to see if the command or it's components are not authorized.
Referring to
In Step 362, the EKMA 54 intercepts a call by the Task Scheduler 66 to schedule a task for a user application 60.
In Step 364, the EKMA 54 extracts the command from the task and asks the shared memory unit 56 to see if the command is authorized and in Step 366 the shared memory unit reports on the allowability of the command.
If the command is authorized it is forwarded in Step 368 to the Task Scheduler 66 for scheduling in order to be performed later. The EKMA 54 in parallel reports in Step 370 the Task command to the EAEL which in turn sends (in Step 372) a report for record.
Save As Event
A Save As event can be identified by embodiments of the present invention based on what APIs, or interfaces the software calls after it opens a confidential file. The EKMA knows that a confidential file was opened by calling a shared memory unit in which the file name appears in a list.
Referring to
In Step 382, a user level application 60 opens/creates a file and the OpenFile or CreateFile request is intercepted by the EKMA 54.
In Step 384, the EKMA 54 checks the shared memory unit 56 to see if the file name is protected (either if explicitly protected or if allowed directories are defined, and the file is not in an allowed directory) and in Step 386 the shared memory unit 56 reports on the protection status of the file name.
If the file is confidential then in Step 388 the EKMA 54 checks (with the shared memory unit 56) if the application is authorized to open or create files with a protected name.
In Step 390, the shared memory calls the EKMA to report if the application is authorized to access confidential files or not.
If the application is not authorised then the application may be terminated and a report sent to the EAEL (Step 392).
In Step 394, if the application is authorized then the request is forwarded to the operating system 44 (file system 64).
If the application is authorised to access confidential files then the EKMA 54 remembers that a confidential file was accessed.
Future sequences of API calls or interface calls that are identified as “Save As” are blocked (in Step 396) and a report is sent to the EKMA.
In Step 392, if the application is terminated because it is not allowed to access protected files or if a Save As sequence of API calls is identified, a report is sent from the EKMA to the EAEL. The EAEL reports (in Step 398) the event for record.
Printing
This embodiment of the invention relates to Print monitoring. If a protected file is opened by an application and later the application prints documents a report is generated.
Printing often occurs after data files are accessed. If one of these accessed files is confidential then printing should be restricted to a predefined policy. In the example of
Referring to
In Step 402, a file is opened by a user application 60 and the EKMA 54 intercepts the OpenFile or CreateFile call.
In Step 404, the EKMA 54 checks with the shared memory unit 56 if the file name appears in the list of protected/ confidential file names in the shared memory unit 56.
In Step 406, the shared memory unit 56 reports back to the EKMA 54 on the status of the file name and if the file name is confidential a protected file flag is raised, e.g. set to “true”.
In Step 408, the EKMA intercepts a call to a function that initiates printing.
In Step 410, if the file is not protected or if there is no limit on printing protected files, the printing API e.g. Windows StartDoc is transferred to the printer driver 70
Optionally in Step 412, the EKMA can invoke a signature recognition engine 72 to verify, in Step 414, that the user is indeed authorized to print the confidential file.
In Step 416, the print job report is sent to the EAEL 46 including whether it was denied or not. The EAEL 46 sends a report to the database for record in Step 418.
The skilled person would appreciate that the order of the process steps in
The present invention may usefully comprise a further security feature that prevents the data leakage protection application of the present application from being disabled. This “watch dog” feature may be run in the operating system background in order to provide real-time protection while a user uses his PC.
Any attempt to close the data leakage prevention application or data leakage protection will result in rebooting the running operating system and reloading data leakage protection application. This way, the PC is operational only when it is being protected by the data leakage protection application of the present invention.
Further attributes and advantages of embodiments of the present invention are discussed below and in particular it is noted that the present invention may extend to:
14) A method of defining applications/programs that are listed as “white” which means that under predefined rules they may be allowed to access system resources. Some system resources such as full screen access, should be accessed only if the application that uses the resource appears in the white list. There may be different white lists for different resources, e.g. a white list of the printer, a white list of programs that can access confidential files etc. The white list may be stored locally or on a remote server. The definition of the white list may use policy databases such as Active Directory.
It is noted that although the present invention may be referred to above with reference to the “Enforcer application” or security application or data leak protection application, the skilled person would appreciate that the above description also applies to the corresponding data leak protection method and data leak protection system. References to “application” should therefore be understood to encompass the method and system of the present invention when incorporated into and running on a computing device.
It is also noted that the present invention may be applied to any suitable computing device, such as computers, servers, networks, PCs, laptops, “smartphones”, PDAs and any other processing means where data leakage is a potential issue. The term “computing device” should therefore be understood to encompass all such devices and processing means.
It will be understood that the embodiments described above are given by way of example only and are not intended to limit the invention, the scope of which is defined in the appended claims. It will also be understood that the embodiments described may be used individually or in combination.
Number | Date | Country | Kind |
---|---|---|---|
0815587.1 | Aug 2008 | GB | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/GB2009/051073 | 8/27/2009 | WO | 00 | 5/27/2011 |