CanSecWest Microsoft on Friday released an open-source program designed to streamline the labor-intensive process of identifying security vulnerabilities in software while it's still under development.
As its name suggests, !exploitable Crash Analyzer (pronounced "bang exploitable crash analyzer") combs through bugs that cause a program to seize up, and assesses the likelihood of them being exploited by attackers. Dan Kaminsky, a well-known security expert who also provides consulting services to Microsoft, hailed the release a "game changer" because it provides a reliable way for developers to sort through thousands of bugs to identify the several dozen that pose the greatest risk.
"Microsoft has taken years of difficulties with security vulnerabilities and really condensed that experience down to a repeatable tool that takes a look at a crash and says 'You better take a look at this,'" Kaminsky told The Reg. "What makes !exploitable so fascinating is that it takes at least the first level of this knowledge and packages it up into something that can be in the workflow."
Over the past five years, Microsoft has made a fair amount of progress hardening its operating systems and applications against the most-common security threats. Protections such as Address Space Layout Randomization and cross-site scripting defenses have been added to later versions of Windows and Internet Explorer, respectively. And the company has generally managed to exorcise its programs of dangerous vulnerabilities before they can be exploited by attackers.
Now, Microsoft wants to help secure third-party applications that run on top of Windows. Last year, the company released a threat-modeling tool and other resources designed to help software developers kick-start secure development lifecycle programs in their organizations. The idea was to package the security experience Microsoft has attained so it can serve as a sort of template for other companies.
The release of !exploitable, which was announced at the CanSecWest security conference in Vancouver, British Columbia, is a continuation of that effort. It's a Windows debugger extension that's used during fuzz testing, when testers test the stability and security of an application by throwing unexpected data at it. It's expected to be available soon at this link as an open-source program on CodePlex.
Because the majority of crash-inducing bugs don't result in security vulnerabilities, there can be a fair amount of internal debate when they're discovered during development. Delaying the release of a product to fix a crash bug that's most likely not exploitable needlessly drives up development costs. An even worse outcome is ignoring a flaw that later results in an application being exploited.
"It's all about signal-to-noise ratio," Kaminsky said. "Nobody has the time or resources to learn all the obscure tricks we have in the security industry, let alone to build that into the process." ®