Heartbleed captured quite a bit of news these past few days. A hole in the most secure of web services tends to make people a bit anxious. Racing to release patches and assess the damage consumed people for days. While I was a bit concerned about the possibilities of exposed private keys on any number of web servers, the overriding thought in my mind was instead about the speed at which we went from “totally secure” to “Swiss cheese security” almost overnight.
Jumping The Gun
As it turns out, the release of the information about Heartbleed was a bit sudden. The rumor is that the people that discovered the bug were racing to release the information as soon as the OpenSSL patch was ready because they were afraid that the information had already leaked out to the wider exploiting community. I was a bit surprised when I learned this little bit of information.
Exploit disclosure has gone through many phases in recent years. In days past, the procedure was to report the exploit to the vendor responsible. The vendor in question would create a patch for the issue and prepare their support organization to answer questions about the patch. The vendor would then release the patch with a report on the impact. Users would read the report and patch the systems.
Today, researchers that aren’t willing to wait for vendors to patch systems instead perform an end-run around the system. Rather than waiting to let the vendors release the patches on their cycle, they release the information about the exploit as soon as they can. The nice ones give the vendors a chance to fix things. The less savory folks want the press of discovering a new hole and project the news far and wide at every opportunity.
Shame Is The Game
Part of the reason to release exploit information quickly is to shame the vendor into quickly releasing patch information. Researchers taking this route are fed up with the slow quality assurance (QA) cycle inside vendor shops. Instead, they short circuit the system by putting the issue out in the open and driving the vendor to release a fix immediately.
While this approach does have its place among vendors that move a glacial patching pace, one must wonder how much good is really being accomplished. Patching systems isn’t a quick fix. If you’ve ever been forced to turn out work under a crucial deadline while people were shouting at you, you know the kind of work that gets put out. Vendor patches must be tested against released code and there can be no issues that would cause existing functionality to break. Imagine the backlash if a fix to the SSL module cause the web service to fail on startup. The fix would be worse than the problem.
Rather than rushing to release news of an exploit, researchers need to understand the greater issues at play. Releasing an exploit for the sake of saving lives is understandable. Releasing it for the fame of being first isn’t as critical. Instead of trying to shame vendors into releasing a patch rapidly to plug some hole, why not work with them instead to identify the issue and push the patch through? Shaming vendors will only put pressure on them to release questionable code. It will also alienate the vendors from researchers doing things the right way.
Shaming is the rage now. We shame vendors, users, and even pets. Problems have taken a back seat to assigning blame. We try to force people to change or fix things by making a mockery of what they’ve messed up. It’s time to stop. Rather than pointing and laughing at those making the mistake, you should pick up a keyboard and help them fix it. Shaming doesn’t do anything other than upset people. Let’s put it to bed and make things better by working together instead of screaming “Ha ha!” when things go wrong.