The present application is related to U.S. application Ser. No. 11/334,306, “Systems and Methods for Neutralizing Unauthorized Attempts to Monitor User Activity,” now abandoned, which is herein incorporated by reference in its entirety.
The present invention relates generally to the detection of pestware or malware on computers. In particular, but without limitation, the present invention relates to methods and systems for detecting keyloggers.
Protecting personal computers from a never-ending onslaught of pestware or malware has become increasingly important and challenging. Some types of pestware or malware can compromise a user's privacy by sending sensitive information about the user or the user's computer to a remote destination without the user's knowledge or permission. Such malware is commonly referred to as “spyware.” One particular type of spyware, a “keylogger,” secretly records a user's keystrokes as the user types on a keyboard and captures the resulting text in a data file, which is often encrypted. The keylogger may also secretly send the captured data file to a remote destination by e-mail or some other communication protocol. Such a keylogger can be used by a remote party to acquire information such as credit card numbers, social security numbers, and other sensitive information.
Clearly, computer users have a strong motivation to detect and remove unwanted keyloggers from their systems. Many computer users rely on anti-spyware programs to detect and remove such threats. Since keyloggers are usually designed to be difficult to detect, however, conventional anti-spyware programs may fail to detect them quickly and effectively. It is thus apparent that there is a need in the art for an improved method and system for detecting a keylogger on a computer.
Illustrative embodiments of the present invention that are shown in the drawings are summarized below. These and other embodiments are more fully described in the Detailed Description section. It is to be understood, however, that there is no intention to limit the invention to the forms described in this Summary of the Invention or in the Detailed Description. One skilled in the art can recognize that there are numerous modifications, equivalents and alternative constructions that fall within the spirit and scope of the invention as expressed in the claims.
Embodiments of the invention include methods and systems for detecting a keylogger on a computer. One illustrative embodiment is a method comprising creating, in a memory of the computer, a hidden window; generating a unique, unpredictable data pattern; inputting, to the hidden window, the unique, unpredictable data pattern in a manner that mimics keyboard input from a user; scanning running processes in the memory other than a keylogger detection process for the unique, unpredictable data pattern; and performing a secondary scan of a suspect process, the suspect process having an associated buffer that contains the unique, unpredictable data pattern. Another illustrative embodiment is a system to detect a keylogger on a computer. A detection module of the system may be configured to create, in a memory of the computer, a hidden window; generate a unique, unpredictable data pattern; input, to the hidden window, the unique, unpredictable data pattern in a manner that mimics keyboard input from a user; scan running processes in the memory other than a keylogger detection process for the unique, unpredictable data pattern; and perform a secondary scan of a suspect process, the suspect process having an associated buffer that contains the unique, unpredictable data pattern. These and other embodiments are described in more detail herein.
Various objects and advantages and a more complete understanding of the present invention are apparent and more readily appreciated by reference to the following Detailed Description and to the appended claims, when taken in conjunction with the accompanying Drawings, wherein:
A keylogger may be detected quickly and effectively by generating a unique, unpredictable data pattern; inputting the unique, unpredictable data pattern to a hidden window in memory in a manner that mimics keyboard input from a user; scanning data buffers associated with running processes to determine whether any running processes (other than a keylogger detection process) have intercepted the unique, unpredictable data pattern; and performing a secondary scan of any such suspect processes. During the secondary scan of a suspect process, heuristic techniques may be employed to confirm that the suspect process is likely to be a keylogger. For example, it may be determined that the suspect process uses particular application program interfaces (APIs) in a manner that is characteristic of a keylogger.
Referring now to the drawings, where like or similar elements are designated with identical reference numerals throughout the several views,
Among the running processes in RAM 125 is keylogger detection process 130. Keylogger detection process 130 comprises a system for detecting a keylogger on computer 100. In some embodiments, keylogger detection process 130 may be part of a more general anti-spyware detection and removal system. Detection module 135 is an aspect of keylogger detection process 130 that focuses on detecting keyloggers on computer 100 and, optionally, notifying a user that a suspected keylogger has been found. Though shown as a process running on computer 100 in RAM 125 in
Detection module 135 may be configured to generate a unique, unpredictable data pattern (“data pattern”) 140 and to input data pattern 140 to hidden window 142. In
In one illustrative embodiment, hidden window 142 may be a single-pixel window on display 120 so as not to be noticeable to a user. In that case, hidden window 142 lies within display buffer (video RAM) 145. Despite its tiny size, those skilled in the art will recognize that data pattern 140 may be input to such a single-pixel window in RAM 125. In a different embodiment, detection module 135 may create hidden window 142 entirely outside of display buffer 145 in RAM 120. Regardless of how hidden window 142 is created, detection module 135 may input data pattern 140 to hidden window 142 in a manner that mimics keyboard input from a user. That is, data pattern 140 is input to hidden window 142 in a manner that appears to keylogger 150 to be keyboard input, thereby inducing keylogger 150 to capture it. Those skilled in the art will recognize that there are a variety of ways in which keyboard input may be mimicked. In one illustrative embodiment, detection module 135 may use built-in keyboard extension libraries (APIs) resident in an operating system of computer 100. In another illustrative embodiment, keylogger detection process 130 may include its own integrated keyboard driver for mimicking keyboard input.
Though not shown in
Keylogger 150 includes program code 155 and buffer 160. As keylogger 150 intercepts user keystrokes, it records them to buffer 160. Keylogger 150 typically writes the contents of buffer 160 to a data file that resides on data storage system 115. This data file is usually encrypted and, thus, difficult to detect with conventional anti-spyware scanning techniques. When detection module 135 scans buffers associated with running processes such as buffer 160, it detects data pattern 140 in buffer 160 and flags keylogger 150 as a “suspect process” (i.e., one that might be a keylogger). Detection module 135 may then perform a secondary scan to confirm that the suspect process is likely to be a keylogger. At that point, the user may be given the option to remove keylogger 150 from computer 100.
In conclusion, the present invention provides, among other things, a method and system for detecting a keylogger on a computer. Those skilled in the art can readily recognize that numerous variations and substitutions may be made in the invention, its use and its configuration to achieve substantially the same results as achieved by the embodiments described herein. Accordingly, there is no intention to limit the invention to the disclosed exemplary forms. Many variations, modifications and alternative constructions fall within the scope and spirit of the disclosed invention as expressed in the claims.
Number | Name | Date | Kind |
---|---|---|---|
5596714 | Connell | Jan 1997 | A |
5623600 | Ji et al. | Apr 1997 | A |
6069628 | Farry et al. | May 2000 | A |
6073241 | Rosenberg et al. | Jun 2000 | A |
6092194 | Touboul | Jul 2000 | A |
6154844 | Touboul | Nov 2000 | A |
6167520 | Touboul | Dec 2000 | A |
6310630 | Kulkarni et al. | Oct 2001 | B1 |
6397264 | Stasnick et al. | May 2002 | B1 |
6460060 | Maddalozzo, Jr. et al. | Oct 2002 | B1 |
6480962 | Touboul | Nov 2002 | B1 |
6535931 | Celi, Jr. | Mar 2003 | B1 |
6611878 | De Armas et al. | Aug 2003 | B2 |
6633835 | Moran et al. | Oct 2003 | B1 |
6667751 | Wynn et al. | Dec 2003 | B1 |
6701441 | Balasubramaniam et al. | Mar 2004 | B1 |
6782527 | Kouznetsov et al. | Aug 2004 | B1 |
6785732 | Bates et al. | Aug 2004 | B1 |
6804780 | Touboul | Oct 2004 | B1 |
6813711 | Dimenstein | Nov 2004 | B1 |
6829654 | Jungek | Dec 2004 | B1 |
6965968 | Touboul | Nov 2005 | B1 |
7058822 | Edery et al. | Jun 2006 | B2 |
7328457 | Mister | Feb 2008 | B1 |
20030115479 | Edwards | Jun 2003 | A1 |
20030159070 | Mayer | Aug 2003 | A1 |
20030217287 | Kruglenko | Nov 2003 | A1 |
20040030914 | Kelley et al. | Feb 2004 | A1 |
20040034794 | Mayer et al. | Feb 2004 | A1 |
20040064736 | Obrecht et al. | Apr 2004 | A1 |
20040080529 | Wojcik | Apr 2004 | A1 |
20040143763 | Radatti | Jul 2004 | A1 |
20040187023 | Alagna et al. | Sep 2004 | A1 |
20040225877 | Huang | Nov 2004 | A1 |
20050138433 | Linetsky | Jun 2005 | A1 |
20050204165 | Nason et al. | Sep 2005 | A1 |
20050273858 | Zadok et al. | Dec 2005 | A1 |
20060282890 | Gruper et al. | Dec 2006 | A1 |
Number | Date | Country |
---|---|---|
PCT2007067082 | Nov 2007 | WO |
PCTUS200760700 | Jul 2008 | WO |
Number | Date | Country | |
---|---|---|---|
20070180520 A1 | Aug 2007 | US |