The design flaw allows for code injection and is dubbed AtomBomb as it makes use of the system's atom tables.
As Microsoft defines it, "An atom table is a system-defined table that stores strings and corresponding identifiers. An application places a string in an atom table and receives a 16-bit integer, called an atom, that can be used to access the string. A string that has been placed in an atom table is called an atom name."
In a blog post describing the method of attack, enSilo's Tal Liberman wrote: "Our research team has uncovered a new way to leverage mechanisms of the underlying Windows operating system in order to inject malicious code. Threat actors can use this technique, which exists by design of the operating system, to bypass current security solutions that attempt to prevent infection."
"Unfortunately, this issue cannot be patched since it doesn’t rely on broken or flawed code – rather on how these operating system mechanisms are designed," Liberman added.
The issue that enSilo revealed provides a method for attackers to inject code, something they use to add malicious code into legitimate processes, making it easier to bypass security products, hide from the user, and extract sensitive information that would otherwise be unattainable.
"For example, let’s say an attacker was able to persuade a user to run a malicious executable, evil.exe," Liberman said. "Any kind of decent application-level firewall installed on the computer would block that executable’s communication.
"To overcome this issue, evil.exe would have to find a way to manipulate a legitimate program, such as a Web browser, so that it would carry out communication on behalf of evil.exe."
He said atom tables were provided by the operating system to allow applications to store and access data. They could also be used to share data between applications.
"What we found is that a threat actor can write malicious code into an atom table and force a legitimate program to retrieve the malicious code from the table. We also found that the legitimate program, now containing the malicious code, can be manipulated to execute that code."
There are various methods of code injection and Liberman said his team had found a new one called PowerLoadEx "which enabled an attacker to inject code without actually needing to write code or data to the injected process".
He said once a code injection technique "was well-known, security products focus on preventing attackers from compromising the endpoints (such as anti-virus and host intrusion prevention systems), typically updating their signatures accordingly. So once the (method of) injection is known, it can be detected and mitigated by the security products.
But, he said, because AtomBombing was a new code injection technique, it bypassed anti-virus, next-generation anti-virus and other endpoint infiltration prevention solutions.
Asked by a reader whether he had spoken to anyone at Microsoft about this defect in the operating system design, Liberman responded that AtomBombing was not dependent on a vulnerability in Windows, adding, "Rather it leverages legitimate building blocks of Windows."
In response to another query, he wrote: "This technique can be used post-infection to inject code from one process to another. For example, on a computer protected by modern security software a malicious executable such as evil.exe will not be able to communicate because it would be blocked by a firewall. It would need to inject code into a browser in order to communicate which will also be blocked by any standard AV. By using AtomBombing evil.exe can inject code into a Web browser undetected by said AV and then have the Web browser communicate on its behalf undetected by said firewall."