WO2002093334A2 - Temporal access control for computer virus outbreaks - Google Patents

Temporal access control for computer virus outbreaks Download PDF

Info

Publication number
WO2002093334A2
WO2002093334A2 PCT/US2002/010867 US0210867W WO02093334A2 WO 2002093334 A2 WO2002093334 A2 WO 2002093334A2 US 0210867 W US0210867 W US 0210867W WO 02093334 A2 WO02093334 A2 WO 02093334A2
Authority
WO
WIPO (PCT)
Prior art keywords
computer
virus
time
access
confrol
Prior art date
Application number
PCT/US2002/010867
Other languages
French (fr)
Other versions
WO2002093334A3 (en
Inventor
Carey Nachenberg
Everett Lai
Original Assignee
Symantec Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corporation filed Critical Symantec Corporation
Publication of WO2002093334A2 publication Critical patent/WO2002093334A2/en
Publication of WO2002093334A3 publication Critical patent/WO2002093334A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Definitions

  • This invention pertains to the field of computer virus prevention and protection, and in particular, to proactive access control of computer networks during computer virus outbreaks.
  • a computer virus in the broad sense that the term is used in the present specification and claims, is any malicious computer program or code that has the potential to infect normal computer files or damage computer systems in any way.
  • Computer viruses typically reside in executable computer code and are activated when the computer code is executed.
  • a computer virus may be buried in an .EXE or .COM file, a Java script file embedded in an email in HTML format, or a WORD macro template, etc.
  • Some computer viruses replicate themselves to use up computer resources in computer hard drives or memories and thus cause the computer system to collapse.
  • Some computer viruses reformat computer hard drives to destroy computer files.
  • Some computer viruses do not copy themselves to other computer code, e.g., Trojan horse type viruses, but they allow a hacker in a remote computer to take control of an infected computer.
  • behavior blocking anti-virus software has the capability to detect new varieties of computer viruses by monitoring if a computer code acts in a virus-like manner, such as changing a file attribute from "read-only” to "write” before infecting the file.
  • the drawback of such behavior blocking anti-virus software is its high rate of false virus alerts, because it has difficulty in distinguishing a computer virus from normal software, which sometimes acts in a virus-like way. For example, standard installation and upgrade routines may patch existing files in a manner similar to a computer virus. To reduce the false alerts, a network administrator may have to lower the sensitivity of the behavior-blocking software, which entails higher risk of virus infection during a computer virus outbreak.
  • a temporal access control method and system to safeguard an enterprise network against potential or imminent computer virus attacks and reduce the damage caused by computer viruses to a minimum degree while allowing an enterprise network to maintain a normal operation to satisfy business needs; in particular, a method and system to dynamically monitor potential computer viruses in response to a new virus outbreak alert and prevent new viruses from causing harm to the computer network.
  • the present invention overcomes deficiencies and limitations of conventional anti-virus software by providing a computer network access control method, system and computer-readable medium to block computer virus invasion and to reduce damages caused to a computer network (1) with minimum intrusive effects on computer network operation.
  • the present invention allows a system administrator orusers to enter into an access control status mode to immediately cope with an imminent computer virus attack.
  • the system administrator or users sends an access control message (202) to computers (2, 3) on the computer network (1) to specify an access control rule.
  • the access control message (202) includes an access control time (211).
  • the access control time (211) is used by the access control module (203) on computers (2, 3) to determine whether each piece of computer code on the computer is allowed to execute.
  • the access control time (211) is a relative time stamp.
  • the relative time stamp overcomes the problems of time disparity between different computers (2, 3) on the computer network (1).
  • computers (2,3) on the same computer network ( 1 ) receive uniform protection.
  • the access control time (211) is converted into an alert time (204) as a threshold time to exercise the access control.
  • a time stamp (when the code was first introduced to the computer) for the computer code is looked up in a memory table (205). The time stamp is compared with the alert time (204) to determine the executability of the computer code. In one embodiment, unless the computer code is time stamped prior to the alert time (204), the computer code is not permitted to execute.
  • the present invention surpasses conventional anti-virus software since it allows execution of most computer programs except new programs that are installed after the computer virus outbreak report is received.
  • the present invention also provides a granularity of access control levels so that the computer network (1) users have more flexibility to use the network (1) during an ongoing computer virus outbreak.
  • the present invention is also capable of preventing harmful data communication by a malicious computer code with external network (4).
  • the present invention enables a firewall module (601) to block such harmful data communication by using access control rules.
  • FIG. 1 is a block diagram of a computer network 1 in accordance with the present invention.
  • FIG. 2A is a diagram of an embodiment of computer access control system 200 of the present invention.
  • FIG. 2B is block diagram of an embodiment of access control message 202 used in computer access control system 200;
  • FIG. 3 is a flow diagram illustrating an embodiment of creating a memory table
  • FIG. 4 is a flow diagram illustrating computer network access control for preventing computer virus infection using access control time 211;
  • FIG. 5 is a flow diagram illustrating computer network access control using multiple control parameters in access control message 202;
  • FIG. 6 is a block diagram illustrating an embodiment of access control system
  • FIG. 7 is a flow diagram illustrating a method of applying access control on data communications with external network 4.
  • the present invention provides an effective access control system for preventing a computer virus from harming computers and computer networks with minimal intrusive effect on the operation of the computer networks.
  • FIG. 1 illustrates a computer network 1 for which the present invention provides an advantageous access control method to prevent computer virus infection.
  • computer network 1 is a local area network
  • Computer network 1 is typically operated in a server-client architecture.
  • a server computer 3 is coupled to a plurality of client computers 2.
  • Server 3 manages the operation of computer network 1, and each client computer 2 performs various functions according to the configuration of computer network 1.
  • the group of client computers 2 may include workstations, file servers, or any other types of computing devices that can be coupled to computer network 1.
  • Computer network 1 is often vulnerable to various computer virus attacks.
  • Computer network 1 is typically connected to an external network 4, which may be a WAN (Wide Area Network) or the WWW (World Wide Web component of the Internet).
  • external network 4 may be a WAN (Wide Area Network) or the WWW (World Wide Web component of the Internet).
  • the constant network connection to external network 4 provides abundant opportunities for computer viruses to enter into computer network 1.
  • server 3 or a client computer 2 receives E-mails, E-mail attachments may be embedded with a malicious worm.
  • a client computer 2 can be infected by downloading a computer file containing a computer virus from an outside FTP server.
  • 2, 3 can also be infected by other ways. For example, a user comes back from a business trip with his mobile computer infected with a new computer virus. Not knowing about the infection, the user connects the mobile computer to computer network 1. As a result, the computer virus enters the network 1 and infects computers 2, 3 through interchanging computer files.
  • access control system 200 provided by the present invention shields computer network 1 from new computer virus attacks and allows computer network 1 to operate as in a normal condition.
  • the present invention provides the following:
  • FIG. 2A is block diagram of an embodiment of access control system 200 in accordance with the present invention.
  • Access control system 200 includes an access control console 201 and an anti-virus module 209.
  • Anti- virus module 209 includes an access control module 203, a memory table 205, and a virus processing module 207.
  • access control console 201 is installed on server 3, and one anti-virus module 209 is installed on each computer 2, 3 coupled to network 1.
  • the above referenced components 201-209 of access control system 200 can be implemented in hardware, software, and/or firmware.
  • access control system 200 is capable of executing access control and anti- virus tasks for computer network 1.
  • access control system 200 may have two status modes, a safe status mode and a virus alert mode. If there is no virus outbreak report received, access control system 200 can be placed in the safe status mode. No access control is imposed upon computer network 1.
  • the system administrator of computer network 1 may immediately place access control system 200 into the alert mode.
  • access control system 200 Upon entering into the alert mode, access control system 200 will perform pre-configured access control measures and anti-virus checking to prevent execution of any susceptible or suspicious computer codes while ensuring normal programs execute as usual.
  • Access control system 200 will also be capable of adapting to different stages of a virus outbreak and provide a granularity of protection levels according to urgencies and possibilities of virus infection.
  • the system administrator of network 1 uses access control console 201 to send access control message 202 to access control module 203 on computers 2, 3.
  • Access control message 202 acts to deliver a specific access control rule to dictate what should be done by computers 2, 3 to prevent them from executing computer codes that may contain a virus.
  • the system administrator can send multiple access control messages 202 to computers 2, 3 to exercise a plurality of protection levels based on actual access control needs.
  • access control console 201 contains a high alert on-off toggle switch.
  • the toggle switch is used to immediately increase the virus security of all managed computers 2, 3, by means of entering access control message 202, including various control parameters as described below and access control rules.
  • Implementation of the on-off switch in a console such as Openview, Unicenter, or Symantec's Management Console) and policy/software distribution are commonly known technologies.
  • FIG. 2B illustrates an embodiment of access control message 202.
  • Access control message 202 includes three control parameters, access control time 211, types of computer codes 213 that should be subject to access control, and access control expiration time 215.
  • access control message 202 may include a unique identification number 217. The identification number 217 can be used by access control module 203 to process multiple control messages 202 during different stages of a virus outbreak.
  • access control time 211 preferably corresponds to a period of time during which an undetected virus attack might occur to network 1.
  • Access control time 211 can be used by access control module 209 to compare with a time stamp of a particular executable computer code in order to determine whether it is allowed to execute.
  • a preferred embodiment of the present invention time-stamps executable computer codes while access control system 200 is running.
  • the time stamp of an executable computer code corresponds to an earliest moment this particular computer code was allowed to execute by computers 2, 3. If such time stamp falls within the period of time as indicated by access control time 211 , the computer code might be infected by an undetected virus.
  • access control message 202 will instruct computers 2, 3 to deny access to the computer code to avoid the virus attack.
  • the use of access control time 211 advantageously enables computers 2, 3 to prohibit execution of computer files having computer viruses without affecting the execution of normal computer programs under most circumstances.
  • access control time 211 also enables a multi-level access control method for network 1.
  • the system administrator can send a new control message 202 having a revised access control time 211 based on the actual situation of the virus outbreak. For example, when the exact time of an early possible virus attack is unknown, the system administrator can apply a very stringent access control time 211, e.g., 7 days, to gain maximum safety.
  • the system administrator can send a new access control message 202, containing a new access control time 211 (2 days) to computers 2, 3, dictating computers 2, 3 to block the execution of all the computer codes that are time stamped within the previous 2 days.
  • the control parameter 213 is provided to dictate what kinds of computer codes should be subject to access control. For example, the system administrator may command that all of the executable computer codes should not be executed at the early stage of a virus outbreak; after knowing that the new breed of virus is not .EXE, nor .COM files, the system administrator can send a new control message 202 to change the parameter 213 to exclude
  • control parameters 211, 233 can be used separately or combined together.
  • the present invention does not require that both control parameters 211, 233 must be present in a control message 202 in order to perform access control for network 1.
  • Different configurations of the two parameters in access control message 202 can correspond to a granularity of access control levels. For example, one message 202 may command that all the .EXE files, WORD macros and Java scripts (parameter 213) that are time stamped within 15 hours (parameter 211) should be blocked; another message 202, intended for adjusting the access control to a less stringent level may dictate to computers 2, 3 that only Java scripts (parameter 213) that are time stamped within the past 8 hours (parameter 211) should be blocked.
  • access control system 200 dynamically copes with anongoing virus outbreak and reduces the intrusiveness to network 1 caused by access control to a minimum degree.
  • a subsequent control message 202 may automatically revoke previous control message 202.
  • the system administrator may define an additional control parameter (access control expiration time 215) in control message 202 to specify when this access control message 202 ceases to operate in case no subsequent access control message 202 is received.
  • An exemplary control message 202 may read as follows: "all the macros and .COM computer codes that are time stamped within 10 hours of entering the alert mode should be blocked from execution; and this access control message ceases to be effective in 2 days.”
  • expiration time 215 (“2 days") is combined together with access control time 211 and/or types of computer codes 213 to constitute control message 202.
  • access confrol module 203 will check the parameter 215 to determine if a particular control message 202 is still valid before it uses the message 202 for imposing access control rules.
  • anti-virus module 209 running on computers 2, 3, receives access control message 202, which may include access control time 211, type of computer codes 213, expiration time 215 and access control message identification number 217, from access control console 201.
  • Anti-virus module 209 performs appropriate actions based on the specified rule and parameters in message 202.
  • access confrol module 203, memory table 205 and virus processing module 207 operate together to determine the executability of computer code during a computer virus outbreak.
  • Access control module 203 is operative to process control message 202 that is received from access control console 201.
  • Access control module 203 is capable of analyzing access control message 202 and processing confrol parameters contained in control message 202.
  • access control module 203 intercepts the launched request and applies access control rules dictated by confrol message 202 to determine whether such code is allowed to execute.
  • access control module 203 converts control time 211 into an alert time 204.
  • alert time 204 can be a specific clock time relative to a local computer time on access control module 203.
  • access control module 203 Upon intercepting a request to execute a computer code, access control module 203 looks up time entries in memory table 205 to find whether such computer code has been previously time stamped. If so, access control module 203 compares alert time 204 with the time stamp of the computer code. If the computer code is time stamped prior to alert time 204, the computer code will be allowed to execute. Otherwise, the request to execute will be denied by access confrol module 203. The detail of the operation will be described below with reference to FIG. 4 and FIG. 5.
  • Access control module 203 is also capable of handling other confrol parameters in control message 202. If control message 202 specifies types of computer codes 213, access confrol module 203 makes a determination of executability of a computer code based on confrol parameter 213. If control message 202 dictates an access control rule based both on access control time 211 and the types of computer codes 213, access confrol module203 combines these two control parameters to determine if a particular computer code is permitted to execute.
  • access confrol module 203 stores expiration time 215. If expiration time 215 is simply a time duration, e.g., "access control message will expire in 5 days," access confrol module 203 converts it into a specific clock time relative to its own clock time. When it reaches such clock time, access control module 203 ceases applying corresponding access control message 202 according to the specified time 215.
  • access control module 203 may also perform other functions to protect computer network 1. For example, if access control module 203 is installed on an E-mail gateway server 3 of computer network 1, it performs E-mail filtering functions for computer network 1. When access control system 200 enters into an alert mode warning of an imminent virus attack, access control module 203 automatically filters all incoming E-mails for executable file attachments, such as .EXE, NBS, S files. The result of the filtering is to allow the E-mail bodies to be forwarded to recipients 2, 3 but to strip all executable attachments from the E-mails.
  • executable file attachments such as .EXE, NBS, S files.
  • Memory table 205 stores data and information related to all executable computer code in computers 2, 3. The stored data and information are used to decide if the executable computer code is allowed to execute at a virus alert mode.
  • memory table 205 stores hash values of computer codes that have been executed and a time entry recording the time of inserting the hash value into memory table 205. As will be described below, the time entry in memory table 205 is used to prevent execution of computer viruses even though conventional techniques are not able to detect them.
  • memory table 205 can reside as a persistent file in RAM or be located in cache at computers 2, 3 so that access confrol module 203 can access memory table 205 at any time. Memory table 205 can also be saved into a computer hard disk or other storage medium for archival purposes. The detail of formation of memory table 205 will be described below with reference to FIG. 3.
  • Virus processing module 207 uses conventional anti-virus techniques to prevent known or unknown viruses from infecting computers 2, 3. In a preferred embodiment, virus processing module 207 uses up-to-date anti-virus technologies to detect, clean up the computer virus, and repair infected computer files on computers 2, 3.
  • virus processing module 207 can be Norton AntiVirus (NAV) software made by Symantec Corporation of Cupertino, California.
  • NAV Norton AntiVirus
  • Virus processing module 207 not only executes anti-virus tasks when no computer virus outbreak occurs, but also cooperates with access control module 203 to build up memory table 205, and to prevent execution of susceptible or suspicious computer code during a computer virus outbreak. The detail of the operation will be described below with reference to FIGS. 4 and 5.
  • virus processing module 207 resides in anti-virus module 209 together with access control module 203 and memory table 205 in FIG. 2A, the present invention does not require so in alternative embodiments.
  • Virus processing module 207 may be a separate module from access control system 200. In other words, access control system
  • Access control unit 290 may be conveniently added to current anti-virus software on the market to provide all access confrol functions described herein for network 1.
  • Access confrol system 200 is equally applicable to other types of networks such as peer-to-peer networks.
  • any networked computer can be configured to operate access control console 201, and anti-virus module 209 is installed on other computers.
  • a user or a system administrator activates access confrol system 200 from access control console
  • access control console 201 is installed on a client computer 2.
  • a system adminisfrator or a user sends the access confrol status mode and access control time 211 through access confrol console 201 to other client computers 2 and to server 3 to activate access control system 200.
  • access confrol system 200 is equally applicable to a single computer environment, although the present invention has distinct advantages to safeguard a computer network 1 from computer virus attacks.
  • the method provided herein enables a home user to use his or her computer to browse the Internet or receive E-mails during a virus outbreak without disconnecting from the Internet.
  • FIG. 3 illustrates a methodology of generating memory table 205 for the purpose of access confrol in accordance with the present invention.
  • Memory table 205 is created either when access control system 200 is in a safe mode, i.e., having not received any report of a computer virus outbreak, or when system 200 is in alert mode.
  • Access control module 203 may be configured to confrol the process of generating memory table 205.
  • memory table 205 contains two fields for each piece of executable computer code: a hash value and a time stamp.
  • the hash value (“hash”) is a contraction of computer file contents created by applying a hash function to a given piece of computer code, e.g., .EXE, .COM, NBS, S, individual macros in WORD documents or spreadsheets, etc.
  • a hash function is a type of on ⁇ way function. The nature of a hash function is such that it is highly unlikely that two different files have the same hash value.
  • hash functions may or may not be specifically tailored to the type of computer files.
  • certain anti-virus software stores the hash value in computer 2 for each program to speed up computer virus scanning process. Once a file is scanned, the hash of the contents of the file is stored in a database. During subsequent scans of the computer file, the hash of the computer file is first computed by the anti-virus software. If the computed hash matches the hash stored in the database, the file is certified clean by the anti- virus software without the necessity for a rescan. Such method is based on an assumption that the match of hash values shows with a high degree of certainty that the file has not been modified by another program, i.e., not infected by a computer virus.
  • memory table 205 has a field for storing a time stamp associated with the hash value.
  • the time stamp indicates the time when the hash value is inserted into memory table 205.
  • the time stamp provides useful information for the future determination of executability of computer code during a computer virus outbreak.
  • access control module 203 intercepts (step 301) such request as a regular anti-virus program does. Access control module 203 then calls for virus scanning or other anti-virus check to determine whether this computer code is a possible virus (step 303), which may be performed by virus-processing module 207. If the computer code passes this test, access control module 203 computes (step 305) a hash value of the computer code. Access control module 203 further compares (step 307) the computed hash value with the stored hash value in memory table 205. If the same hash value is already in memory table 205, anti-virus module 209 will not block the execution of such computer code. [0063] If the computed hash value is not in memory table 205, access control module
  • step 309 inserts (step 309) such hash value into memory table 205 with a time stamp specifying the time of insertion.
  • a time stamp For example, a time stamp "21:20:56, 07/13/2001", stored in binary form, shows that the hash of the computer code was inserted at a clock time of 21 hours 20 minutes 56 seconds on July 13, 2001. By doing so, each computer code whose hash value has been stored in memory table 205 is certified clean.
  • access confrol module 203 is capable of time-stamping a computer code that passes a virus check but does not have its hash value stored in memory table 205. Such time-stamped computer code might not be allowed to execute eventually because of a certain access confrol rule. However, time-stamping the computer codes in alert mode will provide access confrol system 200 the capability to monitor all the status of executable codes throughout the virus break and thus possess a complete picture of all executable computer codes on computers 2, 3. [0065] In addition, the above description of memory table 205 generation is not exhaustive of all the techniques to creating memory table 205.
  • FIG. 4 is a flow chart of a method for exercising access confrol for computer network 1 through the generation and processing of access confrol message 202.
  • access control console 201 sends an access control message 202 to access confrol module 203 determining if computer codes should be executed on computers 2, 3.
  • the present invention may use just access confrol time 211 to perform the access control upon all types of executable computer codes.
  • Access control system 200 is activated upon receiving a computer virus outbreak report (step 401).
  • computer network 1 has received the computer virus outbreak report from external sources.
  • sources may include anti-virus software publishers, news media, Internet bulletin boards, etc.
  • a typical virus outbreak report may include information such as:
  • a system administrator or a user of computer network 1 enters into an alert mode (step 403), which indicates that computer network 1 might be under an imminent computer virus attack or should be placed into a heightened status of alert. If system 200 has been placed in alert mode, the system administrator can just skip this step and proceed to send a new confrol message 202 to computers 2, 3. If the new virus has been identified and cleaned up by an anti-virus software publisher's updates, the system administrator can place system 200 back to a safe mode.
  • access control time 211 is a relative time stamp or a particular period during which network 1 should be scrutinized for new virus attacks.
  • the system administrator may simply enter an access control time 211 as a period of time, e.g., 3 days, and roll it out to all access control modules 203 in a confrol message 202 read as "all computer codes that were time stamped within the past 3 days (time 211) should be blocked from executing."
  • an access confrol module 203 receives this access message and the corresponding control time 211 (3 days) at a local computer clock time (e.g., "19:00:00, June 15, 2001")
  • access control module 203 can convert this control time 211 into an alert time 204, which is a specific point of time relating control time 211 to its 203 local computer clock time.
  • alert time 204 is a specific point of time relating control time 211 to its 203 local computer clock time.
  • confrol module 203 will convert time 211 to alert time 204 "19:00:00, June 12,
  • access control module 203 now will perform access control on every request of executing codes and block execution of any computer codes which are time stamped on or after virus alert time "19:00:00, June 12, 2001.”
  • the method of using a relative time stamp or a specified time duration as access control time 211 and converting time 211 to alert time 204 is particularly advantageous for network 1 where computers 2, 3 might have different computer clock times.
  • access confrol module 203 would fail to take into account the time disparity. Such time disparity may cause asynchronism between and among anti-virus modules 203 in reacting to an access confrol message 202.
  • time disparity may cause asynchronism between and among anti-virus modules 203 in reacting to an access confrol message 202.
  • the local clock time of module 203 is 10 minutes behind the local clock time of access control console 201; and when access confrol module 203 receives an access confrol time 211 "21:00:00, June 14, 2001" from console 201, access confrol module 203 uses the exact access control time 211 as alert time 204.
  • the time "21 :00:00, June 14, 2001” actually means different things to access control console 201 and access control module 203: a time of "21 :00:00, June 14, 2001” under access confrol console 201 's clock time corresponds to "20:50:00, June 14, 2001” under access control module 203 's clock time.
  • alert time 204 the effect of alert time 204 is that access control module 203 will block execution of any computer code which is time stamped on or after alert time 204.
  • access control module 203 would fail to block computer code time stamped between "20:50:00, June 14, 2001” and "21:00:00, June 14, 2001.” Thus, access control module 203 would entail a risk of potential virus infection and fail to provide protection as intended by access confrol console 201. [0072]
  • the above problem is overcome by letting the system administrator enter a relative time stamp or duration of access control as being access control time 211. Once access control module 203 receives such relative time stamp, alert time 204 will becomputed based on the relative time stamp in control message 202 and the respective local clock time.
  • access control console 201 successfully synchronizes each computer 2, 3 to execute a same access confrol rule despite the time disparity among computers 2, 3.
  • the system adminisfrator or a user of the computer 2, 3 can use just a clock time as being access confrol time 211 in message 202, since the concern of time disparity does not exist in both situations.
  • the system adminisfrator or the user of the computer may use the computer's clock time specifying the moment of entering into alert mode as access control time 211.
  • access control module Upon receiving the access control time 211, access control module will use access control time 211 as alert time 204 to determine the executability of a computer code.
  • access confrol module 202 monitors all the requests to execute any computer code on the computer 2, 3.
  • access control module 203 intercepts the request (step 409) and applies anti-virus detection techniques to determine whether the computer code is a virus or not (step 411). If the computer code is determined to be a virus, the computer code is not executed (step 417).
  • Virus-processing module 207 will use its anti-virus tools to remove the computer code or quarantine the virus-infected computer files. [0075] If the computer code is not determined as a virus at step 411, access confrol module 203 applies alert time 204 to determine the executability of the computer code.
  • access confrol module 203 computes or instructs virus processing module 207 to compute a hash value of the computer code.
  • the hash function used to compute the hash value is preferably the same as what has been used for generating hash values in memory table 205. In this way, a same and unchanged computer code will correspond to a same unique hash value.
  • access control module 203 checks (step 415) to see if there is a same hash value entry in memory table 205 as the newly computed hash value. If the computed hash value does not appear in memory table 205, access control module 203 assumes the computer code requesting execution has never been allowed to execute.
  • Access control module 203 thus refuses (step 419) execution of the computer code since such computer code is "an unknown program" that possibly contains a computer virus or has been infected with a computer virus.
  • comparing the hash value of the computer code with stored entries inmemory table 205 becomes another virus detection measure in addition to anti-virus procedure at step 411. It further reduces the opportunities of virus infecting with computers 2, 3 of network 1.
  • the system adminisfrator may be able to receive virus definition or new updates from anti-virus software publishers to clean up all the files on network 1.
  • an alternative embodiment of the present invention configures virus-processing module 207 to place a flag to certify a program as clean if the program has been repaired by the most current anti-virus update.
  • virus-processing module 207 configures virus-processing module 207 to place a flag to certify a program as clean if the program has been repaired by the most current anti-virus update.
  • access control module 203 further compares (step 421) the time stamp entry associated with this hash value with alert time 204. As described above, access confrol module 203 time-stamps computer codes whose hash values have been inserted in memory table 205. The time entry in memory table 205 corresponds to a most recent moment of inserting the hash value of the computer code into memory table 205.
  • access confrol system 200 assumes that the computer code represented by the hash value is an unknown program (and possibly containing a virus) and thus denies execution of the computer code (step 423). If the computer code is time stamped prior to alert time 204, access confrol system 200 regards the code as safe and allows (step 425) the code to be executed.
  • memory table 205 is capable of time stamping computer codes during alert mode. Such time stamp can be used to determine execution of the same computer code in subsequent stages of the virus outbreak. For example, as more information is received from anti-virus software publishers regarding the new virus, a system administrator might send another confrol message 202 to downgrade the access confrol to a less s ingent level by using a new access control time 211, e.g., from "all computer codes that were time-stamped during past 5 days should be blocked" to "all computer codes that were time-stamped during past 2 days should be blocked”.
  • the computer code that was previously denied permission to execute may be allowed to execute if it is now determined to be time-stamped prior to new access confrol time 211 (2 days). As a result, this allows more "innocent" computer programs and applications to be available for users even at a heightened status of alert.
  • FIG. 5 is a flow chart illustrating a method using access confrol time 211 and other control parameters in confrol message 202 to exercise the access control. Similar to steps 401-409 in FIG. 4, the system adminisfrator receives a virus outbreak report (step 401a), enters into alert mode (step 403a) and then generates access control message 202 and sends it to computers 2, 3 (step 405a).
  • access control message 202 includes confrol parameters such as confrol time 211, types of computer codes 213, and expiration time 215.
  • Access confrol module 203 receives access confrol message 202, computes alert time 204 based on confrol time 211 (step 407a), and intercepts a request to execute a computer code (step 409a). Access confrol module 203 directs virus-processing module 207 to determine if such computer code contains a virus (step 411a). If such computer code is or contains a virus, it will not be executed (step 417a). For those computer codes that pass the anti-virus test, access confrol module 203 will proceed to determine if the current access confrol message 202 has expired (step 430). As described above, access control expiration time 215 specifies when a particular access confrol message 202 stops being effective.
  • access control expiration time 215 may also be a relative time stamp or duration of time entered by the system administrator.
  • expiration time215 is "10 days" and the local clock time of access confrol module 203 is "19:00:00, June 15, 2001" when receiving message 202, access confrol module 203 will thus decide that this confrol message 202 should no longer be controlling at "19:00:00, June 25,2001".
  • access control module 203 uses the types of computer codes 213 to determine if the requesting computer code should be subject to access confrol (step 432). If the computer code does not belong to the specified types or categories of computer codes 213, access confrol module 203 will not block the execution of such computer code.
  • access confrol module 203 proceeds to find out whether the computer code is time stamped before alert time 204 or not.
  • the remaining steps 413a-425a are identical or substantially similar to what has been described in FIG. 4.
  • the method illustrated in FIG. 5 provides access confrol system 200 more flexibility and new granularity of access control levels.
  • the system administrator may flexibly combine different configurations of control parameters to adapt to different stages during an ongoing virus break. For example, at an early stage, the system adminisfrator might have to command all computer codes that were time-stamped after a certain point of time to be blocked.
  • the system administrator can roll out a new message 202 with a changed parameter 213 to allow execution of all computer files except macros.
  • access confrol module 203 After access confrol module 203 receives this new message 202, it will no longer block the execution of programs like .EXE or .COM even if they are time-stamped after alert time 204. Therefore, such access confrol method substantially benefits network 1 by letting users have access to computer programs and applications at a maximum extent while ensuring the safety of network 1 during a heightened status of alert.
  • FIG. 6 is a block diagram illustrating another embodiment of access control system 200a of the present invention.
  • components 201a-209a correspond to components 201-209 in system 200, respectively, and each of the components is capable of performing the same functions as described above.
  • access confrol system 200a may include a firewall module 601.
  • Firewall module 601 may reside in one of computers 2, 3 of network 1.
  • firewall module 601 may be a separate entity coupled to computers 2, 3.
  • Access confrol module 203a is coupled to firewall module 601 via connection 603.
  • This alternative embodiment of system 200a may also be installed on just one single computer 2, 3, which connects to outside network 4 through firewall module 601.
  • firewall module 601 is a component of the gateway of network 1 that connects to external network 4.
  • Firewall module 601 is designed to confrol of what kind of data can be received by and sent from network 1.
  • firewall module 601 can refuse the entry of any inflow data that is not initiated by any applications or programs running on computers 2, 3. In this way, firewall module 601 prevents any malicious codes from entering network 1.
  • Firewall module 601 can be implemented as software, hardware and/or firmware in a variety of means.
  • a typical firewall software product is Norton Personal Firewall by Symantec Corporation.
  • Access confrol system 200a as illustrated herein is not only capable of blocking the execution of susceptible or suspicious computer codes, but is also capable of blocking any susceptible or suspicious data communications between network 1 and external network 4 during the alert mode.
  • computers 2, 3 have been infected with a virus before system 200a is placed into alert mode. The undetected virus might have been activated and is causing harm to network 1. It is therefore important to react promptly to limit such damage to a minimum.
  • a new Trojan horse virus may have already been running on a computer 2 and is exporting confidential information on computer 2 to an unauthorized computer user on external network 4 without any knowledge of current anti-virus software 207 on network 1.
  • firewall module 601 To effectively cut off such unauthorized and harmful data communications, access confrol system 200a applies access control rules to firewall module 601. As will be described in detail below, firewall module 601 will deliver a request to access control module 203a to determine whether a particular data communication now passing the network gateway should be blocked. Access confrol module 203a will make the determination based on access confrol time 211a received from access control console 201a.
  • FIG. 7 is a flow chart illustrating a method of exercising access control on data communication passing through firewall module 601.
  • the system adminisfrator of network 1 receives (step 701) a virus outbreak report, and then activates (step 703) virus outbreak alert mode. Similar to what has been described above, at the time of entering the alert mode, the system administrator composes (step 705) access control message 202 through console 201a, including access confrol time 211, to dictate a specific access confrol rule.
  • one exemplary confrol message 202 may be read as "all data communications that are occurring between external network 4 and a program on network 1 should be blocked if the program is time stamped on or after a time as determined by access confrol module 203a on account of access confrol time 211."
  • confrol message 202 for firewall module 601 is not necessarily identical to that used for access confrol described with reference to FIGS. 2, 4 and 5.
  • the system adminisfrator or the users of computers 2, 3 may configure separate control messages 202 for blocking execution of computer codes and blocking data communications passing through firewall module 601.
  • Access confrol module 203a receives (step 707) access confrol message 202 from console 201a and notifies firewall module 601 that network 1 is now under the alert mode.
  • firewall module 601 may suspend any current data communications between programs or applications running on computers 2, 3 and external network 4. Simultaneously, for each program and application that is communicating or attempting to do so, firewall module 601 will send a request back to access confrol module 203a of each computer 2, 3 that hosts such programs and applications. In particular, firewall module 601 will ask access control module 203a whether such data communication should be permitted.
  • Such request may include information such as the identification information of the programs or applications.
  • access confrol module 203a In response to receiving 709 the request from firewall module 601 , access confrol module 203a will apply access confrol rules in access confrol message 202 to determine whether the data communication that is occurring to the particular program or application is suspicious. As shown in FIG. 7, the remaining steps are similar to what has been described in FIGS. 4 and 5. Access control module 203a computes (step 711) the hash value of the program and then looks up (step 713) the hash value in memory table 205a. If the hash value is not located at memory table 205a, access confrol module 203a will generate a message and send it back to firewall module 601 dictating that the program is "unknown" and thus its data communication might be harmful.
  • Firewall module 601 can therefore 715 block such data communication.
  • access control module 203 a retrieves the time stamp associated with the program, which is now represented by the hash value. Access confrol module 203a then compares 719 the time stamp with alert time 204. As understood above, if such program is time stamped before the moment as indicated by alert time 204a, access control module 203a deems such program as being safe and then returns a permission message to firewall module 601. Firewall module 601 therefore will not block 721 the data communication, or will resume the data communication that has been suspended.
  • confrol module 203a will return 723 a message to firewall module 601 to discontinue the data communication or refuse the attempt to transfer data into or out of network 1. By doing so, access confrol module 203 a successfully works together with firewall module 601 to monitor cross-network data communications in the alert mode.
  • access confrol system 200a expands access confrol capability to firewall components such that the firewall module 601 can be used effectively to block or to interfere with any harmful data fransfers during a virus outbreak. This can substantially limit any potential damage caused by viruses. Also the access confrol greatly reduces intrusiveness to normal program operation in the alert mode. For example, an uninfected video conferencing program may still be allowed to operate during high alert mode. [0095] In view of the foregoing discussion, the present invention provides a high level of protection with a low level of intrusiveness.

Abstract

An access control system (200) enables a computer network (1) to prevent execution of computer code that may contain computer viruses. An access control console (201) generates an access control message (202) including control parameters such as an access control time (211). Said access control time (211) is disseminates to computers (2, 3) on the network (1). Said computers (2, 3) use the access control time (211) to determine the executability of computer code. Access control system (200) also enables blocking data communications with suspicious or susceptible programs in network (1) during virus outbreaks. Access control time (211) is used to decide whether a program currently operating in the network (1) should be allowed to continue its communication with computers outside the network (1).

Description

TEMPORAL ACCESS CONTROL FOR COMPUTER VIRUS OUTBREAKS
Inventors:
Carey Nachenberg Everett Lai Related Application [0001] The present application claims priority under 35 U.S.C. § 119 (e) from commonly-assigned provisional U.S. Patent Application Serial No. 60/282,203, entitled "Temporal Access Control System for Virus Outbreaks", filed on April 06, 2001, the disclosure of which is incorporated herein by reference in its entirety.
Technical Field [0002] This invention pertains to the field of computer virus prevention and protection, and in particular, to proactive access control of computer networks during computer virus outbreaks.
Background Art [0003] A computer virus, in the broad sense that the term is used in the present specification and claims, is any malicious computer program or code that has the potential to infect normal computer files or damage computer systems in any way. Computer viruses typically reside in executable computer code and are activated when the computer code is executed. For example, a computer virus may be buried in an .EXE or .COM file, a Java script file embedded in an email in HTML format, or a WORD macro template, etc. Some computer viruses replicate themselves to use up computer resources in computer hard drives or memories and thus cause the computer system to collapse. Some computer viruses reformat computer hard drives to destroy computer files. Some computer viruses do not copy themselves to other computer code, e.g., Trojan horse type viruses, but they allow a hacker in a remote computer to take control of an infected computer.
[0004] Nowadays computer viruses spread rapidly throughout computer networks. New viruses can contaminate hundreds of thousands of computers worldwide in a few hours or days and cause enormous damage. During the virus outbreak, enterprise computer networks are especially vulnerable to computer virus attack because most of them are constantly connected to a wide area network (WAN) to communicate with outside computers or networks. This provides computer viruses a fertile soil to invade the enterprise computer networks from any location within the WAN. [0005] Current anti-virus technologies fall short of providing optimal protection for enterprise computer networks against computer virus attacks. Many individuals and organizations use reactive technologies, e.g., anti- virus scanning software, to scan computer files in their servers and/or client computers to detect computer viruses that are known and have been analyzed. The reactive anti-virus software often fails to catch or prevent new and unknown infections. Another anti-virus technology, behavior blocking anti-virus software, has the capability to detect new varieties of computer viruses by monitoring if a computer code acts in a virus-like manner, such as changing a file attribute from "read-only" to "write" before infecting the file. The drawback of such behavior blocking anti-virus software is its high rate of false virus alerts, because it has difficulty in distinguishing a computer virus from normal software, which sometimes acts in a virus-like way. For example, standard installation and upgrade routines may patch existing files in a manner similar to a computer virus. To reduce the false alerts, a network administrator may have to lower the sensitivity of the behavior-blocking software, which entails higher risk of virus infection during a computer virus outbreak.
[0006] The problems of anti-virus software compel an enterprise network system administrator to adopt more drastic methods to protect the computer network, such as imposing a blanket-restriction access control rule to cease users receiving any E-mails with executable computer code. Such access control rule often calls for shutting down all Internet access when a potential computer virus attack is imminent. However, even such methods cannot guarantee immunity from computer virus attacks. For example, virus infection may have already occurred prior to shutting down Internet access. More seriously, these methods can lead to devastating side effects on normal business operation and corporate productivity. With Internet access disabled, all Internet-related business activities, including e-mails and outside file access, may have to be suspended until a new anti-virus software update is provided to remove the viruses. This update may take several days or weeks to become available.
[0007] Thus, what is needed is a temporal access control method and system to safeguard an enterprise network against potential or imminent computer virus attacks and reduce the damage caused by computer viruses to a minimum degree while allowing an enterprise network to maintain a normal operation to satisfy business needs; in particular, a method and system to dynamically monitor potential computer viruses in response to a new virus outbreak alert and prevent new viruses from causing harm to the computer network.
Disclosure of Invention [0008] The present invention overcomes deficiencies and limitations of conventional anti-virus software by providing a computer network access control method, system and computer-readable medium to block computer virus invasion and to reduce damages caused to a computer network (1) with minimum intrusive effects on computer network operation. [0009] In one embodiment, the present invention allows a system administrator orusers to enter into an access control status mode to immediately cope with an imminent computer virus attack. The system administrator or users sends an access control message (202) to computers (2, 3) on the computer network (1) to specify an access control rule. In particular, the access control message (202) includes an access control time (211). The access control time (211) is used by the access control module (203) on computers (2, 3) to determine whether each piece of computer code on the computer is allowed to execute. [0010] In one approach, the access control time (211) is a relative time stamp. The relative time stamp overcomes the problems of time disparity between different computers (2, 3) on the computer network (1). As a result, computers (2,3) on the same computer network ( 1 ) receive uniform protection.
[0011] At each computer (2, 3), the access control time (211) is converted into an alert time (204) as a threshold time to exercise the access control. When a computer code is to be executed, a time stamp (when the code was first introduced to the computer) for the computer code is looked up in a memory table (205). The time stamp is compared with the alert time (204) to determine the executability of the computer code. In one embodiment, unlessthe computer code is time stamped prior to the alert time (204), the computer code is not permitted to execute.
[0012] The present invention surpasses conventional anti-virus software since it allows execution of most computer programs except new programs that are installed after the computer virus outbreak report is received. The present invention also provides a granularity of access control levels so that the computer network (1) users have more flexibility to use the network (1) during an ongoing computer virus outbreak.
[0013] The present invention is also capable of preventing harmful data communication by a malicious computer code with external network (4). In one embodiment, the present invention enables a firewall module (601) to block such harmful data communication by using access control rules.
Brief Description of the Drawings [0014] 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:
[0015] FIG. 1 is a block diagram of a computer network 1 in accordance with the present invention;
[0016] FIG. 2A is a diagram of an embodiment of computer access control system 200 of the present invention;
[0017] FIG. 2B is block diagram of an embodiment of access control message 202 used in computer access control system 200; [0018] FIG. 3 is a flow diagram illustrating an embodiment of creating a memory table
205 for computer network virus access control;
[0019] FIG. 4 is a flow diagram illustrating computer network access control for preventing computer virus infection using access control time 211;
[0020] FIG. 5 is a flow diagram illustrating computer network access control using multiple control parameters in access control message 202;
[0021] FIG. 6 is a block diagram illustrating an embodiment of access control system
200a to apply access control on data communications with external network 4; and
[0022] FIG. 7 is a flow diagram illustrating a method of applying access control on data communications with external network 4. Detailed Description of the Preferred Embodiments
[0023] The present invention provides an effective access control system for preventing a computer virus from harming computers and computer networks with minimal intrusive effect on the operation of the computer networks.
[0024] FIG. 1 illustrates a computer network 1 for which the present invention provides an advantageous access control method to prevent computer virus infection.
[0025] For purposes of illustration only, computer network 1 is a local area network
(LAN) of the type that is widely used in an organization or an enterprise. Computer network 1 is typically operated in a server-client architecture. A server computer 3 is coupled to a plurality of client computers 2. Server 3 manages the operation of computer network 1, and each client computer 2 performs various functions according to the configuration of computer network 1. The group of client computers 2 may include workstations, file servers, or any other types of computing devices that can be coupled to computer network 1.
[0026] Computer network 1 is often vulnerable to various computer virus attacks.
Computer network 1 is typically connected to an external network 4, which may be a WAN (Wide Area Network) or the WWW (World Wide Web component of the Internet). The constant network connection to external network 4 provides abundant opportunities for computer viruses to enter into computer network 1. For example, when server 3 or a client computer 2 receives E-mails, E-mail attachments may be embedded with a malicious worm. Another example is that a client computer 2 can be infected by downloading a computer file containing a computer virus from an outside FTP server.
[0027] Besides being infected by viruses spread from a network 4 connection, computers
2, 3 can also be infected by other ways. For example, a user comes back from a business trip with his mobile computer infected with a new computer virus. Not knowing about the infection, the user connects the mobile computer to computer network 1. As a result, the computer virus enters the network 1 and infects computers 2, 3 through interchanging computer files.
[0028] As mentioned above, conventional anti-virus software has certain limitations in detecting new varieties of computer viruses. When a new computer virus outbreak starts, computer network 1 is at high risk to be damaged even though anti-virus software is running on each computer 2, 3.
[0029] As a remedy, computer network 1 often imposes a strict network access control in order to filter out those incoming computer files that may contain potential malicious computer code. If computer network 1 is under imminent virus attack and the identities of the viruses are unknown, access for external network 4 may have to be completely shut down to suspend the inflow of data to enter into network 1.
[0030] Such access control measures often result in significant side effects while providing only very limited benefits without guaranteeing immunity from computer virus infection. As described above, even a temporary loss of computer network access impedes the normal use of the network 1.
[0031] To overcome the enormous intrusiveness caused by conventional access control, access control system 200 provided by the present invention shields computer network 1 from new computer virus attacks and allows computer network 1 to operate as in a normal condition. [0032] Among other benefits, the present invention provides the following:
• It prevents new viruses, worms and Trojan horses from entering computer network 1 during the computer virus outbreak;
• Users on computer network 1 can still run virtually any program. Only new computer applications, including programs, scripts and macros, are blocked. • Even if computer 2, 3 has already been infected with a new virus, e.g., a worm, the present invention can preclude further infection of other computers 2, 3. [0033] FIG. 2A is block diagram of an embodiment of access control system 200 in accordance with the present invention. Access control system 200 includes an access control console 201 and an anti-virus module 209. Anti- virus module 209 includes an access control module 203, a memory table 205, and a virus processing module 207. In a preferred embodiment, access control console 201 is installed on server 3, and one anti-virus module 209 is installed on each computer 2, 3 coupled to network 1. The above referenced components 201-209 of access control system 200 can be implemented in hardware, software, and/or firmware.
[0034] In general, access control system 200 is capable of executing access control and anti- virus tasks for computer network 1. During the operation, access control system 200 may have two status modes, a safe status mode and a virus alert mode. If there is no virus outbreak report received, access control system 200 can be placed in the safe status mode. No access control is imposed upon computer network 1. When a new virus outbreak starts, the system administrator of computer network 1 may immediately place access control system 200 into the alert mode. Upon entering into the alert mode, access control system 200 will perform pre-configured access control measures and anti-virus checking to prevent execution of any susceptible or suspicious computer codes while ensuring normal programs execute as usual. Access control system 200 will also be capable of adapting to different stages of a virus outbreak and provide a granularity of protection levels according to urgencies and possibilities of virus infection. [0035] In one embodiment, when entering an alert mode, the system administrator of network 1 uses access control console 201 to send access control message 202 to access control module 203 on computers 2, 3. Access control message 202 acts to deliver a specific access control rule to dictate what should be done by computers 2, 3 to prevent them from executing computer codes that may contain a virus. The system administrator can send multiple access control messages 202 to computers 2, 3 to exercise a plurality of protection levels based on actual access control needs.
[0036] In one embodiment, access control console 201 contains a high alert on-off toggle switch. The toggle switch is used to immediately increase the virus security of all managed computers 2, 3, by means of entering access control message 202, including various control parameters as described below and access control rules. Implementation of the on-off switch (in a console such as Openview, Unicenter, or Symantec's Management Console) and policy/software distribution are commonly known technologies.
[0037] Figure 2B illustrates an embodiment of access control message 202. Access control message 202 includes three control parameters, access control time 211, types of computer codes 213 that should be subject to access control, and access control expiration time 215. In addition, access control message 202 may include a unique identification number 217. The identification number 217 can be used by access control module 203 to process multiple control messages 202 during different stages of a virus outbreak. [0038] In one embodiment, access control time 211 preferably corresponds to a period of time during which an undetected virus attack might occur to network 1. Access control time 211 can be used by access control module 209 to compare with a time stamp of a particular executable computer code in order to determine whether it is allowed to execute. As will be described in detail below, a preferred embodiment of the present invention time-stamps executable computer codes while access control system 200 is running. The time stamp of an executable computer code corresponds to an earliest moment this particular computer code was allowed to execute by computers 2, 3. If such time stamp falls within the period of time as indicated by access control time 211 , the computer code might be infected by an undetected virus. Thus, according to the present invention, access control message 202 will instruct computers 2, 3 to deny access to the computer code to avoid the virus attack. The use of access control time 211 advantageously enables computers 2, 3 to prohibit execution of computer files having computer viruses without affecting the execution of normal computer programs under most circumstances.
[0039] The use of access control time 211 also enables a multi-level access control method for network 1. The system administrator can send a new control message 202 having a revised access control time 211 based on the actual situation of the virus outbreak. For example, when the exact time of an early possible virus attack is unknown, the system administrator can apply a very stringent access control time 211, e.g., 7 days, to gain maximum safety. As more information about the virus outbreak is received, e.g., it is determined that a possible virus attack occurred 2 days ago at the earliest, the system administrator can send a new access control message 202, containing a new access control time 211 (2 days) to computers 2, 3, dictating computers 2, 3 to block the execution of all the computer codes that are time stamped within the previous 2 days.
[0040] The control parameter 213 is provided to dictate what kinds of computer codes should be subject to access control. For example, the system administrator may command that all of the executable computer codes should not be executed at the early stage of a virus outbreak; after knowing that the new breed of virus is not .EXE, nor .COM files, the system administrator can send a new control message 202 to change the parameter 213 to exclude
.EXE and .COM computer codes from access control. As a result, any .EXE and .COM files will become accessible by users on network 1 in an alert mode.
[0041] Control parameters in access control message 213, such as access control time
211 and types of computer codes 213, can be used separately or combined together. The present invention does not require that both control parameters 211, 233 must be present in a control message 202 in order to perform access control for network 1. Different configurations of the two parameters in access control message 202 can correspond to a granularity of access control levels. For example, one message 202 may command that all the .EXE files, WORD macros and Java scripts (parameter 213) that are time stamped within 15 hours (parameter 211) should be blocked; another message 202, intended for adjusting the access control to a less stringent level may dictate to computers 2, 3 that only Java scripts (parameter 213) that are time stamped within the past 8 hours (parameter 211) should be blocked. By doing so, access control system 200 dynamically copes with anongoing virus outbreak and reduces the intrusiveness to network 1 caused by access control to a minimum degree. [0042] Note that while the system administrator sends multiple access control messages 202 to access control module 203, a subsequent control message 202 may automatically revoke previous control message 202. In an alternative embodiment, the system administrator may define an additional control parameter (access control expiration time 215) in control message 202 to specify when this access control message 202 ceases to operate in case no subsequent access control message 202 is received. An exemplary control message 202 may read as follows: "all the macros and .COM computer codes that are time stamped within 10 hours of entering the alert mode should be blocked from execution; and this access control message ceases to be effective in 2 days." In this example, expiration time 215 ("2 days") is combined together with access control time 211 and/or types of computer codes 213 to constitute control message 202. As will be further described below, access confrol module 203 will check the parameter 215 to determine if a particular control message 202 is still valid before it uses the message 202 for imposing access control rules.
[0043] Now returning to FIG. 2 A, anti-virus module 209, running on computers 2, 3, receives access control message 202, which may include access control time 211, type of computer codes 213, expiration time 215 and access control message identification number 217, from access control console 201. Anti-virus module 209 performs appropriate actions based on the specified rule and parameters in message 202. In particular, access confrol module 203, memory table 205 and virus processing module 207 operate together to determine the executability of computer code during a computer virus outbreak. [0044] Access control module 203 is operative to process control message 202 that is received from access control console 201. Access control module 203 is capable of analyzing access control message 202 and processing confrol parameters contained in control message 202. When an executable computer code on computers 2, 3 is to be executed, access control module 203 intercepts the launched request and applies access control rules dictated by confrol message 202 to determine whether such code is allowed to execute.
[0045] In one embodiment, access control module 203 converts control time 211 into an alert time 204. Such alert time 204 can be a specific clock time relative to a local computer time on access control module 203. Upon intercepting a request to execute a computer code, access control module 203 looks up time entries in memory table 205 to find whether such computer code has been previously time stamped. If so, access control module 203 compares alert time 204 with the time stamp of the computer code. If the computer code is time stamped prior to alert time 204, the computer code will be allowed to execute. Otherwise, the request to execute will be denied by access confrol module 203. The detail of the operation will be described below with reference to FIG. 4 and FIG. 5. [0046] Access control module 203 is also capable of handling other confrol parameters in control message 202. If control message 202 specifies types of computer codes 213, access confrol module 203 makes a determination of executability of a computer code based on confrol parameter 213. If control message 202 dictates an access control rule based both on access control time 211 and the types of computer codes 213, access confrol module203 combines these two control parameters to determine if a particular computer code is permitted to execute.
[0047] When access control message 202 contains expiration time 215, access confrol module 203 stores expiration time 215. If expiration time 215 is simply a time duration, e.g., "access control message will expire in 5 days," access confrol module 203 converts it into a specific clock time relative to its own clock time. When it reaches such clock time, access control module 203 ceases applying corresponding access control message 202 according to the specified time 215.
[0048] In alternative embodiments, besides performing access confrol functions as commanded by access control message 202, access control module 203 may also perform other functions to protect computer network 1. For example, if access control module 203 is installed on an E-mail gateway server 3 of computer network 1, it performs E-mail filtering functions for computer network 1. When access control system 200 enters into an alert mode warning of an imminent virus attack, access control module 203 automatically filters all incoming E-mails for executable file attachments, such as .EXE, NBS, S files. The result of the filtering is to allow the E-mail bodies to be forwarded to recipients 2, 3 but to strip all executable attachments from the E-mails. For example, all the embedded Java script or NBS script code encoded in HTML mail bodies are automatically removed; and all the macros from incoming documents, spreadsheets, and PowerPoint presentation files are also removed. [0049] One of the benefits of filtering the executable attachments of E-mails is to lessen the burden of virus detection tasks that are subsequently performed by each computer 2, 3. The initial filtering by such access confrol module 203 on a network E-mail server 3 substantially reduces the opportunities of computer viruses entering the network 1 after access control system 200 is activated. [0050] Memory table 205 stores data and information related to all executable computer code in computers 2, 3. The stored data and information are used to decide if the executable computer code is allowed to execute at a virus alert mode. In one embodiment, memory table 205 stores hash values of computer codes that have been executed and a time entry recording the time of inserting the hash value into memory table 205. As will be described below, the time entry in memory table 205 is used to prevent execution of computer viruses even though conventional techniques are not able to detect them.
[0051] During the operation of access control system 200, memory table 205 can reside as a persistent file in RAM or be located in cache at computers 2, 3 so that access confrol module 203 can access memory table 205 at any time. Memory table 205 can also be saved into a computer hard disk or other storage medium for archival purposes. The detail of formation of memory table 205 will be described below with reference to FIG. 3. [0052] Virus processing module 207 uses conventional anti-virus techniques to prevent known or unknown viruses from infecting computers 2, 3. In a preferred embodiment, virus processing module 207 uses up-to-date anti-virus technologies to detect, clean up the computer virus, and repair infected computer files on computers 2, 3. For example, virus processing module 207 can be Norton AntiVirus (NAV) software made by Symantec Corporation of Cupertino, California. Virus processing module 207 not only executes anti-virus tasks when no computer virus outbreak occurs, but also cooperates with access control module 203 to build up memory table 205, and to prevent execution of susceptible or suspicious computer code during a computer virus outbreak. The detail of the operation will be described below with reference to FIGS. 4 and 5.
[0053] Note that although virus processing module 207 resides in anti-virus module 209 together with access control module 203 and memory table 205 in FIG. 2A, the present invention does not require so in alternative embodiments. Virus processing module 207 may be a separate module from access control system 200. In other words, access control system
200 itself does not necessarily include a virus processing module 207 to accomplish access confrol tasks. All anti-virus related tasks may be performed by independent anti-virus software, implemented as virus processing module 207. By doing so, the three functionality modules, access control console 201, access confrol module 203 and memory table 205 can be collectively implemented as an access control unit 290 to determine whether computer codes are allowed to execute or not. Access control unit 290 may be conveniently added to current anti-virus software on the market to provide all access confrol functions described herein for network 1. [0054] It should also be understood that the server-client architecture illustrated in FIG.
1 does not limit the present invention to server-client network architecture. Access confrol system 200 is equally applicable to other types of networks such as peer-to-peer networks. In a peer-to-peer networking environment, any networked computer can be configured to operate access control console 201, and anti-virus module 209 is installed on other computers. Thus, a user or a system administrator activates access confrol system 200 from access control console
201 to prevent computer viruses from infecting the networked computers 2, 3.
[0055] Likewise, even in a server-client architecture, the present invention does not require that the implementation of access control system 200 be done through a server 3 that manages computer network 1. In an alternative embodiment, access control console 201 is installed on a client computer 2. A system adminisfrator or a user sends the access confrol status mode and access control time 211 through access confrol console 201 to other client computers 2 and to server 3 to activate access control system 200.
[0056] Furthermore, access confrol system 200 is equally applicable to a single computer environment, although the present invention has distinct advantages to safeguard a computer network 1 from computer virus attacks. For example, the method provided herein enables a home user to use his or her computer to browse the Internet or receive E-mails during a virus outbreak without disconnecting from the Internet.
[0057] FIG. 3 illustrates a methodology of generating memory table 205 for the purpose of access confrol in accordance with the present invention. Memory table 205 is created either when access control system 200 is in a safe mode, i.e., having not received any report of a computer virus outbreak, or when system 200 is in alert mode. Access control module 203 may be configured to confrol the process of generating memory table 205. [0058] In one embodiment, memory table 205 contains two fields for each piece of executable computer code: a hash value and a time stamp.
[0059] The hash value ("hash") is a contraction of computer file contents created by applying a hash function to a given piece of computer code, e.g., .EXE, .COM, NBS, S, individual macros in WORD documents or spreadsheets, etc. A hash function is a type of on© way function. The nature of a hash function is such that it is highly unlikely that two different files have the same hash value. One of ordinary skill in the art would recognize that there are a variety of hash functions that can be used. The hash functions may or may not be specifically tailored to the type of computer files.
[0060] Conventionally, certain anti-virus software stores the hash value in computer 2 for each program to speed up computer virus scanning process. Once a file is scanned, the hash of the contents of the file is stored in a database. During subsequent scans of the computer file, the hash of the computer file is first computed by the anti-virus software. If the computed hash matches the hash stored in the database, the file is certified clean by the anti- virus software without the necessity for a rescan. Such method is based on an assumption that the match of hash values shows with a high degree of certainty that the file has not been modified by another program, i.e., not infected by a computer virus.
[0061] In comparison, the present invention is not limited to using just hash functions and hash values to detect viruses. In one embodiment, memory table 205 has a field for storing a time stamp associated with the hash value. The time stamp indicates the time when the hash value is inserted into memory table 205. The time stamp provides useful information for the future determination of executability of computer code during a computer virus outbreak.
[0062] In a preferred embodiment, during the safe mode system 200, when a computer code requests execution, access control module 203 intercepts (step 301) such request as a regular anti-virus program does. Access control module 203 then calls for virus scanning or other anti-virus check to determine whether this computer code is a possible virus (step 303), which may be performed by virus-processing module 207. If the computer code passes this test, access control module 203 computes (step 305) a hash value of the computer code. Access control module 203 further compares (step 307) the computed hash value with the stored hash value in memory table 205. If the same hash value is already in memory table 205, anti-virus module 209 will not block the execution of such computer code. [0063] If the computed hash value is not in memory table 205, access control module
203 inserts (step 309) such hash value into memory table 205 with a time stamp specifying the time of insertion. For example, a time stamp "21:20:56, 07/13/2001", stored in binary form, shows that the hash of the computer code was inserted at a clock time of 21 hours 20 minutes 56 seconds on July 13, 2001. By doing so, each computer code whose hash value has been stored in memory table 205 is certified clean. [0064] Note that the above description of memory table 205 generation process occurs in the safe mode. In an alternative embodiment, the same method described in FIG. 3 is applicable to the alert mode. As will be further described with reference to FIG 4, even in the alert mode, which corresponds to a heightened status of alert, access confrol module 203 is capable of time-stamping a computer code that passes a virus check but does not have its hash value stored in memory table 205. Such time-stamped computer code might not be allowed to execute eventually because of a certain access confrol rule. However, time-stamping the computer codes in alert mode will provide access confrol system 200 the capability to monitor all the status of executable codes throughout the virus break and thus possess a complete picture of all executable computer codes on computers 2, 3. [0065] In addition, the above description of memory table 205 generation is not exhaustive of all the techniques to creating memory table 205. The entries of the hash value and time stamp in memory table 205 may also be encoded in a variety of manners. One embodiment of memory table 205 can be created using a scheme based on a LRU (Least- recently-used) algorithm. [0066] FIG. 4 is a flow chart of a method for exercising access confrol for computer network 1 through the generation and processing of access confrol message 202. As described above, access control console 201 sends an access control message 202 to access confrol module 203 determining if computer codes should be executed on computers 2, 3. In one embodiment as illustrated below, the present invention may use just access confrol time 211 to perform the access control upon all types of executable computer codes. In other words, as a default rule, this embodiment may apply access confrol time 211 to all executable computers codes that are to be executed on computers 2, 3. It is unnecessary for the present invention to specify a parameter 213 in access control message 202 in order to accomplish the entire access confrol tasks. [0067] Access control system 200 is activated upon receiving a computer virus outbreak report (step 401). We assume that computer network 1 has received the computer virus outbreak report from external sources. Such sources may include anti-virus software publishers, news media, Internet bulletin boards, etc. A typical virus outbreak report may include information such as:
• When and where a new computer virus is first found;
• In what ways the computer virus infects computers, e.g., what types of computer files are typically infected;
• What kind of harm is caused by such virus; • Whether any current anti-virus software is capable of detecting and cleaning up computer network 1. [0068] Based on the information in the virus outbreak report, a system administrator or a user of computer network 1 enters into an alert mode (step 403), which indicates that computer network 1 might be under an imminent computer virus attack or should be placed into a heightened status of alert. If system 200 has been placed in alert mode, the system administrator can just skip this step and proceed to send a new confrol message 202 to computers 2, 3. If the new virus has been identified and cleaned up by an anti-virus software publisher's updates, the system administrator can place system 200 back to a safe mode. [0069] During a computer virus outbreak, before new virus identities are detected, the system adminisfrator often tries to extract various information from the report and then makes a determination or accepts a recommendation as to when a possible virus attack might happen at the earliest time. Upon having possessing such information, the system adminisfrator enters access confrol time 211 (step 405) and disseminates it in access control messages 202 to computers 2, 3 to prevent any computer codes that might have been infected or would be infected. In one preferred embodiment, access control time 211 is a relative time stamp or a particular period during which network 1 should be scrutinized for new virus attacks. The system administrator may simply enter an access control time 211 as a period of time, e.g., 3 days, and roll it out to all access control modules 203 in a confrol message 202 read as "all computer codes that were time stamped within the past 3 days (time 211) should be blocked from executing." When an access confrol module 203 receives this access message and the corresponding control time 211 (3 days) at a local computer clock time (e.g., "19:00:00, June 15, 2001"), access control module 203 can convert this control time 211 into an alert time 204, which is a specific point of time relating control time 211 to its 203 local computer clock time. In this example, since it is at "19:00:00, June 15, 2001" that module 203 receives this control message 202, confrol module 203 will convert time 211 to alert time 204 "19:00:00, June 12,
2001". As a result, access control module 203 now will perform access control on every request of executing codes and block execution of any computer codes which are time stamped on or after virus alert time "19:00:00, June 12, 2001." [0070] The method of using a relative time stamp or a specified time duration as access control time 211 and converting time 211 to alert time 204 is particularly advantageous for network 1 where computers 2, 3 might have different computer clock times. In many circumstances, there may be a time disparity among access confrol console 201 and each module 203 on computers 2, 3, i.e., a specific clock of time in confrol message 202 might correspond to totally different points of time in the eyes of console 201 and modules 203. In this situation, if access console 203 just defined a particular point of time relative to its own clock time and control module 203 replicated it, access confrol module 203 would fail to take into account the time disparity. Such time disparity may cause asynchronism between and among anti-virus modules 203 in reacting to an access confrol message 202. [0071] As an example, we assume that when access control message 202 is sent from console 201 to a module 203, the local clock time of module 203 is 10 minutes behind the local clock time of access control console 201; and when access confrol module 203 receives an access confrol time 211 "21:00:00, June 14, 2001" from console 201, access confrol module 203 uses the exact access control time 211 as alert time 204. Due to the time disparity, the time "21 :00:00, June 14, 2001" actually means different things to access control console 201 and access control module 203: a time of "21 :00:00, June 14, 2001" under access confrol console 201 's clock time corresponds to "20:50:00, June 14, 2001" under access control module 203 's clock time. As understood above and described in detail below, the effect of alert time 204 is that access control module 203 will block execution of any computer code which is time stamped on or after alert time 204. Now because of the time disparity, if access confrol module 203 used "21 :00:00, June 14, 2001" as alert time 204, access control module 203 would fail to block computer code time stamped between "20:50:00, June 14, 2001" and "21:00:00, June 14, 2001." Thus, access control module 203 would entail a risk of potential virus infection and fail to provide protection as intended by access confrol console 201. [0072] The above problem is overcome by letting the system administrator enter a relative time stamp or duration of access control as being access control time 211. Once access control module 203 receives such relative time stamp, alert time 204 will becomputed based on the relative time stamp in control message 202 and the respective local clock time. By doing so, access control console 201 successfully synchronizes each computer 2, 3 to execute a same access confrol rule despite the time disparity among computers 2, 3. [0073] In an alternative embodiment, if network 1 successfully solves the time disparity problem or access control system 200 is operating on just a single computer, the system adminisfrator or a user of the computer 2, 3 can use just a clock time as being access confrol time 211 in message 202, since the concern of time disparity does not exist in both situations. By way of an example, the system adminisfrator or the user of the computer may use the computer's clock time specifying the moment of entering into alert mode as access control time 211. Upon receiving the access control time 211, access control module will use access control time 211 as alert time 204 to determine the executability of a computer code.
[0074] Still referring to FIG. 4, after access confrol module 202 converts confrol time
211 into alert time 204 at step 407, access confrol module 202 monitors all the requests to execute any computer code on the computer 2, 3. When a computer code is to be executed, access control module 203 intercepts the request (step 409) and applies anti-virus detection techniques to determine whether the computer code is a virus or not (step 411). If the computer code is determined to be a virus, the computer code is not executed (step 417). Virus-processing module 207 will use its anti-virus tools to remove the computer code or quarantine the virus-infected computer files. [0075] If the computer code is not determined as a virus at step 411, access confrol module 203 applies alert time 204 to determine the executability of the computer code. At step 413, access confrol module 203 computes or instructs virus processing module 207 to compute a hash value of the computer code. The hash function used to compute the hash value is preferably the same as what has been used for generating hash values in memory table 205. In this way, a same and unchanged computer code will correspond to a same unique hash value. Then access control module 203 checks (step 415) to see if there is a same hash value entry in memory table 205 as the newly computed hash value. If the computed hash value does not appear in memory table 205, access control module 203 assumes the computer code requesting execution has never been allowed to execute. Access control module 203 thus refuses (step 419) execution of the computer code since such computer code is "an unknown program" that possibly contains a computer virus or has been infected with a computer virus. Here, comparing the hash value of the computer code with stored entries inmemory table 205 becomes another virus detection measure in addition to anti-virus procedure at step 411. It further reduces the opportunities of virus infecting with computers 2, 3 of network 1. [0076] Note that the above assumption that the mismatch of hash value indicates that the computer code has not been executed has its limitations in certain circumstances. During virus outbreak, the system adminisfrator may be able to receive virus definition or new updates from anti-virus software publishers to clean up all the files on network 1. In this process, some repaired computer programs or files may be changed and thus their hash values will be different from the original hash value even though they are not "unknown programs" at all. These repaired programs or files should have been allowed to execute upon passing the remaining access control steps 421-425 at the alert mode. [0077] To solve this problem, an alternative embodiment of the present invention configures virus-processing module 207 to place a flag to certify a program as clean if the program has been repaired by the most current anti-virus update. Thus, when access confrol module 203 computes its hash value at step 415, module 203 will immediately recognize that such flagged program should be allowed to execute or proceed to the next access confrol step. In other words, confrol module 203 will not block the execution of this particular program in spite of a mismatch of the hash values.
[0078] If the hash value of the computer code is found in memory table 205, access control module 203 further compares (step 421) the time stamp entry associated with this hash value with alert time 204. As described above, access confrol module 203 time-stamps computer codes whose hash values have been inserted in memory table 205. The time entry in memory table 205 corresponds to a most recent moment of inserting the hash value of the computer code into memory table 205. According to one embodiment of the present invention, if the hash value was inserted into memory table 205 at the same time as or subsequent to alert time 204, access confrol system 200 assumes that the computer code represented by the hash value is an unknown program (and possibly containing a virus) and thus denies execution of the computer code (step 423). If the computer code is time stamped prior to alert time 204, access confrol system 200 regards the code as safe and allows (step 425) the code to be executed.
[0079] Note that although a computer code is denied execution, access control module
203 may still insert its hash value and associated time stamp to memory table 205. As described above in FIG. 3, memory table 205 is capable of time stamping computer codes during alert mode. Such time stamp can be used to determine execution of the same computer code in subsequent stages of the virus outbreak. For example, as more information is received from anti-virus software publishers regarding the new virus, a system administrator might send another confrol message 202 to downgrade the access confrol to a less s ingent level by using a new access control time 211, e.g., from "all computer codes that were time-stamped during past 5 days should be blocked" to "all computer codes that were time-stamped during past 2 days should be blocked". Under this new access confrol level, the computer code that was previously denied permission to execute may be allowed to execute if it is now determined to be time-stamped prior to new access confrol time 211 (2 days). As a result, this allows more "innocent" computer programs and applications to be available for users even at a heightened status of alert.
[0080] FIG. 5 is a flow chart illustrating a method using access confrol time 211 and other control parameters in confrol message 202 to exercise the access control. Similar to steps 401-409 in FIG. 4, the system adminisfrator receives a virus outbreak report (step 401a), enters into alert mode (step 403a) and then generates access control message 202 and sends it to computers 2, 3 (step 405a). In this embodiment, access control message 202 includes confrol parameters such as confrol time 211, types of computer codes 213, and expiration time 215. Access confrol module 203 receives access confrol message 202, computes alert time 204 based on confrol time 211 (step 407a), and intercepts a request to execute a computer code (step 409a). Access confrol module 203 directs virus-processing module 207 to determine if such computer code contains a virus (step 411a). If such computer code is or contains a virus, it will not be executed (step 417a). For those computer codes that pass the anti-virus test, access confrol module 203 will proceed to determine if the current access confrol message 202 has expired (step 430). As described above, access control expiration time 215 specifies when a particular access confrol message 202 stops being effective. As a counterpart of access confrol time 211, access control expiration time 215 may also be a relative time stamp or duration of time entered by the system administrator. When access confrol module 203 receives expiration time 215 along with other parameters in access control message 202, module 203 determines what is the exact point of time the received confrol message 202 shall become ineffective. For example, assuming that expiration time215 is "10 days" and the local clock time of access confrol module 203 is "19:00:00, June 15, 2001" when receiving message 202, access confrol module 203 will thus decide that this confrol message 202 should no longer be controlling at "19:00:00, June 25,2001". The benefit to use such an expiration time 215 is that the system administrator does not need to monitor the status of a control message 202 that he or she previously sent out. This is particularly useful when system 200 does not automatically revoke a prior control message 202 by sending a subsequent confrol message 202. [0081] If access confrol message 202 has not expired, access control module 203 uses the types of computer codes 213 to determine if the requesting computer code should be subject to access confrol (step 432). If the computer code does not belong to the specified types or categories of computer codes 213, access confrol module 203 will not block the execution of such computer code.
[0082] If the computer code is one of the types of programs or application as specified in parameter 213, access confrol module 203 proceeds to find out whether the computer code is time stamped before alert time 204 or not. The remaining steps 413a-425a are identical or substantially similar to what has been described in FIG. 4. [0083] The method illustrated in FIG. 5 provides access confrol system 200 more flexibility and new granularity of access control levels. As noted above, the system administrator may flexibly combine different configurations of control parameters to adapt to different stages during an ongoing virus break. For example, at an early stage, the system adminisfrator might have to command all computer codes that were time-stamped after a certain point of time to be blocked. Once the types of new vims are later determined to infect only macros, the system administrator can roll out a new message 202 with a changed parameter 213 to allow execution of all computer files except macros. After access confrol module 203 receives this new message 202, it will no longer block the execution of programs like .EXE or .COM even if they are time-stamped after alert time 204. Therefore, such access confrol method substantially benefits network 1 by letting users have access to computer programs and applications at a maximum extent while ensuring the safety of network 1 during a heightened status of alert.
[0084] FIG. 6 is a block diagram illustrating another embodiment of access control system 200a of the present invention. For ease of description, components 201a-209a correspond to components 201-209 in system 200, respectively, and each of the components is capable of performing the same functions as described above. Besides these, access confrol system 200a may include a firewall module 601. Firewall module 601 may reside in one of computers 2, 3 of network 1. Alternatively, firewall module 601 may be a separate entity coupled to computers 2, 3. Access confrol module 203a is coupled to firewall module 601 via connection 603. This alternative embodiment of system 200a may also be installed on just one single computer 2, 3, which connects to outside network 4 through firewall module 601. [0085] Typically, firewall module 601 is a component of the gateway of network 1 that connects to external network 4. Firewall module 601 is designed to confrol of what kind of data can be received by and sent from network 1. For example, firewall module 601 can refuse the entry of any inflow data that is not initiated by any applications or programs running on computers 2, 3. In this way, firewall module 601 prevents any malicious codes from entering network 1. Firewall module 601 can be implemented as software, hardware and/or firmware in a variety of means. A typical firewall software product is Norton Personal Firewall by Symantec Corporation.
[0086] Access confrol system 200a as illustrated herein is not only capable of blocking the execution of susceptible or suspicious computer codes, but is also capable of blocking any susceptible or suspicious data communications between network 1 and external network 4 during the alert mode. [0087] In reality, it is possible that computers 2, 3 have been infected with a virus before system 200a is placed into alert mode. The undetected virus might have been activated and is causing harm to network 1. It is therefore important to react promptly to limit such damage to a minimum. For example, a new Trojan horse virus may have already been running on a computer 2 and is exporting confidential information on computer 2 to an unauthorized computer user on external network 4 without any knowledge of current anti-virus software 207 on network 1. Such harmful data transfer passes through firewall module 601, but in many circumstances firewall module 601 does not block the data transfer unless it is told to do ©. [0088] To effectively cut off such unauthorized and harmful data communications, access confrol system 200a applies access control rules to firewall module 601. As will be described in detail below, firewall module 601 will deliver a request to access control module 203a to determine whether a particular data communication now passing the network gateway should be blocked. Access confrol module 203a will make the determination based on access confrol time 211a received from access control console 201a. [0089] FIG. 7 is a flow chart illustrating a method of exercising access control on data communication passing through firewall module 601. The system adminisfrator of network 1 receives (step 701) a virus outbreak report, and then activates (step 703) virus outbreak alert mode. Similar to what has been described above, at the time of entering the alert mode, the system administrator composes (step 705) access control message 202 through console 201a, including access confrol time 211, to dictate a specific access confrol rule. For the purpose of controlling firewall 601 , one exemplary confrol message 202 may be read as "all data communications that are occurring between external network 4 and a program on network 1 should be blocked if the program is time stamped on or after a time as determined by access confrol module 203a on account of access confrol time 211." Note that confrol message 202 for firewall module 601 is not necessarily identical to that used for access confrol described with reference to FIGS. 2, 4 and 5. The system adminisfrator or the users of computers 2, 3 may configure separate control messages 202 for blocking execution of computer codes and blocking data communications passing through firewall module 601.
[0090] Access confrol module 203a receives (step 707) access confrol message 202 from console 201a and notifies firewall module 601 that network 1 is now under the alert mode. Upon entering the heightened status of alert, firewall module 601 may suspend any current data communications between programs or applications running on computers 2, 3 and external network 4. Simultaneously, for each program and application that is communicating or attempting to do so, firewall module 601 will send a request back to access confrol module 203a of each computer 2, 3 that hosts such programs and applications. In particular, firewall module 601 will ask access control module 203a whether such data communication should be permitted. Such request may include information such as the identification information of the programs or applications. [0091] In response to receiving 709 the request from firewall module 601 , access confrol module 203a will apply access confrol rules in access confrol message 202 to determine whether the data communication that is occurring to the particular program or application is suspicious. As shown in FIG. 7, the remaining steps are similar to what has been described in FIGS. 4 and 5. Access control module 203a computes (step 711) the hash value of the program and then looks up (step 713) the hash value in memory table 205a. If the hash value is not located at memory table 205a, access confrol module 203a will generate a message and send it back to firewall module 601 dictating that the program is "unknown" and thus its data communication might be harmful. Firewall module 601 can therefore 715 block such data communication. [0092] If the hash value is found at memory table 205a, access control module 203 a retrieves the time stamp associated with the program, which is now represented by the hash value. Access confrol module 203a then compares 719 the time stamp with alert time 204. As understood above, if such program is time stamped before the moment as indicated by alert time 204a, access control module 203a deems such program as being safe and then returns a permission message to firewall module 601. Firewall module 601 therefore will not block 721 the data communication, or will resume the data communication that has been suspended. [0093] If the program is time stamped on or after alert time 204a, confrol module 203a will return 723 a message to firewall module 601 to discontinue the data communication or refuse the attempt to transfer data into or out of network 1. By doing so, access confrol module 203 a successfully works together with firewall module 601 to monitor cross-network data communications in the alert mode.
[0094] One advantage of the embodiment of access confrol system 200a is that it expands access confrol capability to firewall components such that the firewall module 601 can be used effectively to block or to interfere with any harmful data fransfers during a virus outbreak. This can substantially limit any potential damage caused by viruses. Also the access confrol greatly reduces intrusiveness to normal program operation in the alert mode. For example, an uninfected video conferencing program may still be allowed to operate during high alert mode. [0095] In view of the foregoing discussion, the present invention provides a high level of protection with a low level of intrusiveness. In one aspect, all the previously installed executable computer code such as programs, scripts, or macros, will not be prevented from running if they are time stamped prior to the appropriate alert time 204. Only new applications and programs are blocked from execution. As described above, such limitations will become minimal once anti-virus software publishers provide new definitions for the new viruses and a less stringent access confrol status mode is activated. In another aspect, even if computers 2, 3 have been infected, the access confrol systems and the methods provided herein are capable of reducing the potential damage to a minimum. [0096] 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.
What is claimed is:

Claims

Claims
1. A computer-implemented method for computer virus prevention, said method comprising the steps of: entering a first computer virus status mode in response to a first computer virus outbreak report; generating a first computer virus alert time corresponding to entry into the first computer virus status mode; comparing a time stamp of a computer content with the first computer virus alert time; and determining the executability of the computer content in response to the result of the comparing step.
2. The method of claim 1 , wherein the step of generating the first virus alert time comprises the steps of: entering a first access confrol time based on the first virus outbreak report; and converting the first access confrol time into the first virus alert time.
3. The method of claim 2, wherein the first access confrol time is a relative time stamp.
4. The method of claim 2, wherein the first access confrol time is a pre-determined time period for access control under the first computer virus status mode.
5. The method of claim 1, further comprising the step of: determining the presence of a value representing the computer content in a memory table of executable computer content.
6. The method of claim 5, wherein the computer content is not executed when the value representing the computer content is not present in the memory table of executable computer content.
7. The method of claim 5, wherein the value is a hash value of the computer content.
8. The method of claim 1, wherein the computer content is executed only when the computer content is time stamped prior to the first computer virus alert time.
9. The method of claim 1, further comprising the steps of: entering types of computer codes that should be blocked from execution in response to the first computer virus outbreak report; and blocking execution of a computer code that belongs to the entered types of computer codes.
10. The method of claim 1, further comprising the steps of: generating a second virus alert time in response to a second computer virus outbreak report; comparing the time stamp of the computer content with the second computer virus alert time; performing anti-virus processing upon the computer content; and determining the executability of the computer content in response to the result of comparing the time stamp of the computer content with the second computer virus alert time.
11. The method of claim 1 , wherein the computer content is attached to an E-mail body, and said method further comprises the steps of: removing the computer content from the E-mail body; and denying execution of the computer content.
12. A computer access confrol system for computer virus prevention, said system comprising: an access confrol console, for entering a first computer virus status mode and for generating a virus access confrol time; and an anti-virus module, coupled to the access confrol console, configured to generate a virus alert time based on the virus access control time and to compare a time stamp of a target computer content with the virus alert time prior to execution of the target computer content.
13. The system of claim 12, wherein the target computer content is one of a plurality of computer contents, and the anti- virus module further comprises: a memory module for storing time stamps of the plurality of computer contents; and an access confrol module, coupled to the access confrol console and to the memory module, for generating the virus alert time and for comparing the time stamp of each target computer content with the virus alert time.
14. The system of claim 13, wherein the anti-virus module further comprises: a computer virus processing module, coupled to the access confrol module, for further processing a target computer content in order to determine the executability of the target computer content.
15. The system of claim 13, wherein the memory module stores a value representing each of the computer contents.
16. The system of claim 15, wherein the access control module is configured to determine the presence of the value in the memory module as representing a target computer content.
17. The system of claim 15, wherein the value is a hash value.
18. An anti-virus module, comprising: a memory module for storing time stamps of computer contents; and an access confrol module, coupled to the memory module, for comparing the time stamp of a computer content with a computer virus alert time to determine the executability of the computer content.
19. The anti-virus module of claim 18, further comprising: a computer virus processing module, coupled to the access control module, for further processing the computer content.
20. A computer-implemented method for computer virus prevention, said method comprising the steps of: creating a list of time-stamped executable computer contents; entering a virus alert mode in response to a virus outbreak report; responsive to the virus alert mode, entering an access control message for specifying an access confrol rule for blocking the execution of suspicious or susceptible computer contents that are time-stamped not before a virus alert time, the access confrol message including a first confrol parameter for generating the virus alert time; receiving a request to execute a target computer content; and determining the executability of the target computer content based on the access confrol rule in the access confrol message.
21. The method of claim 20, wherein the step of creating a list of time-stamped executable computer contents, comprises: applying anti-virus operation upon each executable computer content; storing a hash value of each executable computer contents in the list; and inserting a time stamp corresponding to the moment of storing the hash value of the executable computer content.
22. The method of claim 20, wherein the step of determining the executability of the target computer content comprises the steps of: receiving the access control message; converting the first confrol parameter into the virus alert time; comparing the time stamp of the target computer content in the list with the virus alert time; and determining the executability of the target computer content based on the result of the comparing step.
23. The method of claim 22, further comprising the step of: applying an anti-virus operation upon the target computer content.
24. The method of claim 20, wherein the control message comprises: a second control parameter for specifying types of computer contents that should be subject to the access control rule; a third confrol parameter for specifying an expiration time for the access confrol rule; and a fourth confrol parameter for identifying the access control message.
25. The method of claim 24, further comprising the step of: determining validity of the access confrol message based on the third confrol parameter.
26. The method of claim 24, further comprising the step of: determining executability of the target computer content based on the second confrol parameter.
27. A computer-implemented method for computer virus prevention, said method comprising the steps of: creating a list of time-stamped executable computer contents; entering a virus alert mode in response to a virus outbreak report; responsive to the virus alert mode, entering an access control message for specifying an access confrol rule for blocking data communication initiated by computer contents that are time-stamped not before a virus alert time, the access confrol message including a first control parameter for generating the virus alert time; receiving a request to examine a target computer content that participates in the data communication; and determining whether the data communication should be blocked based on the access control rule.
28. The method of claim 27, wherein the step of determining whether the data communication should be blocked comprises the steps of: receiving the access confrol message; converting the first control parameter into the virus alert time; comparing the time stamp of the target computer content in the list with the virus alert time; and determining whether the data communication should be blocked based on the comparing step.
29. The method of claim 28, wherein the data communication is blocked when the target computer content is time-stamped not before the virus alert time.
30. A computer access confrol system for computer virus prevention, comprising: a firewall module monitoring data communications initiated by a target computer content and sending a request to examine the data communications; an access control console, for generating an access control message specifying an access confrol rule for blocking data communications of the target computer contents that are time-stamped not before a virus alert time, the access control message including a first confrol parameter for generating the virus alert time; and an access control module, coupled to the access confrol console and the firewall module, configured to receive the access confrol message and a request from the firewall module, and to generate the virus alert time based on the virus access confrol time and to determine whether the data communication should be blocked based on the access control rule.
31. A computer program product comprising: a computer usable medium having computer readable code embodied therein for computer access control for computer virus prevention, the computer program product comprising: a computer readable program code device configured to receive a computer virus status mode in response to a computer virus outbreak report; a computer readable program code device configured to generate a computer virus alert time corresponding to entry into the computer virus status mode; a computer readable program code device configured to compare a time stamp of a computer content with the computer virus alert time; and a computer readable program code device configured to determine executability of the computer content in response to the result of comparing the time stamp of the computer content with the computer virus alert time.
32. A computer access confrol system for computer virus prevention, said system comprising: means for entering a computer virus status mode and for generating a virus access confrol time; and coupled to the entering and generating means, means for calculating a virus alert time based on the virus access confrol time; and coupled to the calculating virus alert time means, means for comparing a time stamp of a target computer content with the virus alert time prior to execution of the computer content.
33. A computer access confrol system for computer virus prevention, said system comprising: means for storing time-stamped executable computer contents; a firewall means for monitoring data communications occurring to the executable computer contents; means for entering a computer virus status mode and for generating a virus access confrol time; coupled to the entering and generating means, means for calculating a virus alert time based on the virus access confrol time; and coupled to the calculating virus alert time means and the storing means and the firewall means, means for comparing a time stamp of an executable computer content with the virus alert time to determine whether the data communication occurring to the executable computer content should be blocked .
PCT/US2002/010867 2001-04-06 2002-04-05 Temporal access control for computer virus outbreaks WO2002093334A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US28220301P 2001-04-06 2001-04-06
US60/282,203 2001-04-06
US4649601A 2001-10-29 2001-10-29
US10/046,496 2001-10-29

Publications (2)

Publication Number Publication Date
WO2002093334A2 true WO2002093334A2 (en) 2002-11-21
WO2002093334A3 WO2002093334A3 (en) 2003-11-13

Family

ID=26723992

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2002/010867 WO2002093334A2 (en) 2001-04-06 2002-04-05 Temporal access control for computer virus outbreaks

Country Status (2)

Country Link
US (2) US7483993B2 (en)
WO (1) WO2002093334A2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004070707A2 (en) * 2003-02-06 2004-08-19 Hexalock Ltd. Method and system for protecting against illegal copy and/or use of digital contents stored on optical or other media
EP1619586A1 (en) * 2003-04-25 2006-01-25 Fujitsu Limited Messaging virus countermeasure program and so on
WO2008127843A1 (en) 2007-04-16 2008-10-23 Microsoft Corporation Detection of adversaries through collection and correlation of assessments
EP2156361A1 (en) * 2007-04-16 2010-02-24 Microsoft Corporation Reduction of false positive reputations through collection of overrides from customer deployments
EP2208303A2 (en) * 2007-11-08 2010-07-21 Comodo CA, INC. Method and system for protecting a computer against malicious software
US8271774B1 (en) * 2003-08-11 2012-09-18 Symantec Corporation Circumstantial blocking of incoming network traffic containing code

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US6901519B1 (en) * 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US7117533B1 (en) * 2001-08-03 2006-10-03 Mcafee, Inc. System and method for providing dynamic screening of transient messages in a distributed computing environment
US7640361B1 (en) * 2001-08-24 2009-12-29 Mcafee, Inc. Systems and methods for converting infected electronic files to a safe format
GB2384659B (en) * 2002-01-25 2004-01-14 F Secure Oyj Anti-virus protection at a network gateway
US8090816B1 (en) * 2002-02-07 2012-01-03 Mcafee, Inc. System and method for real-time triggered event upload
MY141160A (en) * 2003-01-13 2010-03-31 Multimedia Glory Sdn Bhd System and method of preventing the transmission of known and unknown electronic content to and from servers or workstations connected to a common network
US7529754B2 (en) 2003-03-14 2009-05-05 Websense, Inc. System and method of monitoring and controlling application files
US7185015B2 (en) 2003-03-14 2007-02-27 Websense, Inc. System and method of monitoring and controlling application files
US7818447B1 (en) * 2003-03-28 2010-10-19 Emc Corporation End-to-end broadcast based flow control in a switch fabric
US20040250115A1 (en) * 2003-04-21 2004-12-09 Trend Micro Incorporated. Self-contained mechanism for deploying and controlling data security services via a web browser platform
US8543710B2 (en) * 2004-03-10 2013-09-24 Rpx Corporation Method and system for controlling network access
US8239946B2 (en) * 2004-04-22 2012-08-07 Ca, Inc. Methods and systems for computer security
US8006301B2 (en) 2004-05-19 2011-08-23 Computer Associates Think, Inc. Method and systems for computer security
US7632265B2 (en) * 2004-05-28 2009-12-15 St. Jude Medical, Atrial Fibrillation Division, Inc. Radio frequency ablation servo catheter and method
US7748038B2 (en) * 2004-06-16 2010-06-29 Ironport Systems, Inc. Method and apparatus for managing computer virus outbreaks
US20060010495A1 (en) * 2004-07-06 2006-01-12 Oded Cohen Method for protecting a computer from suspicious objects
US7581253B2 (en) 2004-07-20 2009-08-25 Lenovo (Singapore) Pte. Ltd. Secure storage tracking for anti-virus speed-up
US7634812B2 (en) * 2004-07-21 2009-12-15 Microsoft Corporation Filter generation
US20060053308A1 (en) * 2004-09-08 2006-03-09 Raidy 2 Go Ltd. Secured redundant memory subsystem
US7836506B2 (en) * 2004-09-22 2010-11-16 Cyberdefender Corporation Threat protection network
KR100713128B1 (en) * 2004-11-08 2007-05-02 주식회사 비젯 Device and System for preventing virus
US20060206855A1 (en) * 2005-03-09 2006-09-14 Biju Nair System and method for conflict identification and resolution
US8060860B2 (en) * 2005-04-22 2011-11-15 Apple Inc. Security methods and systems
US7562293B2 (en) * 2005-05-27 2009-07-14 International Business Machines Corporation Method and apparatus for processing a parseable document
US8272058B2 (en) * 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) * 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7895651B2 (en) * 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US20070245334A1 (en) * 2005-10-20 2007-10-18 The Trustees Of Columbia University In The City Of New York Methods, media and systems for maintaining execution of a software process
US8549646B2 (en) * 2005-10-20 2013-10-01 The Trustees Of Columbia University In The City Of New York Methods, media and systems for responding to a denial of service attack
US8280944B2 (en) * 2005-10-20 2012-10-02 The Trustees Of Columbia University In The City Of New York Methods, media and systems for managing a distributed application running in a plurality of digital processing devices
US20070233880A1 (en) * 2005-10-20 2007-10-04 The Trustees Of Columbia University In The City Of New York Methods, media and systems for enabling a consistent web browsing session on different digital processing devices
US7971137B2 (en) * 2005-12-14 2011-06-28 Google Inc. Detecting and rejecting annoying documents
US8453243B2 (en) 2005-12-28 2013-05-28 Websense, Inc. Real time lockdown
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) * 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7668954B1 (en) 2006-06-27 2010-02-23 Stephen Waller Melvin Unique identifier validation
US8214482B2 (en) * 2006-06-27 2012-07-03 Nosadia Pass Nv, Limited Liability Company Remote log repository with access policy
US8301753B1 (en) 2006-06-27 2012-10-30 Nosadia Pass Nv, Limited Liability Company Endpoint activity logging
US8056133B1 (en) * 2006-07-26 2011-11-08 Trend Micro Incorporated Protecting computers from viruses in peer-to-peer data transfers
US9654495B2 (en) * 2006-12-01 2017-05-16 Websense, Llc System and method of analyzing web addresses
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
JP2008172457A (en) * 2007-01-10 2008-07-24 Fujitsu Ltd Terminal specification program, terminal specification device and mail system
US7797742B2 (en) * 2007-02-26 2010-09-14 Microsoft Corporation File blocking mitigation
US7797743B2 (en) 2007-02-26 2010-09-14 Microsoft Corporation File conversion in restricted process
US8631235B2 (en) * 2007-08-08 2014-01-14 Oracle America, Inc. System and method for storing data using a virtual worm file system
US7853248B2 (en) * 2007-09-21 2010-12-14 Yahoo! Inc. SMS spam control
US8104083B1 (en) 2008-03-31 2012-01-24 Symantec Corporation Virtual machine file system content protection system and method
US8353041B2 (en) * 2008-05-16 2013-01-08 Symantec Corporation Secure application streaming
US8302193B1 (en) * 2008-05-30 2012-10-30 Symantec Corporation Methods and systems for scanning files for malware
EP2318955A1 (en) 2008-06-30 2011-05-11 Websense, Inc. System and method for dynamic and real-time categorization of webpages
US7530106B1 (en) * 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US10262136B1 (en) * 2008-08-04 2019-04-16 Zscaler, Inc. Cloud-based malware detection
US9450960B1 (en) 2008-11-05 2016-09-20 Symantec Corporation Virtual machine file system restriction system and method
US8607345B1 (en) * 2008-12-16 2013-12-10 Trend Micro Incorporated Method and apparatus for generic malware downloader detection and prevention
US8621632B1 (en) * 2009-05-21 2013-12-31 Symantec Corporation Systems and methods for locating malware
US8938800B2 (en) * 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8413244B1 (en) * 2010-11-11 2013-04-02 Symantec Corporation Using temporal attributes to detect malware
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
US9442881B1 (en) 2011-08-31 2016-09-13 Yahoo! Inc. Anti-spam transient entity classification
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US9135440B2 (en) * 2012-08-01 2015-09-15 Ut-Battelle, Llc Statistical fingerprinting for malware detection and classification
CN102968592A (en) * 2012-11-22 2013-03-13 华为技术有限公司 Computer-virus detecting method and device
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
WO2015060857A1 (en) 2013-10-24 2015-04-30 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
US9398034B2 (en) * 2013-12-19 2016-07-19 Microsoft Technology Licensing, Llc Matrix factorization for automated malware detection
US10200374B1 (en) * 2016-02-29 2019-02-05 Symantec Corporation Techniques for detecting malicious files
US10621341B2 (en) 2017-10-30 2020-04-14 Bank Of America Corporation Cross platform user event record aggregation system
US10728256B2 (en) 2017-10-30 2020-07-28 Bank Of America Corporation Cross channel authentication elevation via logic repository
US10721246B2 (en) 2017-10-30 2020-07-21 Bank Of America Corporation System for across rail silo system integration and logic repository
JP7028065B2 (en) * 2018-05-30 2022-03-02 コニカミノルタ株式会社 Image processing equipment, its control method, and programs
US11689567B2 (en) * 2020-03-06 2023-06-27 Honeywell International Inc. Mapping an attack tree and attack prediction in industrial control and IIoT environment using hash data analytics

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987610A (en) * 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems

Family Cites Families (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1314101C (en) * 1988-02-17 1993-03-02 Henry Shao-Lin Teng Expert system for security inspection of a digital computer system in a network environment
US5212765A (en) 1990-08-03 1993-05-18 E. I. Du Pont De Nemours & Co., Inc. On-line training neural network system for process control
US5473769A (en) 1992-03-30 1995-12-05 Cozza; Paul D. Method and apparatus for increasing the speed of the detecting of computer viruses
JP2501771B2 (en) * 1993-01-19 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション Method and apparatus for obtaining multiple valid signatures of an unwanted software entity
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US5398196A (en) * 1993-07-29 1995-03-14 Chambers; David A. Method and apparatus for detection of computer viruses
US5572590A (en) 1994-04-12 1996-11-05 International Business Machines Corporation Discrimination of malicious changes to digital information using multiple signatures
US5715174A (en) * 1994-11-15 1998-02-03 Absolute Software Corporation Security apparatus and method
US5715464A (en) * 1995-06-07 1998-02-03 International Business Machines Corporation Computer system having suspend once resume many sessions
US5675710A (en) * 1995-06-07 1997-10-07 Lucent Technologies, Inc. Method and apparatus for training a text classifier
US5889943A (en) * 1995-09-26 1999-03-30 Trend Micro Incorporated Apparatus and method for electronic mail virus detection and elimination
US5826013A (en) * 1995-09-28 1998-10-20 Symantec Corporation Polymorphic virus detection module
US5696822A (en) 1995-09-28 1997-12-09 Symantec Corporation Polymorphic virus detection module
US5854916A (en) 1995-09-28 1998-12-29 Symantec Corporation State-based cache for antivirus software
JP3434105B2 (en) * 1995-11-28 2003-08-04 富士通株式会社 Macro program management device
US6072830A (en) * 1996-08-09 2000-06-06 U.S. Robotics Access Corp. Method for generating a compressed video signal
US5832208A (en) 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers
US6072942A (en) * 1996-09-18 2000-06-06 Secure Computing Corporation System and method of electronic mail filtering using interconnected nodes
US5951698A (en) * 1996-10-02 1999-09-14 Trend Micro, Incorporated System, apparatus and method for the detection and removal of viruses in macros
US5758359A (en) * 1996-10-24 1998-05-26 Digital Equipment Corporation Method and apparatus for performing retroactive backups in a computer system
US6167520A (en) * 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
US5956481A (en) * 1997-02-06 1999-09-21 Microsoft Corporation Method and apparatus for protecting data files on a computer from virus infection
US5960170A (en) * 1997-03-18 1999-09-28 Trend Micro, Inc. Event triggered iterative virus detection
US5974549A (en) 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6298351B1 (en) 1997-04-11 2001-10-02 International Business Machines Corporation Modifying an unreliable training set for supervised classification
GB9713719D0 (en) * 1997-06-27 1997-09-03 British Telecomm Data model compiler
US5949973A (en) * 1997-07-25 1999-09-07 Memco Software, Ltd. Method of relocating the stack in a computer system for preventing overrate by an exploit program
US5978917A (en) 1997-08-14 1999-11-02 Symantec Corporation Detection and elimination of macro viruses
US6275938B1 (en) * 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
US6199181B1 (en) * 1997-09-09 2001-03-06 Perfecto Technologies Ltd. Method and system for maintaining restricted operating environments for application programs or operating systems
US6357008B1 (en) * 1997-09-23 2002-03-12 Symantec Corporation Dynamic heuristic method for detecting computer viruses using decryption exploration and evaluation phases
JP3952558B2 (en) * 1997-11-05 2007-08-01 ブラザー工業株式会社 Printing system, printer and printing method
US6070244A (en) * 1997-11-10 2000-05-30 The Chase Manhattan Bank Computer network security management system
US6108799A (en) * 1997-11-21 2000-08-22 International Business Machines Corporation Automated sample creation of polymorphic and non-polymorphic marcro viruses
US6094731A (en) * 1997-11-24 2000-07-25 Symantec Corporation Antivirus accelerator for computer networks
US6021510A (en) * 1997-11-24 2000-02-01 Symantec Corporation Antivirus accelerator
AU1907899A (en) * 1997-12-22 1999-07-12 Accepted Marketing, Inc. E-mail filter and method thereof
US6023723A (en) * 1997-12-22 2000-02-08 Accepted Marketing, Inc. Method and system for filtering unwanted junk e-mail utilizing a plurality of filtering mechanisms
US6052709A (en) * 1997-12-23 2000-04-18 Bright Light Technologies, Inc. Apparatus and method for controlling delivery of unsolicited electronic mail
US6088803A (en) 1997-12-30 2000-07-11 Intel Corporation System for virus-checking network data during download to a client device
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
US6130924A (en) * 1998-04-20 2000-10-10 Sun Microsystems, Inc. Method and apparatus for administrative control over data transmission using dynamic filtering in a multicast network
US6347310B1 (en) * 1998-05-11 2002-02-12 Torrent Systems, Inc. Computer system and process for training of analytical models using large data sets
US6253169B1 (en) * 1998-05-28 2001-06-26 International Business Machines Corporation Method for improvement accuracy of decision tree based text categorization
US6161130A (en) 1998-06-23 2000-12-12 Microsoft Corporation Technique which utilizes a probabilistic classifier to detect "junk" e-mail by automatically updating a training and re-training the classifier based on the updated training set
US6167434A (en) 1998-07-15 2000-12-26 Pang; Stephen Y. Computer code for removing junk e-mail messages
US6493007B1 (en) 1998-07-15 2002-12-10 Stephen Y. Pang Method and device for removing junk e-mail messages
US6338141B1 (en) * 1998-09-30 2002-01-08 Cybersoft, Inc. Method and apparatus for computer virus detection, analysis, and removal in real time
US6370648B1 (en) * 1998-12-08 2002-04-09 Visa International Service Association Computer network intrusion detection
US6397200B1 (en) * 1999-03-18 2002-05-28 The United States Of America As Represented By The Secretary Of The Navy Data reduction system for improving classifier performance
US6505167B1 (en) * 1999-04-20 2003-01-07 Microsoft Corp. Systems and methods for directing automated services for messaging and scheduling
US6370526B1 (en) * 1999-05-18 2002-04-09 International Business Machines Corporation Self-adaptive method and system for providing a user-preferred ranking order of object sets
US20020038308A1 (en) * 1999-05-27 2002-03-28 Michael Cappi System and method for creating a virtual data warehouse
GB2350449A (en) 1999-05-27 2000-11-29 Ibm Detecting replication of a computer virus using a counter virus
US6502082B1 (en) 1999-06-01 2002-12-31 Microsoft Corp Modality fusion for object tracking with training system and method
US7366702B2 (en) * 1999-07-30 2008-04-29 Ipass Inc. System and method for secure network purchasing
US6442606B1 (en) * 1999-08-12 2002-08-27 Inktomi Corporation Method and apparatus for identifying spoof documents
US6456991B1 (en) * 1999-09-01 2002-09-24 Hrl Laboratories, Llc Classification method and apparatus based on boosting and pruning of multiple classifiers
US6763462B1 (en) * 1999-10-05 2004-07-13 Micron Technology, Inc. E-mail virus detection utility
US6424960B1 (en) * 1999-10-14 2002-07-23 The Salk Institute For Biological Studies Unsupervised adaptation and classification of multiple classes and sources in blind signal separation
US6397215B1 (en) * 1999-10-29 2002-05-28 International Business Machines Corporation Method and system for automatic comparison of text classifications
US6678734B1 (en) * 1999-11-13 2004-01-13 Ssh Communications Security Ltd. Method for intercepting network packets in a computing device
US6851057B1 (en) * 1999-11-30 2005-02-01 Symantec Corporation Data driven detection of viruses
AU2099201A (en) 1999-12-21 2001-07-03 Tivo, Inc. Intelligent system and methods of recommending media content items based on userpreferences
US6697950B1 (en) * 1999-12-22 2004-02-24 Networks Associates Technology, Inc. Method and apparatus for detecting a macro computer virus using static analysis
US7099916B1 (en) * 2000-01-06 2006-08-29 International Business Machines Corporation System and method for downloading a virus-free file certificate from a file server
US6892303B2 (en) * 2000-01-06 2005-05-10 International Business Machines Corporation Method and system for caching virus-free file certificates
US6735700B1 (en) * 2000-01-11 2004-05-11 Network Associates Technology, Inc. Fast virus scanning using session stamping
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US20020087649A1 (en) * 2000-03-16 2002-07-04 Horvitz Eric J. Bounded-deferral policies for reducing the disruptiveness of notifications
US6748534B1 (en) * 2000-03-31 2004-06-08 Networks Associates, Inc. System and method for partitioned distributed scanning of a large dataset for viruses and other malware
US20020035696A1 (en) * 2000-06-09 2002-03-21 Will Thacker System and method for protecting a networked computer from viruses
US7007301B2 (en) * 2000-06-12 2006-02-28 Hewlett-Packard Development Company, L.P. Computer architecture for an intrusion detection system
US7134141B2 (en) * 2000-06-12 2006-11-07 Hewlett-Packard Development Company, L.P. System and method for host and network based intrusion detection and response
US6611925B1 (en) * 2000-06-13 2003-08-26 Networks Associates Technology, Inc. Single point of entry/origination item scanning within an enterprise or workgroup
US6721721B1 (en) * 2000-06-15 2004-04-13 International Business Machines Corporation Virus checking and reporting for computer database search results
US7328349B2 (en) * 2001-12-14 2008-02-05 Bbn Technologies Corp. Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses
US7017187B1 (en) * 2000-06-20 2006-03-21 Citigroup Global Markets, Inc. Method and system for file blocking in an electronic messaging system
GB2357939B (en) * 2000-07-05 2002-05-15 Gfi Fax & Voice Ltd Electronic mail message anti-virus system and method
US7093239B1 (en) * 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
US6618717B1 (en) * 2000-07-31 2003-09-09 Eliyon Technologies Corporation Computer method and apparatus for determining content owner of a website
US6910134B1 (en) * 2000-08-29 2005-06-21 Netrake Corporation Method and device for innoculating email infected with a virus
US6886099B1 (en) * 2000-09-12 2005-04-26 Networks Associates Technology, Inc. Computer virus detection
US6898715B1 (en) * 2000-09-12 2005-05-24 Networks Associates Technology, Inc. Response to a computer virus outbreak
US6535891B1 (en) * 2000-09-26 2003-03-18 Emc Corporation Method and apparatus for indentifying accesses to a repository of logical objects stored on a storage system based upon information identifying accesses to physical storage locations
US7707305B2 (en) * 2000-10-17 2010-04-27 Cisco Technology, Inc. Methods and apparatus for protecting against overload conditions on nodes of a distributed network
AU2001296205A1 (en) * 2000-10-17 2002-04-29 Shyne-Song Chuang A method and system for detecting rogue software
WO2002037393A2 (en) * 2000-11-06 2002-05-10 Envoy Worlwide, Inc. System and method for service specific notification
US6622150B1 (en) * 2000-12-18 2003-09-16 Networks Associates Technology, Inc. System and method for efficiently managing computer virus definitions using a structured virus database
US20020091940A1 (en) * 2001-01-05 2002-07-11 Welborn Christopher Michael E-mail user behavior modification system and mechanism for computer virus avoidance
US20030051026A1 (en) * 2001-01-19 2003-03-13 Carter Ernst B. Network surveillance and security system
US20020178375A1 (en) 2001-01-31 2002-11-28 Harris Corporation Method and system for protecting against malicious mobile code
US20020147694A1 (en) 2001-01-31 2002-10-10 Dempsey Derek M. Retraining trainable data classifiers
US20030018903A1 (en) * 2001-03-19 2003-01-23 Greca Damon G. Della Method of containing spread of computer viruses
US7010696B1 (en) * 2001-03-30 2006-03-07 Mcafee, Inc. Method and apparatus for predicting the incidence of a virus
US7188367B1 (en) * 2001-03-30 2007-03-06 Moafee, Inc. Virus scanning prioritization using pre-processor checking
US8949878B2 (en) 2001-03-30 2015-02-03 Funai Electric Co., Ltd. System for parental control in video programs based on multimedia content information
US7502939B2 (en) 2001-04-19 2009-03-10 Cybersoft, Inc. Software virus detection methods and apparatus
CN1147795C (en) 2001-04-29 2004-04-28 北京瑞星科技股份有限公司 Method, system and medium for detecting and clearing known and anknown computer virus
US7188368B2 (en) 2001-05-25 2007-03-06 Lenovo (Singapore) Pte. Ltd. Method and apparatus for repairing damage to a computer system using a system rollback mechanism
US7194625B2 (en) 2001-06-19 2007-03-20 Intel Corporation Method and apparatus for authenticating registry information
US7421587B2 (en) * 2001-07-26 2008-09-02 Mcafee, Inc. Detecting computer programs within packed computer files
US7487544B2 (en) * 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US8438241B2 (en) * 2001-08-14 2013-05-07 Cisco Technology, Inc. Detecting and protecting against worm traffic on a network
US6662198B2 (en) 2001-08-30 2003-12-09 Zoteca Inc. Method and system for asynchronous transmission, backup, distribution of data and file sharing
US20030033587A1 (en) * 2001-09-05 2003-02-13 Bruce Ferguson System and method for on-line training of a non-linear model for use in electronic commerce
US20030105973A1 (en) * 2001-12-04 2003-06-05 Trend Micro Incorporated Virus epidemic outbreak command system and method using early warning monitors in a network environment
US20030115479A1 (en) * 2001-12-14 2003-06-19 Jonathan Edwards Method and system for detecting computer malwares by scan of process memory after process initialization
US20030115458A1 (en) * 2001-12-19 2003-06-19 Dongho Song Invisable file technology for recovering or protecting a computer file system
US7143113B2 (en) * 2001-12-21 2006-11-28 Cybersoft, Inc. Apparatus, methods and articles of manufacture for securing and maintaining computer systems and storage media
US7401359B2 (en) * 2001-12-21 2008-07-15 Mcafee, Inc. Generating malware definition data for mobile computing devices
US7415726B2 (en) * 2001-12-28 2008-08-19 Mcafee, Inc. Controlling access to suspicious files
EP1490768B1 (en) * 2002-03-29 2007-09-26 Global Dataguard, Inc. Adaptive behavioural intrusion detection
US7418729B2 (en) * 2002-07-19 2008-08-26 Symantec Corporation Heuristic detection of malicious computer code by page tracking
US7380277B2 (en) * 2002-07-22 2008-05-27 Symantec Corporation Preventing e-mail propagation of malicious computer code
US7526809B2 (en) * 2002-08-08 2009-04-28 Trend Micro Incorporated System and method for computer protection against malicious electronic mails by analyzing, profiling and trapping the same
US20040158730A1 (en) * 2003-02-11 2004-08-12 International Business Machines Corporation Running anti-virus software on a network attached storage device
US7203959B2 (en) * 2003-03-14 2007-04-10 Symantec Corporation Stream scanning through network proxy servers
US7512809B2 (en) * 2003-08-22 2009-03-31 Cyrus Peikari Attenuated computer virus vaccine
US20050132205A1 (en) * 2003-12-12 2005-06-16 International Business Machines Corporation Apparatus, methods and computer programs for identifying matching resources within a data processing network
US7370361B2 (en) * 2004-02-06 2008-05-06 Trend Micro Incorporated System and method for securing computers against computer virus
US7685640B2 (en) * 2004-09-21 2010-03-23 Agere Systems Inc. Methods and apparatus for interface adapter integrated virus protection
US20060161979A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation Scriptable emergency threat communication and mitigating actions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987610A (en) * 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VON BABO M: "ZEHN MYTHEN UM COMPUTERVIREN. ÖDICHTUNG UND WAHRHEIT UEBER DEN SCHRECKEN DES INFORMATIKZEITALTERS" TECHNISCHE RUNDSCHAU, HALLWAG VERLAG. BERN, CH, vol. 84, no. 36, 4 September 1992 (1992-09-04), pages 44-47, XP000316555 ISSN: 1023-0823 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004070707A2 (en) * 2003-02-06 2004-08-19 Hexalock Ltd. Method and system for protecting against illegal copy and/or use of digital contents stored on optical or other media
WO2004070707A3 (en) * 2003-02-06 2005-04-14 Hexalock Ltd Method and system for protecting against illegal copy and/or use of digital contents stored on optical or other media
EP1619586A1 (en) * 2003-04-25 2006-01-25 Fujitsu Limited Messaging virus countermeasure program and so on
EP1619586A4 (en) * 2003-04-25 2008-10-15 Fujitsu Ltd Messaging virus countermeasure program and so on
US8271774B1 (en) * 2003-08-11 2012-09-18 Symantec Corporation Circumstantial blocking of incoming network traffic containing code
EP2147390A1 (en) * 2007-04-16 2010-01-27 Microsoft Corporation Detection of adversaries through collection and correlation of assessments
EP2156361A1 (en) * 2007-04-16 2010-02-24 Microsoft Corporation Reduction of false positive reputations through collection of overrides from customer deployments
WO2008127843A1 (en) 2007-04-16 2008-10-23 Microsoft Corporation Detection of adversaries through collection and correlation of assessments
EP2147390A4 (en) * 2007-04-16 2013-12-18 Microsoft Corp Detection of adversaries through collection and correlation of assessments
EP2156361A4 (en) * 2007-04-16 2013-12-25 Microsoft Corp Reduction of false positive reputations through collection of overrides from customer deployments
US8677479B2 (en) 2007-04-16 2014-03-18 Microsoft Corporation Detection of adversaries through collection and correlation of assessments
EP2208303A2 (en) * 2007-11-08 2010-07-21 Comodo CA, INC. Method and system for protecting a computer against malicious software
EP2208303A4 (en) * 2007-11-08 2012-08-01 Comodo Ca Inc Method and system for protecting a computer against malicious software

Also Published As

Publication number Publication date
US7483993B2 (en) 2009-01-27
US20030088680A1 (en) 2003-05-08
WO2002093334A3 (en) 2003-11-13
US7904573B1 (en) 2011-03-08

Similar Documents

Publication Publication Date Title
US7483993B2 (en) Temporal access control for computer virus prevention
US11775644B2 (en) Systems and methods for providing security services during power management mode
US7134141B2 (en) System and method for host and network based intrusion detection and response
US8590043B2 (en) Method and systems for computer security
US7007301B2 (en) Computer architecture for an intrusion detection system
US7137145B2 (en) System and method for detecting an infective element in a network environment
JP4961153B2 (en) Aggregating knowledge bases from computer systems and proactively protecting computers from malware
US20070143848A1 (en) Methods and apparatus providing computer and network security for polymorphic attacks
US20190109824A1 (en) Rule enforcement in a network
KR100695489B1 (en) Web service preservation system based on profiling and method the same
CN111756707A (en) Back door safety protection device and method applied to global wide area network
Hu et al. Detecting unknown massive mailing viruses using proactive methods
KR100439174B1 (en) Method for managing alert database and policy propagation in ladon-security gateway system
WO2005116798A1 (en) Method and systems for computer security
CN117278288A (en) Network attack protection method and device, electronic equipment and storage medium
Shouman et al. Multiagent-Based Intrusion Prevention System

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CA

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase