Security researchers at enSilo have demonstrated a new way for attackers to inject malicious code into practically any Windows system in a manner that is undetectable to existing anti-malware tools.
The method, which enSilo calls "AtomBombing," takes advantage of an underlying mechanism in the Windows operating system called atom tables. There is no way to patch against this code-injection method since it does not rely on any vulnerability, enSilo said in an alert this week.
"AtomBombing affects all Windows versions," Tal Liberman, an enSilo security researcher, said in the alert. "Since the issue cannot be fixed, there is no notion of a patch for this."
Code injection is a technique that attackers often use to execute malicious code by inserting it into a legitimate application or process. The Open Web Application Security Project (OWASP) describes it as an attack that is typically made possible because of a failure by the application or process to properly validate input and output data, like allowed characters, data format, and amount of expected data.
As Liberman noted, attackers often use code-injection when they want to bypass process level restrictions or for doing things like accessing encrypted passwords and man-in-the-middle attacks.
enSilo's AtomBombing attack involves the injection of malicious code into the so-called atom tables that are present in all versions of Windows. The tables allow Windows applications to store, share, and access certain data in the form of strings and associated identifiers.
In researching new code injection techniques for Windows, enSilo researchers discovered a way that attackers could use to write malicious code into an atom table and force applications using the table to retrieve and execute the code.
"This is the first code injection technique that is based on atom tables," Liberman told Dark Reading.
The technique leverages Windows atom tables that allow communication between processes.
"The code then is not injected into the atom table, rather to a target process through the usage of atom tables," he says. "Once the code has been injected into a process, the attackers can do as they please as though the code was loaded legitimately by the target process."
The oldest version of Windows that uses atom tables is Windows 2000, so the issue dates back to 2000, Liberman says.
An attacker that gains access to a Windows machine can easily use AtomBombing to inject code to any process that has equal privileges. But it is not a privilege-escalation attack, meaning it cannot be used to inject an administrative account from a non-administrative one, he says.
"What we need to remember is that this method is useful not only during the initial infection," Liberman notes.
An attacker could use AtomBombing to inject code into Internet Explorer. Or to take a screenshot, he could employ AtomBombing to inject code into an explorer.exe. To steal passwords, an attacker could use the attack to inject code into chrome.exe, he says.
"This code-injection technique is not dependent on a vulnerability in Microsoft. Rather, it leverages legitimate building blocks of Windows," he says.
Chris Eng, vice president of research at application security firm Veracode, says this attack technique represents another example of how even well-designed applications can be tricked into performing actions not intended by their developers via code injection.
"New technologies are coming into the scene to actually watch what's happing inside the application and prevent the success of those sorts of attacks," Eng says.