Abstract:
Techniques to perform root volume encryption in a para-virtualized virtual machine are described. A disk layout supports the root volume encryption, set key flow, and normal boot flow of the para-virtualized virtual machine. An implementation for performing encryption for a cloud-based service is disclosed.
Abstract:
Emulation software executes upon an operating system of a computer and creates an emulated computer. Bootstrapping code is read into this emulated computer from a sector (such as a master boot record) of a mass storage device. Instructions in the bootstrapping code are executed by an instruction emulator (also using an emulated CPU, emulated memory and an emulated hard disk) and these instructions and behavior are collected as each instruction executes. Access to the actual hard disk may be allowed. The collected information is then compared to a virus signature or behavior rules indicating malware and a conclusion is drawn as to whether the bootstrapping code includes malicious software.
Abstract:
A computer executes a suspicious software sample directly on its CPU in order to detect if the software sample is malicious. The software sample does not execute within a sandbox or virtual machine. Before the sample executes, a memory state of the computer is saved and a virtual disk file is created to bootstrap the computer at a later time. Malicious behavior of the software sample is collected while it executes and a report is generated. Hard disk access requests are redirected to a virtual disk file. The software sample does not detect that it is being analyzed. After execution of the sample, the computer is reverts to a clean state by bootstrapping the computer from the saved virtual disk file and then restoring the computer's volatile and non-volatile virtual memory from the saved memory state. A new software sample may then be executed and analyzed on the clean computer.
Abstract:
A database of known graphical user interface layouts is generated using samples of known executable files. An executable file having an unknown function is obtained; it is executed within a safe environment and its graphical user interface is identified. Layout analysis enumerates all of the windows within the interface and extracts the position values of each window and the dimension values of each window to form a set of layout information. If the layout database contains this layout information set then it is determined that the layout information is of the same type of software corresponding to the type of software contained within the database (or of the type of software to which the layout information is matched within the database). A match may occur if all the windows match, if only some percentage of the windows match, or if the windows do not match exactly but the dimensions of the corresponding window in the database are within a certain percentage.
Abstract:
A user generates a pattern in a matrix (or two-dimensional grid) and enters a user name and an associated password. This username, password and pattern are stored locally on a computing device or are transmitted to a remote computer server for later authentication. Upon authentication, an input matrix is displayed. The user enters the password into the matrix in the form of the pattern, and also enters the username. The computer retrieves the previously stored pattern and password with the username. The previously stored pattern is used to read the input password from the input matrix. A match with the stored password indicates authentication. Alternatively, the input matrix only includes the pattern and password is entered separately. The input matrix may also be filled with random characters to improve security. The stored pattern is compared to the input pattern using image analysis or by comparing a set of coordinates.
Abstract:
Cross-site scripting vulnerabilities in a Web browser that may lead to malware execution on a computing device are reduced. The specific vulnerabilities arise from HTML-based e-mails using e-mail service providers (e.g., Hotmail, Gmail, Yahoo) that have unknown or malformed HTML elements and Javascripts. These unknown elements may execute in a browser and cause harm to the computing device. To prevent this, the e-mail is parsed to create a DOM tree. The DOM tree is filtered using a normal element filter. The modified DOM tree is filtered a second time using a script analyzer filter to isolate potentially harmful HTML and Javascript elements. These elements are then emulated to determine which of them are in fact malicious. These malicious elements are then prevented from executing, for example, by preventing the e-mail recipient from opening the e-mail in the browser.
Abstract:
A signal processing transformation (wavelet, Fourier, discrete cosine) is applied to a digital image on a mobile device in order to produce a low-level information image and at least one high-level information image. The low-level image is recognizable as the digital image and is kept on the device; all other related images are deleted. The high-level information images are uploaded. The transformation is applied recursively and is dictated by a default setting, calculated from data of the mobile device, or input. To regenerate the original image the device connects to the server and downloads a set of high-level information images or all sets. The low resolution image is combined with the high-level information images using the reverse of the transformation originally applied to produce a higher resolution version of the low resolution image. Successive sets of high-level information images may be recursively applied to generate successively higher resolution images.
Abstract:
A mobile telephone is used to diagnose a computer with malware. The telephone becomes a bootable device with a bootable partition in persistent storage. An operating system image including antivirus software in the bootable partition of the telephone is used to bootstrap the affected computer. The antivirus software executes upon the computer and transfers results (files, checksums, registry data) to the mobile telephone. The telephone uploads these results to a remote cloud service which then develops instructions, patterns, files, etc. for counteracting the malware. The cloud service downloads this response to the mobile telephone which then transfers the response back to the computer. The antivirus software on the computer uses the response to remove the malware on the computer. An interface application on the mobile telephone handles transfer with the computer and uploading and downloading with the cloud service.
Abstract:
A security virtual machine inspects all data traffic between other virtual machines on a virtualization platform in order to prevent an inter-VM attack. Data traffic between the machines is intercepted at the privileged domain and directed to the security virtual machine via a hook mechanism and a shared memory location. The traffic is read by the security machine and analyzed for malicious software. After analysis, the security machine sends back a verdict for each data packet to the privileged machine which then drops each data packet or passes each data packet on to its intended destination. The privileged domain keeps a copy of each packet or relies upon the security machine to send back each packet. The security machine also substitutes legitimate or warning data packets into a malicious data package instead of blocking data packets. The shared memory location is a circular buffer for greater performance. Traffic is intercepted on a single host computer or between host computers.
Abstract:
Critical resources are identified within a computer system such as operating system files, drivers, modules and registry keys that are used to bootstrap the computer. During a successful bootstrap, these resources are saved into persistent storage during the bootstrap phase. Changes to critical resources are monitored and these resources are backed up if they are changed. Upon computer system failure, steps of identifying the type of failure and an analysis of its root cause are optionally performed. A user is presented with a bootstrap menu and critical resources necessary to bootstrap the computer are retrieved from persistent storage and saved into their appropriate locations. A successful bootstrap is then performed of the computer system in order to recover from the failure.