{"id":15862,"date":"2014-04-14T19:40:34","date_gmt":"2014-04-14T23:40:34","guid":{"rendered":"http:\/\/www.opensource.im\/?p=15862"},"modified":"2014-04-14T19:40:34","modified_gmt":"2014-04-14T23:40:34","slug":"heartbleed-open-sources-worst-hour","status":"publish","type":"post","link":"https:\/\/euvolution.com\/open-source-convergence\/open-source-software\/heartbleed-open-sources-worst-hour.php","title":{"rendered":"Heartbleed: Open source&#8217;s worst hour"},"content":{"rendered":"<p><p>  Summary: People assumed that open source software is  somehow magical, that it's immune to ordinary programming  mistakes and security blunders. It's not.<\/p>\n<p>        Heartbleed was open source software'sbiggest failure    to date. A simple OpenSSL programming mistake    opened a security hole in a program that affected hundreds of    millions of websites, and God alone knows how many users, who    relied upon it for their fundamental security.  <\/p>\n<p>    We know what happened. A programming blunder enabled attackers    to pull down 64k chunks of \"secure\" server memory. Of course, a    hacker would then have to sift through this captured memory for    social security numbers, credit-card numbers, and names, but    that's trivial.  <\/p>\n<p>    We know how it happened. German programmer     Dr. Robin Seggelmann added a new \"feature\" and forgot to    validate a variable containing a length. The code reviewer, Dr    Stephen Henson, \"apparently also didnt notice the missing    validation,\" said Seggelmann, \"so the error made its way from    the development branch into the released version.\" And, then    for about two years the defective code would be used, at one    time or another, by almost ever Internet user in the world.  <\/p>\n<p>    Sorry, there was no grand National Secuity Agency (NSA) plan to    spy on the world. It was just a trivial mistake with enormous    potential consequences.  <\/p>\n<p>    So why did this happen? Simple everyone makes mistakes.        Estimates on the number of errors per lines of code (LOC)    ranges from 15 to 50 errors per LOC to three if the code is    rigorously checked and tested. OpenSSL has approximately    300-thousand LOC. Thinks about it.  <\/p>\n<p>    Still, open source programming methodology is supposed to catch    this kind of thing. By bringingmany    eyeballs to programs a fundamental open source    principle it's believed more errors will be caught. It    didn't work here.  <\/p>\n<p>    This mistake, while not quite as much a beginner's blunder as        Apple's GOTO fiasco, was the kind of simple-minded mistake    that any developer might make if tired, and that anyone who    knows their way around the language should have spotted.  <\/p>\n<p>    So why didn't they? Was it because     OpenSSL is underfunded and doesn't have enough programmers?  <\/p>\n<p>    Was it because, as Poul-Henning Kamp, a major FreeBSD and security    developer, put it, \"OpenSSL     sucks. The code is a mess, the documentation is misleading,    and the defaults are deceptive. Plus it's 300,000 lines of code    that suffer from just about every software engineering ailment    you can imagine.\"  <\/p>\n<p><!-- Auto Generated --><\/p>\n<p>Link:<br \/>\n<a target=\"_blank\" href=\"http:\/\/www.zdnet.com\/heartbleed-open-sources-worst-hour-7000028420\/\/RS=^ADAEnBznsQzgBuqorKSEA6XTP21zII-\" title=\"Heartbleed: Open source's worst hour\">Heartbleed: Open source's worst hour<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> Summary: People assumed that open source software is somehow magical, that it's immune to ordinary programming mistakes and security blunders. It's not<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-15862","post","type-post","status-publish","format-standard","hentry","category-open-source-software"],"_links":{"self":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/posts\/15862"}],"collection":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/comments?post=15862"}],"version-history":[{"count":0,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/posts\/15862\/revisions"}],"wp:attachment":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/media?parent=15862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/categories?post=15862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/tags?post=15862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}