Abstract:
The present invention relates to antivirus protection and more particularly to antivirus protection in a cloud server. The present invention protects a user machine from a virus while allowing the user to get the benefit of using multiple antivirus options without the need to run the antivirus options on the user machine.

Description:
BACKGROUND 
       [0001]    A. Technical Field 
         [0002]    This invention relates generally to antivirus protection and more particularly to antivirus protection via a cloud server. 
         [0003]    B. Background of the Invention 
         [0004]    There are many antivirus software options currently available. However, the current antivirus options are insufficient. All the currently available antivirus options run directly on a user computer. Therefore, suffering from various disadvantages. 
         [0005]    For example, a user can only run one antivirus option at a time because the various antivirus options cannot be run simultaneously. Some antivirus options are better than others at detecting certain types of viruses so it can be advantageous to run more than one antivirus solution. Furthermore, each antivirus option has an associated license fee. 
         [0006]    Also, the process of adding viruses to the list of known viruses to be caught by an antivirus option can be a lengthy one. In some cases it can take up to 90 days for a new virus to be added to a list of known virus for antivirus software to detect it. 
         [0007]    Another disadvantage of antivirus options is that they run on the user&#39;s computer. Therefore using computing resources and memory on the user&#39;s computer. 
         [0008]    In summary, what is needed is an antivirus solution that gains the benefit of more than one antivirus option with the ability to detect new viruses quickly, without paying multiple license fees or using a user&#39;s computing resources. 
       SUMMARY OF THE INVENTION 
       [0009]    Embodiments of the present invention protect a user machine from viruses by using antivirus options simultaneously and remotely. Using multiple antivirus options provides more effective virus detection since some antivirus options are better at detecting one virus and others are better at detecting other viruses. However, multiple antivirus options cannot typically be run on the user&#39;s machine. The antivirus options typically interfere with each other and do not work together. Also, they are expensive and have large costs associated with them. Furthermore, running many antivirus options simultaneously would require a lot of computing power and would take too much of the computing resources in a user&#39;s machine. 
         [0010]    Embodiments of the present invention overcome the above limitations by running antivirus options in the cloud or remotely to the user machine with a light weight antivirus running on the user machine. Running the antivirus options in the cloud permits the options to be run on multiple machines to overcome the limitations described above. 
         [0011]    Embodiments of the present invention use a databases of hashes to determine whether a particular file or application resides on a particular user&#39;s machine. Therefore, the cloud does not require direct access to a user&#39;s machine, but only access to the hash&#39;s that are on the user&#39;s machine. 
         [0012]    Other objects and attainments together with a fuller understanding of the invention will become apparent and appreciated by referring to the following description and claims taken in conjunction with the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    Reference will be made to embodiments of the invention, examples of which may be illustrated in the accompanying figures. These figures are intended to be illustrative, not limiting. Although the invention is generally described in the context of these embodiments, it should be understood that it is not intended to limit the scope of the invention to these particular embodiments. 
           [0014]      FIG. 1  shows a block diagram of an antivirus system, in accordance with various aspects of the present invention. 
           [0015]      FIG. 2  shows a block diagram of a system of an antivirus system and its interaction with the user machine, in accordance with various aspects of the present invention. 
           [0016]      FIG. 3  shows a flowchart of an antivirus method, in accordance with various aspects of the present invention. 
           [0017]      FIG. 4  shows one embodiment of a user interface, in accordance with various aspects of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0018]    The following description is set forth for purpose of explanation in order to provide an understanding of the invention. However, it is apparent that one skilled in the art will recognize that embodiments of the present invention, some of which are described below, may be incorporated into a number of different computing systems and devices. The embodiments of the present invention may be present in hardware, software or firmware. Structures shown below in the diagram are illustrative of exemplary embodiments of the invention and are meant to avoid obscuring the invention. Furthermore, connections between components within the figures are not intended to be limited to direct connections. Rather, data between these components may be modified, re-formatted or otherwise changed by intermediary components. 
         [0019]    Reference in the specification to “one embodiment”, “in one embodiment” or “an embodiment” etc. means that a particular feature, structure, characteristic, or function described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. 
         [0020]      FIG. 1  shows a block diagram of an antivirus system, in accordance with various aspects of the present invention.  FIG. 1  shows server  100 . Server  100  can be implemented using one or more computers. Server  100  includes a non-transitory memory containing a database of hashes and corresponding applications  140 . A hash is a unique fingerprint used in antivirus options. Each program has a unique hash. For example, Microsoft Word has a specific hash. An earlier version of word has a different hash and Microsoft Excel has a different hash. Furthermore, a hash can be stored without using a lot of memory space. The hash database  140  is a list of hashes, associated applications and associated user machines. 
         [0021]      FIG. 1  also shows interface module  150 . Interface module  150  communicates with the user machine. Interface  150  provides information from the user machine to the server  100 , as described more fully below in conjunction with  FIG. 2 . Interface module  150  also provides information to the user machine, for example, the status of whether a virus was detected. Interface module  150  can also send a recommended course of action to the user machine. 
         [0022]    The hash database  140  used in conjunction with server  100  including storage of all applications on a user machine permits embodiments of the present invention to scan the applications on the user machine remotely using antivirus engine 1  110 , antivirus engine 2  120 , and antivirus engine  3130 , etc. The remote scanning can be repeated scanning using continuously updated engine and virus definition. As will be understood by one of skill in the art, repeated scanning refers to automatically rescanning files rather than a manual scanning or user requested process. As will be understood by one of skill in the art, the continuously updated engines and definitions refer to the fact that the antivirus engines are updated periodically as new viruses become identified and known. The continuous updating does not require any specific interval of updating. 
         [0023]    Antivirus engines  110 - 130  can be any commercially available or open source antivirus option. It will be appreciated by one of ordinary skill in the art that the antivirus options  110 - 130  can all operate in conjunction with each other such that the server can scan using any or all of the antivirus options available. Alternatively, only one antivirus engine can be used. Thus, any combination of one or many antivirus engines can be implemented on one or multiple machines. 
         [0024]    The remote location can be the in the so called “clouds,” meaning on a server coupled to the user&#39;s machine by the internet. The remote location can also be coupled to the user&#39;s machine by a way of an intranet. For example, embodiments of the present invention can be used in a corporate setting where the server  100  scans all the applications used by the employees and makes use of hash database  140  to determine which employee(s) are infected with a virus. 
         [0025]      FIG. 2  shows a block diagram of a system of an antivirus system and its interaction with the user machine, in accordance with various aspects of the present invention.  FIG. 2  shows some components of  FIG. 1 , for example, the antivirus engines  110 - 130  and shows that there can be any number antivirus engines by showing antivirus n  210 .  FIG. 2  also shows hash database  140 .  FIG. 2  shows server  220  and sample machines  230 . Sample machines  230  indicate that there may be multiple machines used to host the programs on the server. Sample machines are used to upload commonly used application binaries without needing to collect them from user&#39;s machines and overloading network bandwidth. 
         [0026]      FIG. 2  also shows an interface between server  100  and the internet or a local area network (LAN)  240 . The internet or LAN  240  is coupled to the user&#39;s computers  250 . As depicted in  FIG. 2 , the user computers can be a desktop personal computer, or a laptop computer. Furthermore, the user computer can be a smart phone, a tablet or a network security device. A network security device includes an intrusion prevention system, unified threat management (UTM) or any other network security device designed to prevent a virus from attacking a network. 
         [0027]    The user has various software applications or programs on its computers  250 . In one embodiment of the present invention, the user also installs an application as part of the light weight antivirus that collects the hashes from the user computer. Those hashes are sent to the server  100  by way of the interface module  150 . In the embodiment shown in  FIG. 2 , the hashes are sent by through the internet or LAN to the server  100 . The actual program code may also be sent to the server  100  in case the program code is not found on the server. 
         [0028]    Server  100  stores all the applications or programs that exist on any of its user computers. Server  100  can therefore scan for viruses using antivirus 1  110 , antivirus 2  120 , antivirus 3  130 , and so on up to antivirus n  210 . Therefore, the user can gain the benefit of many different antivirus options. Some antivirus options are better at detecting one virus while others are better at detecting other viruses. Also, the user can gain the benefit of more complete antivirus scanning without having to use computing resources on running an antivirus option. Furthermore, the user does not have to pay for multiple antivirus options. 
         [0029]    In one embodiment, the user computers  250  can send a message to the interface module  150  of server  100  when the user installs a new program as detected by the light weight antivirus. The server can then scan the new program using antivirus 1  110 -antivirus n  210  and can send a message to the user computer  250  by way of interface module  150  indicating whether the new program contains a known virus. If a virus is detected, the user can make a real time decision about whether to install the new program and can , in fact, choose not to install the new program. 
         [0030]    In one embodiment where the user computers are not connected to the server, the light weight antivirus can take on the role of scanning new program installed for viruses while ignoring all other programs that have been certified by server  100  as virus-free previously. This gives rise to a highly efficient antivirus solution for the user machine regardless of network connectivity. 
         [0031]    In one embodiment, a virus is detected and the server  100  sends a message by way of interface module  150  to the user computers  250  indicating that a virus was detected. The server  100  can also recommend a course of action to eliminate the virus without adversely affected operation of the user computers  250 . 
         [0032]      FIG. 3  shows a flowchart of an antivirus method, in accordance with various aspects of the present invention.  FIG. 3  shows repeatedly scanning binaries using an antivirus option  310 . As described above, the repeated scanning  310  occurs remotely in server  100  and can occur using one or more or all known antivirus options. As described above, the antivirus options can be continuously updated and contain continuously updated definitions. 
         [0033]      FIG. 3  also shows identifying a virus  320 . The identifying a virus  320  is accomplished by one or more the antivirus engines  110 - 130 .  FIG. 3  also shows identifying a user machine that can be infected by the virus  340 . The identifying the user machine that has been infected by a virus  340  is determined using the hash database  140 . The hash database  140  keeps track of which hashes are associated with programs on each user machine. Therefore, using the hash database  140 , the server  100  can identify which user machine is infected by the virus  340 . 
         [0034]      FIG. 3  also shows recommending a remedy to the user to eradicate the virus  350 . The recommending a remedy  350  is accomplished using interface module  150 . Interface module  150  can send a message to the user machine  250  indicating a recommended remedy.  FIG. 3  also shows updating the server of the user machine status  360 . The updating is accomplished by way of a light weight antivirus running on the user machine  250  to identify and communicate the hashes to the server  100 . 
         [0035]      FIG. 4  shows one embodiment of a user interface, in accordance with various aspects of the present invention.  FIG. 4  is one example of a user interface  400  that can be used on a user machine  250  to communicate the presence of a virus in a user machine  250 .  FIG. 4  also shows the recommended remedy in form of several options available to the user, for example, quarantine, remove or allow.  FIG. 4  also shows the antivirus option used and the result for the particular virus threat. The user can then select an option, which will then be communicated to the server  100 . 
         [0036]    While the invention has been described in conjunction with several specific embodiments, it is evident to those skilled in the art that many further alternatives, modifications and variations will be apparent in light of the foregoing description. Thus, the invention described herein is intended to embrace all such alternatives, modifications, applications, combinations, permutations, and variations as may fall within the spirit and scope of the appended claims.