Computer scientists have developed proof-of-concept malware that evades traditional security defenses by running on a PC's graphics processor.
The prototype taps a PC's GPU to decrypt, or “unpack,” a malicious payload from a file just prior to being run on a targeted machine. Self-unpacking techniques are a common way to defeat signature-based anti-virus scanning because they allow authors to make small changes to the compression or encryption every day or so without altering the core attack code. Up until now, the unpacking had to be performed by a PC's CPU, which places practical limits on the types of packing that can be used.
“Implementing the self-unpacking functionality of a malware binary using GPU code can pose significant obstacles to current malware detection and analysis systems,” the scientists wrote in a research paper scheduled to be presented next month at the IEEE's International Conference on Malicious and Unwanted Software.
“A malware author can take advantage of the computational power of modern graphics processors and pack the malware with extremely complex encryption schemes that ... can be efficiently computed due to the massively parallel architecture of GPUs.”
Once the prototype is finished unpacking the code, it places it in a memory location that can be accessed by the PC's CPU. The CPU then executes it.
GPU-assisted malware has the added benefit of containing a much smaller amount of code that can be executed on Intel's x86 chip architecture. That leaves a much smaller footprint to be analyzed by the vast majority of anti-virus programs, which are limited to files that use that instruction set.
The proof of concept also uses the GPU to make it much harder for security researchers to analyze the internal workings of a malicious program. So-called polymorphism has been long been used to hide a file's internals. The process becomes much more effective when it's offloaded to a GPU because keys used to decrypt parts of the code are never accessible to the CPU.
“Although complete extraction of the original code is still possible by a determined malware analyst, when combined with existing anti-debugging techniques, this form of GPU-assisted polymorphism makes the whole reverse engineering process a challenging and time-consuming task,” the paper states.
The research comes as GPU advances have drastically increased their computational power and the types of tasks they can perform. Their ability to run massively parallel software threads makes them much better suited for certain tasks, such as password cracking and media transcoding.
The prototype was designed to run on GPUs compatible with Nvidia's CUDA, or Computer Unified Device Architecture. It wouldn't be hard for attackers to include another framework in the same malicious binary that supports GPUs made by AMD.
The researchers envision a time when malware taps GPUs to become much more powerful. The obvious addition is for botnets to use GPUs to crack passwords and encryption keys. The researchers hold out other possibilities, such as malware that manipulates the CPU to display false information on a computer monitor, or the specter of malware that runs solely on the GPU with no association with processes that run on the CPU.
The paper was written by Giorgos Vasiliadis and Sotiris Ioannidis of The Foundation for Research and Technology in Greece and Michalis Polychronakis of Columbia University. A PDF of their paper is here. ®