Malware that runs inside GPUs (graphics processing units) can be harder to detect, but is not completely invisible to security products.
Researchers from Intel division McAfee Labs teamed up with members of Intel's Visual and Parallel Computing Group to analyze a proof-of-concept GPU malware program dubbed JellyFish that was released in March.
Their conclusion, which was included in McAfee's latest quarterly threat report, is that running malicious code inside GPUs still has significant drawbacks and is not nearly as stealthy as its developers suggested.
JellyFish's creators claimed that one of the advantages of GPU malware is that it can snoop on the host computer's memory through a feature called DMA (direct memory access).
While this is true, exposing critical portions of the system's memory to the GPU requires kernel privileges and must be done through a process that runs on the host computer.
Security products can monitor for and restrict such operations, the Intel researchers said. Furthermore, "this dependency is subject to existing kernel protections."
If the installation of the GPU malware is achieved without detection, the user code and kernel driver used in the process can theoretically be deleted from the host operating system. However, this might cause problems.
For example, on Windows, orphaned GPU code triggers a Timeout Detection and Recovery (TDR) process that resets the graphics card, the McAfee researchers said. The default timeout before this mechanism kicks in is two seconds and any attempt to alter that value can be treated as suspicious behavior by security products, they said.
In addition, long-running GPU processes will lead to the OS graphical user interface becoming non-responsive, which can betray the presence of malware.
Therefore, the best option for attackers would be to keep a process running on the host computer, the researchers said. This code can be minimal and harder to detect than a full-blown malware program, but is nevertheless something that security products can identify.
Another claim made by the JellyFish developers was that code stored on the GPU persists across system reboots. This refers to data storage rather than code that automatically executes, according to the Intel researchers.
"The idea of persistence claimed here is that a host application is running at system startup, retrieving data from GPU memory, and mapping it back to userspace, which is not nearly as daunting because malicious usermode code must also persist outside of the GPU," they said.
While it's true that there is a shortage of tools to analyze code running inside GPUs from a malware forensics perspective, endpoint security products don't need such capabilities because they can detect the other indicators left by such attacks on the system.
Sign up for Computerworld eNewsletters.