It's official: Microsoft Windows patches for recently revealed critical microprocessor flaws will cause noticeable performance slowdowns on Windows machines, the company said today.
Performance degradation has been a key concern after Microsoft and Linux operating system kernels were retooled to mitigate attacks on Intel, AMD, and ARM processors via the so-called Meltdown and Spectre hardware vulnerabilities. Security experts had estimated up to 30% degradation for Linux and Windows, so performance is a big part of the equation when it comes to risk assessment and in some cases, whether to patch at all.
Microsoft in a blog post today confirmed that Windows servers will experience noticeable performance slowdowns, as will Windows 7 and 8 client machines running older processors (2015-timeframe PCs with Haswell or older CPUs). While newer Windows 10 platforms won't experience perceptible performance drops, those on older hardware will.
To be fully secured from the flaws, machines must apply the operating system, browser, and microcode patches, says Frank Shaw, communications lead at Microsoft, in a Dark Reading interview.
Specifically, Windows 10 client machines running modern microprocessors (2016-era PCs with Skylake, Kabylake, or newer CPUs) will suffer some performance hits, but it won't be "user-perceptible," according to Microsoft. "It will be a couple of percentage points, depending on various workloads. It's not something people will truly notice,” says Shaw.
Windows 10 machines on Haswell-class or older microprocessors however will experience noticeable performance changes in some cases, however, Shaw says.
And older Windows 7 and Windows 8 machines will experience performance degradation with the patches. "For context, on newer CPUs such as on Skylake and beyond, Intel has refined the instructions used to disable branch speculation to be more specific to indirect branches, reducing the overall performance penalty of the Spectre mitigation," Microsoft said. "Older versions of Windows have a larger performance impact because Windows 7 and Windows 8 have more user-kernel transitions because of legacy design decisions, such as all font rendering taking place in the kernel. We will publish data on benchmark performance in the weeks ahead."
Microsoft said it's working on fine-tuning the Windows performance of its patches. This is especially crucial for Windows servers.
"Windows Server on any silicon, especially in any IO-intensive application, shows a more significant performance impact when you enable the mitigations to isolate untrusted code within a Windows Server instance. This is why you want to be careful to evaluate the risk of untrusted code for each Windows Server instance, and balance the security versus performance tradeoff for your environment," according to Microsoft.
For the Spectre Branch Target Injection (CVE-2017-5715), Microsoft's patch alerts Windows to call new CPU instructions in the case of risky scenarios with the side-channel communications process. That patch requires the microprocessor update on the machine.
For Meltdown's so-called Rogue Data Cache attack (CVE-2017-5754), Microsoft said it isolated kernel and user-mode page tables to thwart such an attack; no microcode updates are needed on the machine for that fix.
"Because Windows clients interact with untrusted code in many ways, including browsing webpages with advertisements and downloading apps, our recommendation is to protect all systems with Windows Updates and silicon microcode updates," Microsoft said in its post.
Meanwhile, Microsoft recommends that server administrators employ mitigations at the physical layer of the server to isolate virtualized workloads on the server. Azure was already updated accordingly to protect virtual machine environments, according to the company. "For on-premises servers, this can be done by applying the appropriate microcode update to the physical server, and if you are running using Hyper-V updating it using our recent Windows Update release."
There are additional mitigation options for Windows Server as well within VMs to vet untrusted code, for example.
When is okay not to patch? If a system is not running "untrusted" applications, Microsoft's Shaw says. "IT pros in some cases will not deploy microcode [patches if they] have an environment where they don't need to worry about it: if they are not running untrusted applications," he says.
"This is a hardware problem that affects chips, operating systems," he says. "We wanted to let customers know what to expect" with performance, he says. "You won't notice if it's a spinning disk, but if it's a solid-state disk, you will notice" performance hits, Shaw says.
The good news: there are no exploits in the wild right now, he says. Consumers and businesses should install Windows and Apple OS updates, and "then when microcode is available from OEMs," it should also be installed, he says.
"On the client side, we would certainly hope customers will deploy the full solution" for patches, he says. "On the server side, IT pros can look at their specific use cases and make a decision."
Microsoft has patched 41 of its 45 editions of Windows, and expects to have the remaining four issued "soon," the company said in its post.
The company has further information on microcode updates from OEMs here, and information on specific system patches here:
- Meltdown, Spectre Likely Just Scratch the Surface of Microprocessor Vulnerabilities
- Critical Microprocessor Flaws Affect Nearly Every Machine
- Vendors Rush to Issue Security Updates for Meltdown, Spectre Flaws
- Intel Processor Security Flaw Prompts Kernel Makeovers in Linux, Windows