US20130061326A1 - Browsing support infrastructure with tiered malware support - Google Patents

Browsing support infrastructure with tiered malware support Download PDF

Info

Publication number
US20130061326A1
US20130061326A1 US13/662,765 US201213662765A US2013061326A1 US 20130061326 A1 US20130061326 A1 US 20130061326A1 US 201213662765 A US201213662765 A US 201213662765A US 2013061326 A1 US2013061326 A1 US 2013061326A1
Authority
US
United States
Prior art keywords
virus
malware
web browsing
processing
support system
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US13/662,765
Inventor
James D. Bennett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PayPal Inc
Original Assignee
Enpulz LLC
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 Enpulz LLC filed Critical Enpulz LLC
Priority to US13/662,765 priority Critical patent/US20130061326A1/en
Publication of US20130061326A1 publication Critical patent/US20130061326A1/en
Assigned to Enpulz, L.L.C. reassignment Enpulz, L.L.C. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BENNETT, JAMES D.
Priority to US14/486,322 priority patent/US9509713B2/en
Assigned to RPX CORPORATION reassignment RPX CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ENPULZ, LLC
Assigned to JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT reassignment JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: RPX CLEARINGHOUSE LLC, RPX CORPORATION
Assigned to RPX CORPORATION, RPX CLEARINGHOUSE LLC reassignment RPX CORPORATION RELEASE (REEL 038041 / FRAME 0001) Assignors: JPMORGAN CHASE BANK, N.A.
Assigned to RPX CORPORATION reassignment RPX CORPORATION RELEASE OF LIEN ON PATENTS Assignors: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Assigned to PAYPAL, INC. reassignment PAYPAL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: RPX CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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
    • G06F21/562Static detection
    • 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
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • 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
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files

Definitions

  • the present invention relates generally to browsing in an Internet infrastructure; and more particularly to a malware and viruses detection.
  • the infiltration of viruses into computing devices over the Internet is a serious security threat.
  • the virus code herein called as malware code, comprises all type of malicious code targeted for damaging the file system of a computer and, in addition, negatively impact the performance of the computing devices and the speed of the Internet access.
  • Some type of viruses replicate on their own and propagate causing flooding of packets on the net, thereby crippling an Internet service, or causing a denial of service problem.
  • files are transferred between computers or downloaded from a server to a client device.
  • Various file transfers to and from a client device may also take place from other peripheral devices connected directly to the client device and the client device.
  • the blocking of worms, adwares, spyware, etc., which constitutes the malware code, embedded in files that are transferred, is imperative for most computer users, but effective blocking of malware has always been a challenge.
  • Some browsers that are available in the market provide mechanisms to block “pop up ads,” and associated spyware. Some browsers have “adware blocking software” integrated into their feature set, but these are often not fully effective to the extent required by most users.
  • currently available conventional anti-virus software such as Norton, McAfee and others tools do exist. However, these anti-virus protection programs are not adequate or effective in blocking some malware codes that sneak into the system through various means.
  • virus detection tools available for implementing security features via Internet servers and in client devices that are connected to them over an Internet backbone.
  • the current features of virus detection tools available on these servers are inadequate in protecting the servers and the clients connected to them, especially taking into consideration the ever-increasing and changing security threats and mounting end-user access requirements.
  • the typical virus detection tools that reside in the storage media of the servers, and in general, in all computing devices scan for viruses based on certain preset scanning options, such as manual scan or periodic automatic scan. These virus detection tools can also repair, to some extent, the files damaged by virus infection. If the files are irreparable, they are sometimes quarantined and the user is notified.
  • Periodic virus scanning in a computer (such as a PC or a server), as is often conducted by virus scanning tools, is of limited use.
  • Running the virus tool post facto on the computer storage to detect viruses and other malware is one of major drawback of the current virus tools.
  • the infiltration of malware code into a computing device takes place during the file transfer from the internet or from the peripheral devices, and sometimes, the scanning for viruses after the file transfer has taken place it too little too late.
  • FIG. 1 is a perspective diagram of a network having a server and a plurality of clients, wherein the clients are communicatively coupled to the server over an Internet backbone, and wherein the clients comprise a malware detection module built into a network browser;
  • FIG. 2 is a block diagram, functionally illustrating a structure of various components of hardware and software including a malware detection manager within a client machine for purpose of implementing file security;
  • FIG. 3 is a block diagram illustrating a client storage device with relevant programs and system software components residing in the client storage device;
  • FIG. 4 is a block diagram illustrating the configuration of various hardware and software components along with a quarantine bin and their interaction
  • FIG. 5 is a block diagram illustrating multiple clients that are visiting a Trusted Download Center that has malware free signature authentication, according to one embodiment
  • FIG. 6 is flowchart illustrating an operation sequence performed by a malware detection manager, during a repeated visit to a trusted download center, according to one embodiment
  • FIG. 7 is flowchart illustrating a general sequence of operations performed by a malware detection manager, during the download process, according to one embodiment
  • FIG. 8 is flowchart illustrating a general sequence of operations performed by a malware detection manager, during the upload process, according to one embodiment
  • FIG. 9 is a flowchart illustrating a general upload/download sequence of operations with human challenge authorization for the release of genuine packets, according to one embodiment
  • FIG. 10 is a flowchart illustrating the blocking or downloading of various malware code components, such as adware, spyware, virus, etc., based on user choice during a download process; and
  • FIG. 11 is a block diagram illustrating a more general method of malware detection, based on parallel processing of malware code detection, using a Malware Detection (MD) functionality module.
  • MD Malware Detection
  • FIG. 1 is a perspective diagram of a network 101 having a server 105 and a plurality of clients 171 - 173 , wherein the clients 171 - 173 are communicatively coupled to the server 105 over an Internet backbone and wherein the clients 171 , 173 comprise a malware detection module 115 built into a network browser 111 which can comprise hardware and/or software components and functionality.
  • the Internet backbone 103 communicatively couples the server 105 and the clients 171 - 173 while users of the clients 171 - 173 access information over the Internet 103 , such as webpages and other content, provided by the server 105 . It is important to note that FIG. 1 is greatly simplified and that many servers and client devices are coupled to the Internet or routinely coupled in intranets or networks.
  • the client devices 171 - 173 comprise the network browser 111 that enables the web browsing, uploading, and downloading of files, connection to web mail, etc.
  • the server 105 may contain the browser or some portion of it, especially when the client devices are dumb terminals, thin clients, or other similar devices.
  • certain malware code may attempt to infiltrate into the clients 171 - 173 along with other desirable file packets or data, thereby putting the clients 171 - 173 , server 105 , and other computers on the Internet in danger.
  • the malware code typically attempts to destroy files, impede functionality, slow performance, engage in unwanted computer activity, or harm the computing device.
  • malware code Some forms of malware code are viruses, spam, worms, executables, etc., that result in the junk traffic to and from your computer.
  • Other forms of malware such as adware, spyware, etc., may not be directly harmful to a computer but are often unwelcome and unsolicited by a user or engage in unwanted activity or snooping on a computer, and therefore need to be blocked.
  • the form of a computer is constantly changing.
  • computers can take the form of televisions, set top boxes, game machines, servers, mobile devices, wireless routers, security devices, commercial equipment, appliances, automobile controllers, industrial controls, and any other number of functions, form factors, and uses. Therefore, the pervasive and extensive use of computers in many different devices and markets makes malware detection and prevention even more important, and sometimes more difficult.
  • FIG. 1 shows a malware-scanning module that is provided in the form of a network browser 111 that comprises the malware detection module 115 .
  • a malware detection module 115 built into the network browser makes it possible to automatically scan every packet sequence that is uploaded or downloaded to or from the computer or client device for the presence of malware code.
  • the presence of malware code is detected employing one of several possible ways, such as detecting signatures of the malware in files. For example, if a certain sequence, pattern, or set of malware code bytes is detected during the uploading or downloading of files, the associated operation involving the malware code is stopped and the file downloaded is put in a quarantine bin.
  • a browser uses a quarantine bin in a restricted directory on client storage for testing for malware before delivering the data to the browser and/or elsewhere in the client system storage.
  • the quarantine might only be required on a certain packet, video frame, or data subset, performed on a packet-by-packet basis or in some other division.
  • a selective or partial quarantining is useful in the situation where a malware component is embedded in a long string or data or media, such as a movie or a music download.
  • Such a partial segregation or quarantining can allow a user to complete a large portion of the operation with only partial loss of content that may even go unnoticed by a user.
  • the presence of malware code may indicate that the entire media (e.g., the entire download, movie, MP3 file, etc) is corrupt or suspect and should be quarantined from the system.
  • the detection software can quarantine every download as it is received until it has concluded that the download is complete and safe. This includes all web page downloads as well, and in fact, anything that flows through the communication pathway can be isolated in a safe memory space isolated from certain critical hardware, software, and operating system (OS) space/access until it can be scanned and be determined to be safe. If a virus is detected, the download can continue in full with the contents of the full download being quarantined and never being released except with a human challenged authorization. In another embodiment of the present invention, on detecting the virus code, the download could be discontinued and the partially delivered file quarantined. Quarantine and delivery completion could restart, continue, or reoccur after human challenge authorization in special cases.
  • OS operating system
  • the detection software can process every upload either analyzing the entire upload file in advance or the byte sequence as it is being transmitted from the client device. If a sequence, pattern, or set of data is confirmed as comprising a virus, the upload delivery will be prevented or terminated with a notification message to the user and possibly the recipient device(s); along with the quarantining or clean-up of the infected file on the client device. Upstream and downstream both may involve “human challenges”, where if a human challenge is successful at one and/or both the receiving and transmitting side, the content may be sent once the challenges are confirmed whereby the operation, data, or download will be unlocked from quarantine and the delivery finished.
  • Memory for the quarantine bin can be allocated interactively by the operating system using normal memory garbage collection routines and algorithms or the quarantine space can be set by prompting the user for the required number of bytes through a pop up window.
  • the size and extent of isolation of the quarantine area may be set up in the control panel of a PC or a similar control construct within the client device.
  • the quarantine space need not be fixed in size and level of isolation. In some cases, the performance of the system and/or the needs of the quarantine space can result in the quarantine space being dynamically adjusted up and down in size or up or down in the amount of isolation it is experiencing.
  • the quarantine space will contain content that needs to be kept from certain data or resources or be allowed to access certain data or resources to evaluate, detect, and/or possibly correct the malware influence.
  • the quarantine space level of isolation may be adjusted as the client device determines the risk or needs associated with certain access or lack thereof.
  • the user can enter or influence the size of the quarantine space, the user can enter the required number of bytes, kilobytes, megabytes, gigabytes, etc., as per the requirement. This user-set size feature is helpful when the storage space is limited, in embedded or specialized systems, for an optimum utilization of the storage resources.
  • the tool caches and scans the packets coming in for all known malware code bytes while quarantining the files as required for security of the system until malware detection can complete.
  • the files can be released from the quarantine bin upon two conditions; first, if the system determines that the packets are clean not infected by any malware, and second, upon a successful human challenge authorization if malware is believed to be found.
  • the built-in malware detection manager that is found within the web browser also has the capability to analyze the authenticity signature that is affixed to each packets downloaded from a trusted site.
  • a reliable method for blocking malware code and corrupt data along with the ability to provide notice messages to affected machines or users is useful over the Intranet or other networks.
  • This processing makes not only the computing devices free from malware, but the whole internet infrastructure free from malware on both the receive and transmit sides of the connection, and hence enhance network performance or services.
  • the malware detection manager is built into the web browser itself.
  • the files are scanned and permanently quarantined or repaired as possible during their transmission to or from the computing device before they are placed into fully accessible and functional memory or OS space of the recipient device.
  • the malware code will not propagate to and from the computing devices.
  • the mechanism of scanning and quarantining the incoming or outgoing packets real time into a quarantine bin during receipt and transmission allows malware to be detected, corrected, or eliminated before it is placed on a computer system in a place that can cause immediate damage or trouble. If the packets are free from any malware code bytes, they are released from the temporary quarantine to complete the transfer, otherwise that code/content is never released or a correction attempt is made before transmission is allowed to fully complete.
  • a human challenge authorization may release the file from the quarantine bin, if the user believes that the packets seem to be genuine.
  • the quarantine bin is special directory set up for the purpose of security of the computing device in its storage area, and it may be possible to program the quarantine bin to allow human override in certain circumstances, especially if detection of the malware is uncertain or the malware is not likely to be of the type that causes serious damage or trouble with the client device or other devices on the Intranet.
  • the modules comprise an MD (malware detection) Manager, one or a plurality of Comparison Agents (that may each be launched by the MD Manager to deal with an incoming file stream or file stream portion), and a single MD Database.
  • MD machine detection
  • the MD Manager assigns to a Comparison Agent a file stream or file stream portion (e.g., when the file is big and an agent is or will be falling behind the amount of the file still in quarantine).
  • multiple comparison agents can be active on the same or a different stream of data at the same time, thereby allowing parallel processing or multi-CPU-core application to the task of malware detection as taught herein.
  • the Comparison Agent performs the malware detection analysis through interaction with the common MD Database and by scanning the data stream(s).
  • the MD Database not only stores known malware bit sequences, but also provides for more complex detection through MD logic that may supplement one of the known malware bit sequence entries.
  • the MD Database may launch a more complex comparison agent that can set up a virtual machine within the quarantine space with virtual access to system resources. In this safe and isolated ‘fake” environment, the MD Database may launch the downloaded content, executable, or data and monitor its progress.
  • the launched code engages in behavior that is detected to be a sign of malware (e.g., sending mass amounts of emails with bad content, inappropriately processing on the hard drive, etc.)
  • the program can determine the presence of malware even if a bit detection sequence is missed or a new virus with a new bit pattern is generated.
  • many different manners of detecting malware can be employed, from bit scanning to find viral or malware patterns that are known, or setting up a safe quarantines virtual machine and launching the application that is being downloaded and monitoring its performance for unexpected activity, or other means.
  • most malware can be detected by matching a single bit sequence stored in a single MD Database entry to the downloaded data stream.
  • malware may require even more complex analysis defined by MD Logic stored in the MD Database than a simple single compare and verify operation.
  • the logic may require that 4 malware bit sequences (stored in 4 MD Database entries) be found in a single file in a certain sequence, relationship, or locations before a conclusion that malware exists can be made.
  • each MD Database is arranged to store MD Logic entries that each have one or more associated MD bit sequences entries.
  • Each Comparison Agent retrieves and executes the MD Logic that instructs the Comparison Agent on how to process its comparisons using the particular associated MD bit sequences.
  • Simple MD Logic will merely identify a substantially large number of associated MD bit sequences that, when a single match is found, a conclusion that malware exists, can be made.
  • More complex MD Logic may require that a single file must match three separate bit sequences (MD bit sequences from the MD Database) in a single file.
  • Another complex MD Logic entry may, for example, require “either a first MD bit sequence or a second MD bit sequence AND a third MD bit sequence subsequent thereto” must be found).
  • the quarantine and malware detection functionality are most likely integrated into the typical browser directly or through add-on functionality, such as through a software plug-in or expansion pack.
  • Malware detection could be running on quarantined items as they are received or may be processed only after the entire download occurs and is the entire content is placed into quarantined memory for malware processing.
  • the quarantining would provide either a tagged file or folder that is locked/secure and cannot be displayed by the browser or executed by the browser or the host.
  • the software in the tagged file or locked folder has no way to be operated on or gain access to anything other than the Malware Detection functionality, and has limited or no access to operating system (OS) calls or system peripherals or resources (Internet, hard drive, main memory, GPU card, etc). This can be accomplished using windows locking functionality, or potentially more effective, by applying a local, private key function (XOR) on anything downloaded before storage into the quarantine.
  • OS operating system
  • XOR local, private key function
  • the tagged file or locked folder could be structured to appear like a normal PC or a virtual machine with OS access, peripheral access, application access, etc., where in reality, the system does not have such access.
  • This virtual environment can be used as an executable test ground for downloaded content to detect harmful functionality even if a bit stream comparison or other algorithm fails to find a known virus.
  • This virtual machine method of testing for malware is useful in detecting new viruses that may not have been processed to create MD bit sequence comparisons yet.
  • Malware Free Signatures may be created such that repeated visits to same unchanged sites do not require the same analysis over and over again.
  • Such a trusted site may periodically authenticate the file system on the download center with a time stamp indicatively of last time that it got scanned for malware code and certify/guarantee that no new code or changes were made to the code since the last scan/check was conducted.
  • Such signatures might be produced by a trusted and up-to-date source so that repeated analysis for the presence of the malware code by other users need not occur on code that was previously determined to be “malware free.”
  • codes, checksums, error detection/correction, signature analyzers, linear feedback shift register processing, and similar methods may be used to verify that the code has not been changed since its last malware scan, thereby ensuring that covert changes in the code without the author or owners knowledge cannot occur within the code/system.
  • a web page or download might be delivered with an accompanying guaranteed signature from the trusted download center to be free of any malware, i.e., with a signature from the trusted source with every packet.
  • the checksum, codes, etc that can verify it was not contaminated in transit can also be passed on in a secure manner to ensure that what was send and free of malware was actually received in the same state and not contaminated along the transmission path.
  • this approach is simple to execute to the point of ensuring that malware free code has been provided by checking each packet for the signature, checksum, etc., with an appropriate encrypted validation code or time stamp. Even if the requirement is met in terms of the level of authenticity and the time last scanned, the client device may still decide to rescan the downloaded data for confirmation of the lack of malware or proceed with the send/receive operation without doing such additional scanning.
  • any download process is initiated with a signal.
  • This signal is initiated or issued in response to the user in the web browser window entering the name of the site to be visited for download, or via the user clicking or initiating a download operation.
  • the user may browse to a download center, check for trustworthiness of the center in terms of the authenticity signature, proceed to download, engage in authentication of the download for malware-free indications, and if not authenticated then perform malware scanning as taught herein.
  • the downloaded packets are compared with the known virus/malware code and code patterns/sequences. If malware code detected, the file is quarantined and the download is stopped with a notification to the user(s).
  • a file that they malware system has quarantined can only be released with a human challenge signal.
  • an upload signal is awaited by receiving, providing, or entering the name of the upload site.
  • the file to be uploaded is browsed in the client's file system.
  • the malware detection managers automatically gets started scanning the file for any known virus/malware code while placing the scanned packets into the quarantine bin for transmission and eventual receipt.
  • the system completes the upload by releasing the packets from the quarantine bin on the transmit side for sending to an end user and on the receive side for subsequent installation and use by a user, if no malware code bytes are found.
  • the transmit side will detect the virus in is pre-transmission processing and not send the contaminated code to the recipient destination.
  • the receive side may also run a quarantine malware detection algorithm and find something the transmit side missed and quarantine the file at the receiving end of the download operation.
  • the system may detect malware-like packets or data that eventually turn out to be genuine and capable of safe transmission across Internet. In such circumstances, it becomes essential to release those packets that were temporarily quarantined. This is often the case in complex detection sequences. For example, if malware detection needs to see bit sequences A, B, and C in an order and it finds sequence A in a first data packet, it may have to wait for later data packets before definitely determined the lack of the subsequent packets B and C. Therefore, the data packet with sequence A may be temporarily quarantined pending later processing that is used to determine if B and C are present later on other packets. In the case where a packet should be freed up, it becomes essential to release such packets automatically by the system.
  • the malware detection manager embodied this human challenge mechanism.
  • automated processes and machined make mistakes, and it becomes important to release the incoming packet from quarantining when such mistakes do occur, or certain packets they are found genuine by analyzing the associated human challenge authorization on the incoming or outgoing packets.
  • FIG. 2 is a block diagram 201 that functionally illustrates a structure of various components of hardware, software, and malware codes/programs within a client machine of FIG. 1 .
  • a client device can be any electronic device used by a consumer or human user, such as a cell phone, a personal computer (PC), a laptop, a net book, a personal digital assistant (PDA), a smart phone, a workstation, a point of sale device, or other electronic device.
  • a client device 217 , and an Internet server 205 are connected to an Internet backbone 203 (backbone 103 of FIG. 1 , repeated).
  • a Network Browser 209 with a built-in Malware detection manager 219 (which may or may not be a part of the network browser and may contain both hardware and/or software components) is installed as application software running on or in conjunction with an Operating System (OS) 207 .
  • the Malware detection manager 219 scans for malware code as data, software, packets, binary streams and other information is transferred to and from the client device over a network interface 227 .
  • the network interface can be one or more of a wireline interface, wireless interface, optical connection or any other interface for transferring data or information.
  • the Malware detection manager 219 performs the aforementioned virus detection with its constituent components and sub-components: a Virus Detection Module 221 for scanning for virus codes, patterns, logic, and sequences; an Adware Detection Module 223 for blocking pop-up ads and other similar content/data, and a Spyware Detection Module 225 for blocking Spyware scripts that are intended to add and remove information from a client device in a concealed or undesirable manner.
  • Both the OS and any application software installed on the client device are residing in a Non Volatile Memory (NVM) 215 , hard drive memory, or a read only memory (ROM).
  • NVM Non Volatile Memory
  • ROM read only memory
  • System Memory 211 is often static random access memory (SRAM), dynamic random access memory (DRAM), erasable programmable read only memory (EPROM), magnetic memory, optical memory, or other similar memory devices.
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • EPROM erasable programmable read only memory
  • magnetic memory optical memory, or other similar memory devices.
  • the client of FIG. 2 performs the virus detection and quarantining operations previously discussed in conjunction with FIG. 1 .
  • CPUs central processing units
  • DSP digital signal processor
  • GPU graphics processing unit
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • SoC system on a chip
  • MCU microcontroller unit
  • Connection to the external environment, peripherals, and other networks is accomplished through memory and processing circuitry of FIG. 2 communicated through a network communication circuitry block 212 in FIG. 2 .
  • Circuitry block 212 can support any number of communication methods and protocols including wire line, wireless, packet based, high speed serial, optical, encrypted, and like communications.
  • FIG. 3 is a block diagram 301 that illustrates a Client Storage device that is a portion of the NVM 215 or system memory 211 of FIG. 3 .
  • the Client Storage device 309 of FIG. 3 has certain specific programs and system software components residing in it, which emphasizes the formation and definition of the quarantine bin, as a special directory, often within the system memory 211 of FIG. 2 .
  • the Client Storage 309 represents the memory from which OS 307 (OS 207 from FIG. 2 repeated) runs, which is often system memory 211 when the client device is in operation.
  • the user Interface 305 is at least a pop-up window or control panel prompting the user to enter the memory size in bytes for allocating to a quarantine bin for quarantining the scanned packets upon transmission and receipt of data from the client device.
  • the control panel or pop-up window can be used to set isolation or security options for the quarantine space so that the program can engage in active malware detection through use of a virtual machine within the client device 217 of FIG. 2 .
  • the Memory Management Module 303 Upon the user entering the memory size in bytes into the interface 305 of FIG. 3 , the Memory Management Module 303 allocates a memory area for the quarantine bin that can be static or dynamic over time as needs and functionality change.
  • the Network Browser and E-mail Server 309 comprise a User Interface module 305 , and a Malware detection manager 311 for scanning for any malware code that could enter the client device from any download center, from web mails, etc. During the download or receive process or leave the client device as transmitted data. If any malware code is sensed, the tool may continue downloading or transmitting and packets will be permanently quarantined or destroyed or may be released after the download from the quarantine bin on certain conditions, or the download process can be aborted and the data current received or transmitted quarantined or destroyed in part.
  • the process will either be stopped and the packets quarantined or destroyed, or the download or transmission will be completed in a secure quarantine area with the option for a human challenge signal to be processed to release the file from the quarantine bin for a normal file transfer on the network.
  • packets for a given file are scanned and quarantined and released from the quarantine bin after the complete scan once no malware code is found.
  • a file can be released from the quarantine with human challenge authorization or a machine override configured by the user to recognize certain pieces of safe code that sometime inadvertently appear as malware or infected code, but is actually normal code that is not harmful.
  • FIG. 4 is a block diagram, illustrating the configuration of certain hardware and software components and their interaction in a malware detection system 401 .
  • a file transfer to and from the System Memory 413 occurs to or from final storage at NVM 409 or system memory 413 .
  • the receipt or transfer of data, code, or information is coordinated using the Network Browser 415 or other software/applications operating in conjunction with a built-in Malware detection manager 417 using a quarantine bin 407 .
  • the client device in which the system memory 413 resides is communicatively coupled with Other Peripheral devices 411 and the Internet Backbone 403 (similar to backbone 103 of FIG. 1 , repeated) that is also coupled to a Server 405 (similar to server 105 of FIG. 1 , repeated).
  • malware can enter a client device through the Internet
  • various malware codes can also enter a client device through various Input/Output devices coupled to the client device and indicated as Other Peripherals 411 in FIG. 4 .
  • Conventional virus scanning software e.g., Norton utilities, etc
  • the file is placed in the Quarantine Bin 407 which is a secure and isolated part of memory where the residence of viruses or other malware can cause no harm.
  • the transmitted or received code/information can only be released from quarantine if free from malware code or with a human challenge authorization that overrides the positive malware detection of the system.
  • FIG. 5 is a block diagram 501 , illustrating multiple clients 507 - 511 in a client system 512 that have access to a Trusted Download Center 505 where malware free signatures or processes could be attached or associated with each available downloaded file packets, data sets, or applications.
  • the files which are repeatedly downloaded or downloaded by many clients from a trusted download center need not be scanned if they can be certified and maintained in a malware free state with certainty over time.
  • a Support Server 503 communicatively communicates with a database referred to herein as Trusted Download Center 505 .
  • the center 505 authenticates the database or data to be downloaded by a frequent and periodic scanning of the stored files by attaching a Malware Free Signature 515 .
  • a malware signature and process can be used to scan the code to ensure its ‘safe state’ over time while resident on the center 505 , and similar signature codes and software may by provided, copied, resident or accessible by clients to once again verify that what they have received is what was transmitted, a safe malware-free program or set of data.
  • each packets corresponding to that file will carry a copy or some sub-portion of Malware Free Signature 515 .
  • Client System 513 which comprises several client devices, such as Client- 1 507 , Client- 2 509 , and Client-N 511 ), will be analyzed by the Malware detection manager to ensure the authenticity of the Malware Free Signature 515 that is associated with the packets.
  • This Malware Free Signature 515 may be a simple label, with the time, last scanned and the scan status, or may be a complex signature analyzer sequence, encrypted codes, series of checksums, or like verification protocols.
  • the Malware detection manager 115 of FIG. 1 may accept, and save the packets from the quarantine bin without a scan.
  • the system or client may still opt for a local client-side rescan, if desired.
  • a central scanning mechanism is highly efficient as slower transmit rates and computer intensive server and client side scans can be eliminated.
  • FIG. 6 is flowchart 601 that illustrates an operation sequence performed by the Malware detection manager 115 of FIG. 1 , during a repeated download from a Trusted Download Center 505 as illustrated in FIG. 5 .
  • the flowchart 601 illustrates the operation involved in a repeated or simultaneous download from a trusted center of FIG. 5 .
  • Starting at block 603 the process moves to a wait state indicated or started by initiating a Download Signal 605 .
  • the required file to be downloaded will often be prompted for verification to user from the download center.
  • the packets or data pertaining to the selected file start arriving at the client's port through the network communication circuitry of the client device.
  • Each of the packets alone and/or in assembled aggregate is checked for the presence of Malware Free Signature at the decision box 607 , when received by the client (and possibly as transmitted by the center/servers 505 . If the signature is not attached with the packet, the packet undergoes scanning from the quarantine bin at the block Scan for Malware Code 613 as further taught herein, and the packets are released if no malware code is detected, else quarantined. Quarantined files may require human challenge authorization in order to be released.
  • Malware Free Signature is found or a malware free process is available for this download, then at the decision box labeled Malware Free Signature 607 the authenticity of the signature is tested further through subsequent analysis of the signature data at the block Analyze Signature 611 .
  • the packets may be received directly without detailed malware scanning and processing if the affixed signature is valid with right time stamp as processed via the malware code and quarantine bin, otherwise the packet undergoes rescanning looking for the Malware code that may be associated with it. This process is repeated for all the packets pertaining to a file or download, or for all the files waiting the download signal.
  • FIG. 7 is flowchart 701 that illustrates a general sequence of operation performed by the Malware detection manager 115 , of FIG. 1 , during a download process.
  • the user enters the name of the download center, gives the download signal, subsequently check for the trustworthiness of the Download center by checking the authenticity signature before proceeding to download into the quarantine bin (if applicable). If the download center lacks trustworthiness the Malware detection manager will execute malware detection processes on the incoming packets that are initially placed in the quarantine bin for processing.
  • the Internet browser 111 of FIG. 1 enters the state Wait for Browse Signal at 705 .
  • the client device After entering the name of the download site and when the browse signal is issued by the user, the client device will be connected to the download site and enter the state labeled Waits for Download Signal at 707 in FIG. 7 .
  • the packets Upon initiation of the download signal, the packets start arriving. Each packet will be checked for the presence of Malware Free Signature in the decision box 709 while they are being processed through the secure and isolated quarantine memory space. If the packets are authentic with the valid signature provided from a trusted source, they will be fully downloaded and released from quarantine as described in FIG. 6 by entering the state labeled Complete Download 711 .
  • each packet is subjected to the malware scanning for any presence of the malware code bytes, sequences, etc., by entering the state labeled Scan Packets 713 in FIG. 7 .
  • the stream of incoming packets are checked one by one or in assembled forms, as indicated in the decision box 715 , until all of them are quarantined and released, provided no malware bytes are found. If any virus bytes, programs, or sequences are detected after entering the state labeled as decision box 715 , the packets are never released from quarantine bin or are destroyed with a massage displayed to the user and/or transmitting device indicated at the block 717 in FIG. 7 .
  • the file can only be released on human challenge authorization or additional manual scanning which a user can perform with other software to determine if the file is genuine in spite of failing the automated malware detection process.
  • FIG. 8 is flowchart 801 that illustrates a general sequence of operation performed by the Malware detection manager 115 of FIG. 1 during an upload or transmit process.
  • a user enters the name of the upload center and subsequently browses for the file to be uploaded from the file system within or associated with the client device via steps 805 and 807 .
  • the user or the client device initiates the upload signal in a step 809 .
  • the Malware detection manager (see FIG. 1 ) is executed or initiated to scan the packets that are first placed or moved into the quarantine bin via a step 811 .
  • the code, file, or data is released in portions or in an entirety and uploading commences, if none of the packets are infected by any malware code bytes via a step 813 . If at least one packet is seen to be infected, the quarantining will be continued or the file destroyed with a display of a message to the user and the recipient device in a step 815 .
  • the file can only be released for upload operations via a human challenge authorization if the user can determine through other means that the file is genuine and not in fact affected by malware or been purged successfully of the malware before uploading (or downloading as the case may be).
  • the browser After starting at the block Start 803 , the browser enters the state labeled Wait for Browse Signal at 805 .
  • the client After entering the name of the upload site and when the browse signal is issued by the user or a client device, the client will be connected to the upload site and issue a browse the file command on the client file system at the block Browse File System 807 .
  • the file is browsed and opened for upload via the block called Upload Signal 809 , a signal is issued to begin the file upload.
  • the Malware Detection Module 115 of FIG. 1 will be invoked and starts placing and scanning the upload packets in the quarantine bin unless one or more packets are found to be infected by malware code.
  • malware If malware is found and the upload operation compromised, then the system displays a message on this quarantined or restricted file status as indicated at the block Quarantine with Message 815 . From this state the program execution state is returned to wait for Browse Signal 805 state.
  • the quarantined file can often only be released on human challenge authorization as taught herein.
  • FIG. 9 is a flowchart 901 that illustrates a general upload/download sequence of operation with a human challenge authorization option that may be used to release the packets from the quarantine bin that appear like malware code via the Detection Module 115 of FIG. 1 , but are actually safe and legitimate software or data.
  • this feature is useful when two groups interact on the internet and one or both groups are capable of fixing or overriding with new information/analysis various malware related problems.
  • the human challenge authorization is useful during both the upload and the download operations.
  • a malware code is detected in a downloading or uploading packet sequence
  • the packets are quarantined whether or not they are actually infected and packets are only released for completion of the transaction if there is no infection detected or likely.
  • the release of infected packets or packets suspected of infection occurs only with a successful human challenge authorization either during an upload or download operation.
  • the Internet browser 111 of FIG. 1 After starting at the block Start 903 , the Internet browser 111 of FIG. 1 , enters the state illustrated as Wait for Download/Upload Signal 905 , and the browser waits for a download or activation signal to go active.
  • a download signal When a download signal is issued, it is often after a user or client device provides, determines, or enters the name of the download center, at the decision block labeled Download 907 .
  • the Network Browser 111 of FIG. 1 After provision of such information, the Network Browser 111 of FIG. 1 will browse to that site or location. After a user or client device selects the file to download, and on activation of a download signal, the Malware detection manager 115 of FIG. 1 will scan for Malware Code reaching the state, block, or step 911 in FIG. 9 .
  • the packets that were processed in quarantined space are released to main storage (e.g. NVM, main system memory, SRAM, DRAM, hard disk, etc.), as indicated at the block labeled Provide for Download 919 .
  • main storage e.g. NVM, main system memory, SRAM, DRAM, hard disk, etc.
  • the file packets are quarantined in the secure and at least semi-isolated quarantine space taught herein via the state labeled Quarantine with Message 913 in FIG. 9 .
  • a message may be issued to the user working the client device terminal or other interested parties that the quarantine has occurred or that malware was found. If the quarantined packets are processed to clean up the malware issue or are determined to be genuine and malware free even though the malware detection protocol flagged them as suspect then upon reaching the step 915 in FIG. 9 , a human challenge authorization can be issued to release the quarantined download via the block 917 . If the human user or other more rigorous analysis in the quarantine space does not free up the data for malware-free continuation of transmission, then the packets will remain quarantined and/or destroyed, and the download operation will be stopped. At the end of the aforementioned sequence of operation, the Network browser enters back into the state labeled Wait for Download/Upload Signal state 905 to process more transmit, upload, receipt, or download operations.
  • the Browser of FIG. 9 can perform secure malware-scanning upload operations as well.
  • the system begins in a wait state via a block 905 in FIG. 9 .
  • an Upload signal is issued, as shown at the decision block 921 , the state 905 is exited. If there is neither a download nor upload signal, the browser continues to be in the state 905 doing other useful work while waiting for the appropriate signal to be received.
  • the Browser will prompt for browsing to the right file in the client or server File System. Once that file or files is found and accessed for upload, the Malware detection manager 115 of FIG.
  • the malware 1 may start the scanning process either in the current place where the data is stored or in a more secure quarantine space where the data is copied to via the state labeled Browse in the File System and Scan 923 in FIG. 9 .
  • the malware scanning process completes, all the packets are quarantined and released for upload to reach the indicated Quarantine for Upload 927 if they are deemed safe.
  • the packets so affected, or all packets in the download are quarantined and secured to avoid further promulgation and damage from the malware.
  • the file will remain quarantined and the upload will be stopped with a message issued to the user working at the client terminal or other interested parties/computers, on reaching the state labeled Quarantine with Message 929 in FIG. 9 .
  • a human challenge authorization can be issued by the user or a client or server to release the quarantined data for upload via reaching the decision box 931 in FIG. 9 . If malware is detected or seriously suspected, then the packets will be quarantined and the upload will be stopped, and the packets may be deleted or destroyed.
  • the Network browser enters back into the state labeled Wait for Download/Upload Signal state 905 to process more upload or download operations.
  • several work flows can be moving through FIG. 9 at the same time whereby many different upload and download operations may be operating in tandem or parallel under the control or one or several CPUs.
  • FIG. 10 is a flowchart 1001 that illustrates the blocking or downloading of various malware code components, such as adware, spyware, viruses, etc., based on user choices during download process.
  • the browser may offer users several preventative or corrective options via pop-up warnings labeled as “Adware Detected; if you click OK, adware from an ad site will be loaded in a new window, else click CANCEL to abort.” Some downloaded software or cookies will prompt user during installation, e.g., “this software or installation requires your system to send a run time report or data to this server upon any error or upon certain conditions.” If user selects OK, it may become consent for activating spyware on your system and the malware programs taught herein may be overridden to allow that “malware” to be placed on the machine since the user desires to have that “malware” functionality on their machine.
  • these spyware programs may be continually monitored and result in numerous notices to the user to inform the user what the program is doing, and these operations are often invisible or covert whereby the malware program can provide some visibility to its operation to the user for better understanding and protection for the user.
  • this allowed “malware” can sometimes be disabled selectively or enabled selectively only in certain safe or user-approved circumstances once detected, tagged, and continually supervised by the MD module taught herein.
  • Java scripts associated with a web page download may contain a virus and yield a message like “WARNING, a virus has been detected” by the MD module. The system may then prompt the user that a certain virus has been detected in the requested page, upload, or download; and ask the user if they want to select OK and download the program anyway.
  • the MD module will inform the user that the program or client device will monitor the malware or virus and attempt at all times to prevent the virus from harming the user's computer if the user decides to otherwise complete the download. Selecting CANCEL will return the user to a previous page or previous computer state and abort the download attempt, possibly deleting or destroying the data in the quarantine space.
  • the Virus could be cured or disabled automatically with or without user (i.e. human challenge) authorization by placing instructions into the client or server device for doing so via the MD Database or via code made part of the operation of a specific Comparison Agent.
  • the process enters into a wait for download state at a step 1005 .
  • the client may download the “malware” and allow it to be fully installed on the client device with optional monitoring protection if OK is clicked by a user or the malware is properly limited in functionality or reduced in harm by software in the MD module via a step 1013 .
  • the MD manager will stop the adware transmission portion of the transaction and attempt to continue by entering the state 1009 .
  • the process of transmission and download/upload continues, then the process continues and looks for any spyware content in the download.
  • the MD module may allow the data to be downloaded and used in the client device, subject to possible oversight and special harm-prevention processing by the MD module from that time forward.
  • the client device will cancel the download of the spyware but attempt to continue to download to an ongoing partial degree.
  • the process looks for any virus code and provides a warning to the user if such code is found. If the user selects OK as an indication that the user wants to accept the virus and continue the download the MD module will attempt to file, process, modify, limit, or cure the virus or otherwise disable it or reduce their functionality at the block 1017 and continue the download.
  • the process will stop virus download or kill the download in its entirety and go back to the wait state at block 1005 . It is important to note that in some cases, an adware, spyware, or virus cannot be separated from the underlying normal code without destroying or changing the operation or purpose of that underlying normal code. In that case, if the user decides to try to remove or limit the malware and such processing is not possible without destroying the underlying program or data, then the MD module will so not this to the user and recommend to the user that the whole transmission be terminated and purged from quarantine space.
  • FIG. 11 is a block diagram 1101 that illustrates a more general method of malware detection, based on parallel processing of malware code detection, using a Malware Detection (MD) functionality module.
  • the Malware Detection functionality could be a first come, first served type engine that analyzes a full file only after it has been completely downloaded. Once that file has been verified as malware free, this type of engine would turn attention to the next file that was received (starting at either the beginning of download time or the download completed time).
  • the Analysis would be to compare the file against one or more known Malware byte sequences, logic, and constructs from a malware database.
  • the Internet backbone 1103 (backbone 103 of FIG. 1 , repeated) is communicatively coupled with the network browser 1125 in FIG. 11 .
  • the network browser resides in NVM 1127 and/or other system memory of the client device.
  • the network browser 1125 comprises MD manager 1111 as the main module that implements the MD functionality.
  • a plurality of comparison agents (CA) 1105 , 1107 , and 1109 operate in conjunction with a plurality of MD logic modules 1113 , 1115 , and 1117 to do the comparison for known malware code bytes from the MD database 1121 with the upload/download files placed temporarily into the quarantine bin 1119 for malware processing.
  • CA comparison agents
  • the file will be treated as infected while in the quarantine space and being processed, and if the CA and MD logic pairs find any form of malware code, then the file will be isolated in the quarantine space permanently, destroyed, or kept until released by a human intervention or via the infected file being repaired or isolated from the normal code that is being transmitted through the quarantine bin.
  • a typical web browser is modified to integrate a quarantine location/process into the download path before receipt for display by the html engine.
  • the Malware Detection functionality could be made more efficient than first come first serve in several ways. First, it could operate faster by analyzing the file's bit stream as it is received, rather than serially after it is downloaded. Second, it could be made to parallel process an incoming stream or streams of data. This could be done by having an agent launched or dedicated to each pending file downloaded or multiple agents assigned to a single file whose download is in progress, and/or many comparison agents and logic could be assigned simultaneously to a single data stream so massive checking of malware on a single stream occurs in parallel over time.
  • a user is may want to start or view a web page on a web browser, and the content via that web page should be displayed only after it has been analyzed and concluded to be malware free.
  • the user decides to click on a link and trigger the Malware Detection process as the page is transmitted.
  • all elements and separate content to be downloaded are “intercepted” (even before they are saved to disk and most likely even before they are requested) and compared for malware using the Malware database and process.
  • a web page may present text before pictures and pictures before video as it takes time to parallel process, maybe through different malware algorithms, all the content coming to the client device.
  • operably coupled and “communicatively coupled,” as may be used herein include direct coupling and indirect coupling via another component, element, circuit, or module where, for indirect coupling, the intervening component, element, circuit, or module may modify the information of a signal or may adjust its current level, voltage level, and/or power level.
  • inferred coupling i.e., where one element is coupled to another element by inference
  • inferred coupling includes direct and indirect coupling between two elements in the same manner as “operably coupled” and “communicatively coupled.”
  • the embodiments taught herein are discussed with respect to the Internet backbone, the embodiments taught herein can be used on any network, the Internet, intranet, personal area network (PAN), local area network (LAN), wide area network (WAN), WiMax, WiFi, cellular or other wireless technology, CDMA, optical, or any other network.
  • PAN personal area network
  • LAN local area network
  • WAN wide area network
  • WiMax WiFi
  • cellular or other wireless technology CDMA, optical, or any other network.
  • malware code scans in response to transmission or receipt of data, wherein the data often is processed at the request of a web browser or like software.
  • the data is quarantined while being scanned or simulated in a safe environment and then released to the computer if no malware or malware operation is detected. Therefore, while this software can be used to replace commercial virus software like Norton Utilities, etc., it need not do so. While it is logical that a machine that is malware free should remain malware free if all data coming into and out of the device over time is scanned, it doesn't hurt the system to maintain commercial virus scans in addition to the algorithms taught herein so that routine (nightly or weekly) scans are performed to ensure safe operation of a computer.
  • a human authorization or intervention is taught herein.
  • a notice is provided to the user as a pop-up window or through another method.
  • the software and hardware taught herein may be programmed to actually augment, add to, or change the html or xml code flowing into the browser of the system. For example, assume that the user requests viewing of a CNN news page on his browser. This page may contain 3 video links/windows, 4 advertisements, 10 pictures, or graphics, 12 other links and several text areas. The system may detect that malware is encountered if one video is watched, 1 advertisement is clicked or one of the 12 other links are followed.
  • the program may change (either through adding, deleting, or modifying text, pictures, colors, or other indicia) the actual browser-displayed content to indicate to the user the presence of the malware, where it is located, what it's dangers are, corrective measures, and/or other notices.
  • the browser may also be programmed to not allow the user to click or enable that malware infected content, at least until a human notice and override can be processed intelligently by the user.

Abstract

A network browser has a Malware detection manager for direct or indirect scanning of files during an upload or download processes for viruses, adware, spyware, etc. The malware detection manager defines and employs a quarantine bin, which is an isolated and secure memory space or directory for temporary placement of file packets during the file transmission while malware detection can commence. The malware detection manager scans for malware code associated with the packet sequence encountered during a file transmission to and from the Internet, during which it quarantines all the scanned packets in the quarantine bin. Quarantined files can be released if there is a human challenge authorizing the release of the file. Exchanging a Malware free signature between server and client via a trusted download center may be done so the client device need not scan the files for malware if content is certified and guaranteed as malware-free.

Description

    CROSS REFERENCES TO PRIORITY APPLICATIONS
  • The present application is a continuation of U.S. utility application Ser. No. 12/372,413 filed Feb. 17, 2009, co-pending, which claims priority under 35 U.S.C. 119(e) to U.S. Provisional Application Ser. No. 61/052,521, filed May 12, 2008, now expired, both of which are incorporated herein by reference in their entirety for all purposes.
  • BACKGROUND
  • 1. Technical Field
  • The present invention relates generally to browsing in an Internet infrastructure; and more particularly to a malware and viruses detection.
  • 2. Related Art
  • The infiltration of viruses into computing devices over the Internet is a serious security threat. The virus code, herein called as malware code, comprises all type of malicious code targeted for damaging the file system of a computer and, in addition, negatively impact the performance of the computing devices and the speed of the Internet access. Some type of viruses replicate on their own and propagate causing flooding of packets on the net, thereby crippling an Internet service, or causing a denial of service problem.
  • Often, files are transferred between computers or downloaded from a server to a client device. Various file transfers to and from a client device may also take place from other peripheral devices connected directly to the client device and the client device. In both situations, there is a possibility of loss of files, system crash, network service degradation, etc., caused by viruses, Trojans, or other malware embedded in the files being transferred. The blocking of worms, adwares, spyware, etc., which constitutes the malware code, embedded in files that are transferred, is imperative for most computer users, but effective blocking of malware has always been a challenge.
  • Some browsers that are available in the market provide mechanisms to block “pop up ads,” and associated spyware. Some browsers have “adware blocking software” integrated into their feature set, but these are often not fully effective to the extent required by most users. On the other hand, currently available conventional anti-virus software such as Norton, McAfee and others tools do exist. However, these anti-virus protection programs are not adequate or effective in blocking some malware codes that sneak into the system through various means.
  • In general, there are many software tools available for implementing security features via Internet servers and in client devices that are connected to them over an Internet backbone. The current features of virus detection tools available on these servers are inadequate in protecting the servers and the clients connected to them, especially taking into consideration the ever-increasing and changing security threats and mounting end-user access requirements. The typical virus detection tools that reside in the storage media of the servers, and in general, in all computing devices, scan for viruses based on certain preset scanning options, such as manual scan or periodic automatic scan. These virus detection tools can also repair, to some extent, the files damaged by virus infection. If the files are irreparable, they are sometimes quarantined and the user is notified.
  • Periodic virus scanning in a computer (such as a PC or a server), as is often conducted by virus scanning tools, is of limited use. Running the virus tool post facto on the computer storage to detect viruses and other malware is one of major drawback of the current virus tools. The infiltration of malware code into a computing device takes place during the file transfer from the internet or from the peripheral devices, and sometimes, the scanning for viruses after the file transfer has taken place it too little too late.
  • Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with the present invention.
  • BRIEF SUMMARY OF THE INVENTION
  • The present invention is directed to apparatus and methods of operation that are further described in the following Brief Description of the Drawings, the Detailed Description of the Invention, and the claims. Other features and advantages of the present embodiments and invention will become apparent from the following detailed description of the invention made with reference to the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a perspective diagram of a network having a server and a plurality of clients, wherein the clients are communicatively coupled to the server over an Internet backbone, and wherein the clients comprise a malware detection module built into a network browser;
  • FIG. 2 is a block diagram, functionally illustrating a structure of various components of hardware and software including a malware detection manager within a client machine for purpose of implementing file security;
  • FIG. 3 is a block diagram illustrating a client storage device with relevant programs and system software components residing in the client storage device;
  • FIG. 4 is a block diagram illustrating the configuration of various hardware and software components along with a quarantine bin and their interaction;
  • FIG. 5 is a block diagram illustrating multiple clients that are visiting a Trusted Download Center that has malware free signature authentication, according to one embodiment;
  • FIG. 6 is flowchart illustrating an operation sequence performed by a malware detection manager, during a repeated visit to a trusted download center, according to one embodiment;
  • FIG. 7 is flowchart illustrating a general sequence of operations performed by a malware detection manager, during the download process, according to one embodiment;
  • FIG. 8 is flowchart illustrating a general sequence of operations performed by a malware detection manager, during the upload process, according to one embodiment;
  • FIG. 9 is a flowchart illustrating a general upload/download sequence of operations with human challenge authorization for the release of genuine packets, according to one embodiment;
  • FIG. 10 is a flowchart illustrating the blocking or downloading of various malware code components, such as adware, spyware, virus, etc., based on user choice during a download process; and
  • FIG. 11 is a block diagram illustrating a more general method of malware detection, based on parallel processing of malware code detection, using a Malware Detection (MD) functionality module.
  • DETAILED DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a perspective diagram of a network 101 having a server 105 and a plurality of clients 171-173, wherein the clients 171-173 are communicatively coupled to the server 105 over an Internet backbone and wherein the clients 171, 173 comprise a malware detection module 115 built into a network browser 111 which can comprise hardware and/or software components and functionality. The Internet backbone 103 communicatively couples the server 105 and the clients 171-173 while users of the clients 171-173 access information over the Internet 103, such as webpages and other content, provided by the server 105. It is important to note that FIG. 1 is greatly simplified and that many servers and client devices are coupled to the Internet or routinely coupled in intranets or networks.
  • In FIG. 1, the client devices 171-173 comprise the network browser 111 that enables the web browsing, uploading, and downloading of files, connection to web mail, etc. In other embodiments, the server 105 may contain the browser or some portion of it, especially when the client devices are dumb terminals, thin clients, or other similar devices. During Internet browsing, certain malware code may attempt to infiltrate into the clients 171-173 along with other desirable file packets or data, thereby putting the clients 171-173, server 105, and other computers on the Internet in danger. The malware code typically attempts to destroy files, impede functionality, slow performance, engage in unwanted computer activity, or harm the computing device. Some forms of malware code are viruses, spam, worms, executables, etc., that result in the junk traffic to and from your computer. Other forms of malware such as adware, spyware, etc., may not be directly harmful to a computer but are often unwelcome and unsolicited by a user or engage in unwanted activity or snooping on a computer, and therefore need to be blocked. Also, the form of a computer is constantly changing. Today, computers can take the form of televisions, set top boxes, game machines, servers, mobile devices, wireless routers, security devices, commercial equipment, appliances, automobile controllers, industrial controls, and any other number of functions, form factors, and uses. Therefore, the pervasive and extensive use of computers in many different devices and markets makes malware detection and prevention even more important, and sometimes more difficult.
  • FIG. 1 shows a malware-scanning module that is provided in the form of a network browser 111 that comprises the malware detection module 115. In accordance with the present invention, a malware detection module 115 built into the network browser makes it possible to automatically scan every packet sequence that is uploaded or downloaded to or from the computer or client device for the presence of malware code. The presence of malware code is detected employing one of several possible ways, such as detecting signatures of the malware in files. For example, if a certain sequence, pattern, or set of malware code bytes is detected during the uploading or downloading of files, the associated operation involving the malware code is stopped and the file downloaded is put in a quarantine bin. Thus, a browser uses a quarantine bin in a restricted directory on client storage for testing for malware before delivering the data to the browser and/or elsewhere in the client system storage.
  • Instead of quarantining the entire download if malware is detected, the quarantine might only be required on a certain packet, video frame, or data subset, performed on a packet-by-packet basis or in some other division. Such a selective or partial quarantining is useful in the situation where a malware component is embedded in a long string or data or media, such as a movie or a music download. Such a partial segregation or quarantining can allow a user to complete a large portion of the operation with only partial loss of content that may even go unnoticed by a user. However, in other cases or embodiments, the presence of malware code may indicate that the entire media (e.g., the entire download, movie, MP3 file, etc) is corrupt or suspect and should be quarantined from the system. Analysis also includes Java code inspected for malware characteristics; virus signatures; pop-up scripts, etc. The detection software can quarantine every download as it is received until it has concluded that the download is complete and safe. This includes all web page downloads as well, and in fact, anything that flows through the communication pathway can be isolated in a safe memory space isolated from certain critical hardware, software, and operating system (OS) space/access until it can be scanned and be determined to be safe. If a virus is detected, the download can continue in full with the contents of the full download being quarantined and never being released except with a human challenged authorization. In another embodiment of the present invention, on detecting the virus code, the download could be discontinued and the partially delivered file quarantined. Quarantine and delivery completion could restart, continue, or reoccur after human challenge authorization in special cases.
  • Similarly, the detection software can process every upload either analyzing the entire upload file in advance or the byte sequence as it is being transmitted from the client device. If a sequence, pattern, or set of data is confirmed as comprising a virus, the upload delivery will be prevented or terminated with a notification message to the user and possibly the recipient device(s); along with the quarantining or clean-up of the infected file on the client device. Upstream and downstream both may involve “human challenges”, where if a human challenge is successful at one and/or both the receiving and transmitting side, the content may be sent once the challenges are confirmed whereby the operation, data, or download will be unlocked from quarantine and the delivery finished. Memory for the quarantine bin can be allocated interactively by the operating system using normal memory garbage collection routines and algorithms or the quarantine space can be set by prompting the user for the required number of bytes through a pop up window. Alternatively, the size and extent of isolation of the quarantine area may be set up in the control panel of a PC or a similar control construct within the client device. The quarantine space need not be fixed in size and level of isolation. In some cases, the performance of the system and/or the needs of the quarantine space can result in the quarantine space being dynamically adjusted up and down in size or up or down in the amount of isolation it is experiencing. In some cases, the quarantine space will contain content that needs to be kept from certain data or resources or be allowed to access certain data or resources to evaluate, detect, and/or possibly correct the malware influence. In these cases, the quarantine space level of isolation may be adjusted as the client device determines the risk or needs associated with certain access or lack thereof. In the case where the user can enter or influence the size of the quarantine space, the user can enter the required number of bytes, kilobytes, megabytes, gigabytes, etc., as per the requirement. This user-set size feature is helpful when the storage space is limited, in embedded or specialized systems, for an optimum utilization of the storage resources.
  • Accordingly, when the files are downloaded or uploaded as a sequence of packets, the tool caches and scans the packets coming in for all known malware code bytes while quarantining the files as required for security of the system until malware detection can complete. The files can be released from the quarantine bin upon two conditions; first, if the system determines that the packets are clean not infected by any malware, and second, upon a successful human challenge authorization if malware is believed to be found. The built-in malware detection manager that is found within the web browser also has the capability to analyze the authenticity signature that is affixed to each packets downloaded from a trusted site. Repeated downloads by several clients from such trusted sites save lot of scanning time for malware code by each clients because in certain cases the authentic signature allows the module 115 to streamline or bypass certain detection algorithms and processes with confidence that nothing is being missed or compromised. Executable, data, content, or other inputs and possible outputs to and from other peripherals connected to the client machines are also similarly scanned during each file read/write operations, processed through the quarantine bin, and cleared or isolated permanently the malware detection manager as required.
  • A reliable method for blocking malware code and corrupt data along with the ability to provide notice messages to affected machines or users is useful over the Intranet or other networks. This processing makes not only the computing devices free from malware, but the whole internet infrastructure free from malware on both the receive and transmit sides of the connection, and hence enhance network performance or services.
  • In one embodiment, the malware detection manager is built into the web browser itself. The files are scanned and permanently quarantined or repaired as possible during their transmission to or from the computing device before they are placed into fully accessible and functional memory or OS space of the recipient device. As a result, the malware code will not propagate to and from the computing devices. The mechanism of scanning and quarantining the incoming or outgoing packets real time into a quarantine bin during receipt and transmission allows malware to be detected, corrected, or eliminated before it is placed on a computer system in a place that can cause immediate damage or trouble. If the packets are free from any malware code bytes, they are released from the temporary quarantine to complete the transfer, otherwise that code/content is never released or a correction attempt is made before transmission is allowed to fully complete. In some cases, a human challenge authorization may release the file from the quarantine bin, if the user believes that the packets seem to be genuine. The quarantine bin is special directory set up for the purpose of security of the computing device in its storage area, and it may be possible to program the quarantine bin to allow human override in certain circumstances, especially if detection of the malware is uncertain or the malware is not likely to be of the type that causes serious damage or trouble with the client device or other devices on the Intranet.
  • The Malware Detection functionality described above may be described as a series of modules herein. In one embodiment, the modules comprise an MD (malware detection) Manager, one or a plurality of Comparison Agents (that may each be launched by the MD Manager to deal with an incoming file stream or file stream portion), and a single MD Database. Basically the MD Manager assigns to a Comparison Agent a file stream or file stream portion (e.g., when the file is big and an agent is or will be falling behind the amount of the file still in quarantine). Also, multiple comparison agents can be active on the same or a different stream of data at the same time, thereby allowing parallel processing or multi-CPU-core application to the task of malware detection as taught herein. The Comparison Agent performs the malware detection analysis through interaction with the common MD Database and by scanning the data stream(s). The MD Database not only stores known malware bit sequences, but also provides for more complex detection through MD logic that may supplement one of the known malware bit sequence entries. In another embodiment, the MD Database may launch a more complex comparison agent that can set up a virtual machine within the quarantine space with virtual access to system resources. In this safe and isolated ‘fake” environment, the MD Database may launch the downloaded content, executable, or data and monitor its progress. If the launched code engages in behavior that is detected to be a sign of malware (e.g., sending mass amounts of emails with bad content, inappropriately processing on the hard drive, etc., then the program can determine the presence of malware even if a bit detection sequence is missed or a new virus with a new bit pattern is generated. In other words, many different manners of detecting malware can be employed, from bit scanning to find viral or malware patterns that are known, or setting up a safe quarantines virtual machine and launching the application that is being downloaded and monitoring its performance for unexpected activity, or other means. However, most malware can be detected by matching a single bit sequence stored in a single MD Database entry to the downloaded data stream. However, some malware may require even more complex analysis defined by MD Logic stored in the MD Database than a simple single compare and verify operation. The logic, for example, may require that 4 malware bit sequences (stored in 4 MD Database entries) be found in a single file in a certain sequence, relationship, or locations before a conclusion that malware exists can be made. Thus, each MD Database is arranged to store MD Logic entries that each have one or more associated MD bit sequences entries. Each Comparison Agent retrieves and executes the MD Logic that instructs the Comparison Agent on how to process its comparisons using the particular associated MD bit sequences. Simple MD Logic will merely identify a substantially large number of associated MD bit sequences that, when a single match is found, a conclusion that malware exists, can be made. More complex MD Logic may require that a single file must match three separate bit sequences (MD bit sequences from the MD Database) in a single file. Another complex MD Logic entry may, for example, require “either a first MD bit sequence or a second MD bit sequence AND a third MD bit sequence subsequent thereto” must be found). These are just examples, there are other logically verification sequence that may be performed to detect the presence of certain malware, viruses, or other unwanted code/data/functions.
  • The quarantine and malware detection functionality are most likely integrated into the typical browser directly or through add-on functionality, such as through a software plug-in or expansion pack.
  • Malware detection could be running on quarantined items as they are received or may be processed only after the entire download occurs and is the entire content is placed into quarantined memory for malware processing. In one example, the quarantining would provide either a tagged file or folder that is locked/secure and cannot be displayed by the browser or executed by the browser or the host. The software in the tagged file or locked folder has no way to be operated on or gain access to anything other than the Malware Detection functionality, and has limited or no access to operating system (OS) calls or system peripherals or resources (Internet, hard drive, main memory, GPU card, etc). This can be accomplished using windows locking functionality, or potentially more effective, by applying a local, private key function (XOR) on anything downloaded before storage into the quarantine. Releasing from quarantine would involve application of the local key function in reverse, e.g., another XOR application of the local private key. Of course, in another embodiment as previously discussed, the tagged file or locked folder could be structured to appear like a normal PC or a virtual machine with OS access, peripheral access, application access, etc., where in reality, the system does not have such access. This virtual environment can be used as an executable test ground for downloaded content to detect harmful functionality even if a bit stream comparison or other algorithm fails to find a known virus. This virtual machine method of testing for malware is useful in detecting new viruses that may not have been processed to create MD bit sequence comparisons yet.
  • Malware Free Signatures may be created such that repeated visits to same unchanged sites do not require the same analysis over and over again. Such a trusted site may periodically authenticate the file system on the download center with a time stamp indicatively of last time that it got scanned for malware code and certify/guarantee that no new code or changes were made to the code since the last scan/check was conducted. Such signatures might be produced by a trusted and up-to-date source so that repeated analysis for the presence of the malware code by other users need not occur on code that was previously determined to be “malware free.” Furthermore, codes, checksums, error detection/correction, signature analyzers, linear feedback shift register processing, and similar methods may be used to verify that the code has not been changed since its last malware scan, thereby ensuring that covert changes in the code without the author or owners knowledge cannot occur within the code/system. With such an approach, a web page or download might be delivered with an accompanying guaranteed signature from the trusted download center to be free of any malware, i.e., with a signature from the trusted source with every packet. And, the checksum, codes, etc that can verify it was not contaminated in transit can also be passed on in a secure manner to ensure that what was send and free of malware was actually received in the same state and not contaminated along the transmission path. With several clients visiting such trusted site and not having to scan the packet/data, there is a significant savings on scan time/processing in accordance with this embodiment. And, this approach is simple to execute to the point of ensuring that malware free code has been provided by checking each packet for the signature, checksum, etc., with an appropriate encrypted validation code or time stamp. Even if the requirement is met in terms of the level of authenticity and the time last scanned, the client device may still decide to rescan the downloaded data for confirmation of the lack of malware or proceed with the send/receive operation without doing such additional scanning.
  • In one embodiment, any download process is initiated with a signal. This signal is initiated or issued in response to the user in the web browser window entering the name of the site to be visited for download, or via the user clicking or initiating a download operation. Subsequently, the user may browse to a download center, check for trustworthiness of the center in terms of the authenticity signature, proceed to download, engage in authentication of the download for malware-free indications, and if not authenticated then perform malware scanning as taught herein. During the scanning process, the downloaded packets are compared with the known virus/malware code and code patterns/sequences. If malware code detected, the file is quarantined and the download is stopped with a notification to the user(s). A file that they malware system has quarantined can only be released with a human challenge signal. Similarly during upload, an upload signal is awaited by receiving, providing, or entering the name of the upload site. Often thereafter, the file to be uploaded is browsed in the client's file system. Upon browsing and opening of the file, the malware detection managers automatically gets started scanning the file for any known virus/malware code while placing the scanned packets into the quarantine bin for transmission and eventual receipt. The system completes the upload by releasing the packets from the quarantine bin on the transmit side for sending to an end user and on the receive side for subsequent installation and use by a user, if no malware code bytes are found. Meaning, in some cases the transmit side will detect the virus in is pre-transmission processing and not send the contaminated code to the recipient destination. In other cases, the receive side may also run a quarantine malware detection algorithm and find something the transmit side missed and quarantine the file at the receiving end of the download operation.
  • In one embodiment, during upload and download operations the system may detect malware-like packets or data that eventually turn out to be genuine and capable of safe transmission across Internet. In such circumstances, it becomes essential to release those packets that were temporarily quarantined. This is often the case in complex detection sequences. For example, if malware detection needs to see bit sequences A, B, and C in an order and it finds sequence A in a first data packet, it may have to wait for later data packets before definitely determined the lack of the subsequent packets B and C. Therefore, the data packet with sequence A may be temporarily quarantined pending later processing that is used to determine if B and C are present later on other packets. In the case where a packet should be freed up, it becomes essential to release such packets automatically by the system. In other cases, it becomes important to flag questionable content for human review or special machine intervention and processing, and this processing may require human challenge authorization for certain packets before freeing them for transmission across the Internet. In one of the embodiment according to the present invention, the malware detection manager embodied this human challenge mechanism. Sometimes, automated processes and machined make mistakes, and it becomes important to release the incoming packet from quarantining when such mistakes do occur, or certain packets they are found genuine by analyzing the associated human challenge authorization on the incoming or outgoing packets.
  • FIG. 2 is a block diagram 201 that functionally illustrates a structure of various components of hardware, software, and malware codes/programs within a client machine of FIG. 1. In FIG. 2, a client device can be any electronic device used by a consumer or human user, such as a cell phone, a personal computer (PC), a laptop, a net book, a personal digital assistant (PDA), a smart phone, a workstation, a point of sale device, or other electronic device. According to one embodiment, a client device 217, and an Internet server 205 are connected to an Internet backbone 203 (backbone 103 of FIG. 1, repeated). On the Internet, the malware code will get originated from some of the client machine that maliciously targeting other's files and resources on other client machines. In one embodiment, a Network Browser 209 with a built-in Malware detection manager 219 (which may or may not be a part of the network browser and may contain both hardware and/or software components) is installed as application software running on or in conjunction with an Operating System (OS) 207. The Malware detection manager 219 scans for malware code as data, software, packets, binary streams and other information is transferred to and from the client device over a network interface 227. The network interface can be one or more of a wireline interface, wireless interface, optical connection or any other interface for transferring data or information. The Malware detection manager 219 performs the aforementioned virus detection with its constituent components and sub-components: a Virus Detection Module 221 for scanning for virus codes, patterns, logic, and sequences; an Adware Detection Module 223 for blocking pop-up ads and other similar content/data, and a Spyware Detection Module 225 for blocking Spyware scripts that are intended to add and remove information from a client device in a concealed or undesirable manner. Both the OS and any application software installed on the client device are residing in a Non Volatile Memory (NVM) 215, hard drive memory, or a read only memory (ROM). When OS components 207 and the Network Browser and Other User Applications 209 are run by malware detection logic and a comparison agents taught herein, they are copied to System Memory 211, which is communicatively coupled to NVM 215 within a Client Machine 217. System memory 211 is often static random access memory (SRAM), dynamic random access memory (DRAM), erasable programmable read only memory (EPROM), magnetic memory, optical memory, or other similar memory devices. The client of FIG. 2 performs the virus detection and quarantining operations previously discussed in conjunction with FIG. 1. The processing circuitry 213 of FIG. 2 is one or more central processing units (CPUs), a digital signal processor (DSP), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a multi-core device, a system on a chip (SoC), a microcontroller unit (MCU), or other logic that can execute software move data or perform other management functions within FIG. 2. Connection to the external environment, peripherals, and other networks is accomplished through memory and processing circuitry of FIG. 2 communicated through a network communication circuitry block 212 in FIG. 2. Circuitry block 212 can support any number of communication methods and protocols including wire line, wireless, packet based, high speed serial, optical, encrypted, and like communications.
  • FIG. 3 is a block diagram 301 that illustrates a Client Storage device that is a portion of the NVM 215 or system memory 211 of FIG. 3. The Client Storage device 309 of FIG. 3 has certain specific programs and system software components residing in it, which emphasizes the formation and definition of the quarantine bin, as a special directory, often within the system memory 211 of FIG. 2. According to one embodiment, the Client Storage 309 represents the memory from which OS 307 (OS 207 from FIG. 2 repeated) runs, which is often system memory 211 when the client device is in operation. The user Interface 305 is at least a pop-up window or control panel prompting the user to enter the memory size in bytes for allocating to a quarantine bin for quarantining the scanned packets upon transmission and receipt of data from the client device. In addition, as previously discussed, the control panel or pop-up window can be used to set isolation or security options for the quarantine space so that the program can engage in active malware detection through use of a virtual machine within the client device 217 of FIG. 2. Upon the user entering the memory size in bytes into the interface 305 of FIG. 3, the Memory Management Module 303 allocates a memory area for the quarantine bin that can be static or dynamic over time as needs and functionality change. In one embodiment, the Network Browser and E-mail Server 309 comprise a User Interface module 305, and a Malware detection manager 311 for scanning for any malware code that could enter the client device from any download center, from web mails, etc. During the download or receive process or leave the client device as transmitted data. If any malware code is sensed, the tool may continue downloading or transmitting and packets will be permanently quarantined or destroyed or may be released after the download from the quarantine bin on certain conditions, or the download process can be aborted and the data current received or transmitted quarantined or destroyed in part. In another embodiment, the process will either be stopped and the packets quarantined or destroyed, or the download or transmission will be completed in a secure quarantine area with the option for a human challenge signal to be processed to release the file from the quarantine bin for a normal file transfer on the network.
  • During the upload or send process, packets for a given file are scanned and quarantined and released from the quarantine bin after the complete scan once no malware code is found. During both download and upload processes, a file can be released from the quarantine with human challenge authorization or a machine override configured by the user to recognize certain pieces of safe code that sometime inadvertently appear as malware or infected code, but is actually normal code that is not harmful.
  • FIG. 4 is a block diagram, illustrating the configuration of certain hardware and software components and their interaction in a malware detection system 401. According to one embodiment, a file transfer to and from the System Memory 413 occurs to or from final storage at NVM 409 or system memory 413. The receipt or transfer of data, code, or information is coordinated using the Network Browser 415 or other software/applications operating in conjunction with a built-in Malware detection manager 417 using a quarantine bin 407. The client device in which the system memory 413 resides is communicatively coupled with Other Peripheral devices 411 and the Internet Backbone 403 (similar to backbone 103 of FIG. 1, repeated) that is also coupled to a Server 405 (similar to server 105 of FIG. 1, repeated). While malware can enter a client device through the Internet, various malware codes can also enter a client device through various Input/Output devices coupled to the client device and indicated as Other Peripherals 411 in FIG. 4. Conventional virus scanning software (e.g., Norton utilities, etc) becomes redundant if the Malware detection manager 417 is built into Network Browser 415 (similar to browser 111 of FIG. 1, repeated) and performs the function of scanning the files from Other Peripherals 411. During the download, transmit, and malware scan, the file is placed in the Quarantine Bin 407 which is a secure and isolated part of memory where the residence of viruses or other malware can cause no harm. The transmitted or received code/information can only be released from quarantine if free from malware code or with a human challenge authorization that overrides the positive malware detection of the system.
  • FIG. 5 is a block diagram 501, illustrating multiple clients 507-511 in a client system 512 that have access to a Trusted Download Center 505 where malware free signatures or processes could be attached or associated with each available downloaded file packets, data sets, or applications. In one embodiment, the files which are repeatedly downloaded or downloaded by many clients from a trusted download center need not be scanned if they can be certified and maintained in a malware free state with certainty over time. A Support Server 503 communicatively communicates with a database referred to herein as Trusted Download Center 505. The center 505 authenticates the database or data to be downloaded by a frequent and periodic scanning of the stored files by attaching a Malware Free Signature 515. A malware signature and process can be used to scan the code to ensure its ‘safe state’ over time while resident on the center 505, and similar signature codes and software may by provided, copied, resident or accessible by clients to once again verify that what they have received is what was transmitted, a safe malware-free program or set of data. When a file is downloaded from such a download center in one embodiment, each packets corresponding to that file will carry a copy or some sub-portion of Malware Free Signature 515. These packets, upon arrival into a Client System 513 (which comprises several client devices, such as Client-1 507, Client-2 509, and Client-N 511), will be analyzed by the Malware detection manager to ensure the authenticity of the Malware Free Signature 515 that is associated with the packets. This Malware Free Signature 515 may be a simple label, with the time, last scanned and the scan status, or may be a complex signature analyzer sequence, encrypted codes, series of checksums, or like verification protocols. Upon reading this information and any possible software needed to do the scanning, the Malware detection manager 115 of FIG. 1, on a client device, may accept, and save the packets from the quarantine bin without a scan. In other embodiments, even if a signature 515 and associated process determines that no malware could be present due to the pre-scanned and unchanged state of the software/data downloaded, the system or client may still opt for a local client-side rescan, if desired. When several Clients connect to one download center for repeated downloads, such a central scanning mechanism is highly efficient as slower transmit rates and computer intensive server and client side scans can be eliminated.
  • FIG. 6 is flowchart 601 that illustrates an operation sequence performed by the Malware detection manager 115 of FIG. 1, during a repeated download from a Trusted Download Center 505 as illustrated in FIG. 5. The flowchart 601 illustrates the operation involved in a repeated or simultaneous download from a trusted center of FIG. 5. Starting at block 603 the process moves to a wait state indicated or started by initiating a Download Signal 605. Upon receiving a download signal and after entering the name of the download center in the Network Browser 111, of FIG. 1, the required file to be downloaded will often be prompted for verification to user from the download center. When the required file is selected and verified for download and the Download Signal is received at block 605, the packets or data pertaining to the selected file start arriving at the client's port through the network communication circuitry of the client device. Each of the packets alone and/or in assembled aggregate is checked for the presence of Malware Free Signature at the decision box 607, when received by the client (and possibly as transmitted by the center/servers 505. If the signature is not attached with the packet, the packet undergoes scanning from the quarantine bin at the block Scan for Malware Code 613 as further taught herein, and the packets are released if no malware code is detected, else quarantined. Quarantined files may require human challenge authorization in order to be released.
  • If the Malware Free Signature is found or a malware free process is available for this download, then at the decision box labeled Malware Free Signature 607 the authenticity of the signature is tested further through subsequent analysis of the signature data at the block Analyze Signature 611. The packets may be received directly without detailed malware scanning and processing if the affixed signature is valid with right time stamp as processed via the malware code and quarantine bin, otherwise the packet undergoes rescanning looking for the Malware code that may be associated with it. This process is repeated for all the packets pertaining to a file or download, or for all the files waiting the download signal.
  • FIG. 7 is flowchart 701 that illustrates a general sequence of operation performed by the Malware detection manager 115, of FIG. 1, during a download process. According to one embodiment, the user enters the name of the download center, gives the download signal, subsequently check for the trustworthiness of the Download center by checking the authenticity signature before proceeding to download into the quarantine bin (if applicable). If the download center lacks trustworthiness the Malware detection manager will execute malware detection processes on the incoming packets that are initially placed in the quarantine bin for processing.
  • After starting at the block Start 703, the Internet browser 111 of FIG. 1, enters the state Wait for Browse Signal at 705. After entering the name of the download site and when the browse signal is issued by the user, the client device will be connected to the download site and enter the state labeled Waits for Download Signal at 707 in FIG. 7. Upon initiation of the download signal, the packets start arriving. Each packet will be checked for the presence of Malware Free Signature in the decision box 709 while they are being processed through the secure and isolated quarantine memory space. If the packets are authentic with the valid signature provided from a trusted source, they will be fully downloaded and released from quarantine as described in FIG. 6 by entering the state labeled Complete Download 711. Otherwise, each packet is subjected to the malware scanning for any presence of the malware code bytes, sequences, etc., by entering the state labeled Scan Packets 713 in FIG. 7. The stream of incoming packets are checked one by one or in assembled forms, as indicated in the decision box 715, until all of them are quarantined and released, provided no malware bytes are found. If any virus bytes, programs, or sequences are detected after entering the state labeled as decision box 715, the packets are never released from quarantine bin or are destroyed with a massage displayed to the user and/or transmitting device indicated at the block 717 in FIG. 7. The file can only be released on human challenge authorization or additional manual scanning which a user can perform with other software to determine if the file is genuine in spite of failing the automated malware detection process.
  • FIG. 8 is flowchart 801 that illustrates a general sequence of operation performed by the Malware detection manager 115 of FIG. 1 during an upload or transmit process. According to one embodiment, a user enters the name of the upload center and subsequently browses for the file to be uploaded from the file system within or associated with the client device via steps 805 and 807. To allow the upload to commence, the user or the client device initiates the upload signal in a step 809. During uploading of the file, code, or data, the Malware detection manager (see FIG. 1) is executed or initiated to scan the packets that are first placed or moved into the quarantine bin via a step 811. Once scanned, the code, file, or data is released in portions or in an entirety and uploading commences, if none of the packets are infected by any malware code bytes via a step 813. If at least one packet is seen to be infected, the quarantining will be continued or the file destroyed with a display of a message to the user and the recipient device in a step 815. In such case where malware is detected, the file can only be released for upload operations via a human challenge authorization if the user can determine through other means that the file is genuine and not in fact affected by malware or been purged successfully of the malware before uploading (or downloading as the case may be).
  • After starting at the block Start 803, the browser enters the state labeled Wait for Browse Signal at 805. After entering the name of the upload site and when the browse signal is issued by the user or a client device, the client will be connected to the upload site and issue a browse the file command on the client file system at the block Browse File System 807. When the file is browsed and opened for upload via the block called Upload Signal 809, a signal is issued to begin the file upload. Simultaneously to transmission or prior to transmission, the Malware Detection Module 115 of FIG. 1 will be invoked and starts placing and scanning the upload packets in the quarantine bin unless one or more packets are found to be infected by malware code. If no malware is found, all the packets are released for the upload process completion whereby the uploaded files can complete transmission from the client device and released for removal from quarantine on a receive side if similar malware-free scans have also been optionally completed. Therefore, if no malware is found, the system completes the upload as indicated on reaching the state labeled Complete Upload 813 and the algorithm returns to the state indicated by the block Wait for Browsing Signal 805 to process another upload. If at least one packet of the file intended for upload is infected by any malware code, the packets pertaining to that file are not released from the quarantine bin and may not even commence with transmission in some embodiments or circumstances. If malware is found and the upload operation compromised, then the system displays a message on this quarantined or restricted file status as indicated at the block Quarantine with Message 815. From this state the program execution state is returned to wait for Browse Signal 805 state. The quarantined file can often only be released on human challenge authorization as taught herein.
  • FIG. 9 is a flowchart 901 that illustrates a general upload/download sequence of operation with a human challenge authorization option that may be used to release the packets from the quarantine bin that appear like malware code via the Detection Module 115 of FIG. 1, but are actually safe and legitimate software or data. In one embodiment, this feature is useful when two groups interact on the internet and one or both groups are capable of fixing or overriding with new information/analysis various malware related problems. The human challenge authorization is useful during both the upload and the download operations. In accordance with one embodiment, when a malware code is detected in a downloading or uploading packet sequence, the packets are quarantined whether or not they are actually infected and packets are only released for completion of the transaction if there is no infection detected or likely. The release of infected packets or packets suspected of infection occurs only with a successful human challenge authorization either during an upload or download operation.
  • After starting at the block Start 903, the Internet browser 111 of FIG. 1, enters the state illustrated as Wait for Download/Upload Signal 905, and the browser waits for a download or activation signal to go active. When a download signal is issued, it is often after a user or client device provides, determines, or enters the name of the download center, at the decision block labeled Download 907. After provision of such information, the Network Browser 111 of FIG. 1 will browse to that site or location. After a user or client device selects the file to download, and on activation of a download signal, the Malware detection manager 115 of FIG. 1 will scan for Malware Code reaching the state, block, or step 911 in FIG. 9. If there is no Malware code discovered by the processes taught herein in the earlier FIGS. 1-8, then the packets that were processed in quarantined space are released to main storage (e.g. NVM, main system memory, SRAM, DRAM, hard disk, etc.), as indicated at the block labeled Provide for Download 919. On the other hand, if the packets are believed or definitively determined to be infected by Malware code (viruses, Trojan, spybots, adware, illegal code, illegal data, etc), the file packets are quarantined in the secure and at least semi-isolated quarantine space taught herein via the state labeled Quarantine with Message 913 in FIG. 9. At this step 913, a message may be issued to the user working the client device terminal or other interested parties that the quarantine has occurred or that malware was found. If the quarantined packets are processed to clean up the malware issue or are determined to be genuine and malware free even though the malware detection protocol flagged them as suspect then upon reaching the step 915 in FIG. 9, a human challenge authorization can be issued to release the quarantined download via the block 917. If the human user or other more rigorous analysis in the quarantine space does not free up the data for malware-free continuation of transmission, then the packets will remain quarantined and/or destroyed, and the download operation will be stopped. At the end of the aforementioned sequence of operation, the Network browser enters back into the state labeled Wait for Download/Upload Signal state 905 to process more transmit, upload, receipt, or download operations.
  • As another additional function or embodiment, the Browser of FIG. 9 can perform secure malware-scanning upload operations as well. For this operation, the system begins in a wait state via a block 905 in FIG. 9. When an Upload signal is issued, as shown at the decision block 921, the state 905 is exited. If there is neither a download nor upload signal, the browser continues to be in the state 905 doing other useful work while waiting for the appropriate signal to be received. On the occurrence of an upload signal, the Browser will prompt for browsing to the right file in the client or server File System. Once that file or files is found and accessed for upload, the Malware detection manager 115 of FIG. 1 may start the scanning process either in the current place where the data is stored or in a more secure quarantine space where the data is copied to via the state labeled Browse in the File System and Scan 923 in FIG. 9. After the malware scanning process completes, all the packets are quarantined and released for upload to reach the indicated Quarantine for Upload 927 if they are deemed safe. However, if there is a determination that any of the known malware code bytes are detected in the file packets, the packets so affected, or all packets in the download, are quarantined and secured to avoid further promulgation and damage from the malware. If the packets are believed to contain malware code, then the file will remain quarantined and the upload will be stopped with a message issued to the user working at the client terminal or other interested parties/computers, on reaching the state labeled Quarantine with Message 929 in FIG. 9. If the quarantined packets appear to be genuine and malware-free given the malware scan process, then a human challenge authorization can be issued by the user or a client or server to release the quarantined data for upload via reaching the decision box 931 in FIG. 9. If malware is detected or seriously suspected, then the packets will be quarantined and the upload will be stopped, and the packets may be deleted or destroyed. At the end of aforementioned sequence of operation, the Network browser enters back into the state labeled Wait for Download/Upload Signal state 905 to process more upload or download operations. In addition, several work flows can be moving through FIG. 9 at the same time whereby many different upload and download operations may be operating in tandem or parallel under the control or one or several CPUs. In a complex server, it is not unlikely that hundreds or thousands of malware transmissions and scans can be ongoing at overlapping times.
  • FIG. 10 is a flowchart 1001 that illustrates the blocking or downloading of various malware code components, such as adware, spyware, viruses, etc., based on user choices during download process. Once any form of malware is detected, the browser may offer users several preventative or corrective options via pop-up warnings labeled as “Adware Detected; if you click OK, adware from an ad site will be loaded in a new window, else click CANCEL to abort.” Some downloaded software or cookies will prompt user during installation, e.g., “this software or installation requires your system to send a run time report or data to this server upon any error or upon certain conditions.” If user selects OK, it may become consent for activating spyware on your system and the malware programs taught herein may be overridden to allow that “malware” to be placed on the machine since the user desires to have that “malware” functionality on their machine. These consented spywares or adwares may remain active as long the tool is running on your system, and the malware program can continue to monitor and recognize such programs so that they may be removed in the future if the user later changes their mind and desires not to be affected by those adware or spyware programs or data. The user may be tempted to select “OK” because selecting “CANCEL” option may not allow user to install. Or, a user may sometime make this choice accidentally, maybe resulting in sending all sensitive data or personal/confidential data outside the users secure system. So, these spyware programs may be continually monitored and result in numerous notices to the user to inform the user what the program is doing, and these operations are often invisible or covert whereby the malware program can provide some visibility to its operation to the user for better understanding and protection for the user. Furthermore, this allowed “malware” can sometimes be disabled selectively or enabled selectively only in certain safe or user-approved circumstances once detected, tagged, and continually supervised by the MD module taught herein. Java scripts associated with a web page download may contain a virus and yield a message like “WARNING, a virus has been detected” by the MD module. The system may then prompt the user that a certain virus has been detected in the requested page, upload, or download; and ask the user if they want to select OK and download the program anyway. In these cases, the MD module will inform the user that the program or client device will monitor the malware or virus and attempt at all times to prevent the virus from harming the user's computer if the user decides to otherwise complete the download. Selecting CANCEL will return the user to a previous page or previous computer state and abort the download attempt, possibly deleting or destroying the data in the quarantine space.
  • Note, that the Virus could be cured or disabled automatically with or without user (i.e. human challenge) authorization by placing instructions into the client or server device for doing so via the MD Database or via code made part of the operation of a specific Comparison Agent.
  • In FIG. 10, after starting at the block 1003, the process enters into a wait for download state at a step 1005. Upon download, if an adware is detected or pops up in quarantine as shown in the decision box 1007, the client may download the “malware” and allow it to be fully installed on the client device with optional monitoring protection if OK is clicked by a user or the malware is properly limited in functionality or reduced in harm by software in the MD module via a step 1013. If the download is cancelled, the MD manager will stop the adware transmission portion of the transaction and attempt to continue by entering the state 1009. However, if the process of transmission and download/upload continues, then the process continues and looks for any spyware content in the download. If the user selects OK to download the spyware component in spite of the detection of the spyware via step 1015, then the MD module may allow the data to be downloaded and used in the client device, subject to possible oversight and special harm-prevention processing by the MD module from that time forward. By selecting a cancel operation, the client device will cancel the download of the spyware but attempt to continue to download to an ongoing partial degree. At the block 1011, the process then looks for any virus code and provides a warning to the user if such code is found. If the user selects OK as an indication that the user wants to accept the virus and continue the download the MD module will attempt to file, process, modify, limit, or cure the virus or otherwise disable it or reduce their functionality at the block 1017 and continue the download. If the user cancels the download due to the detection of a virus, then the process will stop virus download or kill the download in its entirety and go back to the wait state at block 1005. It is important to note that in some cases, an adware, spyware, or virus cannot be separated from the underlying normal code without destroying or changing the operation or purpose of that underlying normal code. In that case, if the user decides to try to remove or limit the malware and such processing is not possible without destroying the underlying program or data, then the MD module will so not this to the user and recommend to the user that the whole transmission be terminated and purged from quarantine space.
  • FIG. 11 is a block diagram 1101 that illustrates a more general method of malware detection, based on parallel processing of malware code detection, using a Malware Detection (MD) functionality module. The Malware Detection functionality could be a first come, first served type engine that analyzes a full file only after it has been completely downloaded. Once that file has been verified as malware free, this type of engine would turn attention to the next file that was received (starting at either the beginning of download time or the download completed time). The Analysis would be to compare the file against one or more known Malware byte sequences, logic, and constructs from a malware database.
  • According to one embodiment, the Internet backbone 1103 (backbone 103 of FIG. 1, repeated) is communicatively coupled with the network browser 1125 in FIG. 11. The network browser resides in NVM 1127 and/or other system memory of the client device. The network browser 1125 comprises MD manager 1111 as the main module that implements the MD functionality. A plurality of comparison agents (CA) 1105, 1107, and 1109 operate in conjunction with a plurality of MD logic modules 1113, 1115, and 1117 to do the comparison for known malware code bytes from the MD database 1121 with the upload/download files placed temporarily into the quarantine bin 1119 for malware processing. The file will be treated as infected while in the quarantine space and being processed, and if the CA and MD logic pairs find any form of malware code, then the file will be isolated in the quarantine space permanently, destroyed, or kept until released by a human intervention or via the infected file being repaired or isolated from the normal code that is being transmitted through the quarantine bin.
  • A typical web browser is modified to integrate a quarantine location/process into the download path before receipt for display by the html engine. The Malware Detection functionality could be made more efficient than first come first serve in several ways. First, it could operate faster by analyzing the file's bit stream as it is received, rather than serially after it is downloaded. Second, it could be made to parallel process an incoming stream or streams of data. This could be done by having an agent launched or dedicated to each pending file downloaded or multiple agents assigned to a single file whose download is in progress, and/or many comparison agents and logic could be assigned simultaneously to a single data stream so massive checking of malware on a single stream occurs in parallel over time. In one example, a user is may want to start or view a web page on a web browser, and the content via that web page should be displayed only after it has been analyzed and concluded to be malware free. The user decides to click on a link and trigger the Malware Detection process as the page is transmitted. Instead of downloading and directly displaying the underlying html/xml plus all associated graphics, photos, java/flash, etc., like a traditional browser, all elements and separate content to be downloaded are “intercepted” (even before they are saved to disk and most likely even before they are requested) and compared for malware using the Malware database and process. In this case, a web page may present text before pictures and pictures before video as it takes time to parallel process, maybe through different malware algorithms, all the content coming to the client device.
  • As one of ordinary skill in the art will appreciate, the terms “operably coupled” and “communicatively coupled,” as may be used herein include direct coupling and indirect coupling via another component, element, circuit, or module where, for indirect coupling, the intervening component, element, circuit, or module may modify the information of a signal or may adjust its current level, voltage level, and/or power level. As one of ordinary skill in the art will also appreciate, inferred coupling (i.e., where one element is coupled to another element by inference) includes direct and indirect coupling between two elements in the same manner as “operably coupled” and “communicatively coupled.”
  • The present invention has also been described above with the aid of method steps illustrating the performance of specified functions and relationships thereof. The boundaries and sequence of these functional building blocks and method steps have been arbitrarily defined herein for convenience of description. Alternate boundaries and sequences can be defined so long as the specified functions and relationships are appropriately performed. Any such alternate boundaries or sequences are thus within the scope and spirit of the claimed invention. For example, even though FIG. 10 illustrates adware being checked before spyware that is checked before viruses, this order may be changed to any order.
  • The present invention has been described above with the aid of functional building blocks illustrating the performance of certain significant functions. The boundaries of these functional building blocks have been arbitrarily defined for convenience of description. Alternate boundaries could be defined as long as the certain significant functions are appropriately performed. Similarly, flow diagram blocks may also have been arbitrarily defined herein to illustrate certain significant functionality. To the extent used, the flow diagram block boundaries and sequence could have been defined otherwise and still perform the certain significant functionality. Such alternate definitions of both functional building blocks and flow diagram blocks and sequences are thus within the scope and spirit of the claimed invention.
  • One of average skill in the art will also recognize that the functional building blocks, and other illustrative blocks, modules and components herein, can be implemented as illustrated or by discrete components, application specific integrated circuits, processors executing appropriate software and the like or any combination thereof.
  • While the embodiments taught herein are discussed with respect to the Internet backbone, the embodiments taught herein can be used on any network, the Internet, intranet, personal area network (PAN), local area network (LAN), wide area network (WAN), WiMax, WiFi, cellular or other wireless technology, CDMA, optical, or any other network.
  • In addition, note that most embodiments herein teach performing malware code scans in response to transmission or receipt of data, wherein the data often is processed at the request of a web browser or like software. The data is quarantined while being scanned or simulated in a safe environment and then released to the computer if no malware or malware operation is detected. Therefore, while this software can be used to replace commercial virus software like Norton Utilities, etc., it need not do so. While it is logical that a machine that is malware free should remain malware free if all data coming into and out of the device over time is scanned, it doesn't hurt the system to maintain commercial virus scans in addition to the algorithms taught herein so that routine (nightly or weekly) scans are performed to ensure safe operation of a computer.
  • In many cases, a human authorization or intervention is taught herein. In many embodiments, a notice is provided to the user as a pop-up window or through another method. It is important to note that the software and hardware taught herein may be programmed to actually augment, add to, or change the html or xml code flowing into the browser of the system. For example, assume that the user requests viewing of a CNN news page on his browser. This page may contain 3 video links/windows, 4 advertisements, 10 pictures, or graphics, 12 other links and several text areas. The system may detect that malware is encountered if one video is watched, 1 advertisement is clicked or one of the 12 other links are followed. In these three cases where malware was detected, the program may change (either through adding, deleting, or modifying text, pictures, colors, or other indicia) the actual browser-displayed content to indicate to the user the presence of the malware, where it is located, what it's dangers are, corrective measures, and/or other notices. The browser may also be programmed to not allow the user to click or enable that malware infected content, at least until a human notice and override can be processed intelligently by the user.
  • It is also important to note that virus checking between peripherals and the main computer of a home system, a small/medium office system, or a larger network is getting more important. Even though software has found its way onto your computer in a safe malware-free state, it may still be contaminated from data from a raid storage array, a home media server, a gaming device, your periodically-connected laptop coming to and from the home or place of business, the Blackberry you sync to your computer, the various Bluetooth, WiFi, LAN, and WAN devices you interface to each day, the peripherals in your personal computer (sometimes they are separate computers themselves), a new graphics card you plug into your computer, and other items within your network, firewall, or personal/work area. Given viruses can get into peripherals and may be streamed into wireless communications in the future, such scanning between a computer and surrounding devices/peripherals is becoming more important.
  • Moreover, although described in detail for purposes of clarity and understanding by way of the aforementioned embodiments, the present invention is not limited to such embodiments. It will be obvious to one of average skill in the art that various changes and modifications may be practiced within the spirit and scope of the invention, as limited only by the scope of the appended claims.

Claims (30)

1. A web browsing support system that services a plurality of browsers that operate on a corresponding plurality of user devices, each of the plurality of user devices including virus related processing logic, the web browsing support system comprising:
a processing infrastructure that associates detection processing related information with at least portions of a plurality of program code hosted via web pages of a plurality of web hosting servers via an Internet;
a communication interface that communicatively couples the processing infrastructure with a plurality of user devices; and
the processing infrastructure delivering via the communication interface at least portions of the detection processing related information to the plurality of user devices, the delivering being made by the processing infrastructure to assist the virus related processing logic of each of the plurality of user devices, the assistance involving at least attempts to prevent execution of downloaded ones of the plurality of program code that are not virus-free.
2. The web browsing support system of claim 1, wherein the attempts to prevent execution comprise terminating a download in progress.
3. The web browsing support system of claim 1, wherein the attempts to prevent execution comprise applying a quarantine process.
4. The web browsing support system of claim 1, wherein the assistance involving applying flags associated with virus detection analysis.
5. The web browsing support system of claim 1, wherein a first of the virus related processing logic is integrated into a first of the plurality of browsers.
6. The web browsing support system of claim 1, wherein the virus related processing logic includes virus detection scanning logic.
7. The web browsing support system of claim 6, wherein at least one operation of the virus detection scanning logic is triggered upon a user interaction relating to at least one of the plurality of program code.
8. The web browsing support system of claim 1, wherein the processing infrastructure delivers a first of the detection processing related information in response to a request from a first of the plurality of browsers.
9. The web browsing support system of claim 8, wherein the request being produced in response to user interaction associated with a first of the plurality of program code.
10. The web browsing support system of claim 1, wherein first information of the detection processing related information comprises a virus free indication.
11. A web browsing support system that services a plurality of user devices, a first of the plurality of user devices having virus related processing logic, the web browsing support system comprising:
a processing infrastructure that associates detection processing related information with at least portions of a plurality of program code hosted by a plurality of web hosting servers via an Internet; and
the processing infrastructure delivering first data to the first of the plurality of user devices, the first data relating to at least a first of the plurality of program code identified during a browsing operation on the first of the plurality of user devices, the delivery being made by the processing infrastructure to support operations of the virus related processing logic relating to the first of the plurality of program code.
12. The web browsing support system of claim 11, wherein at least some of the operations of the virus related processing logic being virus detection processing.
13. The web browsing support system of claim 11, wherein at least some of the operations of the virus related processing logic involving a temporary hold being placed on at least portions of a first of the plurality of program code until a virus free conclusion is reached.
14. The web browsing support system of claim 11, wherein of the virus related processing logic is integrated into a first of the plurality of browsers.
15. The web browsing support system of claim 11, wherein the virus related processing logic comprises virus detection scanning logic.
16. The web browsing support system of claim 11, wherein at least one operation of the virus related processing logic is triggered upon a user interaction.
17. The web browsing support system of claim 11, wherein the processing infrastructure delivers a first of the detection processing related information in response to a request from a first of the plurality of browsers.
18. The web browsing support system of claim 17, wherein the request being produced in response to a first user's interaction with a first of the plurality of program code during browsing.
19. A web browsing system supporting a plurality of user devices, the web browsing system comprising:
a first web browser application operable to run on a first of the plurality of computing devices, the first web browsing program including a second tier of virus related processing;
at least one communication interface communicatively coupled to the plurality of user devices;
a processing infrastructure, communicatively coupled to the at least one communication interface, that provides a first tier of virus related processing; and
the processing infrastructure and the first web browsing application interact to provide an overall virus related service.
20. The web browsing system of claim 19, wherein the processing infrastructure delivers virus related data established by the first tier of virus related processing to the first web browsing program.
21. The web browsing system of claim 20, wherein the delivery of the virus related data impacts the operations of the second tier of virus related processing.
22. The web browsing system of claim 20, wherein virus related data comprises a virus free indication.
23. The web browsing system of claim 19, wherein the first tier of virus related processing comprises virus detection processing.
24. The web browsing system of claim 19, wherein the second tier of virus related processing is integrated within the first web browsing program.
25. A method performed by a web browsing infrastructure to support a plurality of user devices, the method comprising:
performing a first tier of virus related processing related to a plurality of web hosted program code by a processing infrastructure to support the plurality of user devices; and
supporting a second tier of virus related processing that operates on a first device of the plurality of user devices, the supporting comprises sending virus related data established via the first tier of virus related processing to the first device to assist the second tier of virus related processing, the second tier of virus related processing being associated with browser interactions involving at least a first of the plurality of web hosted program code, wherein the first tier and second tier operate together to attempt to prevent downloaded execution of those of the plurality of web hosted program code that are not virus-free.
26. The method of claim 25, wherein the virus related data comprises a virus free indication associated with the first of the plurality of web hosted program code.
27. The method of claim 25, wherein the first tier of virus related processing comprises virus detection processing.
28. The method of claim 25, wherein the second tier of virus related processing comprises virus detection processing.
29. The method of claim 25, wherein the second tier of virus related processing comprises detected virus handling processes.
30. The method of claim 25, wherein the second tier of virus related processing comprises a handling process associated with the first of the plurality of web hosted program code.
US13/662,765 2008-05-12 2012-10-29 Browsing support infrastructure with tiered malware support Abandoned US20130061326A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/662,765 US20130061326A1 (en) 2008-05-12 2012-10-29 Browsing support infrastructure with tiered malware support
US14/486,322 US9509713B2 (en) 2008-05-12 2014-09-15 Browsing support infrastructure with tiered malware support

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5252108P 2008-05-12 2008-05-12
US12/372,413 US8839431B2 (en) 2008-05-12 2009-02-17 Network browser based virus detection
US13/662,765 US20130061326A1 (en) 2008-05-12 2012-10-29 Browsing support infrastructure with tiered malware support

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/372,413 Continuation US8839431B2 (en) 2008-05-12 2009-02-17 Network browser based virus detection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/372,413 Continuation US8839431B2 (en) 2008-05-12 2009-02-17 Network browser based virus detection

Publications (1)

Publication Number Publication Date
US20130061326A1 true US20130061326A1 (en) 2013-03-07

Family

ID=41267984

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/372,413 Expired - Fee Related US8839431B2 (en) 2008-05-12 2009-02-17 Network browser based virus detection
US13/662,765 Abandoned US20130061326A1 (en) 2008-05-12 2012-10-29 Browsing support infrastructure with tiered malware support
US14/486,322 Expired - Fee Related US9509713B2 (en) 2008-05-12 2014-09-15 Browsing support infrastructure with tiered malware support

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/372,413 Expired - Fee Related US8839431B2 (en) 2008-05-12 2009-02-17 Network browser based virus detection

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/486,322 Expired - Fee Related US9509713B2 (en) 2008-05-12 2014-09-15 Browsing support infrastructure with tiered malware support

Country Status (1)

Country Link
US (3) US8839431B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110107423A1 (en) * 2009-10-30 2011-05-05 Divya Naidu Kolar Sunder Providing authenticated anti-virus agents a direct access to scan memory
CN103337024A (en) * 2013-05-27 2013-10-02 北京百纳威尔科技有限公司 Application software acquisition method, browser and application store server
US9501649B2 (en) * 2013-03-15 2016-11-22 Symantec Corporation Systems and methods for determining potential impacts of applications on the security of computing systems
US20170180395A1 (en) * 2015-12-21 2017-06-22 Nagravision S.A. Secured home network
US9892422B1 (en) * 2010-03-29 2018-02-13 Amazon Technologies, Inc. Sales security integration
US20180285083A1 (en) * 2017-03-31 2018-10-04 Mcafee, Llc Asynchronous data objects for an event driven programming language
US11650873B2 (en) 2020-06-05 2023-05-16 Samsung Electronics Co., Ltd. Memory controller, method of operating the memory controller, and storage device including memory controller

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769690B2 (en) * 2006-03-24 2014-07-01 AVG Netherlands B.V. Protection from malicious web content
US8356352B1 (en) * 2008-06-16 2013-01-15 Symantec Corporation Security scanner for user-generated web content
KR101507439B1 (en) * 2008-09-02 2015-03-31 엘지전자 주식회사 Mobile terminal capable of protecing virus infection and operation control method thereof
US8850571B2 (en) * 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US9197738B2 (en) * 2008-12-04 2015-11-24 Microsoft Technology Licensing, Llc Providing selected data through a locked display
US20100146437A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Glanceable animated notifications on a locked device
US8621613B1 (en) * 2009-05-26 2013-12-31 Amazon Technologies, Inc. Detecting malware in content items
US9348977B1 (en) 2009-05-26 2016-05-24 Amazon Technologies, Inc. Detecting malware in content items
US10102352B2 (en) * 2009-08-10 2018-10-16 Arm Limited Content usage monitor
US8434153B2 (en) 2009-08-24 2013-04-30 Microsoft Corporation Application display on a locked device
US20110069089A1 (en) * 2009-09-23 2011-03-24 Microsoft Corporation Power management for organic light-emitting diode (oled) displays
US9003531B2 (en) * 2009-10-01 2015-04-07 Kaspersky Lab Zao Comprehensive password management arrangment facilitating security
US8539583B2 (en) 2009-11-03 2013-09-17 Mcafee, Inc. Rollback feature
US9529689B2 (en) * 2009-11-30 2016-12-27 Red Hat, Inc. Monitoring cloud computing environments
KR101091777B1 (en) * 2010-07-16 2011-12-08 주식회사 파수닷컴 Apparatus for real-time inspecting malicious code in digital rights management environment and recording medium storing program for executing method of the same in computer
US20120030760A1 (en) * 2010-08-02 2012-02-02 Long Lu Method and apparatus for combating web-based surreptitious binary installations
KR101201622B1 (en) * 2010-08-19 2012-11-14 삼성에스디에스 주식회사 Soc with security function and device and scan method using the same
US9244698B2 (en) * 2010-09-14 2016-01-26 Microsoft Technology Licensing, Llc Download bar user interface control
CN102164138A (en) * 2011-04-18 2011-08-24 奇智软件(北京)有限公司 Method for ensuring network security of user and client
US9134996B2 (en) * 2011-04-28 2015-09-15 F-Secure Corporation Updating anti-virus software
US8555388B1 (en) 2011-05-24 2013-10-08 Palo Alto Networks, Inc. Heuristic botnet detection
US8966625B1 (en) 2011-05-24 2015-02-24 Palo Alto Networks, Inc. Identification of malware sites using unknown URL sites and newly registered DNS addresses
US8996688B2 (en) * 2011-05-31 2015-03-31 Nokia Corporation Method and apparatus for monitoring and controlling data sharing
US20120324561A1 (en) * 2011-06-15 2012-12-20 Michael A Kavanagh ROAD BLOCK the next evolution of security software for network operations
CN102855432B (en) 2011-06-27 2015-11-25 北京奇虎科技有限公司 A kind of file, file unblock and delet method and system
US20130067577A1 (en) * 2011-09-14 2013-03-14 F-Secure Corporation Malware scanning
US8601584B1 (en) * 2011-09-21 2013-12-03 Trend Micro Incorporated Protection of computers against argument switch attacks
US9916454B2 (en) 2011-12-22 2018-03-13 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
EP2795511A4 (en) * 2011-12-22 2015-12-16 Intel Corp User controllable platform-level trigger to set policy for protecting platform from malware
US8863288B1 (en) 2011-12-30 2014-10-14 Mantech Advanced Systems International, Inc. Detecting malicious software
US8806643B2 (en) * 2012-01-25 2014-08-12 Symantec Corporation Identifying trojanized applications for mobile environments
US8713684B2 (en) 2012-02-24 2014-04-29 Appthority, Inc. Quantifying the risks of applications for mobile devices
US8918881B2 (en) 2012-02-24 2014-12-23 Appthority, Inc. Off-device anti-malware protection for mobile devices
EP2642715A1 (en) * 2012-03-20 2013-09-25 British Telecommunications public limited company Method and system for malicious code detection
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US8819772B2 (en) * 2012-06-25 2014-08-26 Appthority, Inc. In-line filtering of insecure or unwanted mobile device software components or communications
CN102809725B (en) * 2012-08-22 2015-04-15 武汉大学 Sensitive element device for bypass signal of sensing circuit and detection method of sensitive element device
US9215239B1 (en) 2012-09-28 2015-12-15 Palo Alto Networks, Inc. Malware detection based on traffic analysis
US9104870B1 (en) * 2012-09-28 2015-08-11 Palo Alto Networks, Inc. Detecting malware
CN103778369B (en) * 2012-10-17 2016-12-21 腾讯科技(深圳)有限公司 Prevent virus document from subscriber equipment is carried out the device and method of illegal operation
CN103780589A (en) * 2012-10-24 2014-05-07 腾讯科技(深圳)有限公司 Virus prompting method, client-terminal device and server
US8955137B2 (en) 2012-12-21 2015-02-10 State Farm Mutual Automobile Insurance Company System and method for uploading and verifying a document
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
WO2014137321A1 (en) * 2013-03-05 2014-09-12 Mcafee, Inc. Modification of application store output
US9740390B2 (en) * 2013-03-11 2017-08-22 Spikes, Inc. Dynamic clip analysis
US9501645B2 (en) * 2013-03-15 2016-11-22 Rudolf H. Hendel System and method for the protection of computers and computer networks against cyber threats
US9730066B2 (en) * 2013-03-15 2017-08-08 Symantec Corporation Mobile application identification and control through WiFi access points
US10075470B2 (en) * 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
US9613210B1 (en) 2013-07-30 2017-04-04 Palo Alto Networks, Inc. Evaluating malware in a virtual machine using dynamic patching
US9811665B1 (en) 2013-07-30 2017-11-07 Palo Alto Networks, Inc. Static and dynamic security analysis of apps for mobile devices
US10019575B1 (en) 2013-07-30 2018-07-10 Palo Alto Networks, Inc. Evaluating malware in a virtual machine using copy-on-write
US10515214B1 (en) * 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US20150106928A1 (en) * 2013-10-15 2015-04-16 Joerg Steinmann Screening of email templates in campaign management
JP6210838B2 (en) * 2013-10-25 2017-10-11 キヤノン株式会社 Information processing apparatus, control method thereof, and program
US9967199B2 (en) * 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US9246875B2 (en) 2013-12-31 2016-01-26 Dropbox, Inc. Identifying and blocking prohibited content items in a content management system
US9582665B2 (en) * 2014-01-21 2017-02-28 Operation and Data integrity Ltd. Technologies for protecting systems and data to prevent cyber-attacks
US10469510B2 (en) * 2014-01-31 2019-11-05 Juniper Networks, Inc. Intermediate responses for non-html downloads
US9256738B2 (en) * 2014-03-11 2016-02-09 Symantec Corporation Systems and methods for pre-installation detection of malware on mobile devices
US9578044B1 (en) * 2014-03-24 2017-02-21 Amazon Technologies, Inc. Detection of anomalous advertising content
US9489516B1 (en) 2014-07-14 2016-11-08 Palo Alto Networks, Inc. Detection of malware using an instrumented virtual machine environment
US9824356B2 (en) 2014-08-12 2017-11-21 Bank Of America Corporation Tool for creating a system hardware signature for payment authentication
US8943598B1 (en) * 2014-08-12 2015-01-27 Bank Of America Corporation Automatic compromise detection for hardware signature for payment authentication
US9374385B1 (en) * 2014-11-07 2016-06-21 Area 1 Security, Inc. Remediating computer security threats using distributed sensor computers
US9805193B1 (en) 2014-12-18 2017-10-31 Palo Alto Networks, Inc. Collecting algorithmically generated domains
US9542554B1 (en) 2014-12-18 2017-01-10 Palo Alto Networks, Inc. Deduplicating malware
US9836604B2 (en) * 2015-01-30 2017-12-05 International Business Machines Corporation File integrity preservation
WO2016127233A1 (en) * 2015-02-10 2016-08-18 Gas Informatica Ltda Assistive technology for anti-malware software
US9477837B1 (en) * 2015-03-31 2016-10-25 Juniper Networks, Inc. Configuring a sandbox environment for malware testing
WO2016178816A1 (en) 2015-05-01 2016-11-10 Lookout, Inc. Determining source of side-loaded software
CA2960535C (en) 2016-03-11 2019-08-20 The Toronto-Dominion Bank Application platform security enforcement in cross device and ownership structures
US10972482B2 (en) * 2016-07-05 2021-04-06 Webroot Inc. Automatic inline detection based on static data
WO2018022082A1 (en) 2016-07-29 2018-02-01 Hewlett-Packard Development Company, L.P. Data recovery with authenticity
US10846397B2 (en) * 2016-10-24 2020-11-24 Introspective Power Inc. Segmented workstation with common desktop control and manual access control
KR20180084304A (en) * 2017-01-16 2018-07-25 삼성전자주식회사 Electronic device and method for creating shortcut of web page thereof
US10511631B2 (en) 2017-01-25 2019-12-17 Microsoft Technology Licensing, Llc Safe data access through any data channel
EP3376424B1 (en) * 2017-03-14 2021-05-05 VirusTotal SLU Scanning files using antivirus software
WO2018187541A1 (en) 2017-04-06 2018-10-11 Walmart Apollo, Llc Infected file detection and quarantine system
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US10678925B2 (en) * 2017-06-26 2020-06-09 Microsoft Technology Licensing, Llc Data quarantine and recovery
US11062021B2 (en) * 2017-08-29 2021-07-13 NortonLifeLock Inc. Systems and methods for preventing malicious applications from exploiting application services
JP6911723B2 (en) * 2017-11-16 2021-07-28 富士通株式会社 Network monitoring device, network monitoring method and network monitoring program
US10956573B2 (en) 2018-06-29 2021-03-23 Palo Alto Networks, Inc. Dynamic analysis techniques for applications
US11010474B2 (en) 2018-06-29 2021-05-18 Palo Alto Networks, Inc. Dynamic analysis techniques for applications
CN109992967A (en) * 2019-03-12 2019-07-09 福建拓尔通软件有限公司 A kind of method and system for realizing automatic detection file security when file uploads
US11196765B2 (en) 2019-09-13 2021-12-07 Palo Alto Networks, Inc. Simulating user interactions for malware analysis
US11853421B2 (en) * 2020-02-25 2023-12-26 Agency For Defense Development Method and apparatus for analyzing malicious code
US11588848B2 (en) 2021-01-05 2023-02-21 Bank Of America Corporation System and method for suspending a computing device suspected of being infected by a malicious code using a kill switch button
US11314841B1 (en) 2021-01-07 2022-04-26 Bank Of America Corporation Web browser communication validation extension
US11582223B2 (en) 2021-01-07 2023-02-14 Bank Of America Corporation Browser extension for validating communications
US11335376B1 (en) * 2021-01-28 2022-05-17 Seagate Technology Llc Drive controller-override mechanism

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041259A1 (en) * 2001-08-27 2003-02-27 Vignoles James Malcolm Update status alerting for a malware scanner
US6728886B1 (en) * 1999-12-01 2004-04-27 Trend Micro Incorporated Distributed virus scanning arrangements and methods therefor
US20040098607A1 (en) * 2002-08-30 2004-05-20 Wholesecurity, Inc. Method, computer software, and system for providing end to end security protection of an online transaction
US20070136811A1 (en) * 2005-12-12 2007-06-14 David Gruzman System and method for inspecting dynamically generated executable code
US7849507B1 (en) * 2006-04-29 2010-12-07 Ironport Systems, Inc. Apparatus for filtering server responses
US8312545B2 (en) * 2006-04-06 2012-11-13 Juniper Networks, Inc. Non-signature malware detection system and method for mobile platforms

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701440B1 (en) * 2000-01-06 2004-03-02 Networks Associates Technology, Inc. Method and system for protecting a computer using a remote e-mail scanning device
US6757830B1 (en) * 2000-10-03 2004-06-29 Networks Associates Technology, Inc. Detecting unwanted properties in received email messages
US7260555B2 (en) * 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US7840763B2 (en) * 2004-03-12 2010-11-23 Sca Technica, Inc. Methods and systems for achieving high assurance computing using low assurance operating systems and processes
WO2006090384A2 (en) * 2005-02-22 2006-08-31 Kidaro (Israel) Ltd. Data transfer security
US7845005B2 (en) * 2006-02-07 2010-11-30 International Business Machines Corporation Method for preventing malicious software installation on an internet-connected computer
US20090133124A1 (en) * 2006-02-15 2009-05-21 Jie Bai A method for detecting the operation behavior of the program and a method for detecting and clearing the virus program
WO2007137353A1 (en) * 2006-05-29 2007-12-06 Symbiotic Technologies Pty Ltd Communications security system
US7697418B2 (en) * 2006-06-12 2010-04-13 Alcatel Lucent Method for estimating the fan-in and/or fan-out of a node
US20090328193A1 (en) * 2007-07-20 2009-12-31 Hezi Moore System and Method for Implementing a Virtualized Security Platform
US20080222729A1 (en) * 2007-03-05 2008-09-11 Songqing Chen Containment of Unknown and Polymorphic Fast Spreading Worms
US8533847B2 (en) * 2007-05-24 2013-09-10 Sandisk Il Ltd. Apparatus and method for screening new data without impacting download speed
US8181245B2 (en) * 2007-06-19 2012-05-15 Microsoft Corporation Proxy-based malware scan

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728886B1 (en) * 1999-12-01 2004-04-27 Trend Micro Incorporated Distributed virus scanning arrangements and methods therefor
US20030041259A1 (en) * 2001-08-27 2003-02-27 Vignoles James Malcolm Update status alerting for a malware scanner
US20040098607A1 (en) * 2002-08-30 2004-05-20 Wholesecurity, Inc. Method, computer software, and system for providing end to end security protection of an online transaction
US20070136811A1 (en) * 2005-12-12 2007-06-14 David Gruzman System and method for inspecting dynamically generated executable code
US8312545B2 (en) * 2006-04-06 2012-11-13 Juniper Networks, Inc. Non-signature malware detection system and method for mobile platforms
US7849507B1 (en) * 2006-04-29 2010-12-07 Ironport Systems, Inc. Apparatus for filtering server responses

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087188B2 (en) * 2009-10-30 2015-07-21 Intel Corporation Providing authenticated anti-virus agents a direct access to scan memory
US20110107423A1 (en) * 2009-10-30 2011-05-05 Divya Naidu Kolar Sunder Providing authenticated anti-virus agents a direct access to scan memory
US9892422B1 (en) * 2010-03-29 2018-02-13 Amazon Technologies, Inc. Sales security integration
US9501649B2 (en) * 2013-03-15 2016-11-22 Symantec Corporation Systems and methods for determining potential impacts of applications on the security of computing systems
CN103337024A (en) * 2013-05-27 2013-10-02 北京百纳威尔科技有限公司 Application software acquisition method, browser and application store server
US10728278B2 (en) * 2015-12-21 2020-07-28 Nagravision S.A. Secured home network
US10257223B2 (en) * 2015-12-21 2019-04-09 Nagravision S.A. Secured home network
US20190260765A1 (en) * 2015-12-21 2019-08-22 Nagravision S.A. Secured home network
US20170180395A1 (en) * 2015-12-21 2017-06-22 Nagravision S.A. Secured home network
US11457039B2 (en) * 2015-12-21 2022-09-27 Nagravision S.A. Secured home network
US20220407869A1 (en) * 2015-12-21 2022-12-22 Nagravision S.A. Secured home network
US11838315B2 (en) * 2015-12-21 2023-12-05 Nagravision S.A. Secured home network
US20180285083A1 (en) * 2017-03-31 2018-10-04 Mcafee, Llc Asynchronous data objects for an event driven programming language
US11609745B2 (en) * 2017-03-31 2023-03-21 Mcafee, Llc Asynchronous data objects for an event driven programming language
US11650873B2 (en) 2020-06-05 2023-05-16 Samsung Electronics Co., Ltd. Memory controller, method of operating the memory controller, and storage device including memory controller

Also Published As

Publication number Publication date
US9509713B2 (en) 2016-11-29
US20090282485A1 (en) 2009-11-12
US8839431B2 (en) 2014-09-16
US20150007329A1 (en) 2015-01-01

Similar Documents

Publication Publication Date Title
US9509713B2 (en) Browsing support infrastructure with tiered malware support
US20240106797A1 (en) System and method for implementing content and network security inside a chip
US10282548B1 (en) Method for detecting malware within network content
US10291634B2 (en) System and method for determining summary events of an attack
US7934261B1 (en) On-demand cleanup system
US8590045B2 (en) Malware detection by application monitoring
USRE43529E1 (en) System and method for protecting a computer system from malicious software
US8938802B2 (en) System and method for run-time attack prevention
US8196205B2 (en) Detection of spyware threats within virtual machine
US8689330B2 (en) Instant messaging malware protection
US8739284B1 (en) Systems and methods for blocking and removing internet-traversing malware
US8850584B2 (en) Systems and methods for malware detection
US20080301051A1 (en) Internet fraud prevention
US8176556B1 (en) Methods and systems for tracing web-based attacks
Koo et al. Malicious website detection based on honeypot systems
US9602538B1 (en) Network security policy enforcement integrated with DNS server
US9069964B2 (en) Identification of malicious activities through non-logged-in host usage
Mohata et al. Mobile malware detection techniques
US7840958B1 (en) Preventing spyware installation
Vanness et al. Malware: A Software for Cybercrime
Syed Understanding worms, their behaviour and containing them
Wang Using Honeyclients for Detection and Response Against New Attacks
Boulanger et al. Malicious Code
Obied Collection and analysis of web-based exploits and malware
Decloedt et al. Rootkits, Trojans, backdoors and new developments

Legal Events

Date Code Title Description
AS Assignment

Owner name: ENPULZ, L.L.C., ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BENNETT, JAMES D.;REEL/FRAME:030829/0050

Effective date: 20111006

AS Assignment

Owner name: RPX CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ENPULZ, LLC;REEL/FRAME:036714/0640

Effective date: 20150923

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL

Free format text: SECURITY AGREEMENT;ASSIGNORS:RPX CORPORATION;RPX CLEARINGHOUSE LLC;REEL/FRAME:038041/0001

Effective date: 20160226

AS Assignment

Owner name: RPX CORPORATION, CALIFORNIA

Free format text: RELEASE (REEL 038041 / FRAME 0001);ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:044970/0030

Effective date: 20171222

Owner name: RPX CLEARINGHOUSE LLC, CALIFORNIA

Free format text: RELEASE (REEL 038041 / FRAME 0001);ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:044970/0030

Effective date: 20171222

AS Assignment

Owner name: RPX CORPORATION, CALIFORNIA

Free format text: RELEASE OF LIEN ON PATENTS;ASSIGNOR:JEFFERIES FINANCE LLC, AS COLLATERAL AGENT;REEL/FRAME:052200/0821

Effective date: 20200319

AS Assignment

Owner name: PAYPAL, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RPX CORPORATION;REEL/FRAME:053019/0017

Effective date: 20200325