Slashdot Mirror


Full-Disclosure Wins Again

twistedmoney99 writes "The full-disclosure debate is a polarizing one. However, no one can argue that disclosing a vulnerability publicly often results in a patch — and InformIT just proved it again. In March, Seth Fogie found numerous bugs in EZPhotoSales and reported it to the vendor, but nothing was done. In August the problem was posted to Bugtraq, which pointed to a descriptive article outlining numerous bugs in the software — and guess what happens? Several days later a patch appears. Coincidence? Probably not considering the vendor stated "..I'm not sure we could fix it all anyway without a rewrite." Looks like they could fix it, but just needed a little full-disclosure motivation."

37 of 122 comments (clear)

  1. A bug only exists... by InvisblePinkUnicorn · · Score: 4, Insightful

    A bug only exists if the public knows about it.

    1. Re:A bug only exists... by Billosaur · · Score: 2, Insightful

      Incorrect. A bug exists if a bug exists. A bug only gets fixed if the public knows about it, specifically the computer savvy segment of the population, since the average user can't tell a bug from a feature.

      --
      GetOuttaMySpace - The Anti-Social Network
    2. Re:A bug only exists... by xappax · · Score: 4, Insightful

      It's unfortunately not that hard to imagine that your sarcastic remark was serious - we constantly hear the same sentiment echoed very seriously in relation to computer security, electronic voting machines, even terrorism and criticism of the Iraq War.

      Sadly, we live in a world where most people in power actually believe that anyone who points out problems is just as bad as someone who causes and exploits problems.

    3. Re:A bug only exists... by mrchaotica · · Score: 4, Funny

      He fell into the sarchasm.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    4. Re:A bug only exists... by grumpy_old_troll · · Score: 2, Funny

      A time bomb doesn't exist if it hasn't exploded yet.

    5. Re:A bug only exists... by TubeSteak · · Score: 2, Insightful

      Sadly, we live in a world where most people in power actually believe that anyone who points out problems is just as bad as someone who causes and exploits problems. Look at it from their point of view:
      Anyone who points out problems, is creating a problem.

      A lot of times, if you don't officially know about it, you don't have to officially do anything about it.
      --
      [Fuck Beta]
      o0t!
    6. Re:A bug only exists... by Thuktun · · Score: 5, Funny

      Sadly, we live in a world where most people in power actually believe that anyone who points out problems is just as bad as someone who causes and exploits problems. NARRATOR: Fortunately, our handsomest politicians came up with a cheap, last-minute way to combat global warming. Ever since 2063 we simply drop a giant ice cube into the ocean every now and then. Of course, since the greenhouse gases are still building up, it takes more and more ice each time. Thus solving the problem once and for all.

      GIRL: But--

      NARRATOR: Once and for all!
    7. Re:A bug only exists... by dmpyron · · Score: 2, Insightful

      Except that they officially knew about the problem. Assuming he had taken the time to sign his email. When they said they did know if they could fix it without a major rewrite, that was a tacit admission that they had known about it.

      At least he went to the company first and sat on it for a while. Lots of people publish first, then notify the maker. That definitely makes him a white hat in my book.

  2. does it have to be turned into law? by toQDuj · · Score: 4, Insightful

    I believe there is a system that forces a company into action if it delivers faulty products.

    Why then, should software be any different? Do we have to force companies to take action once a bug is submitted to them?

    B.

    --
    Every experiment which ends in a big bang is a good experiment.
    1. Re:does it have to be turned into law? by hateful+monkey · · Score: 4, Insightful

      The biggest reason this wouldn't work well right now is because there are so many pieces of software that are written by small companies that couldn't afford a massive change in liability laws. This would turn software into a business that needs an enormous amount of money to enter the market, which would essentially destroy small startups and leave the business to large well-funded corporations. Open source software would never be usable outside of a very narrow range of applications that present little to no legal liability unless a large company were willing to absorb their liability costs (insurance, etc.). As it stands even Microsoft states in its EULA that it does not warrant Windows or Office to be good for any purpose. If every student or business person could sue Microsoft for losing their important document minutes before their presentations, even Microsoft, with their billions in the bank, would not be able to stay in business long. In addition, the reason companies fix publicly disclosed bugs is not because of liability, it is because a known bug makes them look bad to prospective customers. If they had to worry about the sort of liability you are talking about they would be hesitant to fix any bug that didn't open them to a lawsuit, just in case the FIX created an issue they could be sued for.

  3. Adopt the cryptographer threat model by Ckwop · · Score: 5, Insightful

    In the threat-models used by cryptographers, the attacker is assumed to know everything except cryptographic keys and other pre-defined secrets. These secrets are small in number and small in size. Their size and their limited distribution means we can trust protocols based on these secrets.

    Software that is used by millions of people is the very antonym of a secret. Compiled source is routinely reverse engineered by black hats. Web-sites are routinely attached using vectors such as SQL injection. In short, you can't assume that any of the source code is secret. Taken to its logical conclusion, you must therefore assume the worst; that the black-hats know of far more bugs than you do. In fact, strictly speaking you assume they know every bug that exists in your software.

    In light of adopting such a severe threat-model, the argument over full disclosure is a non-debate. Black-hats with sufficient resources probably already know of the bug. The only people aided by disclosing it wide and publically are the people who run the software who can take evasive action. In contrast, you only told black-hats what they already know.

    Simon

    1. Re:Adopt the cryptographer threat model by Otter · · Score: 4, Insightful
      Taken to its logical conclusion, you must therefore assume the worst; that the black-hats know of far more bugs than you do. In fact, strictly speaking you assume they know every bug that exists in your software.

      But that's a ridiculous assumption! It makes sense in the context of cryptography research, but you're turning it into a assertion that publicizing software vulnerabilities doesn't have any negative consequences, which is absurd. There *are* two genuine conflicting sides here and you can't just wave one of them away.

    2. Re:Adopt the cryptographer threat model by Ckwop · · Score: 4, Insightful

      But that's a ridiculous assumption! It makes sense in the context of cryptography research, but you're turning it into a assertion that publicizing software vulnerabilities doesn't have any negative consequences, which is absurd. There *are* two genuine conflicting sides here and you can't just wave one of them away.

      It's a ridiculous assumption until you try to work out how you can usefully weaken the assumption! Ask yourself this, how do you know how good the attacker is? They're not going to share their successes with you, in fact, they will probably never make contact with you.

      You are only as strong as your weakest link but with the vast distribution that's possible this days you have to expect to be up against the very best attackers. So what then is the plausible attacker your meant to be up against?

      Incidentally, this is why cryptographers choose such a harsh threat-model in which to place their protocols and ciphers. Only by designing against an attacker who is effectively omniscient can you truly get security. You need to look no further than Diebold to see what happens when you don't do this.

      Sure in the real world, disclosing vulnerabilities has an impact! Of course it does, but to say it decreases the security of the users of the software is simply nonsense. It may well do in the very short term, but in the longer term it is absolutely vital that full disclosure occurs if security is to improve.

      Simon

    3. Re:Adopt the cryptographer threat model by MostAwesomeDude · · Score: 2, Interesting

      I went back and looked at some statistics for my Subversion logs and bug tracker. I find that roughly 11% of bugs were "discovered;" that is, filed first, by me. That means a whopping 89% of programming errors went unnoticed by me, and were found by the community. Now, I may be a lone maintainer of code, but even in a team, bugs will still get past. The assumption that the public, or at a minimum, the black-hat community knows more about your bugs than you do is not unreasonable. It is just as valid in the context of SQL injections in PHP scripts as it does in the context of buffer overflows in hardware DVD players.

      For example, read up on the ongoing attacks on AACS. The black hats (and yes, they are black hats) working on breaking AACS have exploited all kinds of software and hardware bugs and shortcomings in order to gather more information and cryptographic secrets. They have the upper hand because they are not fully disclosing their work. If they were to fully disclose the bugs in various tabletop HD-DVD players and software tools that they use to garner keys, you can bet that the problems would be fixed. As is, though, they are still ahead of the AACSLA.

      --
      ~ C.
  4. The difference by InvisblePinkUnicorn · · Score: 3, Insightful

    Somehow I don't think that too many lives are being put at risk if EZPhotoSales has a bug in its software. Now a seat buckle on a car, that's a different story...

    1. Re:The difference by toQDuj · · Score: 2, Interesting

      Sure, seatbelts are a prime example, but I've also seen recalls for much more mundane stuff, such as Ikea furniture and kiddie toys. A bug in software could really cause problems, albeit probably indirectly.

      B.

      --
      Every experiment which ends in a big bang is a good experiment.
    2. Re:The difference by owlstead · · Score: 2, Insightful

      Those "highly important security-bugs" will most likely be found in OS or server components. Sure, that's a lot of software, but they aren't general purpose applications. I tried to exclude those products by writing "undemanding applications" and "memory leak or buffer overflow in a graphics application". So either I was still not clear enough or you were misunderstanding me for some other reason.

      Buffer overflows and such tend to not surface in normal applications, because you would have to go out of your way to exploit them or find them during testing, and then gain nothing at all. Of course, underlying libraries such as JPEG software might be used by either OS or application software, so general purpose libraries should be rather bug-free or they could cause serious problems (such as in Java or in browsers).

      I hope this makes things more clear for you.

    3. Re:The difference by db32 · · Score: 2, Insightful

      Ok, lets up the stakes. MS loves to tout their super success such as their claims about how machines running windows run the stock market. Boy I bet it would suck if they got hit with something obscure and nasty. Not enough, ok, lets go up again. There are tons of medical devices that run software from home grown code to Windows. Now...you can't go blindly patching a Windows box that runs complex medical equipment without intensive testing, not like "will it cause problems with our 'mission critical' intranet business portal" but "gee I hope there aren't any obscure oddities that might cause the machine to misdiagnose or kill anyone". Good thing MS slaps that label of "you can't hold us responsible for using our product if it is found to be defective". So...critical machine running power plant reactor stuff goes apeshit stupid because of a bug...oh well...good thing all the damages and deaths can't be pinned on the people who are truely responsible for allowing it to happen.

      It amuses me to no end that even tech people are so blind to the fact that a computer runs damn near everything these days, and software problems causing life and death situations are far more common than you might imagine. The computer is not for gaming and business servers only anymore folks. Shit, go look up the rumors behind the software problems with Chernobyl

      --
      The only change I can believe in is what I find in my couch cushions.
  5. Incentives by gusmao · · Score: 5, Insightful

    It was aways clear to me that full disclosure is a better option simply because people react to incentives, and bad publicity creates a strong incentive for vendors to fix and patch their systems.
    Nothing like fear of losing sales and yearly bonus to motivate higher management.

  6. The Government by Sunrise2600 · · Score: 2, Insightful

    It works in software, it works in government too. Only slimy bastards hide behind their veil of secrecy to their customers/public. Maybe one day we will have open source voting machines.

    --
    Half the lies they say about me aren't true
    Cute Rush
  7. Two basic problems by cdrguru · · Score: 2, Interesting

    Full disclosure results in announcing a bug not to the world, but only to people that are paying attention. Does this include all the users of that software? No, not even most of them. So who gets informed? People looking for ways to do bad things. The user's do not hear about the defect, the potential exploit or the fix that corrects it.

    They are just left in their ignorance with the potential for being exploited.

    The "I want to do bad things" community has the information and is paying attention. Their community gets advance information before there even is a fix and they get to evaluate if it is worth their efforts to exploit it.

    The other group that gets to benefit from full disclosure is the media. Starved for news of any sort, bad news is certainly good news for them.

    All in all, full disclosure is simply blackmail. Unfortunately, no matter what the result is the user of the product affected gets all of the negative attributes. Their instance of the product isn't fixed because unless they are paying attention they don't know. They get to lose support if the company decides to pull the product rather than kneel to the blackmail. If the bug is exploited the end user get to suffer the consequences.

    You can think this would justify eliminating exclusions for damages for software products. There isn't any way this would fly in the US because while we like to think we're as consumer-friendly as the next country, the truth is this would expose everyone to unlimited liability for user errors. Certainly unlimited litigation even if it was finally shown to be a user error which is by no means certain. And do not believe for a moment that you could somehow exclude software given away for free from damages. If you have an exclusion for that you would find all software being free - except it would be costly to connect to the required server for a subscription or something like that. Excluding free software would be a loophole that you could drive a truck through.

    1. Re:Two basic problems by garett_spencley · · Score: 4, Insightful

      This is a very odd point of view.

      First of all, if the users of the software aren't paying attention, who's fault is that ?

      Secondly, you would think and hope that the software manufacturers would be paying attention and that they would inform their users, who may or may not be paying attention.

      Full disclosure doesn't just imply disclosure to a small, specific group of people. It involves making information PUBLICLY available to EVERYONE. If someone isn't paying attention then that's their own fault. But if you don't feel like end users who are too worried with other things to be paying attention to Bugtraq are getting a fair break then point the finger at the software manufacturer instead. After all, they're the ones who sold faulty software and they're often the ones who continue to sell faulty software when bugs are not disclosed to the public, because they take the mind set of "what they don't know can't hurt them".

      Unfortunately, what "they" don't know CAN hurt them. Because those same people you were talking about who are "interested in doing harm" are usually the ones to find the bugs to begin with. So they already know and those end users that you are so adamant about protecting are already at risk.

      So IMO it's the responsibility of the software manufacturers to pay attention, fix bugs, release patches and inform their users that they need to apply said patches ASAP.

      I mean, are you really advocating keeping information from people ? What if you had cancer, would you prefer that your doctor not inform you ? As I already stated, full disclosure is all about making information publicly available to absolutely everyone, so that absolutely everyone can make whatever choices they feel like with that information. Your argument is that full disclosure is selective about who it makes the information available to. I have to disagree. At the very least it makes the information available to the developers who made the buggy software to begin with, and competent admins who follow those lists so they know what kind of bugs are running on their servers (I used to be one of those).

  8. no, this is responsible disclosure by Lord+Ender · · Score: 4, Insightful

    This is not about full disclosure. This is responsible disclosure. Full disclosure would be if he went to bugtraq before contacting the vendor. Responsible disclosure is where a responsible security research goes to the vendor FIRST, and only goes to the public after the vendor has had a reasonable amount of time to fix the problem.

    Responsible disclosure allows responsible companies to get a fix before a flaw is used maliciously, but the researchers still get credit. With responsible disclosure everyone wins except black hats.

    Full disclosure benefits black hats more than it does anyone else.

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    1. Re:no, this is responsible disclosure by xappax · · Score: 3, Insightful

      With responsible disclosure everyone wins except black hats.

      Black hats win too. You ask 4cId_K1LL3R whether he'd like you to "fully" or "responsibly" disclose the 0day buffer overflow that he discovered a week ago and has been using to break into systems. I'm sure he'd far prefer that you keep the public in the dark about the issue for a month or so while the company leisurely gets around to patching it.

      Black hats win, but software companies win most of all - which, after all is why software companies invented and promoted "responsible disclosure" in the first place. "Responsible" disclosure allows a company to improve their reputation and their software at little to no cost, thanks to volunteers who fix their security problems without telling the public. This, in turn, enables them to continue using the same irresponsible software engineering practices as they always have, with no impact on their bottom line.

  9. How Software Works by mfh · · Score: 5, Funny

    1. Bug is reported.
    2. Secretly, a team of crack programmers (or programmers on crack) develop the patch.
    3. The patch sits in a repository until public outcry.
    4. Public outcry.
    5. Patch released... LOOK HOW FAST WE ARE!

    --
    The dangers of knowledge trigger emotional distress in human beings.
  10. Require login, forbid any subdirectory access. by Spy+der+Mann · · Score: 4, Interesting

    I saw the vulnerability page. They don't have access restriction to subdirectories.

    Here's how I've solved this problem:

    1) Modify the htaccess (or even better, the httpd.conf) files, so that ANY access to any of the subdirectories of the main app is forbidden. The only exceptions are: a) submodule directories, whose php files do a login check, or b) common images (i.e. logos) /CSS/XSLT/javascript dirs.

    2) The only way to view your files is through the web application's PHP file lister and downloader. This should be child's play for anyone with PHP knowledge: PHP has the fpassthru function, or if you're memory-savvy, use standard fopen. Make sure the lister doesn't accept directories above the ones you want to list, and for the files use the basename() function to strip them from subdirectories.

    3) Any file in the PHP application MUST include() your security file (which checks if the user has logged in and redirects them to the login page otherwise). For publicly-available pages, add an anonymous user by default.

    4) For log in (if not for the whole app), require https.

    4a) If you can't implement https, use a salt-based login, with SHA-256 or at least MD5 for the password encryption.

    5) Put the client's IP in the session variables, so that any access to the session from a different IP gets redirected to the login page (with a different session id, of course).

    6) After log in, regenerate the session id.

    7) Put ALL the session variables in the SESSION array, don't use cookies for ANYTHING ELSE.

    I consider these measures to be the minimum standard for web applications. It shocks me that commonly used apps still fail to implement them properly.

    1. Re:Require login, forbid any subdirectory access. by Rich0 · · Score: 2, Informative

      If you store your session IDs in a central database you'd be covered. Maybe under extremely high load this might be an issue, but often these bugs crop up in software that doesn't face these sorts of high-demand applications.

  11. How many? by benhocking · · Score: 2, Interesting

    There *are* two genuine conflicting sides here and you can't just wave one of them away.
    I can count at least 3, and I wouldn't be surprised if there aren't a lot more. Between only telling the company about a discovered security flaw and immediately announcing it to the entire world is a whole range of possibilities. To name a few:
    • Initially tell only the company. If they do nothing, then release it to everyone.
    • Initially tell only the company, but tell them that you will release it to everyone in X days.
    • Initially tell the company and CC a few other white hats that you trust.
    • Initially tell the company and CC the better business bureau, etc.
    (By "CC" I'm implying that you're letting the company know that you're telling other people.)
    --
    Ben Hocking
    Need a professional organizer?
  12. False assumptions? by mmeister · · Score: 2, Interesting

    There seem to be some false assumptions here. It is assumed the company did not look at the bug and potential fixes until after it was "fully disclosed". If they released a fix a couple days later, the more likely scenario is that they've been looking at the problem and assessing what options they had to address the problem.

    Ironically, the full disclosure probably forced them to put out the solution before it was ready, leaving the risk of new bugs. IMHO, forcing a company to rush a fix is not the answer. If you work for a real software company, you know that today's commercial software often has thousands of bugs lurking, although many are very edge case and are often more dangerous to fix than not fix (esp if there is a workaround).

    There should be enough time given to a company to address the issue. Some can argue whether or not 5 months is enough time, but that's a different argument. I think forcing companies to constantly drop everything for threat of full disclosure will end up doing more harm than good.

    1. Re:False assumptions? by Minwee · · Score: 2, Insightful

      If the company was indeed looking at the problem, then they lied about it. Their response to being notified of the problems, as described in the article, was to say "Gee, we're not going to bother fixing that. Instead we're going to work on a new product and just sell it as an upgrade to everybody."

      When someone tells you flat out that they aren't going to do anything, why is assuming that they aren't doing anything false?

    2. Re:False assumptions? by mmeister · · Score: 2, Interesting

      Sorry, I was trying to make a more generic argument, and clearly flubbed that. My original point is that we will likely to more long term damage if all we do is bully companies. Believe it or not, there is more going on that just folks sitting waiting to fix bug reports that comes in for some random guy. And with smaller companies, they don't have a team that is on the attack for vulnerabilities found.

      I didn't see the original email he sent to the company. Nor did I see mention of followups to try and push them. That makes a difference as well, because I've seen plenty of "your stuff doesn't work" bug reports from folks.

      What fully disclosing probably did was put the company in fire mode. They had to stop everything else to attend this. This can really hurt smaller companies long term. Most can't afford teams that sit around waiting to attack these flaws.

      I do think full disclosure can be an important tool when you've tried again and again to get an important security issue addressed. But it should never come as a surprise to the company. There should be communication with the company throughout the process from the first report to the alert that you will be making this public in a month's time.

      I think it more harmful than not to try and play "gotcha" with companies.

      Now mind you, I'm not sure their one time fee model will last all that long -- but that's a separate issue.

  13. Software failing isn't necessarily harmless by Hemogoblin · · Score: 4, Insightful

    I was thinking of moderating, but I'll reply instead:

    Its possible to be injured in ways other than just physically. What about fraud and identity theft? It could be very damaging to thousands of people if one of the software applications that your company is using has flaws that allow fraud or identity theft to occur on massive scale.

    To quote "Going Postal" by Terry Pratchett: "You have stolen, embezzled, defrauded, and swindled without discrimination. You have ruined businesses and destroyed jobs. When banks fail, it is seldom bankers who starve. In a myriad small ways you have hastened the deaths of many. You do not know them, but you snatched bread from their mouths and tore clothes from their backs."

    Theres a reason why fraud and theft can have as harsh a punishment as assault. (In Canada at least.)

    Maybe EZPhoto Editor isn't going to put anyone at great risk if it fails, but I'm sure you could think of some software that might.

  14. Re:I agree with you for the most part, but... by Lord+Ender · · Score: 2, Informative

    To me, "responsible disclosure" implies that a patch is made available BEFORE the detailed disclosure of the vulnerability happens
    No. Wrong. It's not a matter of opinion. With responsible disclosure, a security researcher notifies a vendor before publishing his research. It absolutely DOES NOT imply that a patch is made available before the researcher publishes his findings. A vendor is still free to shoot itself in the foot under responsible disclosure.

    The only gray area is determining just how much time is reasonable to release a patch. The standard accepted period these days seems to be between two weeks and two months. Mozilla's CEO would say "ten fucking days." Escaping part of an SQL string or recompiling code with a buffer overflow check doesn't take all that long to do.

    If a vendor chooses to ignore a researcher, it does not change that fact that the researcher acted responsibly by providing the vendor with the courtesy of a "heads up" warning.
    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
  15. Several days later a patch appears. by Trillan · · Score: 3, Insightful

    "Coincidence? Probably not considering..."

    Yeah, everyone knows that patching security holes is an instant process. What other explanation could there possibly be? The public found out about the bugs, and the vendor waved a magic wand, and presto-changeo, they were fixed.

    Okay, now let's be real here.

    That the patch appeared almost immediately after is the surest sign that the vendor was already working on them. It probably also indicates the vendor wasn't confident that they were finished, and rushed them to get them out after only a couple days of public disclosure.

    So enjoy your half-baked patch.

  16. Call me sceptical by RingDev · · Score: 2, Interesting

    I'm not familiar with the software in question, but are they meaning to say that the company did nothing for a month, then they posted the vulnerabilities publicly, and in less than 7 days the company became aware of the post, tested the vulnerabilities, designed a solution, corrected the code, and had a software update tested and ready for deployment?

    If so, that is some AMAZING response time. But I would venture a guess that they had already been working on the corrections. The public posting may have made a couple of coders work over time, and cut the testing phase out of the cycle, but for them to do the whole thing in less than 7 days is highly unlikely.

    Not only that, but since they would have either had to cut short, or cut out entirely the testing phase of the release, it is MORE likely that security issues remain, or that new security issue have been created and not found.

    I'm not sure I'd call this one a "win" just yet.

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  17. Re:I agree with you for the most part, but... by Bloodoflethe · · Score: 2, Insightful

    Someone mod the parent up!

    --
    "Little is much when little you need."
  18. morality by Anonymous Coward · · Score: 2, Funny

    Forget morality for a minute... Making the bigwigs at some major company cry out "OH SHIT" in unison is one of the few sources or free entertainment I have left.