Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


08:00 AM

Foxy Vista Henhouse

The bigger mess you make, the bigger the market for cleaning supplies

Common wisdom clearly states that allowing the fox to guard the henhouse is a bad idea, but in the case of Microsoft's entry into the security software market it appears that we may be allowing the fox to do something even worse -- design and build the henhouse. It is not very surprising that Symantec and McAfee have loudly and publicly decried Microsoft's security approach as anti-competitive and bad for security.

Security software firms are worried about Microsoft getting into their business, and probably within reason. Microsoft is a harsh competitor with huge market-moving power.

But many of the ideas that Microsoft is proposing for security are sound and could be very beneficial to security in the long run. The problem is that these good ideas have been tied (sometimes unfairly) to Microsoft's security software business plans.

In the final analysis, some of the anti-Microsoft noise is justifiable, and some of it is not. Untangling the two central threads can help us understand what's going on and form an opinion about what should happen next.

Protecting the Kernel is Good
The Vista kernel is designed so that interposing inside the kernel by hooking APIs or by otherwise patching critical system calls or swapping out critical kernel modules is disallowed. Technically, this is accomplished by signing kernel modules and enforcing the "no changes allowed" rule. This kernel-level protection comes courtesy of the Software Protection Platform which includes the Code Integrity (CI) verification subsystem.

The CI system is a cryptographic verification system that ensures that system binaries have exactly the same bits they had when they were certified at build time. CI also makes sure that no unsigned drivers are ever run in kernel mode (at least on 64-bit systems; things are a bit less draconian on 32-bit systems and mostly focused on supporting DRM for HD content). CI starts at boot time, but as we all know, boot loader security is notoriously tricky.

Make no mistake about it, this is an excellent security move by Microsoft designers. In order to support proper encapsulation (and leverage the basic idea of a trusted computing base), very strong boundaries must be identified and enforced -- especially in and around the kernel. This is usually best accomplished through the development of APIs that serve as front doors into the kernel, followed by very strong enforcement of API-only access controls. Compartmentalization of this sort is an essential security engineering best practice.

For many years, kernel-level APIs have been ignored and/or thwarted by malicious attackers and security software providers alike. Greg Hoglund and I describe highly technical ways of patching the win32 kernel found in Windows-NT and Windows-XP in order to thwart security in our book "Exploiting Software" (Addison-Wesley 2004). The hackers responsible for rootkits use kernel patching and DLL substitution methods as a matter of course. Given that rootkits are the apex of modern malicious software, coming up with a way to thwart this kind of activity makes perfect sense.

The problem is that security software vendors including Symantec and McAfee have used the very same techniques for years in the name of good. Antivirus software and personal firewall software pulls all sorts of fancy kernel-interpositioning kung fu.

The problem is that if Microsoft puts hard core controls around the kernel, the approaches used by security companies (and malicious hackers) will stop working. A complete redesign for the existing security providers is an expensive proposition that the security companies would rather not incur. Of course the malicious hackers would rather not see all their work go down the drain either!

Microsoft should go ahead and properly encapsulate kernel technology. Better security requires a more reasonable approach to OS design and API enforcement. Bravo to Microsoft for doing the right thing.

Being Paid to Fix Your Own Mistakes is Bad
All is not well, however. Microsoft's entry into the security market is hugely problematic and will be bad for security in the long run. The problem is simple and obvious. The reason we need security software like antivirus tools and personal firewalls is that OSes have traditionally suffered from all kinds of security problems (both bugs and flaws). Virus writers and malicious hackers take advantage of these weaknesses to create and spread malware. Viruses, worms, rootkits, and botnets are the result. This is a mess.

If you think about it this way, Symantec and McAfee exist to clean up the security mess that vendors like Microsoft made with their early, insecure OSes. Lots of money has been made by these companies, and they provide a very valuable service.

Here's the problem. Microsoft is still in the business of building OSes. They should concentrate their resources and security efforts on building better OSes. And to their great credit, they have been attempting to do so through activities such as the Trustworthy Computing Initiative and the software security work of Steve Lipner and Michael Howard.

If, instead, Microsoft is allowed to enter the security software business (note the critical difference between software security and security software!), they will in some sense be responsible for building cleanup technology designed to clean up their own mess. Then the bigger the mess they make, the more demand there will be for their janitorial supplies!

Microsoft may be too responsible to manipulate its security defect density intentionally in order to create demand for its security software, but the fact that this is even possible is a great worry. This is like allowing the fox to design and build the henhouse, not just guard it.

Microsoft is right to insist on controlling access to the kernel. Kudos to them for this move and for their progress in software security. But Microsoft should not be allowed to get into the security software business. They should leave that to other vendors. If both of these things happen, we'll all be better off in user land.

Gary McGraw is CTO of Cigital Inc. Special to Dark Reading

Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
COVID-19: Latest Security News & Commentary
Dark Reading Staff 9/25/2020
Navigating the Asia-Pacific Threat Landscape: Experts Dive In
Kelly Sheridan, Staff Editor, Dark Reading,  9/25/2020
Startup Aims to Map and Track All the IT and Security Things
Kelly Jackson Higgins, Executive Editor at Dark Reading,  9/22/2020
Register for Dark Reading Newsletters
White Papers
Current Issue
Special Report: Computing's New Normal
This special report examines how IT security organizations have adapted to the "new normal" of computing and what the long-term effects will be. Read it and get a unique set of perspectives on issues ranging from new threats & vulnerabilities as a result of remote working to how enterprise security strategy will be affected long term.
Flash Poll
How IT Security Organizations are Attacking the Cybersecurity Problem
How IT Security Organizations are Attacking the Cybersecurity Problem
The COVID-19 pandemic turned the world -- and enterprise computing -- on end. Here's a look at how cybersecurity teams are retrenching their defense strategies, rebuilding their teams, and selecting new technologies to stop the oncoming rise of online attacks.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
PUBLISHED: 2020-09-27
XSS exists in the MobileFrontend extension for MediaWiki before 1.34.4 because section.line is mishandled during regex section line replacement from PageGateway. Using crafted HTML, an attacker can elicit an XSS attack via jQuery's parseHTML method, which can cause image callbacks to fire even witho...
PUBLISHED: 2020-09-27
An issue was discovered in the FileImporter extension for MediaWiki before 1.34.4. An attacker can import a file even when the target page is protected against "page creation" and the attacker should not be able to create it. This occurs because of a mishandled distinction between an uploa...
PUBLISHED: 2020-09-27
An issue was discovered in MediaWiki 1.34.x before 1.34.4. On Special:Contributions, the NS filter uses unescaped messages as keys in the option key for an HTMLForm specifier. This is vulnerable to a mild XSS if one of those messages is changed to include raw HTML.
PUBLISHED: 2020-09-27
In MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4, Special:UserRights exposes the existence of hidden users.
PUBLISHED: 2020-09-27
In MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4, XSS related to jQuery can occur. The attacker creates a message with [javascript:payload xss] and turns it into a jQuery object with mw.message().parse(). The expected result is that the jQuery object does not contain an <a> ...