Microsoft engineers have fortified the latest version of Windows with a feature designed to make it significantly harder for attackers to exploit bugs that may be lurking deep inside the operating system.
The safeguard is called safe unlinking, and it’s been dropped into a part of the Windows 7 kernel that allocates and deallocates chunks of memory. Safe unlinking performs a series of checks before entries are removed to make sure attackers aren’t trying to exploit the operating system using what’s known as a pool overrun.
“This simple check blocks the most common exploit technique for pool overruns,” Peter Beck, a member of Microsoft’s Security Science team writes here. “It doesn’t mean pool overruns are impossible to exploit, but it significantly increases the work for an attacker.”
During the past five years or so, Microsoft has added protections such as Data Execution Prevention (DEP) and Address Space Layout Randomization (ASLR) to the Windows user mode, to make it harder for attackers to exploit bugs in browsers and other applications. With the percentage of security bulletins affecting the Windows kernel rising from under five percent in 2007 to more than 10 percent last year, Microsoft decided it was time to add the protection to the kernel.
Pool overruns are to the kernel as buffer overruns are to applications. The attacks work by manipulating doubly linked lists of memory entries, in which each block points to the previous and next entry in the list. By causing a chunk of memory to point to a tainted section of code, attackers can escalate privileges of the operating system.
Safe unlinking aims to make such exploits harder by deallocating a block only after checking the integrity of the new memory structure. If it doesn’t check out, Windows returns a fatal error. Similar checks were introduced into the user-mode of Service Pack 2 of Windows XP, with additional measures added to Windows Vista.
With most Windows exploits targeting the heap, this latest addition shouldn’t be viewed as the same must-have that ASLR and DEP have become. Still, it’s hard to find a reason why the safeguard shouldn’t be added, particularly in light of Beck’s assurance that performance won’t take a hit.
“This is smart,” said Charlie Miller, who as principal analyst at Independent Security Evaluators has successfully exploited weaknesses in Windows, OS X and Linux. “I think they’re trying to stay ahead of the curve.” ®