A team of anonymous developers who recently created a Linux rootkit that runs on graphics cards has released a new proof-of-concept malware program that does the same on Windows. A Mac OS X implementation is also in the works.
The developers are trying to raise awareness that malware can infect GPUs and that the security industry is not ready for it. Their goal isn't to tip off malicious hackers, but the source code they released, while incomplete and buggy by design, could potentially be built upon and used for illegal purposes.
The problem the developers are trying to highlight lies not with the operating systems, such as Windows or Linux, nor with the GPU vendors, but rather with existing security tools, which aren't designed to scan the RAM used by GPUs for malware code.
The new Windows malware, which is intended as a demonstration, is called WIN_JELLY and acts as a Remote Access Tool or Trojan (RAT), according to its developers.
RATs give attackers extensive control over compromised computers and have been used in many targeted attacks over the past few years. However, the specific features of WIN_JELLY have not been described in detail yet.
The idea of running malware on graphics cards is not new. In 2013, researchers from Columbia University in New York and the Foundation for Research and Technology - Hellas in Greece developed a GPU-assisted keylogger as part of an academic project.
"The ability to execute general purpose code on the GPU opens a whole new window of opportunity for malware authors to significantly raise the bar against existing defenses," they warned in their research paper.
Existing anti-malware tools are not designed to detect malicious code that's stored in the memory of a separate hardware device like a graphics card and which is not executed on the system's CPU, they said.
Last week, a team of developers whose identities are not known published a proof-of-concept Linux keylogger called Demon that was inspired by the 2013 academic paper. At the same time they released a rootkit for Linux systems dubbed Jellyfish that runs on GPUs.
The rootkit required AMD or NVIDIA dedicated graphics cards and the OpenCL drivers. The Open Computing Language (OpenCL) is a framework for executing code on GPUs and other types of processors.
Most news stories last week about Jellyfish focused on the Linux aspect, leading some to believe that Windows or Mac PCs can't be affected by such threats. It now seems that Team Jellyfish is bent on disproving that.
WIN_JELLY, which was released over the weekend, runs on Windows-based systems with an Nvidia graphics card and the Nvidia CUDA drivers installed. Nvidia CUDA is a parallel computing platform that allows developers to take advantage of the processing power of Nvidia GPUs.
This requirement might limit the spread of such malware in the short term, discouraging its adoption by criminals, because many users don't have Nvidia CUDA installed on their computers. However, as more legitimate applications begin using GPUs for sophisticated mathematical calculations, the CUDA user base is likely to grow.
Judging by Team Jellyfish's GitHub repository, the developers also plan to create a version for Mac OS X called MAC_JELLY. They also noted in the description of their Linux rootkit that "Mac OS X boxes come pre-installed with OpenCL."
On the defense side, the team is also working on a tool called JellyScan that will allow system administrators and security researchers to detect GPU-based malware.