Computing machines including personal computers, tablet devices and other devices such as smartphones and network-capable televisions are susceptible to malware infections, including various threats such as computer viruses. In addition to viruses, another type of threat is rogue software, in which a malicious program is loaded onto a computing machine, typically via a malicious website that a user was tricked into visiting. The rogue software is then able to take control of at least part of a user's machine. Often the rogue program extorts/defrauds users out of money by offering to fix the problems it caused, by purchasing security software.
As part of controlling the malware-compromised computing machine, contemporary threats are typically able to actively disable product update capabilities. For example, rogue software can render the machine's web browser helpless (or explicitly block access to certain sites), whereby the user is unable to access desired websites, including product update websites. This generally includes websites that have the ability to remediate the threat via antimalware software installation and/or antimalware signature updates. Thus, for a software vendor, a significant, costly and time-consuming support issue when dealing with customers attempting to remediate such infections is the inability to configure an infected machine with antimalware software, or to update existing antimalware software and/or signatures on an infected machine.
This Summary is provided to introduce a selection of representative concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used in any way that would limit the scope of the claimed subject matter.
Briefly, various aspects of the subject matter described herein are directed towards a technology by which a functional adjunct computing machine (or more simply “functional machine,” “functional adjunct machine” or “adjunct machine”) obtains antimalware-related data, and transfers at least part of the antimalware-related data to a malware-compromised computing machine (or more simply “compromised machine”) for use in remediating malware on the compromised machine. For example, the functional adjunct machine may be a smartphone and the malware-compromised machine may be a personal computer, or vice-versa. The antimalware-related data may be obtained by downloading an application from a marketplace or application store.
In one aspect, the antimalware-related data includes antimalware code, which the compromised machine executes to scan and remediate the malware on the compromised machine to transform the compromised machine into a clean machine. In one aspect, the transferred antimalware-related data from the adjunct machine is used to update signatures on the malware-compromised machine. In this way, a partially disabled compromised machine is able to execute code and/or get updates.
In one aspect, the malware-compromised machine may be compromised by having malware in a storage mechanism thereof. The compromised machine may be booted from the clean adjunct machine, in order to operate the compromised machine in a non-compromised operational state. While in the non-compromised operational state, the antimalware-related data is transferred to the compromised machine, including loading antimalware code for execution, to scan and remediate the malware on the compromised machine. The up-to-date antimalware, running in a clean environment, can inspect, detect and remediate the infected storage and associated operating system configuration. This cleans the storage mechanism and transforms the malware-compromised machine to a clean machine. The clean machine is rebooted from the cleaned storage and operating system mechanism (e.g., instead of from the functional adjunct machine) after the storage mechanism is cleaned.
Other advantages may become apparent from the following detailed description when taken in conjunction with the drawings.
The present invention is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
Various aspects of the technology described herein are generally directed towards using one computing machine, such as a personal computer, and another computing machine, such as a mobile machine, as an adjunct with respect to remediating (cleaning/removing) malware from the other when its resources are compromised in some way (e.g., infected and disabled or of reduced capacity). In the event one computing machine is compromised, the functional adjunct computing machine is able to access and/or use updated security technologies (e.g., a tool, signatures, and so forth) to facilitate scanning, detecting and remediating the malware on the compromised machine.
In one aspect, the functional adjunct machine may be used actively or partially actively to assist the compromised machine. For example, a partially active adjunct machine may automatically download and copy updated security technologies on behalf of the compromised machine, which the compromised machine may then use to remediate the malware. Alternatively, a more active adjunct may scan the compromised machine and remediate the malware that is detected. This may be by having the functional adjunct machine run a program that scans the drive (and memory) of the compromised machine, or by booting the compromised machine from the adjunct machine, whereby the compromised is scanned in an “offline” state with respect to running the malware. A combined active and passive solution may be used, e.g., the adjunct may scan and remediate the compromised machine until the compromised machine achieves a state in which it is able to take over scanning and remediation.
It should be noted that any or all of the antimalware components may be obtained by the adjunct machine by downloading into storage or by having the antimalware code and/or data streamed through the adjunct machine for use in remediating the compromised machine. Thus, as used herein with respect to antimalware, “obtain” and its derivatives (e.g., “obtaining”) refers to any antimalware component or components for storing, streaming and/or a combination thereof.
It should be understood that any of the examples herein are non-limiting. For example, while a smartphone is exemplified as a likely functional adjunct machine and a personal computer as a likely compromised machine, the technology may work with multiple personal computers, gaming systems, personal computers, other handheld devices, tablets and so forth. As such, the present invention is not limited to any particular embodiments, aspects, concepts, structures, functionalities or examples described herein. Rather, any of the embodiments, aspects, concepts, structures, functionalities or examples described herein are non-limiting, and the present invention may be used various ways that provide benefits and advantages in computing and computer security in general.
In the implementation of
When the user downloads and runs the adjunct application 110 on the adjunct machine, the adjunct application 110 is able to remediate the compromised machine by taking various alternative actions, as exemplified in
Step 210 represents the compromised machine receiving and applying the updates, which are then used at step 212 to scan and remediate the machine. As can be readily appreciated, most of the process is automated, as the user has not done anything complicated to remediate the problem, other than to download the adjunct application and run it, which is very easy, fast and efficient for support personnel to explain to a user. This implementation leverages the customers' growing familiarity with a marketplace/application store, and accessing the internet via a tightly coupled mobile and marketplace/application store, to facilitate downloading/updating a current version of a cleaner tool and/or signatures. The user may have to answer certain questions, e.g., what operating system is being used, whether an antimalware program is already installed and so forth, however these are relatively straightforward. Moreover, the agent/stub 114 may have be configured with knowledge of this and other (e.g., version) information, which it can return to the adjunct application 110 so the user or automated mechanism can obtain it from the adjunct machine 108 in the event such additional information is needed by support personnel.
The adjunct machine 308 may download an adjunct application 310, which obtains updates 312 and adjunct antimalware program code 306 as needed, e.g., from an application marketplace as described above; (the antimalware program code 306 may be incorporated into the adjunct application 310). Support personnel may recognize when more than a signature update is needed to remediate an infection, for example, and instruct the user to download a different adjunct application.
In this example, the user is able to scan the infected storage/memory of the compromised machine via the antimalware program code 306 on the adjunct machine 308. One way is to use the functional adjunct machine as an alternate storage device from which a program may be launched, (or vice-versa). An appropriate handshake and protocol between the machines may be used, e.g., a manifest of machine personalization (updated applications, code and data and/or locations for a customized on-demand scan) may be exchanged as part of a procedure for one machine's scanner to configure and initiate the scan, with knowledge of the machines' readiness for the scan given the handshake and data exchange.
By way of example, when connected, the compromised machine may be able to view the adjunct machine as a recognized device, as is typical for many types of devices when coupled to a personal computer, for example. For example, the adjunct machine may automatically appear on an interface 314 as a file system volume (portable hard disk drive) such as E:\, or as a device accessible through its corresponding application, with which the user may interact to locate, load and launch an instance of the antimalware program 306 and/or a signature update package, shown in
When run, the loaded program and related data 316 in the compromised machine's memory is executed by the compromised machine's CPU. This action scans the storage and memory 304 of the compromised machine 302, and thereby remediates the malware. Thus, a compromised machine that cannot run its own antimalware program, for example, may be cleaned by loading an instance of the adjunct machine's program code.
Step 406 represents coupling the adjunct machine to the compromised machine, if not already done, via any wireless or wired means, such as USB. When coupled, in this example the compromised machine performs actions (step 408) that make the adjunct machine a connected device, such as loading drivers via plug-and-play, and/or launching a program with which the user may interact to interface with the device. The user may manually launch such a program if needed.
Step 410 represents the compromised machine program receiving user interaction that loads the antimalware program code from the adjunct machine and launches the program. The antimalware program then runs and scans the compromised machine's memory and drives (step 412), as well as any other drives selected by the user.
As another example, consider that the compromised machine is the one that appears as a storage device of the functional adjunct machine. In this event, the infected storage may be scanned cleaned as any other storage device.
In another alternative implementation generally represented in
More particularly, the compromised machine BIOS 518 is configured to clean boot from the functional adjunct machine 508 and load bootable operating system code 520, as if the adjunct machine was a bootable storage (e.g., a USB thumb drive). The operating system has sufficient functionality (or runs a small program) to acquire, from the adjunct machine 508, antimalware program code 506 (e.g., a cleaner tool) and downloaded updates 512 (e.g., signatures), shown on the compromised machine 502 as loaded antimalware program and data 516. This code is then run to clean the infected storage 504.
As described above, an adjunct application 510 may be downloaded and run to obtain the operations system code 520, the antimalware program code 506 and the updates 512. This removes the need for the user to locate the appropriate combination of items and configure the adjunct machine for booting.
Moreover, as represented in
For example, upon restarting of the compromised machine 502, the keyboard simulation code 522 may output one or more keystrokes to switch the machine to the BIOS setup user interface, where the user may interact to configure the compromised machine's boot sequence to boot from the adjunct device (boot from USB). The keyboard simulation code 522 may also output at least some of the keystrokes to assist the user in doing this reconfiguration.
At step 608, the adjunct machine begins the reboot process, with the BIOS configured to boot off of the adjunct machine. As described above, the adjunct machine may participate in the reconfiguration of the boot sequence by simulating a keyboard, for example. In any event, the BIOS boots off of the adjunct machine, whereby a clean operating system is loaded, along with the antimalware program/data, with the program then launched.
Step 610 represents the compromised machine (now running a clean operating system and code) executing the antimalware program to scan the compromised machine's infected drive (step 412), as well as any other drives as appropriate. This remediates the malware. When scanning and remediation are complete, the formerly compromised machine is rebooted off of the cleaned drive. Note that as described above, the adjunct machine may participate in the rebooting and reconfiguration of the BIOS boot sequence by simulating a keyboard to an extent.
With reference to
Components of the mobile device 700 may include, but are not limited to, a processing unit 705, system memory 710, and a bus 715 that couples various system components including the system memory 710 to the processing unit 705. The bus 715 may include any of several types of bus structures including a memory bus, memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures, and the like. The bus 715 allows data to be transmitted between various components of the mobile device 700.
The mobile device 700 may include a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the mobile device 700 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the mobile device 700.
Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, Bluetooth®, Wireless USB, infrared, WiFi, WiMAX, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
The system memory 710 includes computer storage media in the form of volatile and/or nonvolatile memory and may include read only memory (ROM) and random access memory (RAM). On a mobile device such as a cell phone, operating system code 720 is sometimes included in ROM although, in other embodiments, this is not required. Similarly, application programs 725 are often placed in RAM although again, in other embodiments, application programs may be placed in ROM or in other computer-readable memory. The heap 730 provides memory for state associated with the operating system 720 and the application programs 725. For example, the operating system 720 and application programs 725 may store variables and data structures in the heap 730 during their operations.
The mobile device 700 may also include other removable/non-removable, volatile/nonvolatile memory. By way of example,
In some embodiments, the hard disk drive 736 may be connected in such a way as to be more permanently attached to the mobile device 700. For example, the hard disk drive 736 may be connected to an interface such as parallel advanced technology attachment (PATA), serial advanced technology attachment (SATA) or otherwise, which may be connected to the bus 715. In such embodiments, removing the hard drive may involve removing a cover of the mobile device 700 and removing screws or other fasteners that connect the hard drive 736 to support structures within the mobile device 700.
The removable memory devices 735-737 and their associated computer storage media, discussed above and illustrated in
A user may enter commands and information into the mobile device 700 through input devices such as a key pad 741 and the microphone 742. In some embodiments, the display 743 may be touch-sensitive screen and may allow a user to enter commands and information thereon. The key pad 741 and display 743 may be connected to the processing unit 705 through a user input interface 750 that is coupled to the bus 715, but may also be connected by other interface and bus structures, such as the communications module(s) 732 and wired port(s) 740. Motion detection 752 can be used to determine gestures made with the device 700.
A user may communicate with other users via speaking into the microphone 742 and via text messages that are entered on the key pad 741 or a touch sensitive display 743, for example. The audio unit 755 may provide electrical signals to drive the speaker 744 as well as receive and digitize audio signals received from the microphone 742.
The mobile device 700 may include a video unit 760 that provides signals to drive a camera 761. The video unit 760 may also receive images obtained by the camera 761 and provide these images to the processing unit 705 and/or memory included on the mobile device 700. The images obtained by the camera 761 may comprise video, one or more images that do not form a video, or some combination thereof.
The communication module(s) 732 may provide signals to and receive signals from one or more antenna(s) 765. One of the antenna(s) 765 may transmit and receive messages for a cell phone network. Another antenna may transmit and receive Bluetooth® messages. Yet another antenna (or a shared antenna) may transmit and receive network messages via a wireless Ethernet network standard.
Still further, an antenna provides location-based information, e.g., GPS signals to a GPS interface and mechanism 772. In turn, the GPS mechanism 772 makes available the corresponding GPS data (e.g., time and coordinates) for processing.
In some embodiments, a single antenna may be used to transmit and/or receive messages for more than one type of network. For example, a single antenna may transmit and receive voice and packet messages.
When operated in a networked environment, the mobile device 700 may connect to one or more remote devices. The remote devices may include a personal computer, a server, a router, a network PC, a cell phone, a media playback device, a peer device or other common network node, and typically includes many or all of the elements described above relative to the mobile device 700.
Aspects of the subject matter described herein are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the subject matter described herein include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microcontroller-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Aspects of the subject matter described herein may be described in the general context of computer-executable instructions, such as program modules, being executed by a mobile device. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. Aspects of the subject matter described herein may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
Furthermore, although the term server may be used herein, it will be recognized that this term may also encompass a client, a set of one or more processes distributed on one or more computers, one or more stand-alone storage devices, a set of one or more other devices, a combination of one or more of the above, and the like.
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to: personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer 810 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 810 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer 810. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above may also be included within the scope of computer-readable media.
The system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computer 810, such as during start-up, is typically stored in ROM 831. RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 820. By way of example, and not limitation,
The computer 810 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, described above and illustrated in
The computer 810 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 810, although only a memory storage device 881 has been illustrated in
When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873, such as the Internet. The modem 872, which may be internal or external, may be connected to the system bus 821 via the user input interface 860 or other appropriate mechanism. A wireless networking component such as comprising an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a WAN or LAN. In a networked environment, program modules depicted relative to the computer 810, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.