The present application is related to commonly owned and assigned U.S. application Ser. No. 11/145,593, “System and Method for Neutralizing Locked Pestware Files,” filed on Jun. 6, 2005, which is incorporated herein by reference in its entirety.
The present invention relates generally to protecting computers from pestware or malware. More specifically, but without limitation, the invention relates to methods and systems for rendering harmless a pestware or malware executable object that is inaccessible via the operating system of the computer.
Protecting personal computers against a never-ending onslaught of “pestware” such as viruses, Trojan horses, spyware, adware, and downloaders on personal computers has become vitally important to computer users. Some pestware is merely annoying to the user or degrades system performance. Other pestware is highly malicious. Many computer users depend on anti-pestware software that attempts to detect and remove pestware automatically.
Anti-pestware software typically scans running processes in memory and files contained on storage devices such as disk drives, comparing them, at expected locations, against a set of “signatures” that identify specific, known types of pestware.
In some cases, a pestware process, after initially starting up, reopens itself with an exclusive-lock flag that prevents access of any kind, via the computer's operating system, to a disk file (executable object) containing the pestware's program code. Such a pestware executable object may be said to be “locked.” Such pestware can also prevent its executing process in memory from being terminated by anti-pestware software. Furthermore, the pestware may also employ a “rootkit” to conceal itself from the computer's file-system directory, a task manager that displays running processes, or a registry of the operating system. Often, such pestware also obscures its presence by using nondescript file names such as “1.exe”. Current anti-pestware software, even if it succeeds in detecting a locked pestware executable object, is not always able to neutralize or delete it.
It is thus apparent that there is a need in the art for an improved method and system for rendering harmless a locked pestware executable object.
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.
The present invention can provide a method and system for rendering harmless a locked pestware executable object. One illustrative embodiment is a method comprising detecting a locked pestware executable object on a storage device of a computer, the locked pestware executable object being inaccessible via an operating system of the computer; accessing the locked pestware executable object through direct drive access, the direct drive access bypassing standard file Application-Program-Interface (API) function calls of the operating system; and modifying data in the locked pestware executable object in a manner that renders it harmless to the computer.
Another illustrative embodiment is a system comprising a detection module configured to detect a locked pestware executable object on a storage device of a computer, the locked pestware executable object being inaccessible via an operating system of the computer; a direct-access module configured to access the locked pestware executable object through direct drive access, the direct drive access bypassing standard file API function calls of the operating system; and a neutralization module configured to modify data in the locked pestware executable object in a manner that renders the locked pestware executable object harmless to the computer.
Yet another illustrative embodiment is a computer-readable storage medium containing program instructions comprising a first instruction segment configured to detect a locked pestware executable object on a storage medium of a computer, the locked pestware executable object being inaccessible via an operating system of the computer; a second instruction segment configured to access the locked pestware executable object through direct drive access, the direct drive access bypassing standard file API function calls of the operating system; and a third instruction segment configured to modify data in the locked pestware executable object in a manner that renders the locked pestware executable object harmless to the computer. 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:
“Pestware,” as used herein, refers to any program that damages or disrupts a computer system or that collects or reports information about a person or an organization. Examples include, without limitation, viruses, worms, Trojan horses, spyware, adware, and downloaders. A computer file containing pestware executable program code that resides on a storage device of a computer and that is inaccessible via the computer's operating system is herein called a “locked pestware executable object.” In this context, “inaccessible” means the locked pestware executable object cannot be read, modified (written to), or deleted. The inaccessibility of such a computer file can be due, for example, to a mechanism such as an exclusive-lock flag that is invoked by the pestware itself. Inaccessibility can also result if a pestware process associated with the computer file is running in the system's memory. For example, most operating systems will not allow an executable file to be deleted while its associated process is running.
Once detected, a locked pestware executable object can be rendered harmless to the computer by accessing it through direct drive access and modifying data in the locked pestware executable object. “Direct drive access,” a term well known to those skilled in the computer programming art, means a method for accessing a computer storage device (a “drive”) in which the standard file- and directory-level Application-Program-Interface (API) function calls of the operating system are bypassed. In direct drive access, the storage device is accessed at the sector (physical) level instead of at the file (logical) level. Direct drive access is also sometimes called “raw I/O.” For example, operating systems sold by Microsoft Corporation under the trade name “Windows” (e.g., “Windows XP”) provide a “CreateFile( )” direct-drive-access API.
In one illustrative embodiment, modifying data in the locked pestware executable object includes replacing an initial portion of the locked pestware executable object with program code that causes the locked pestware executable object to cease execution upon being launched. In this illustrative embodiment, the modified locked pestware executable object, though it can still be launched, simply exits shortly thereafter.
In another illustrative embodiment, modifying data in the locked pestware executable object includes rendering the locked pestware executable object invalid, to the operating system, as an executable object. In this illustrative embodiment, the operating system does not even attempt to execute the modified locked pestware executable object.
There are a variety of other ways of modifying data in the locked pestware executable object to render it harmless to the computer. The two illustrative embodiments just mentioned are merely examples of how that objective can be accomplished.
Once the locked pestware executable object has been rendered harmless, it can optionally be deleted from the storage device. In some cases, after the locked pestware executable object has been rendered harmless, the computer may need to be rebooted before the locked pestware executable object can be deleted from the storage device.
Referring now to the drawings, where like or similar elements are designated with identical reference numerals throughout the several views,
Input devices 115 may be, for example, a keyboard and a mouse or other pointing device. In an illustrative embodiment, storage device 125 is a magnetic-disk device such as a hard disk drive (HDD). In other embodiments, however, storage device 125 can be any type of rewritable storage device, including, without limitation, a magnetic-disk drive, a rewritable optical disc drive, and a storage device employing flash-memory-based media such as secure digital (SD) cards or multi-media cards (MMCs). In
Anti-pestware system 140 protects computer 100 against pestware by detecting it and, where appropriate, removing it from computer 100. In the illustrative embodiment of
For convenience in this Detailed Description, the functionality of anti-pestware system 140 has been divided into three modules, detection module 145, direct-access module 150, and neutralization module 155. In various embodiments of the invention, the functionality of these three modules may be combined or subdivided in a variety of ways different from that shown in
Despite locked pestware executable object 135 being inaccessible via the operating system of computer 100, detection module 145 can still detect locked pestware executable object 135. For example, in one illustrative embodiment, computer 100 runs an operating system sold by Microsoft under the trade name “Windows” (e.g., “Windows XP”) which, in some versions, employs a New Technology File System (NTFS) for storage devices such as storage device 125.
NTFS treats all file-system components as files, and the Master File Table (MFT) is a special file that is much like a relational database table. The MFT contains a record (typically 1 KB long) for each file on the NTFS volume (folders are also treated as “files”). The MFT itself may be located by reading the first sector of the NTFS volume. This first sector of the volume specifies where the NTFS begins, the number of MFT records, and the size of each MFT record.
In the illustrative embodiment just mentioned in which computer 100 runs a Windows operating system, detection module 145 directly scans the MFT associated with storage device 125 to identify known pestware files. Directly scanning the MFT overcomes attempts by the pestware to hide itself from, e.g., the directory and registry of computer 100. In other embodiments, these same principles may be applied to other operating systems having file systems other than NTFS. In general, detection module 145 does not rely on directory information to detect pestware because pestware, in hiding itself, often tampers with such data. Rather, detection module 145 directly examines fundamental data structures associated with the file system (e.g., the MFT).
Once detection module 145 has detected the presence of locked pestware executable object 135 on storage device 125, neutralization module 155 may first attempt to deal with it in the normal fashion (e.g., by reading the pestware file's program code to confirm the identification, deleting it, etc.). When neutralization module 155 discovers that locked pestware executable object 135 is inaccessible via the operating system (i.e., that it is “locked”), it may invoke the help of direct-access module 150. Direct-access module 150 may use low-level routines such as “sector read” and “sector write” (direct drive access) to access files on storage device 125, bypassing the standard file API function calls of the operating system of computer 100. In particular, direct-access module 150 can, through direct drive access, access locked pestware executable object 135 despite its being locked. Additional details regarding how direct-access module 150 can locate and directly access locked pestware executable object 135 on storage device 125 are found in U.S. application Ser. No. 11/145,593, “System and Method for Neutralizing Locked Pestware Files.”
Even though, after neutralization module 155 has installed exit-program code 210, a process associated with locked pestware executable object 135 might still be launched during a subsequent reboot of computer 100 (e.g., due to a registry entry on a Windows system), the associated process simply terminates shortly after being launched, rendering locked pestware executable object 135 harmless to computer 100. Once exit-program code 210 has been installed and computer 100 has been rebooted, locked pestware executable object 135 is no longer truly “locked,” and neutralization module 155 can optionally be configured to delete locked pestware executable object 135 from computer 100 automatically or upon user confirmation.
In another illustrative embodiment of the invention, neutralization module 155 renders locked pestware executable object 135 harmless to computer 100 by rendering it invalid, to the operating system of computer 100, as an executable object. Computer operating systems typically examine particular characteristics of a file to determine whether it is executable or not. For example, a file's extension may indicate whether it is executable. Headers or other metadata contained in the file itself may also indicate whether it is executable. Neutralization module 155 can be configured to modify data within locked pestware executable object 135 to make locked pestware executable object 135 appear, to the operating system, to be a non-executable file. Once data in locked pestware executable object 135 have been modified in that manner, the operating system will not even attempt to launch locked pestware executable object 135 upon a subsequent reboot of computer 100. After such a reboot, neutralization module 155 can optionally delete locked pestware executable object 135 from computer 100, either automatically or upon user confirmation. The implementation specifics of this embodiment may differ depending on the particular operating system running on computer 100.
In conclusion, the present invention provides, among other things, a method and system for rendering harmless a locked pestware executable object. 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 illustrative forms. Many variations, modifications and alternative constructions fall within the scope and spirit of the disclosed invention as expressed in the claims. For example, though some of the above embodiments are described in the context of a Windows operating system, the principles of the invention can be applied to other operating systems, including open-source operating systems such as Linux.
Number | Name | Date | Kind |
---|---|---|---|
5537540 | Miller | Jul 1996 | A |
5623600 | Ji et al. | Apr 1997 | A |
5684875 | Ellenberger | Nov 1997 | A |
5920696 | Brandt et al. | Jul 1999 | A |
5951698 | Chen et al. | Sep 1999 | 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 |
6347375 | Reinert | Feb 2002 | B1 |
6397264 | Stasnick et al. | May 2002 | B1 |
6405316 | Krishnan et al. | Jun 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 |
6772345 | Shetty | 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 |
6910134 | Maher et al. | Jun 2005 | B1 |
6965968 | Touboul | Nov 2005 | B1 |
7058822 | Edery et al. | Jun 2006 | B2 |
7107617 | Hursey et al. | Sep 2006 | B2 |
7603440 | Grabowski et al. | Oct 2009 | B1 |
20020162015 | Tang | Oct 2002 | A1 |
20020166063 | Lachman et al. | Nov 2002 | A1 |
20030065943 | Geis et al. | Apr 2003 | A1 |
20030074581 | Hursey et al. | Apr 2003 | A1 |
20030101381 | Mateev et al. | May 2003 | A1 |
20030159070 | Mayer et al. | 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 |
20050038697 | Aaron | Feb 2005 | A1 |
20050138433 | Linetsky | Jun 2005 | A1 |
20050154885 | Viscomi et al. | Jul 2005 | A1 |
20060074896 | Thomas | Apr 2006 | A1 |
20060075494 | Bertman et al. | Apr 2006 | A1 |
20060075501 | Thomas et al. | Apr 2006 | A1 |
20060085528 | Thomas | Apr 2006 | A1 |
20060161988 | Costea et al. | Jul 2006 | A1 |
20060272021 | Marinescu et al. | Nov 2006 | A1 |
20060294590 | Enstone et al. | Dec 2006 | A1 |
Number | Date | Country |
---|---|---|
WO 9325024 | Dec 1993 | WO |
WO 02084482 | Oct 2002 | WO |
PCTUS2006041798 | Dec 2007 | WO |
Number | Date | Country | |
---|---|---|---|
20070226704 A1 | Sep 2007 | US |