Responsible disclosure, the Microsoft way
Summary: A few weeks ago, I wrote about a Windows kernel vulnerability that was reported to Microsoft on October 22, 2004 and remained unpatched for more than two years. This is a bug I've been following closely since last November when Cesar Cerrudo, the hacker who found it, got tired of waiting for a fix from Microsoft and published details during the MoKB (Month of Kernel Bugs) project.
This is a bug I've been following closely since last November when Cesar Cerrudo, the hacker who found it, got tired of waiting for a fix from Microsoft and published details during the MoKB (Month of Kernel Bugs) project.
Last month, when Bitsec's Joel Eriksson created an exploit for this two-year-old flaw and sold it for release in Immunity's Canvas point-and-click attack tool, I suggested that Microsoft just might scramble to get a fix out the door.
Imagine my surprise to find a patch for this flaw in MS07-017, the emergency, out-of-band update shipped last Tuesday to thwart the zero-day animated cursor (.ani) attacks.
In a month, Microsoft moved from this being a "design problem" that was going to be fixed "in a future service pack" to releasing a fix in an emergency update.
Interestingly, Cerrudo was not given credit for reporting the flaw because, in Microsoft's eye, he crossed the "responsible disclosure/full disclosure" line.
I asked Microsoft to explain its stance on crediting researchers, disclosure and its actions in this specific case and, after a detailed interview with two directors in the Microsoft Security Response Center -- Mark Miller and Andrew Cushman -- I'm still at a loss how Cerrudo can be described as the irresponsible party.
"We don't credit researchers who participate in full disclosure," Miller declared, chalking up that stance to a rigid policy to encourage the concept of "responsible disclosure," where the researcher reports a bug directly to the vendor and gives the vendor sufficient time to create, test and release a patch.
"Full disclosure is unacceptable because it puts customers at risk. We do appreciate the fact that Cesar did work with us for that period but, once he provided that information to the public, he increased the risk to customers," Miller said.
But, at what point does that element of responsibility shift to the vendor? (Remember, we're talking about getting a two-year heads-up from the researcher)
The MSRC's Cushman, who works closely on Microsoft's efforts to befriend a cynical hacker community, agrees that responsible disclosure only works if the vendor is actually responsive but he argues strongly that the company's overall track record proves that it goes out of its way to respond to flaw warnings.
Still, I interjected, in this case, you had two years to get a fix ready and didn't. You only decided to issue a fix after Cerrudo went public. In many respects, Cerrudo helped protect Windows users by going public and prodding you into releasing a patch.
"In this particular case, it was a complicated issue," Cushman explained. "The fix was relatively involved and had architectural implications so we decided it was something that was best addressed with a service pack. We were in communication with Cesar as to the implications and why we didn't address it with a bulletin. The ideal solution was that Cesar would come back to us, tell us he was having second thoughts and give me a chance to consider his argument. Instead, he chose to go public with the Month of Kernel Bugs release."
Miller was even more blunt: "Microsoft's point is really clear. Once someone puts customers at risk, we can't credit them. We never have and we don't intend to change that policy."
Again, I asked him to explain how Cerrudo was the one that put customers at risk when Microsoft knew about this for two years and chose not to release a fix.
"I hope you don't write that we were twiddling our thumbs, doing nothing with it for two years," Cushman interjected. "This was coded up to go out in a service pack. It's important to remember that this isn't a critical bug. It's something we rated as important. There's no risk of remote code execution."
"We made a decision a long time ago that this would be fixed. It was coming in a service pack. The public release of the details [during the MoKB) was what changed our minds. It wasn't a case of two years worth of engineering going into this fix.
This issue highlights why dialogue between vendors and researchers is an important thing. We weren't aware that Cesar was frustrated because he wasn't seeing an update. Maybe that's something we have to work on improving. We're always looking at ways to improve things," Cushman said.
"We know we're not perfect [but] our track record demonstrates that we do a pretty good job. There were a few cases over the last few years where we misdiagnosed or mis-triaged a security vulnerability. But, on the whole, i think we do a very good job," Cushman said.
Miller believes the concept of responsible disclosure is working very well, noting that about 75 percent of bug reports coming into Redmond are done responsibly.
But, as Cushman himself acknowledges, this only works when the vendor is responsive. In this instance, it failed. Largely because of Microsoft.
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
"it's not a problem until others know about it"
It's been...
goodies. Like fake error messages, for those that use competing products. So
Microsoft has been doing it longer and also abusing the end user even worse.
Fake error messages?
No urban myth
One of the services offered by the company I was working for in the mid 80's was the building of custom XT and AT clones, with every component specified by the customer, including the OS.
Most customers wanted DR-DOS with Windows 3.1 on top. It became impossible to fulfull customer's wishes because at some point it became impossible to install Windows 3.1 on top of DR DOS. The reason? A fake error message ("Incompatible DOS version") and the end of the Windows install. The "fix"? Install Microsoft DOS 3.3
- Yes, Microsoft started lying for profit all those many years ago ...
Doesn't sound right
As for DR-Dos, if they'd provided a tool similar to MS's setver, I'd think you could have worked around it. I know that MS included the tool so that progs that didn't work with dos 5.x + would work.
I certainly wouldn't put it past the MS of the 90's (esp prior to the win9x release), but I doubt it still happens.
Either way, MS had no obligation to let Windows work on DR Dos.
Re:Doesn't sound right
"...complete garbage..." Huh?
Ummm, so there WAS an issue after all. WTF is your point?
reply to spooner
To the original person who made the false claim, that error, as it turns out, was only in a beta version of 3.1 (and was easilly bypassed (source Dr. Dobbs Journal http://www.ddj.com/dept/windows/184409070;jsessionid=WXIZQJJ1AQ1WAQSNDLRCKH0CJUNN2JVN?pgno=4)
It was removed from the final release and regardless, DR-Dos released a patch for it around the time of 3.1's release (as they assumed it'd still be there).
Bottom line is for anyone using a RTM copy of 3.1, there was no bug. But thanks for telling the world that your company installed pirated beta software on customer's machines.
Not so fast, really
And, if you read the other posts about the court case it seems that there was at least something to it, so my point is, speaking in absolutes...not a good idea.
Former POS(personal operating systems) support engineer here...
the official story was that dr-dos was returning an invalid version string (which is plausable) to the installer and to the windows executable. however we were discouraged from experimenting and looking for ourselves.
The court evidence says otherwise
http://www.theregister.co.uk/1999/11/05/how_ms_played_the_incompatibility/
I believe you but let's keep the train on the rails
No . . .
It's not a problem until somebody make's it one
Damn if you do, damn if you don't
Mostly Agree
That said, how often do these problems go unpatched for this long?
My guess is this is an exception to the rule....if it's not, then I have to wonder just how good the bad guys are if they aren't exploiting these things until a good guy explains it and perhaps even provides sample code.
Strongly Disagree
I have a huge problem with that statement. It makes huge assumptions that are big enough to allow a whole planet through. How do you know that this particular flaw has not been previously exploited. You are assuming that the so called blackhats hadn't found it and exploited it simply because no one talked about it. Second assumption that is tied to this one is that only exploits that are available in the internet are indicative of flaws identified. So, what that means is that any flaws with no publicly available exploits are unknown. Flaws should be fixed once identified. period. it is not only the good guys who are researching vulnerabilities in systems. Some of the other guys have a huge incentive to not disclose flaws that they discover so that they can exploit them.
Damn if you do, damn if you don't
That's "damned", not damn (NT) :)
Vista is a huge OS to defend and no easy task