‘GhostHook’ Foils Windows 10 64-bit’s Kernel Protection
Microsoft says an attacker needs kernel-level access before they can use the ‘GhostHook’ technique to install a rootkit, but CyberArk researchers say attackers need only local access.
Microsoft’s PatchGuard kernel patch protection technology has played a big part in preventing attackers from installing rootkits on systems running Windows 10 64-bit; at least so far. But now, security researchers from CyberArk Labs say they have found a way to bypass PatchGuard protections and gain rootkit abilities on systems running Windows x64 operating systems.
The technique, which the researchers have dubbed GhostHook, involves a weakness in Microsoft’s implementation of Intel Processor Trace (Intel PT), a technology used primarily for performance monitoring, malware analysis, fuzzing, debugging, and exploit detection.
The weakness exists specifically at the point where Intel PT talks to Windows, says CyberArk researcher Kasif Dekel. It gives threat actors a way to “hook” or intercept any piece of code running on the machine and gain control over the way it behaves.
Hooking is neither an exploit technique nor an escalation of privilege approach, Dekel noted separately in a blog. Many software products, including application security tools, system utilities, and software extensions, incorporate the technique. When used in a malicious context, hooking allows threat actors to, among other things, plant rootkits on systems where the attacker already has control over the asset.
GhostHook is the first known technique that gives attackers the ability to use hooking to gain complete control over 64-bit Windows systems at the kernel level. It gives attackers a way to gain access to a Windows system in a manner that is virtually undetectable by anti-malware tools, host intrusion prevention systems, personal firewalls, next-gen endpoint products and any tool that relies on information from the kernel.
Microsoft did not immediately respond to a Dark Reading request for comment on CyberArk’s discovery, or of its claims about being able to gain complete kernel-level access on 64-bit Windows systems.
But in a response to CyberArk—which Dekel included in his alert—a member of Microsoft’s engineering team said the company’s analysis showed that attackers would already need to be running kernel code on the system in order to be able to use GhostHook.
“As such, this doesn’t meet the bar for servicing in a security update however it may be addressed in a future version of Windows. As such I’ve closed this case,” the engineer’s response noted.
Dekel though says that the attacker only needs to gain local admin rights on a machine to exploit the technique. “Gaining this level of access is table stakes for attackers, typically accomplished through simple phishing emails,” he says. “This technique is about moving beyond admin rights and exploiting the machine at the kernel level. Attackers would be able to gain full control over the network and gain the ability to intercept anything on a system.” GhostHook allows attackers to bypass security layers that were specifically designed to combat malware with administrative rights on a system, he says.
For the moment at least there is no evidence that the technique is being actively used to attacks Windows 10 systems. But the skills needed to pull an attack off using the GhostHook technique is well within the capabilities of nation-state actors, especially those who have already proven the ability to craft 64-bit malware like the disk erasing Shamoon.
“We believe that if attackers were able to execute ransomware through this technique, the results would be devastating,” Dekel said. “Today’s ransomware works in user mode because of PatchGuard. If they were able to execute this code behind PatchGuard, it would [have a] catastrophic effect.”
Mitigating the threat will require Microsoft to implement fixes in several places in the Intel PT feature. The company will also need to add PatchGuard protection to Intel’s PT module, says Dekel.
“Third-party players should take in consideration that information coming from kernel modules are not always reliable,” Dekel says. “They should gather the same information from various APIs and different locations in order to verify the integrity of it.”
Jai Vijayan is a seasoned technology reporter with over 20 years of experience in IT trade journalism. He was most recently a Senior Editor at Computerworld, where he covered information security and data privacy issues for the publication. Over the course of his 20-year … View Full Bio