A security feature in the 64-bit version of Windows Vista can be easily circumvented with a free utility that loads unsigned drivers into the kernel, according to researchers at Symantec.
Among 64-bit Vista’s security provisions is one new to Microsoft’s operating systems: only digitally-signed code can be loaded into the kernel. Under those new rules, code destined for the kernel — typically drivers — must be accompanied by a signed certificate available from a limited number of issuing authorities. Drivers not equipped with a legitimate certificate aren’t loaded.
The thinking behind the move was that it would stymie rootkits, which load driver code into the kernel as part of their cloaking tactics.
But a pair of Symantec security researchers pointed to a free utility from Australian developer LinchpinLabs as one crack in the system. LinchpinLabs’ Atsiv, says Ollie Whitehouse, an architect with Symantec’s advanced threats research team, uses signed drivers to load unsigned code into the Vista kernel.
“[Atsiv’s] command line tool loads [its own] appropriate driver, which then in turn allows loading of unsigned drivers due to the implementation of their PE loader,” says Whitehouse. “A side effect of using their own load is noted by the authors in their design documentation: ‘Atsiv doesn’t add the driver to the PsLoadedModuleslist so it is not visible in the standard drivers list.’
“This is rootkit-type behaviour,” says Whitehouse.
One of LinchpinLabs’ developers, identified only as “Dan”, argued on rootkit.com that Vista’s signing requirement “doesn’t prevent malware, it just prohibits freedom to choose.” Dan also claimed that Microsoft could never prevent hackers from obtaining legitimate certificates.
“A signed file uniquely identifies the company that developed that file, but when companies can be created and registered in jurisdictions known for protecting the privacy of company founders and directors you have to ask what does driver-signing actually represent?” Dan asked “While driver signing certificates can be revoked, new certificates, with enough money, can be created faster than it takes to change a file’s signature. If this is indeed the case, then it is the hobbyists and home users that end up paying the cost.”
Whitehouse agrees that the only way Microsoft can enforce the ban on unsigned kernel code is to revoke the certificate. “It’ll be interesting to see how long it takes Microsoft to do this,” Whitehouse says. “Secondly, as [Dan] points out, all it will take is someone to register another company, obtain another signing certificate, and the process will start over again.”
Although both involve the Vista 64-bit kernel, the code-signing requirement is not directly connected with PatchGuard, a protection scheme that bans so-called “kernel patching” or “kernel hooking” techniques. PatchGuard was the focus of a long-running dispute between Microsoft and several security vendors, Symantec included, over access to the kernel.
Symantec, McAfee and others argued that they needed to inject their own code into the kernel in order to protect users from the stealthiest kinds of malware.
Microsoft did not immediately reply to questions about whether it would revoke the certificate used by Atsiv.