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:
In one illustrative embodiment, the data associated with a file to be deleted securely from a computer storage device is overwritten with a data pattern at least once using direct drive access, the direct drive access bypassing the standard file Application Program Interface (API) function calls of an operating system of the computer. The directory entry associated with the file may also be overwritten with a data pattern at least once using direct drive access (or, optionally, using standard file API function calls) to remove all evidence that the file ever existed. In some embodiments, a user is given a choice between conventional (non-secure) data overwriting using file API function calls of the operating system and secure data overwriting using direct-drive-access APIs. The principles of the invention may be applied to any file system, including, without limitation, New Technology File System (NTFS) and File Allocation Table (FAT) file systems.
A formatted computer storage medium (e.g., a hard disk) is typically divided into data storage units called “clusters,” each of which is usually a power-of-two multiple of a smaller 512-byte-long unit called a “sector.” The operating system generally operates at the granularity of a cluster, meaning a cluster is the smallest data storage unit the operating system manipulates.
As used herein, “a direct drive access” is an input/output (I/O) operation between a process running on a computer and a connected storage device that is conducted at the sector (physical) level rather than at the file (logical) level. “Direct drive access” is also used herein to refer to direct, sector-level I/O in general, as opposed to file-level I/O. When a process uses direct drive access to read from or write to a storage device, it is responsible for many details that the operating system normally handles when standard file APIs are used. For example, operating systems sold by Microsoft Corporation under the trade name WINDOWS (e.g., WINDOWS XP) require a process employing direct drive access to perform disk I/O in terms of sector-aligned blocks of bytes at the granularity of a cluster.
Using direct drive access to overwrite the data to be obliterated, though more complex, has several advantages over using the standard file APIs of the operating system. Since direct drive access substantially circumvents the operating system of the computer, files can be securely deleted without the operating system being aware of it. This prevents the operating system from logging or caching the data to be removed, which could render it recoverable. It also prevents processes (e.g., malware or pestware) that might interfere with or intercept standard file APIs from thwarting the overwriting of the data. Also, anti-virus programs that monitor suspicious activity on a computer may be falsely triggered by the conventional approach of overwriting the data using standard file APIS. Overwriting the data using direct drive access avoids unnecessarily alerting anti-virus software.
“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. In some situations, a file requiring secure removal is associated with pestware (e.g., a pestware executable object).
Referring now to the drawings, where like or similar elements are designated with identical reference numerals throughout the several views, and referring in particular to
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) that stores directories (or folders) and files. In other embodiments, however, storage device 125 can be any type of computer storage device (“drive”), including, without limitation, a magnetic-disk drive, an optical-disc drive, and a storage device employing flash-memory-based media such as secure digital (SD) cards or multi-media cards (MMCs). Memory 130 may include random-access memory (RAM), read-only memory (ROM), or a combination thereof.
In the illustrative embodiment of
Memory 130 also includes a set of standard file APIs 160 and at least one direct-drive-access API 165. In WINDOWS operating systems, one such direct-drive-access API 165 is “CreateFile( ).”
Data location module 140 is configured to locate, on storage device 125, the data making up a file that is to be removed from storage device 125. Data location module 140 can do so, for example, by locating a file-system data structure such as a Master File Table (MFT) or File Allocation Table (FAT) entry associated with the file. The former applies to NTFS file systems; the latter, to FAT file systems. The invention is not confined, however, to these two file systems. Those skilled in the art will recognized that the principles of the invention can be applied to any file system. By consulting the associated file-system data structure, data location module 140 can locate the set of data storage units (e.g., sectors) the file occupies on storage device 125. Additional information concerning the locating of the file-system data structure associated with a file and the set of data storage units the file occupies can be found in U.S. application Ser. No. 11/145,593, Attorney Docket No. WEBR-009/00US, entitled “System and Method for Neutralizing Locked Pestware Files,” cited above under Related Applications.
Non-secure data overwrite module 145 is configured to overwrite the data located by data location module 140 at least once using standard file APIs 160. In doing so, non-secure data overwrite module 145 may overwrite the data with any of a variety of data patterns (random, alternating ones and zeroes, Department of Defense, or other industry-standard patterns) or with a combination of different data patterns through multiple overwrites.
Non-secure data overwrite module 145 is termed “non-secure” because it uses standard file APIs of the operating system to overwrite the data, an approach that is vulnerable in the ways explained above. More information about the overwriting of data and the various data patterns with which data can be overwritten is found in U.S. application Ser. No. 11/237,575, Attorney Docket No. WEBR-025/00US, entitled “System and Method for Removing Residual Data From Memory,” cited above under Related Applications.
Secure data overwrite module 150 is configured to overwrite the data located by data location module 140 at least once using direct-drive-access APIs 165. In doing so, secure data overwrite module 150 may overwrite the data with any of a variety of data patterns (random, alternating ones and zeroes, Department of Defense, or other industry-standard patterns) or with a combination of different data patterns through multiple overwrites. Secure data overwrite module 150 can also overwrite with a data pattern at least once the directory entry associated with each file that is securely deleted to render the file completely unrecoverable. More information about the overwriting of directory entries is found in U.S. application Ser. No. 11/237,575, Attorney Docket No. WEBR-025/00US, entitled “System and Method for Removing Residual Data From Memory,” cited above under Related Applications.
File deletion queue 155 is a list of one or more files to be deleted from storage device 125, whether immediately or in the future. File deletion queue 155, in the illustrative embodiment of
In the illustrative embodiment shown in
In other embodiments of the invention, file deletion engine 135 is configured somewhat differently. For example, in some embodiments file deletion engine 135 does not include non-secure data overwrite module 145. In such embodiments, all overwriting of file data and directory entries is performed using direct drive access APIs 165.
In conclusion, the present invention provides, among other things, a method and system for securely deleting files from a computer storage device. 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. For example, though the WINDOWS operating system was mentioned above as a possible environment in which the invention can be implemented, the principles of the invention can be applied to LINUX or other operating systems.
The present application is related to the following commonly owned and assigned applications: U.S. application Ser. No. 11/145,593, Attorney Docket No. WEBR-009/00US, entitled “System and Method for Neutralizing Locked Pestware Files”; and U.S. application Ser. No. 11/237,575, Attorney Docket No. WEBR-025/00US, entitled “System and Method for Removing Residual Data From Memory”; both of which are incorporated herein by reference.