Abstract:
Computer-implemented methods, apparati, and computer-readable media for blocking the replication of computer worms in a computer. A method of the present invention comprises the steps of: for an e-mail program installed on the computer, finding the location of a temporary holding area used by the e-mail program for storing and opening e-mail attachments; monitoring the temporary holding area for openings of target programs stored within the temporary holding area; and upon the opening of a target program for execution, implementing a worm mitigation procedure.

Description:
TECHNICAL FIELD 
   This invention pertains to the field of detecting and blocking the replication of computer worms that spread via electronic mail (e-mail). 
   BACKGROUND ART 
   Virus, worms, and Trojan horses are types of malicious computer code. As used herein, “malicious computer code” is any code that enters a computer without an authorized user&#39;s knowledge and/or without an authorized user&#39;s consent. A worm is a type of malicious computer code that is self-replicating. A worm spreads over a network from one computer to another, usually via e-mail attachments. The operating system (OS) on the e-mail recipient&#39;s computer puts the attachment into a temporary holding area such as a temporary folder. In recent Windows operating systems, the temporary folder is a hidden folder. When the recipient clicks on the attachment or the attachment automatically executes via a vulnerability, the executable worm inside the temporary holding area opens and creates another e-mail with an attachment, i.e., the worm. 
   One technique for blocking the replication of worms that spread via e-mail is disclosed in commonly owned U.S. patent application Ser. No. 10/255,658 filed Sept. 25, 2002. 
   DISCLOSURE OF INVENTION 
   Computer-implemented methods, apparati, and computer-readable media for blocking the replication of computer worms in a computer ( 10 ). A method of the present invention comprises the steps of: for an e-mail program ( 1 ) installed on the computer ( 10 ), finding ( 22 ) the location of a temporary holding area ( 2 ) used by the e-mail program ( 1 ) for storing and opening e-mail attachments; monitoring ( 23 ) the temporary holding area ( 2 ) for openings of target programs ( 3 ) stored within the temporary holding area ( 2 ); and upon the opening of a target program ( 3 ) for execution, implementing ( 24 ) a worm mitigation procedure. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These and other more detailed and specific objects and features of the present invention are more fully disclosed in the following specification, reference being had to the accompanying drawings, in which: 
       FIG. 1  is a block diagram showing modules suitable for implementing the present invention. 
       FIG. 2  is a flow diagram illustrating method steps of the present invention. 
       FIG. 3  illustrates additional method steps of the present invention. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   Turning to  FIG. 1 , a human user of computer  10  wishes to block computer worms from spreading from said computer  10 . There can be any integral number N of e-mail programs  1  installed on computer  10 . The way that a typical e-mail program  1  works is that attachments to incoming e-mails are placed by program  1  into a temporary holding area  2  associated with that program  1 . Each program  1  has its own temporary holding area  2  associated therewith. Thus,  FIG. 1  illustrates N temporary holding areas  2 . The present invention pertains to the scenario in which an e-mail attachment residing within a temporary holding area  2  is an executable program  3 . Such a program is referred to in the present patent application as a “target program”  3 . There can be zero or a positive integral number of target programs  3  within a temporary holding area  2 .  FIG. 1  illustrates the case where there is one target program  3  within each temporary holding area  2 . 
   A file system filter driver module  4  is coupled to each temporary holding area  2 , and monitors when a target program  3  is opened. File system filter driver  4  has the capability of determining whether target program  3  is opening as an executable or is opening as data. A worm mitigation module  5  is coupled to file system filter driver  4 , to each e-mail program  1 , and to port  25 , a conventional port found on many computers  10 . A plurality of other programs  7  may reside on computer  10  and may be coupled to target programs  3 , e.g., for purposes of opening target programs  3 . A user interface  6 , such as a video monitor, is coupled to worm mitigation module  5 . 
   File system filter driver  4  and worm mitigation module  5  can be implemented in hardware, firmware, and/or software; and are normally implemented in software. 
     FIG. 2  illustrates method steps of the present invention. At step  21 , worm mitigation module  5  locates all e-mail programs  1  installed on computer  10 . This can be accomplished by any one of a number of conventional techniques, such as obtaining information from the user of the computer  10 , having software search for common e-mail programs  1  by name, or having software search for programs that access port  25 . Port  25  is officially recognized by TCP/IP (Transport Control Protocol/Internet Protocol). The standard protocol for sending e-mail over the Internet, SMTP (Simple Mail Transfer Protocol), specifies that any e-mail to be sent over the Internet must be sent via port  25 . 
   In step  22 , worm mitigation module  5  finds the temporary holding area  2  associated with each e-mail program  1 . This can be done, for example, by sending a test e-mail to computer  10  and seeing where program  1  places the attachment; or by obtaining information from the vendor of the e-mail program  1 . 
   At step  23 , file system filter driver  4  monitors the opening of target programs  3  residing within temporary holding areas  2 . As stated above, driver  4  has the capability to distinguish between openings of programs  3  for execution and openings of programs  3  as data. At step  24 , when driver  4  detects the opening of a target program  3  for execution, worm mitigation module  5  is immediately instructed to implement a worm mitigation procedure. 
   Four embodiments of worm mitigation procedure  24  will be described herein. 
   In a first embodiment of worm mitigation procedure  24 , target program  3  is prevented from opening itself as data. Driver  4  has the ability to detect such an event on a real time basis. When the event begins to occur, module  5  simultaneously aborts the opening. The theory behind this procedure is that an e-mail attachment opening itself as data is a strong indication that the attachment is a worm attempting to replicate itself. 
   With reference to  FIG. 3 , module  5  may optionally alert  31  the user of computer  10 , via user interface  6 , upon the occurrence of the target program  3  attempting to open itself as data. This alerts the user to the possibility of a worm. 
   At step  32 , a false positive mitigation procedure is executed in order to minimize the risk of a false positive declaration of a worm. For example, program  3  could be opening itself as data simply to unpack or unzip a set of files. False positive mitigation procedure  32  can be performed by module  5 . When module  5  finds (deems) that a false positive has occurred, module  5  allows the target program  3  to open itself as data. The finding of a false positive is based upon the occurrence of at least one criterion from a set of preselected false positive criteria. For this first embodiment of worm mitigation procedure  24 , said false positive criteria can include, for example, the following: 
   False positive criterion number  1 . The target program  3  is a self-extractor, such as an unzip program or an unpack program. 
   False positive criterion number  2 . The target program  3  has a valid digital signature affixed thereto. For example, it may be preselected that such a digital signature must be a class  3  digital signature in the Authenticode system promulgated by Microsoft Corporation. In order for this criterion to be satisfied, module  5  must verify the validity of the digital signature, e.g., by checking the authenticity of the public key used by the trusted third party such as VeriSign that has affixed the digital signature. 
   False positive criterion number  3 . The target program  3  must pass at least one additional test that was preselected when the worm mitigation procedure  24  was designed, to confirm the presence of a worm. Such a test may be, for example, subjecting target program  3  to antivirus scanning software, subjecting target program  3  to behavior blocking software, or sending target program  3  in an encrypted form to the headquarters of an antivirus software company such as Symantec Corporation for further analysis. 
   Finally, in step  33 , worm mitigation module  5  processes target program  3  upon the occurrence of target program  3  attempting to open itself as data. As used herein, “processes” can mean: 1) module  5  deletes program  3  from computer  10 ; 2) module  5  aborts or blocks the method being performed by program  3 ; 3) module  5  blocks the method being performed by program  3  and quarantines program  3 ; 4) module  5  attempts a heuristic repair of program  3 , and if successful, allows the method being performed by program  3  to proceed; or 5) module  5 , upon receipt of appropriate instructions from the user of computer  10  via user interface  6 , allows the method being performed by program  3  to proceed. 
   In the second embodiment of worm mitigation procedure  24 , module  5  prevents any program  7  anywhere on computer  10  from opening target program  3  as data. This embodiment is an extension of the first embodiment of worm mitigation procedure  24  described above. The theory behind this embodiment is that a worm  3  may ask another program  7  to open it, in an attempt to disguise its true malicious character. 
   In this second embodiment, optional step  31  entails alerting the user when any program  7  attempts to open the target program  3  as data. 
   In this second embodiment, target program  3  is allowed to be opened as data by said other program  7  when the false positive mitigation procedure  32  deems said opening to be a false positive. Again, such a determination is made by module  5  based upon a preselected set of false positive criteria, such as those described above in conjunction with the first embodiment of worm mitigation procedure  24 . 
   In this second embodiment, the step of processing  33  the target program  3  is done when said other program  7  attempts to open target program  3  as data. “Processing” can entail any one of the five options detailed above. 
   In the third embodiment of worm mitigation procedure  24 , module  5  prevents target program  3  from accessing port  25 . The theory behind this embodiment is that an e-mail being sent to the Internet out of a temporary holding area  2  raises a high degree of suspicion that a worm is present. 
   In one embodiment, nothing is allowed to pass through port  25 . In an alternative embodiment, an e-mail is allowed to pass through port  25  but an e-mail attachment is not allowed to pass through port  25 , because it is more likely that the malicious code will be in the e-mail attachment than in the e-mail body. This alternative embodiment is in essence a false positive mitigation technique, because an e-mail setup program could be sending registration information over the Internet, e.g., via a MAPI (Mail Application Programming Interface). 
   In this third embodiment, step  31  entails alerting the user that a target program  3  is attempting to access port  25 . This warns the user that a worm may be present. 
   In this third embodiment, the execution of the false positive mitigation procedure  32  results in the target program  3  being allowed to access port  25  when said accessing is deemed by module  5  to be a false positive, based upon a set of preselected criteria. In this case, the false positive criteria may consist of false positive criteria  2  and  3  as described above. 
   In this third embodiment, target program  3  is processed at step  33  when target program  3  attempts to access port  25 . Again, step  33  can entail any one of the five options detailed above. 
   In the fourth embodiment of worm mitigation procedure  24 , module  5  blocks all e-mail programs  1  on computer  10  from opening any executable program  7  anywhere on computer  10  as data during the time period that target program  3  is executing out of temporary holding area  2 . The theory behind this fourth embodiment is that one of these other programs  7  could be acting as a proxy for the worm  3 , i.e., the worm has disguised itself by placing itself in some area other than temporary holding area  2 . Out of the four embodiments described herein, this fourth embodiment probably has the highest risk of a false positive. 
   In this fourth embodiment, step  31  entails alerting the user when target program  3  opens for execution out of the temporary holding area  2 . Again, this warns the user of the possibility of a worm being present within computer  10 . 
   In this fourth embodiment, executing false positive mitigation procedure  32  results in module  5  allowing e-mail programs  1  on computer  10  to open other executable programs  7  as data during the time period that target program  3  is executing out of temporary holding area  2 , when module  5  deems that said opening is a false positive, based upon preselected criteria. 
   In this embodiment, said false positive criteria may be criteria  2  and  3  as described above. 
   In this fourth embodiment, optional step  33  entails processing target program  3  when target program  3  opens for execution out of temporary holding area  2 . As before, step  33  can entail any one of the five options detailed above. 
   The above description is included to illustrate the operation of the preferred embodiments and is not meant to limit the scope of the invention. The scope of the invention is to be limited only by the following claims. From the above discussion, many variations will be apparent to one skilled in the art that would yet be encompassed by the spirit and scope of the present invention.