Slashdot Mirror


Should Vendors Close All Security Holes?

johnmeister writes to tell us that InfoWorld's Roger Grimes is finding it hard to completely discount a reader's argument to only patch minimum or low security bugs when they are publicly discovered. "The reader wrote to say that his company often sits on security bugs until they are publicly announced or until at least one customer complaint is made. Before you start disagreeing with this policy, hear out the rest of his argument. 'Our company spends significantly to root out security issues,' says the reader. 'We train all our programmers in secure coding, and we follow the basic tenets of secure programming design and management. When bugs are reported, we fix them. Any significant security bug that is likely to be high risk or widely used is also immediately fixed. But if we internally find a low- or medium-risk security bug, we often sit on the bug until it is reported publicly. We still research the bug and come up with tentative solutions, but we don't patch the problem.'"

242 comments

  1. i didn't rtfa by flynt · · Score: 4, Insightful

    I did not RTFA, but I did read the summary. I did not hear his argument, I heard his conclusion repeated with more words.

    1. Re:i didn't rtfa by tritonman · · Score: 0, Funny

      no, they need to keep holes open for the government to spy on us.

    2. Re:i didn't rtfa by WrongSizeGlass · · Score: 2, Interesting

      I guess this guy only locks each door or window in his house and car after someone has discovered that it's unlocked? I sure hope his kids live with their mom.

    3. Re:i didn't rtfa by grencez · · Score: 1

      Eh... for the most part it's not security holes that give "Big Brother" access to information. He gets it while it's traveling through the net. On topic: Probably a decent idea. Might slow down the search for other, unknown bugs.

    4. Re:i didn't rtfa by Dan+Ost · · Score: 2, Insightful

      I guess this guy only locks each door or window in his house and car after someone has discovered that it's unlocked? I sure hope his kids live with their mom. The problem is that if they release a patch, they draw attention to the code that had the flaw, resulting in more hacker scrutiny than if they had quietly sat on the patch until the next release.

      If they could release security patches invisibly, they probably would. Unfortunately, there's no way to do that.
      --

      *sigh* back to work...
    5. Re:i didn't rtfa by packeteer · · Score: 1

      Security is not a zero sum system. The more holes you patch the more secure the program gets. Yes i know that a patches can introduce new bugs but that is usually not the case. I think this concept is based on the idea that there is always X amounts of bugs out there so why fix it when you won't be doing any good.

      --
      unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
    6. Re:i didn't rtfa by Heembo · · Score: 1

      With respect, I do not agree. I believe that the more you factor a software system (and that includes bug patches) the more fragile the system becomes. There comes a time when you need to stop patching, and start over with a SDLC from the beginning. Security needs to be baked in from the beginning as a core requirement.

      --
      Horns are really just a broken halo.
    7. Re:i didn't rtfa by Anonymous Coward · · Score: 0

      I did not RTFA, but I did read the summary. I did not hear his argument, I heard his conclusion repeated with more words.
      Yeah, and? You want a friggin' medal for not RTFA and pointing out that TFS doesn't have all the details?

      If you wanted to hear his argument, perhaps you should have bothered to RTFA. That's why it's TFS, not TFA.

      Was that your entire point? That the summary didn't have as much info as TFA?
    8. Re:i didn't rtfa by ShieldW0lf · · Score: 1

      If you release software that has bugs in it and don't tell me, I can't decide not to use your software because I don't want to bear the risk.

      You're not lying to me because it's in my best interest, you're lying to me because you want to take my money, regardless of my circumstances or how your product negatively impacts them.

      If you've got a list of bugs and fixes on your site, but are not putting all the bugs that you're aware of on them, that's actively misleading. It's fraud.

      People who engage in this type of behavior should have all their property and assets seized, their source code and internal communications opened up to the public and hosted on a government site so the public at large can recover from their situation, and anyone knowingly involved should be forbidden to work in this field for the rest of their lives because they are not fit to be in a position of trust.

      --
      -1 Uncomfortable Truth
    9. Re:i didn't rtfa by Richard+Steiner · · Score: 1

      Assuming the software is organized in a modular manner, a "patch" might often be a new module rewritten to include the fix. Not all patches are organic in nature.

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    10. Re:i didn't rtfa by Heembo · · Score: 1

      a "patch" might often be a new module rewritten to include the fix Right. The more you do that, the more refactored your system becomes, the more fragile your software becomes. After about 3 years of this (in the enterprise world, from what I see), you need to start over, IMO.
      --
      Horns are really just a broken halo.
    11. Re:i didn't rtfa by saforrest · · Score: 1

      I did not RTFA, but I did read the summary. I did not hear his argument, I heard his conclusion repeated with more words.

      Exactly my thought. This isn't a shot at Grimes, and the people explaining his argument in great detail to you are missing the point. The submitter claimed to be summarizing Grimes' argument, but did not.

    12. Re:i didn't rtfa by KevMar · · Score: 1

      A public bug list is not marketable. it adds no value and only adds liability to the product. now the customer knows you knew of the problem and did not fix it. at the same time, it gives hackers a good starting point. The people maintaining the bug list need to be alert to the fact that it is public.

      we use a help desk software and we have lots of entries that are resolved as user error. but you never tell the user the problem was user error. I am a developer or a coder, not a public relations or english specialist. I already look at the legal side of what I am writing in the logs.

      I point out the hackers only because they are already doing that with hot fixes and patches. They look at what was fixed and do there own regression testing for related exploits. The public bug lists just makes that worse.

      There will be bugs and we know it. You cant escape it. even if you know where they all are, you wont be able to fix them all.

      Now, with that said. Security bugs should be fixed, even if they look minor. Im sure history is full of buffer overflow bugs that the devs thought were minor at the time. I knew of a bug in a company product. they thought it took too much work to exploit and too much work to fix that they let it sit. later they had a big rush to fix it because the hackers found a very very easy way to exploit it.

      If you wait for the customer to report them, odds are the hackers will be finding them too. and its not up to the customer to test security, they should be able to trust that it is secure. /end rant

      --
      Im a gamer, not a grammer major. This post is full of spelling and grammer mistakes.
    13. Re:i didn't rtfa by rgravina · · Score: 1

      I believe that the more you factor a software system (and that includes bug patches) the more fragile the system becomes.

      What about regression testing? Also, if you don't factor your software at all, how are you going to clean up the design to allow for changes without it become a big bloated mess?
    14. Re:i didn't rtfa by maxwell+demon · · Score: 1

      Maybe that the summary didn't have the relevant info? That is, it wasn't actually a summary, but more of a teaser, because it didn't summarize the article.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    15. Re:i didn't rtfa by Richard+Steiner · · Score: 1

      Er... Rewriting the module *is* starting over.

      Are we miscommunicating?

      The whole point of modular system design is that you have a series of black boxes connected using a series of well-defined and well-documented interfaces. This is something Microsoft should consider using. :-)

      In such a system, any single box can be taken out and redesigned/reimplemented without having an impact on the rest of the system as long as it continues to correctly processes the defined inputs and outputs in the defined manner.

      I've worked on production airline applications for most of the the past 18 years, mainly mainframe-based real-time transaction systems running on Unisys 1100- and 2200-series hardware, and some of those systems have been multiple decades old. The one I'm working now now has been running in production for only around ten years or so, but the flight ops I worked on at NWA had been running in production for over 30 years (portions of it -- other portions of the system had to change gradually over time as the airline's internal operational procedures changed).

      While some degradation occured over time as an application changed, mainly the result of organic changes and the cruft that results from such patching (especially patching doen by folks who only partially understood the code), that cruft was eliminated locally in most cases by rewriting specific areas of the application.

      This can do quite a bit (at least in my experience) to make the application more cohesive and stable in the long term. The UNIMATIC system ran at UAL for 40 years, and it's been running at NWA since we kickstarted it in 1988, so it has an almost 20-year history there now. And it isn't going anywhere soon.

      There's no need to redo the whole thing if the software was written in a modular manner in the first place.

      Even in older procedural code (the apps I work with are mostly Fortran 66 or F77), the tendency I've seen is to create a set of common library functions and to use sets of said functions to perform more complex tasks, not to write everything as monolithic mainlines. That makes a huge difference.

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    16. Re:i didn't rtfa by Heembo · · Score: 1

      Are we miscommunicating? No, I'm just not listening. ;-) What kind of resources does/did it take to keep such a system running? Did the airline industry logistics change much over time, or was/is it really a set of static business rules? Also - please take note your a mainframe man - I'm on internet time where I often see 4-6 programming languages used in even a simple application. It gets messy and fast, after a few years of internet-speed-pace, we really need to redesign it clean from the beginning. I also see this a lot in enterprise computing, where business rules and needs change fast. Modular programming assumes a certain kind of design framework to begin with - even some of those assumptions change over time from what I see. Regardless, your story seems to be a clear exception to the rule.
      --
      Horns are really just a broken halo.
    17. Re:i didn't rtfa by Richard+Steiner · · Score: 1

      Are we miscommunicating?

      No, I'm just not listening. ;-)

      Heh. :-)

      What kind of resources does/did it take to keep such a system running?

      The team to bring up the application (obtained from another airline) and modify it to fit NWA's requirements at the start in 1988-1990 was around 35 people on the programming side and another dozen or two business analysts and subjet experts in the SOC. Those numbers were trimmed down when the Unisys programmers' contract expired after two years, and again when a wave of layoffs hit in late 1992.

      Between 1993 and late 2001 we had 12-13 people supporting and modifying the software (roughly 2.5 million lines of Fortran code (~2000 programs, ~1500 subroutines used by the various programs, ~1000 individual transaction codes). That number is somewhat less now. Eight?

      Did the airline industry logistics change much over time, or was/is it really a set of static business rules?

      The "application" I'm talking about was actually a series of individual subapplications running in a common environment, and it did a number of things, including weight and balance and "gross weights" (optimal weight/flaps/thrust) calculations, flight plan generation (optimal flight path, climbs, engine burns, etc.), real-time flight info and weather delivery, ACARS (radio-to-ground) message processing, etc. It was heavily used by ground ops (the folks who handled the cargo/baggage loading), flight scheduling, flight dispatch, pilots, and folks at the gate who needed Flight info, Meteorology, Performance Engineering, etc.

      Some areas changed quite a bit as the airline grew and added the ability to host other airlines (like Mesaba), needed more and/or different types of information stored and disseminated, etc., and some areas were completely rewritten when NWA obtained the code (some initially, other bits later on as we had time).

      Some things were easily handled by the applications like the additional of new aircraft/engine combinations for performance purposes, the addition of new ULD (cargo container) types for cargo, etc.

      Some areas changed as the result of outside mandates or changes -- the National Weather Service changed its basic weather format around the end of 1999, for example, requiring that we change the way we handled the basic data handling for all of the weather messages (METAR, TAF, NOTEMs, TWIP/Microburst alerts, etc.) that we processed, but most changes were driven by the pilots, flight dispatch, or ground ops.

      Also - please take note your a mainframe man - I'm on internet time where I often see 4-6 programming languages used in even a simple application. It gets messy and fast, after a few years of internet-speed-pace, we really need to redesign it clean from the beginning.

      The problems you cite above seem to be environment issues (a lack of discipline when choosing tools, and perhaps also a lack of high-quality project management) and are really not an inherent quality of "software development" per se, even when doing the development of complex systems.

      Continuity is *IMPORTANT* if one expects to obtain a consistent result. Tell your management this -- it sounds like they need to know. Using "the latest tool" is not always the best way to be productive.

      I also see this a lot in enterprise computing, where business rules and needs change fast.

      Sounds like some of these folks need to work in a serious enterprise shop where thousands of people can be adversely impacted in a few minutes (or when serious fines or losses occur) when something goes wrong.

      Modular programming assumes a certain kind of design framework to begin with - even some of those assumptions change over time from what I see.

      Part of a good

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    18. Re:i didn't rtfa by Richard+Steiner · · Score: 1

      FWIW, I've worked in four shops where the slow-but-sure approach seemed to be the norm: Unisys (their Airline Development and Support Center), Northwest Airlines, a small window-making company called Viracon, and here at SITA (airline communications/solutions company).

      I'm personally glad that such exceptions exist. The practices you refer to above might help to explain the poor level of software quality we often see on the desktop these days. :-(

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    19. Re:i didn't rtfa by Anonymous Coward · · Score: 0
      If they could release security patches invisibly, they probably would. Unfortunately, there's no way to do that.

      That theory certainly doesn't deter MS, Adobe and the like, who routinely slipstream stronger DRM BS under the guise of "enhancements". Why not just name a couple of minor bug fixes in the release notes and include the really necessary stuff?

  2. Should Vendors Close All Security Holes? by WrongSizeGlass · · Score: 2, Insightful

    Yes.

    1. Re:Should Vendors Close All Security Holes? by jaavaaguru · · Score: 2

      Agreed. All security holes should be fixed. I realise that with the testing effort involved in large projects that it may not be feasible to get the fixed product out instantly and may require waiting until the next planned release - if the problem is a small and unknown-to-the-public one.

      If it's a problem that people know about and could be serious, then I think it should definitely be fixed ASAP.

    2. Re:Should Vendors Close All Security Holes? by eln · · Score: 5, Insightful

      Also, vendors should include a free pony with every software license they sell.

      Closing all vulnerabilities is not practical. In any sufficiently complex piece of software, there will be bugs and security holes. Obviously, you need to close the nasty ones, but many of these exploits are not particularly high risk. In these cases, especially if the fix would involve a major redesign or other highly disruptive solution, it may be best to just leave them alone.

      If, for example, the underlying design of your product allows for a minor, difficult to exploit security hole, it is probably not worth it to spend the time and money to redesign the product. More likely, your choices would be either a.) live with the (small) vulnerability, or b.) scrap the product entirely.

      The decision to close a security hole should be dependent on the potential impact of the hole, the urgency of the issue (are there already exploits in the wild, for example), and how many resources (time and money) it will take to fix it.

    3. Re:Should Vendors Close All Security Holes? by RahoulB · · Score: 2, Insightful

      Should Vendors Close All Security Holes?

      NO

      ACTIVEX IS A FEATURE!

    4. Re:Should Vendors Close All Security Holes? by 644bd346996 · · Score: 1

      The headline is a bit misleading. The article is not about what you seem to think it is about. The company in question, as a standard procedure, does not release patches for many bugs that they have already created fixes for.

      Once you have developed a fix, it is completely unethical to wait indefinitely to release the fix. The longest acceptable wait is until the end of the code audit to look for similar holes in other parts of the code base. This should only take a few months.

    5. Re:Should Vendors Close All Security Holes? by vertinox · · Score: 1

      Closing all vulnerabilities is not practical. In any sufficiently complex piece of software, there will be bugs and security holes.

      I hate to say this, but if your software is so complex that it is impossible to fix all the security holes... Then maybe you shouldn't make it so complex.

      I mean even something as complex as OS X has security holes, but not so many that it requires the developers to throw their hands in the air and say "Oh we give up!" at some point.

      Seriously, if your product is so complex and possibly bloated to a point to where it would be impossible to fix something without breaking another part, then you should really consider starting over from scratch. Maybe fire and hire a few new programmers and stop listening to customers for every inane feature possible because a security breach will cost your customer's more money than lack of functionality ever will and possibly cause you to loose them as a future customer.

      But I believe we might also have a difference of opinion of what a security hole is...

      Even a minor hole should be tracked and at least reported. Heck even Apple patched that wifi hole that required 3rd party hardware to do. That might not even constitute 0.001% of their consumer base, but they fixed it.

      --
      "I am the king of the Romans, and am superior to rules of grammar!"
      -Sigismund, Holy Roman Emperor (1368-1437)
    6. Re:Should Vendors Close All Security Holes? by Anonymous Coward · · Score: 0

      You are talking about two different things at the same time.

      "Closing all vulnerabilities is not practical. In any sufficiently complex piece of software, there will be bugs and security holes."

      Of course, because you cannot know when you are done.

      "Obviously, you need to close the nasty ones, but many of these exploits are not particularly high risk."

      This is about KNOWN vulnerabilities. You can fix all KNOWN vulnerabilities, if you want to.
      What you "need to close", and "want", depends on what your incentives are - and cost is only one of them.
      (Try to explain how OpenBSD is more secure than Microsoft using only "cost" or "resources", for example)

    7. Re:Should Vendors Close All Security Holes? by Anonymous Coward · · Score: 0

      Also, vendors should include a free pony with every software license they sell.

      I don't expect "free ponies". I expect secure software written by competent programmers.

      Closing all vulnerabilities is not practical. In any sufficiently complex piece of software, there will be bugs and security holes.

      If that's your attitude, you've lost.

      would involve a major redesign or other highly disruptive solution, it may be best to just leave them alone.

      If your design is bad, YOUR PRODUCT SHOULD NOT BE ON THE MARKET.

      I refuse to believe that we are so incompetent as programmers that we can't write secure software. It's simply unacceptable to say things like "This is hard" or "All software has security holes, get over it". Something is seriously wrong in the software industry today if a software company says things like "we don't fix bugs until unpaid volunteers report them." If that's your attitude, why even try?

      It's EXACTLY this sort of company that needs to be punished HARD via full-disclosure with working exploits.

    8. Re:Should Vendors Close All Security Holes? by networkBoy · · Score: 1

      I hate to say this, but if your software is so complex that it is impossible to fix all the security holes... Then maybe you shouldn't make it so complex. [...]Seriously, if your product is so complex and possibly bloated to a point to where it would be impossible to fix something without breaking another part, then you should really consider starting over from scratch. While not directly applicable, as my software is internal only and not subject to security auditing as the user is admin/root on the box the software is on, but I would love to redesign the suite. Can I have staff and budget please? No? Ok, SOSDD. Basic management issue.
      -nB
      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    9. Re:Should Vendors Close All Security Holes? by Anonymous Coward · · Score: 0

      Please let us know when your flawless coders are seeking employment.

    10. Re:Should Vendors Close All Security Holes? by TheZax · · Score: 1

      If, for example, the underlying design of your product allows for a minor, difficult to exploit security hole, it is probably not worth it to spend the time and money to redesign the product. More likely, your choices would be either a.) live with the (small) vulnerability, or b.) scrap the product entirely. emphasis mine


      When we get there, you can make analogies like that, in the mean time let's deal with more realistic situations. For the most part, nobody is that worried about "minor, difficult to exploit security hole"s. Usually the holes that we spend time discussing are either full blown remote root exploits, or steps in privilege escalation expolits or whatever.

      --

      JWall: GUI client for IPTables
  3. Long answer yes with a but by Anonymous Coward · · Score: 1, Insightful

    Short answer no with a maybe.

  4. Bill? by Dorsai65 · · Score: 0, Troll

    Is that you, Mr. Gates?

    --
    --- Asking inconvenient questions for over 30 years...
  5. Two words: Exploit Chaining by Gary+W.+Longsine · · Score: 5, Interesting

    Exploit Chaining means that low risk holes can become high risk hole when combined. Patch them all. Patch them quickly.

    --
    If you mod me down, I shall become more powerful than you could possibly imagine.
  6. Waste of time and money by jshriverWVU · · Score: 2, Insightful

    We still research the bug and come up with tentative solutions, but we don't patch the problem. I can understand the point if it's to save time and money for other things, but if they are going to find a solution to the problem and time/money is already spent, then that is completely wasted if it isn't utilized. Plus you're risking the data by not closing a known hole or bug. Doesnt make sense.

    1. Re:Waste of time and money by Richard+McBeef · · Score: 3, Informative

      I can understand the point if it's to save time and money for other things, but if they are going to find a solution to the problem and time/money is already spent, then that is completely wasted if it isn't utilized.

      Patch and next version are different things. They fix the hole but don't release a patch. The fix is released in the next version.

    2. Re:Waste of time and money by pikine · · Score: 1

      What you're missing is the third and fourth point, that security patches attract more attention of blackhat hackers. There are two possible reasons I can think of (that he didn't mention):

        1. Poor quality of coding tends to concentrate around a particular feature because they're all written by the same person or team. Security patches indicate poor quality of code.
        2. Security patches provide some insight for reverse engineering, so this allow someone to find more vulnerabilities around that particular feature.

      They're not trying to save time and money. They want to avoid getting into a race with the underground community, which causes both the vendor and their clients to lose because they simply don't have the upper hand in terms of resources.

      Of course, when there are critical bugs to fix, these are prioritized over mid and low impact bugs. Saving money is never the concern. In general, companies don't save money by not working on something, since they're still paying salaries of full-time programmers. You can only save money by laying off employees. Companies get the most done by prioritizing what the employees should be working on, utilizing existing resources.

      His second and fifth points are more sociological, so you may have different opinions, but the third and fourth points are impossible to dismiss.

      --
      I once had a signature.
  7. Dentistry analogy by Anonymous Coward · · Score: 0

    You don't have to floss all your teeth, just the ones you want to keep.

  8. Their arguments: 1-5 by Palmyst · · Score: 5, Informative

    As is too common, the ./ summary doesn't have the relevant portions of the article under discussion, so let me try to summarize the main points of their argument.

    1. It is better to focus resources on high risk security bugs.
    2. We get rated better (internally and externally) for fixing publically known problems.
    3. Hackers usually find additional bugs by examining patches to existing bugs, so a patch could expose more bugs than fixes are available for.
    4. If we disclose a bug and fix it, it just escalates the "arms race" with the hackers. Better to keep it hidden.
    5. Not all customers immediately patch. So by announcing a patch to previously unknown to the public bug, we actually exponentially increase the chances of that bug being exploited by hackers.

    1. Re:Their arguments: 1-5 by runswithd6s · · Score: 1

      4. If we disclose a bug and fix it, it just escalates the "arms race" with the hackers. Better to keep it hidden.
      Exactly what Mr. Blackhat is thinking, "Keep it hidden." Chances are if the software developers know about an exploitable bug, so do the crackers. It may be that the "script-kiddies" are still in the dark, but I don't consider "script-kiddies" as being in the "arms race." Note, however, that the article didn't say the company wouldn't fix low/medium security bugs, rather they wouldn't publicize the fix when it was finally rolled out in the product.
      --
      assert(expired(knowledge)); /* core dump */
    2. Re:Their arguments: 1-5 by larsroe · · Score: 1

      Good summary. Are hackers reading the description of what the patch fixes, or are they seeing how the binaries changed? Is there a way of patching that makes it difficult to detect what really changed? Or maybe changing some unused bytes as a red herring?

    3. Re:Their arguments: 1-5 by arkanes · · Score: 1

      I don't agree with most of his reasoning (I can see how it makes sense from a business perspective, but I think it's unethical) but the "arms race" metaphor is totally off base. He doesn't think we would have sophisticated worms and viruses today if we didn't have AV software, and he's probably right - but it's because the simplistic ones *would do the job just fine*. The amount of virus writers who wouldn't bother because there was no challenge would make no difference, because there'd be plenty of traffic from the guys who write them because they get paid money for botnets.

    4. Re:Their arguments: 1-5 by plover · · Score: 1

      Chances are if the software developers know about an exploitable bug, so do the crackers.

      First, employees (including software developers, but can include anyone from the testers to management) that know about an exploitable bug and don't report it should get fired. It's irresponsible to your company's owners to risk their products and their reputation because you don't think it's important, or because you want to have a back door. Not that it has to be fixed immediately, but it needs to be reported and tracked so it can be scheduled to be fixed.

      I disagree with your assumption that crackers know as much as the developers, at least not initially. Once the developers fix a bug, though, the crackers test exploitable patterns based on the fix, and that's how they can get ahead in the game. And that's one of the main points the author raises: by releasing a patch-at-a-time, those big-picture attacks can get ignored in the rush to publish the fix. Sure, you may have shut down the SQL injection attack on the username query, but what about on the password query? What about on the quantity query? Upon seeing a fix for SQL injection, a smart attacker will try SQL injection attacks throughout the code, or will try variations on the attack, hoping the coder carelessly fixed only the immediate problem of an ASCII quote and not a UNICODE-8 quote.

      Roger Grimes is fond of pointing out that "Security through obscurity works in practice." And he's right, to a certain degree. Don't do the crackers work for them. You still have to fix the problems, but you shouldn't have to do it under the gun if you can avoid it.

      Finally, what I read the company's point of view was this: we won't release the fix until the next release of software, not that they wouldn't publicize it upon the next release.

      --
      John
    5. Re:Their arguments: 1-5 by SadGeekHermit · · Score: 1

      Hmm...

      > 1. It is better to focus resources on high risk security bugs.

      Agreed. But you should at least TRY to get the rest of them, too.

      > 2. We get rated better (internally and externally) for fixing publically known problems.

      You should not be chasing after ratings, but rather, perfection. You should WANT to make your software as good as it can be. You should TRY to make it perfect whether your work is acknowledged or not.

      > 3. Hackers usually find additional bugs by examining patches to existing bugs, so a patch could expose more bugs than fixes are available for.

      Them's the breaks. Patch anyway and when new bugs appear, patch them too.

      > 4. If we disclose a bug and fix it, it just escalates the "arms race" with the hackers. Better to keep it hidden.

      Bogus argument. You CAN'T keep it hidden. Real hackers are out fuzzing your code and finding the bugs without your help. If you don't patch, your code is not secure. If you don't want to match wits with hackers, you're in the wrong field and you should bow out gracefully.

      > 5. Not all customers immediately patch. So by announcing a patch to previously unknown to the public bug, we actually exponentially increase the chances of that bug being exploited by hackers.

      Also a bogus argument. If a client doesn't patch, he's a darwin award waiting to happen and it's his own fault. YOUR duty is to supply patches. Do your duty. Let the failure be someone else's; live up to your responsibility and give people the tools they need to secure their sites!

      Basically, my stock response to people who claim points like these is "quit making excuses and do your job"! Seriously. Their argument sounds like a slacker explaining why he doesn't have to put the final polishes on a piece of software (while he plays foosball with the sysadmins and isn't even listening to you).

      --
      NO CARRIER
  9. 6 of one, half a dozen of the other by KitsuneSoftware · · Score: 3, Insightful

    It could work as well as the normal method, but if it catches on, it will mostly be used as an excuse to not do anything until publicly shamed. Call me cynical.

  10. Bugs should be fixed by Anarchysoft · · Score: 5, Interesting

    "Our company spends significantly to root out security issues," says the reader. "We train all our programmers in secure coding, and we follow the basic tenets of secure programming design and management. When bugs are reported, we fix them. Any significant security bug that is likely to be high risk or widely used is also immediately fixed. But if we internally find a low- or medium-risk security bug, we often sit on the bug until it is reported publicly. We still research the bug and come up with tentative solutions, but we don't patch the problem." I don't believe this is a prudent approach. Bugs often cause (or mask) more problems than the issue causing the bug to be fixed. In other words, fixing a bug causing a known issue can also fix several unknown issues. Without a significant reason to not do so (such as a product that has beene completely replaced in a company with very limited resources,) it is irresponsible to not fix bugs. The debatable point is how long small bugs should be allowed to collect before issuing a point release.
    1. Re:Bugs should be fixed by zolaar · · Score: 1

      Bugs often cause (or mask) more problems than the issue causing the bug to be fixed. In other words, fixing a bug causing a known issue can also fix several unknown issues
      Good sir! I parry your thrust and counter with a dazzling riposte :

      Fixing a trivial or otherwise low-priority bug can also potentially break portions of the system that work acceptably with the bug as-is, due to unforseen or difficult-to-reproduce entanglements. The newly-created bugs in the previously-stable systems could potentially be showstoppers or feature-breakers.

      Yes, I paint a very grim, very cynical picture of how to view a codebase; however, in a world where departments already over-exert the engineering team simply to make delivery milestones and there's not a single man-minute that isn't already double-booked in the schedule, it is not quite as clear-cut, black-and-white of a scenario as some people like to pretend.

      Is it wise to risk silently breaking some component and not finding out about it until much later -- perhaps you only find it 19 hours, 7 pots of coffee, and 39 phone calls from your nagging wife after the fury began : angry manager emails flooded your inbox because the current software build inexplicably failed its required quarterly standards compliance audit and that asshat Todd guy ("Jerkwad Todd"... everyone totally hates that jerk) who wrote the "bug fix" in question [a] documented his hard work by bellyaching in the javadoc stub about how writing the patch was totally like beneath him and how the last job he had was like so much more challenging and meaningful, and [b] was evidently terminated by the company roughly 5 1/2 weeks ago -- all because of a corner-case?

      Remember, every time a line of code is inserted, deleted, moved, or modified , there exists the possibility that a bug will be introduced. It is sometimes in the best (short-term) interests of an organization (especially one that is developing closed-source software) to pick their battles when it comes to "fixing" things -- especially when the problem is never/rarely noticed by stakeholders. Not always, of course. But sometimes.
      --
      One man's constant is another man's variable.
    2. Re:Bugs should be fixed by Anarchysoft · · Score: 1

      Remember, every time a line of code is inserted, deleted, moved, or modified , there exists the possibility that a bug will be introduced. It is sometimes in the best (short-term) interests of an organization (especially one that is developing closed-source software) to pick their battles when it comes to "fixing" things -- especially when the problem is never/rarely noticed by stakeholders. Not always, of course. But sometimes. Thanks for your enjoyable reply! Yes, you're quite right. Nearly any change in software whether fixing a bug (even a seemingly trivial one,) adding a new feature or changing existing functionality can cause things to break. We can protect against it through regression testing, modular design to encapsulate the effects of changes and taking the time to carefully understand the code and what the changes will do. But, still, there be dragons! I once worked for someone who, everytime we got close to a release, would go home for the weekend, get completely stoned and then 'fix' and 'refactor' dozens of parts of the program. Needless to say, this would inevitably cause weeks if not months of cleanup work each time, particularly as he was a very careless programmer. Yet, because he was supposedly 'fixing bugs' he always insisted it was correct action, regardless of how he went about it. Good times!
  11. Procrastination? by Jarjarthejedi · · Score: 1

    Seems like a pretty dumb move to me. You have the choice of, A: Patching immediately, costing you a few hours of time from a couple of your employees or B: Hoping that it won't be a big risk effectively betting a few hours of time against the possibility of a huge security breach and the corresponding bad press that comes with that.

    Seems like a small patch wouldn't be that much trouble and would avoid much larger problems...

    --
    There are two kinds of fool One says 'This is old therefore good' Another says 'This is new therefore better'- Dean Ing
    1. Re:Procrastination? by Anonymous Coward · · Score: 0

      A: Patching immediately, costing you a few hours of time from a couple of your employees

      Look, sizzlechest, were not talking about the security hole in your project out of "My First PHP Website For Dummies".

    2. Re:Procrastination? by The_Wilschon · · Score: 4, Insightful

      Low-risk does not mean easy to fix. Sometimes, a bug might be a very low-risk bug, but demand immense amounts of time to find and fix. For instance, sometimes I might be writing a program, and at some point, it begins crashing unpredictably, but very rarely. I know that there is a bug, but I have no idea what the trigger is, I have no idea which part of the code contains the bug, and I have no idea how to fix it. Since the MTBF is (say) 3 months, and (say) the code is not long-running (like a daemon or a kernel), it is probably not worth finding and fixing the bug.

      Now, that's bugs, which is a wider category than security holes. So, suppose that instead of crashing, it very rarely and briefly enters a state in which a particular sequence of bytes sent to it via the net can cause it to execute arbitrary code. Furthermore, suppose the program should never be running as root, so the arbitrary code is nearly useless. This is a low risk security hole, and probably not worth patching.

      Could take hundreds of man-hours to find the cause, and perhaps even longer to fix. Probability of ever seeing this exploited is very very low. Should it then be patched?

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    3. Re:Procrastination? by LWATCDR · · Score: 1

      Except for.
      C: the fix may cause a bug or other issues. Something may stop working.

      It also depends on the security problem. If it is a local exploit then it may not be worth fixing right then.

      I think everyone is confused here. These are not exploits that they have closed and just haven't decided to end out the patch. These are exploits that the haven't created the patch for. A security team as limited resources. They may have x exploits so it is only logical to fix the most critical first.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    4. Re:Procrastination? by TheNicestGuy · · Score: 2, Insightful

      You have the choice of, A: Patching immediately, costing you a few hours of time from a couple of your employees or B: Hoping that it won't be a big risk effectively betting a few hours of time against the possibility of a huge security breach and the corresponding bad press that comes with that.

      Not that simple. Developing a patch does not fix a security hole. Releasing a patch does not fix a security hole. Applying a patch fixes a security hole, if all goes well. When you combine the fact that the number of holes in existence is multiplied by the number of installations, with the fact that the development team very rarely has any power over when patches are actually applied, security through obscurity doesn't look so cut-and-dried naïve versus publicizing your holes by releasing patches.

      Notice that the person who posted the argument in the article never said they leave holes unpatched to save "a few hours of time". He didn't say they left holes unpatched at all. He said that they prioritized based on severity and publicity—who wouldn't? And he said that patches for unknown holes were developed, tested, and not released until they were needed. This gives them the advantage of not alerting the malicious user community that there are holes they can exploit if they act more quickly than the users who have to apply the patches. But it also means that when the time comes for them to release the patch, they know it's been patiently tested, not kneejerked out the door. I'd rather have no patch for an unknown hole that's not likely to be exploited than a patch that's going to make my software buggy.

      The only downside to this is that you have to trust the developers to correctly assess the risk of leaving unknown holes unpatched. If they think a hole is unlikely to be randomly spotted and will only do minimal damage if it is, but script kiddies spot it in a week and manage to get remote root access from it, yes they screwed up by not patching it right away. Mistakes like that can be made the same way the mistakes that created the hole in the first place were made. But you have to make such judgments just to prioritize the holes, regardless of what you intend to do with them. And there certainly isn't anybody more qualified to make those judgments than the developers who discovered the hole.

    5. Re:Procrastination? by Chris+Burke · · Score: 1

      Now, that's bugs, which is a wider category than security holes. So, suppose that instead of crashing, it very rarely and briefly enters a state in which a particular sequence of bytes sent to it via the net can cause it to execute arbitrary code. Furthermore, suppose the program should never be running as root, so the arbitrary code is nearly useless. This is a low risk security hole, and probably not worth patching.

      Could take hundreds of man-hours to find the cause, and perhaps even longer to fix. Probability of ever seeing this exploited is very very low. Should it then be patched?


      Absolutely, though I don't think that exploit should have ever been rated 'low' priority in the first place. Execution of arbitrary code not run as root is still very bad, not just because being able to do anything the service can do is bad, but also because then any local-priviledge-escalation bug combines with this bug to form a complete remote-exploit-box-pwnage bug. Since your software company probably doesn't deal with any of the multitudinous pieces of software that could result in a local escalation exploit, you may not be warned in advance when such an exploit becomes known. So you've sat on this "low" priority bug for years with no intention of fixing it, and suddenly all your customers are vulnerable, and you're still at square 0 with regards to fixing your now high priority and still high-effort-to-fix bug.

      There is ultimately no question. Yes, the bug should be fixed. There is nothing wrong with assigning priorities, and working on the "high", then "medium", then finally "low" bugs. Unless your "low" bug should really be a "high" bug. But there should absolutely never be a policy of "we will not fix this bug until our customers hear of it".

      --

      The enemies of Democracy are
    6. Re:Procrastination? by drinkypoo · · Score: 1

      They may have x exploits so it is only logical to fix the most critical first.

      If I believed that they would actually fix all the bugs before moving on to the next revision and adding new features, I might agree with you.

      What ends up happening is that a whole pile of bug fixes end up in the next revision but never fixed in the last product, as a means to force you to upgrade. Over time the company gets more and more lax about bugfixes because those bugfixes guarantee their revenue stream! Then they get a reputation for writing crap, and a new company that actually cares about quality shows up and blows them out of the water. The execs are left scratching their head and asking why as they float gently to the ground on a golden parachute, while all the people who actually did the work who were just following orders end up jobless.

      If you identify a bug, it should be fixed before the next release, if at all possible, unless the next release is a free upgrade.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    7. Re:Procrastination? by dvice_null · · Score: 2, Informative

      > it begins crashing unpredictably, but very rarely. I know that there is a bug, but I have no idea what the trigger is, I have no idea which part of the code contains the bug

      You sound like a person who needs a good debugger. Take gdb for example. You can ask your customer to send in the core dump file, which the program produces during the crash, then you load this core dump into gdb and not only will you get the exact location of the crash, you can also check where it was called and what values each variable had.

      Allow me to demonstrade how easy this is:

      # Enable core dumbs (if not enabled by default)
      $ ulimit -c unlimited

      # Execute program and notice it crash ( this could be done by the customer also, with proper instructions or automation )
      $ ./a.out
      Floating point exception (core dumped)

      # We now have the core dump and a debug version of the program. Start the debugger
      $ gdb ./a.out core

      (snip)

      Program terminated with signal 8, Arithmetic exception.
      #0 0x080483eb in main () at b.cpp:5
      5 int c = a/b;
      (gdb) info locals
      a = 4
      b = 0
      c = -1209610252
      d = -1208343920
      (gdb)

      And there we have it. The programs crashes in b.cpp, line 5 when assigning a/b into c. info locals reveals that b is zero, which is the cause of the crash.

      Oh, and the source code for the b.cpp:

      int main()
      {
          int a = 4;
          int b = 0;
          int c = a/b; // line 5
          int d = c;
          return 0;
      }

    8. Re:Procrastination? by shadowpuppy · · Score: 1

      While I agree that you have to draw line somewhere, I'm pretty sure arbitrary code execution is on the other side. Once an attacker can get shell access to a machine the potential interface in which they can find a hole goes up dramatically. Also many attacker are more interested in things like financial information which tend to not require root.

    9. Re:Procrastination? by mce · · Score: 4, Interesting

      Your example is way to simplistic. I've seen core dump cases in which it was perfectly clear why it was crashing: the data structure got into a logically inconsistent state that it should never be in. The question is how and when. In case of big data structures (in some of the cases I've had to deal with: hundreds of thousands of objects, built gradually and modified heavily during several hours) finding the exact sequence that causes the inconsistency can be a nightmare. Plus, it might have been sitting around in this state for a long time before the program actually enters a path that leads to a crash.

      Also, the worst type of bug is the Heisenbug: those that go away as soon as you enable debugging, or add even just a single line of extra code to monitor something while the stuff is running. I've seen my share of those as well. Sometimes persistance pays off and you find the root cause within hours or days, but sometimes reality forces you to give up. It's no use spending five weeks fruitlessly looking for a rare intermittent bug triggered by a convoluted internal unit test case if at the same time easily tracable bugs are being reported by paying users that need a solution within a week.

    10. Re:Procrastination? by gnud · · Score: 1

      If you have no idea where in your code your data structures can reach an unsound state, you dont use proper encapsulation. If one of my data objects reach an unsound state, it's because of a bug in a member function (or in c, a void member_function(object*, ...), because they should be doing error checking.

    11. Re:Procrastination? by mce · · Score: 1

      I knew someone would say this. :-) Actually, it helps to make my point. Our code was stuffed with pre- and post condition consistency checks, so debug versions of the software sometimes ran an order of magnitude slower tham production ones. Hence one more reason for the emergence of Heisenbugs: enable the checks and the problem goes away. In complex event driven extensible architectures not everything can be checked during every operation. Trust me, I've spent countless days trying to ensure absolute logical consistency of my classes, no matter what happens. But when event callback mechanisms enter into the picture it becomes incredibly hard and eventually infeasible.

      But yes, in theory, you are right: there were encapsulation problems, as well as others, in our code. Guess what, those are called bugs and they are some of the very bugs we're looking for. In real life, you cannot reason them away by saying "naughty you, these bugs should not be there" or "if only everybody who ever worked on this project would have been a perfect software engineer, things would be easier". In real life you have to find and fix the bugs first and ponder how much nicer life could be if only you'd be able to redesign and reimplement everything from scratch later.

      In systems with several million lines of code, bugs are not unheard of, no matter how well you try to stick to the rules. Especially if some of the code has a 12 year history. Especially if it is written in C++, a language that supports something weird and badly controllable called "pointers". Especially if you're sometimes dealing with compiler bugs. E.g.: We've found numerous virtual multiple inheritance bugs in several compilers over the years, including g++. You read your code and know with 100% certainty that it is OK, and you're absolutely sure all the encapsulation is done right, and even that you verify it all at run time, and yet...

    12. Re:Procrastination? by thegrassyknowl · · Score: 1

      Well most "managers" aren't security oriented. The attitude is "why will anyoen want to break into _our_ software/machines?" Point out potential security issues or try and secure the system and they baulk at the idea.

      I build an embedded Linux product. The root account is unused but managers wanted the root account enabled with a dumb password so that they can poke about and "test" the product. It took a lot of pushing to get that not to happen. Their attitude was that nobody was interested in breaking our box.

      Another example... for configuration they wanted an Internet-facing web server. Fine, I say. But that means you need to have a forced update policy for our customers so that whenever a security flaw is discovered I can update the server/associated libs to fix it and roll it out to everyone immediately. Of course that would eat up all of my time, checking for updates to all of the different packages involved and and updating/rolling out regularly. They baulked at the idea but still wanted a web server facing the greater Internet ("web application" is a buzzword).

      I can go on and on about some of the crazy ideas that I have had to fight against. I could just implement them all but then it would be me who looks bad when it all goes to shit. It's a sad state of affairs but it seems the people who make the most decisions are more concerned about the colour of the font in your GUI that the underlying architectural failings. They'd raise a high priority bug to change a word yet delete a bug report that says 'there is a potential problem that would allow an attacker to crash the service' on the ground that it's potential and therefore not worth worrying about.

      --
      I drink to make other people interesting!
    13. Re:Procrastination? by gnud · · Score: 1

      My point was not "naughty you, these bugs should not be there". My point was that you should have some fairly good idea as to where the bug is; it must be in your sanity checking (or lack thereof). Adding some logging when the assertments fail in debug mode, and then asking for the customers dataset, or asking the customer to run a debug build, might also go a long way.

    14. Re:Procrastination? by mce · · Score: 1

      It's silly to reply to my own post, but just to prevent this somewhat off-topic discussion from escalating: we even went as far as to write our own C++ code generator that translated complex IMs into complete C++ class implementations (much beyond what commercial code generators could do at the time). Eventually, 70% of the C++ code (millions of lines in total) was generated automatically according to rigourous pattern templates. Most classes even were generated 100% automatically. We did that exactly because it allowed us to automatically implement a metric ton of consistency checks amd to always be sure to register the correct event handlers for all relevant events etc. But even so: bugs happen. There still is the 30% manual code. There still is the base layer (to name just one example: think efficient dynamic memory allocation customised to the dominant allocation patterns in our tool set). There still are compilers. There still are third party libraries that can create havoc (we never found an ILP library that was both affordable and fully reliable, for instance). ...

    15. Re:Procrastination? by mce · · Score: 1

      (Note: This paragraph is besides my original point, but what the heck...)
      Sadly, asking for a customer dataset is not always feasible. Our software read C(++) code, performed complex analysis and ditto optimisations on it, and then spit out optimised C(++) code next to many other things (statistics, power usage estimations, specifications for hardware in embedded systems, you name it). Our typical customer would not in a million years share the dataset (i.e. his program) with us, because those programs were their key IP and because they knew we were working with their competitors as well. Even worse, we regularly had people from those competing customers on-site and even then we would not get to see the code, precisely because the competition was also around.

      As I already indicated, debug builds are nice, but not very useful in case they, for instance through some side effect such as a modified memory allocation pattern, affect the behaviour of the bug.

      As for knowing where the bug should be: of course we had an idea where it should be and where it shouldn't be. Because of all the checks we had built-in, we actually had a pretty good track record as far as bugfix turnaround time was concerned. But having that idea of where the bug can and can't be can be misleading as well. It are mainly those cases that I'm talking about here. See also my other posts for a non-exhaustive set of examples why ideas about which module owner has been naughty might be proven wrong.

    16. Re:Procrastination? by Kevin+Stevens · · Score: 1

      I am not trying to flame here, but you sound like someone who just got through CS 101.

      Throw in multithreading, and all that niceness goes out the window. Or how about random memory corruption problems? How about when the dump file is corrupted, or it only occurs in the release (aka non-debug) version of the executable? Or the crash happens in a third party library that you don't have the source to, or only in extreme/odd situations that are very difficult to reproduce in your environment...

      I could go on... but I think you get the idea.

    17. Re:Procrastination? by Anonymous Coward · · Score: 0

      It may only take a couple of man-hours to analyze the problem and come up with a fix, but doing the required testing before you can release a patch is going to take much more effort than that for any reasonably complex piece of software.

    18. Re:Procrastination? by The_Wilschon · · Score: 1

      But you neglect that I also mentioned that in this hypothetical system, the opportunity for remote code execution occurs both very rarely and very briefly. To be more specific, we might say that the program enters an exploitable state for on average six seconds, at an average rate of once per 3 months of continuous running. Furthermore, I also specified that the program is not a daemon or a kernel (or anything else long-running), but is instead an incidental user-app. So perhaps it is run for up to about 4 hours per day. At that rate, not counting weekends, it would take 36 weeks (mental math disclaimer) before the program would enter an exploitable state for six seconds, and then leave the exploitable state again. We might further suppose, just for kicks and because we can, that the particular string of bytes needed to activate the exploit depends upon the state of the program, and thus would not be expected to be the same from one exploitable-time to another.

      The severity of the potential exploit must be considered, and remote code execution is a nasty one. But, in order to really triage the bug, you also have to consider the probability of exploit. Since this one is such an extremely low-probability exploit, the priority of the bug goes down dramatically (in my estimation). Even though it is arbitrary code execution.

      If my hypothetical stats don't give a low-enough probability for you, then strengthen them. Maybe the bug occurs once per 56 years of continuous running, and the exploitable state only lasts for 16 cpu cycles. Maybe this seems ridiculous, but perhaps bugs of this extremely low probability are rampant, and we just don't know about them because they're all but impossible to find, and nobody would care even if they did find one.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
  12. Yup by derEikopf · · Score: 1, Insightful

    Yup, it's not about quality software, it's about money. Hardly anyone makes software anymore because they want to or because they like making quality software...they'll just do the bare minimum they can to maximize profit.

  13. The summary missed those parts. by khasim · · Score: 4, Insightful

    Basically ...

    #1. If we spend time fixing those bugs, we won't have as much time to fix the important bugs.

    Translation: we put in so many bugs that we don't have time to fix them all.

    #2. We give priority to any bugs that someone's leaked to the press.

    Translation: we only fix it if you force us to.

    #3. "Third, the additional bugs that external hackers find are commonly found by examining the patches we apply to our software."

    I had to post that verbatim. They're releasing new bugs in their patches.

    #4. "Fourth, every disclosed bug increases the pace of battle against the hackers."

    Yeah, that one too. The more bugs they fix, the faster the .... what the fuck?

    #5. If we don't announce it, they won't know about it.

    Great. So your customers are at risk, but don't know it.

    1. Re:The summary missed those parts. by Evil+Adrian · · Score: 2

      No matter how good the QA testing is on a piece of software before it's released, it invariably has bugs and security risks. Why do you have a problem with assigning priorities to issues that need fixing?

      Are you incapable of thinking reasonably, or do you just like pointing fingers?

      --
      evil adrian
    2. Re:The summary missed those parts. by Lord_Slepnir · · Score: 5, Informative
      #3. "Third, the additional bugs that external hackers find are commonly found by examining the patches we apply to our software."

      I had to post that verbatim. They're releasing new bugs in their patches.

      Partially true. By doing a bindiff between the old binaries and new binaries, they can see things like "Interesting, they're now using strncmp instead of strcmp. Let's see what happens when I pass in a non-null terminated buffer..." or "they're now checking to make sure that parameter isn't null" or whatever.

      The defects were there before, but the patches give hackers a pointer that basically says "Look here, this was a security hole". Since end-users are / were really bad about patching their systems in a sane time frame, this gives the hackers a window of opportunity to exploit an exploit before they all patch up.

    3. Re:The summary missed those parts. by markov_chain · · Score: 3, Insightful

      #3. "Third, the additional bugs that external hackers find are commonly found by examining the patches we apply to our software."

      I had to post that verbatim. They're releasing new bugs in their patches.


      No, they are fixing old bugs. Old but unknown bugs, which now become known to hackers, who can go and abuse the vulnerabilities wherever they didn't get patched yet. It's pretty old news, really.
      --
      Tsunami -- You can't bring a good wave down!
    4. Re:The summary missed those parts. by Jimmy+King · · Score: 3, Informative

      #3. "Third, the additional bugs that external hackers find are commonly found by examining the patches we apply to our software."

      I had to post that verbatim. They're releasing new bugs in their patches.

      That's not how I read the response, not that how I read it is better.

      What I got from reading the entire paragraph about that was that they patch the exact issue found, but do a terrible job of making sure that the same or similar bugs are not in other similar or related parts of the code. Hackers then see the bug fix report then go look for similar exploits abusing the same bug in other parts of the program. These new exploits would not be found if they hadn't fixed and published the first one.

      This is not any better than causing new security issues with their security patches, but let's at least bash them for the right thing.
    5. Re:The summary missed those parts. by Lord_Slepnir · · Score: 5, Insightful

      I just don't think that the GP has ever worked on a large piece of software, or has worked in a business environment. Linux has some of the best minds in the world working on it, and it still has holes. Vista could have used a few more months being polished, but I can only imagine the threats of "Release now or else" coming from the headquarters.

    6. Re:The summary missed those parts. by 644bd346996 · · Score: 2, Informative

      The whole point of the article is that the company in question refrains from releasing a patch, even when they have a fix ready. This is not prioritization.

    7. Re:The summary missed those parts. by SatanicPuppy · · Score: 3, Interesting

      The only argument that makes any sense to me is, "Every time we force our customers to patch systems, we run the risk of creating incompatibilities and getting slews of angry phone calls, and that'll screw up our week" and they didn't even include that one.

      Ideally the stuff should be reasonably secure out the gate; sure, they're talking about all the reasons they have for not patching after the fact, and all this stuff is true...Patching is a huge pain in the ass for everyone involved. But dammit, the amount of patching that gets done is inexcusable!

      The thing that burns me is, you know that the developers don't incorporate those "tentative" fixes into the next product release either, not until the bugs make it public. You know that there is middle management who is perfectly aware of significant poor design decisions that could be solved by a well-planned rewrite, who instead tell their people to patch and baby weak code, because the cost of doing it right would impact their deliverables.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    8. Re:The summary missed those parts. by 644bd346996 · · Score: 1

      This is what I thought as well. After all, this is exactly what happened with the .ANI bug. It seems pretty obvious that the company in question does a really bad job of auditing code in response to finding a new class of bugs.

    9. Re:The summary missed those parts. by Chris+Burke · · Score: 3, Insightful

      No matter how good the QA testing is on a piece of software before it's released, it invariably has bugs and security risks.

      Trivial and meaningless statement. There is good code and bad code. Good code is code with fewer bugs. Bad code is code with many bugs. A good developer is one who designs the code to avoid bugs, and who, more importantly, fixes the bugs they find. A bad developer uses the above truism as an excuse to avoid fixing their shitty code.

      Why do you have a problem with assigning priorities to issues that need fixing?

      When one of those priorities is "don't fix until our customers find out, and try to keep them from finding out" then I have a problem with it.

      The only thing that should distinguish a high priority bug from a low priority bug is: Do we fix it, then release the patch as an urgent hotfix? Or do we fix it, then release the patch as part of a periodic security update so that we have more time to test and so sysadmins aren't overwhelmed having to apply and test patches all the time? There is no priority that should read "Do not fix, unless we get bad P.R. for it."

      The only developer who would do such a thing is a bad developer who is okay with leaving their customers exposed. Of course the reason they got into that situation, of having so many security issues that they can't afford to fix them all, is due to them being bad developers.

      Are you incapable of thinking reasonably, or do you just like pointing fingers?

      You need to drag your brain out of its pie-in-the-sky abstract concepts like "do you have a problem with priorities" and start actually thinking about the situation before you start saying things like this.

      --

      The enemies of Democracy are
    10. Re:The summary missed those parts. by CastrTroy · · Score: 2, Insightful

      However, if I was a systems admin, I'd much rather have the option to keep my systems secure by having the updates available then having the company sit around on fixes because they think the hackers don't already know what the bugs are. The most valuable tools a hacker has are those that nobody knows about. If people are aware of a bug, then it will be more likely that the hole isn't exploitable. If nobody knows about the bug, then you can catch a lot of people off guard, and break into a lot more systems.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    11. Re:The summary missed those parts. by cheater512 · · Score: 1

      He doesnt work for Microsoft by any chance does he?

    12. Re:The summary missed those parts. by edizzles · · Score: 1

      You missed nuber 6# 6# If our Program is perfect we wont make any new money from upgrades and vista... i mean our new products

    13. Re:The summary missed those parts. by Jerry · · Score: 2, Interesting

      Excellent summary!!!

      Point #5 is interesting in that this guy ASSUMES that because a bug hasn't been made public the crackers don't know anything about it. It is just as likely to assume that if even ONE person found the bug that person could be a cracker. Most folks don't look for vunerabilities, but crackers do.

      Microsoft may know about a vulnerability for months, or longer, before it issues a patch AND the announcement on the same day, IF it ever does. Not all holes are found by researchers. Meanwhile, in order for the hole to have been discovered in the first place at least one, but probably thousands or more, have to get infected and report it. All we have to do to discover the results of "security by obscurity" is to see how vulnerable Windows/VISTA is. VISTA's "Defender" identified only 82.4% of the several thousand KNOWN bugs thrown at it. Other anti-virus software identified as many as 99.8%. So, last December when 2,400 bugs for Windows were discovered VISTA would have let about 14 per day infect itself.

      --

      Running with Linux for over 20 years!

    14. Re:The summary missed those parts. by drinkypoo · · Score: 1

      We just has this conversation on two different days last week. On both of those days I was modded down for suggesting that the Linux release-when-ready model offered greater security than the Microsoft release-when-we-feel-like-it model. You're not going to get a lot of agreement from people because they don't want to take responsibility for their own fuckups, and they want the vendor to do their job for them... and that includes telling them when they can patch.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    15. Re:The summary missed those parts. by Incongruity · · Score: 1

      I guess I agree with you, but that's because I, like you, am pretty good about keeping important things patched and up to date... so it becomes, in part, an argument pitting the needs/wants of the vigilant vs. the needs/best interests of the lazy and uninformed masses (of course, there is a gradient between those two extremes and one may be in one group one day and the other on another day, yadda yadda, but the distinction is still valid).

      So, of course, being a regular patcher, I'd prefer that they patch the bugs sooner rather than later, as long as resources allow them to get it right the first time...

    16. Re:The summary missed those parts. by Allicorn · · Score: 1

      First, I agree with the intention of your post. Find 'em, patch 'em, try not to make any more.

      However, I think meaning of the #3 quote you cite is that hackers find bugs in - say - V1.1 of the software by reverse engineering the patch for V1.2. Once done, they can continue to attack customers with V1.1 because they know that far from all customers are going to bother to patch at all.

      Alli

      --
      OMG!!! Ponies!!!
    17. Re:The summary missed those parts. by SnapShot · · Score: 4, Insightful

      It could just reflect a realization that releasing a patch is as likely to introduce new bugs as it is to fix an existing bug. And, the patch identifies existing bugs which means that customers that don't install the patch are more vulnerable than they were before. Instead, you save up your fixes and your new features and your release new versions as a "dot release" and you reduce the number of versions out there in the wild. From a psychological standpoint your customers get new features and "updated security" instead of a never-ending series of security patches. Prioritization should go on behind the scenes, of course, so that the more critical fixes always make it into the latest release.

      Now I'm off to read the article and see if my theories match up with their logic...

      --
      Waltz, nymph, for quick jigs vex Bud.
    18. Re:The summary missed those parts. by dzfoo · · Score: 1

      These new exploits would not be found if they hadn't fixed and published the first one.

      Said the naive vendor. In essence, this is the "Security through obscurity" defense: Since we didn't publish it, *nobody* knows about it, much less the bad guys. Right-o.

              -dZ.
      --
      Carol vs. Ghost
      ...Can you save Christmas?
    19. Re:The summary missed those parts. by HardcorePooka · · Score: 1

      I'm posting verbatim the entire paragraph because you obviously ditn't read it...

      "Third, the additional bugs that external hackers find are commonly found by examining the patches we apply to our software. Look at our vulnerability statistics. Most of our hits center around two main features. Both features came to the attention of hackers after we had released patches for them fixing internally found problems. In both cases we located the vulnerable code and patched. Within a month, three more related holes were found by the hacker community. OK, so we didn't do a great job in ferreting out all the errors in the features. After the last round of fixes, we investigated each feature with a more comprehensive analysis and code review. We even hired an external penetration testing team. We found many more holes and patched them. Then in the next six months, we got hacked again in the same features. There's lots of blame going around, along with better solutions, but it doesn't change the fact if we had kept the original exploits unpatched, we would have avoided three additional, publicly discussed exploits."

    20. Re:The summary missed those parts. by markov_chain · · Score: 1

      In short, not releasing new bugs in their patches.

      --
      Tsunami -- You can't bring a good wave down!
    21. Re:The summary missed those parts. by masterzora · · Score: 1

      Saving them up for a larger patch release is one thing. Saving them up until somebody else finds them and releases the information to the public is a completely other, irresponsible, thing.

      --
      Remember, open source is free as in speech, not free as in bear.
    22. Re:The summary missed those parts. by Anonymous Coward · · Score: 1, Interesting

      How about embedding watermarks in the code. A different watermark along with causing the compilation to randomize function layout should confuse some people. Hopefully the evil attackers will develop a full featured reverse engineering package that can solve the halting problem.

      Everyone wins!!

    23. Re:The summary missed those parts. by tknd · · Score: 1

      Trivial and meaningless statement. There is good code and bad code. Good code is code with fewer bugs. Bad code is code with many bugs. A good developer is one who designs the code to avoid bugs, and who, more importantly, fixes the bugs they find. A bad developer uses the above truism as an excuse to avoid fixing their shitty code.

      1. Define "many bugs."
      1 per 1000 lines? Then I'll say what about whitespace and what about different languages.
      1 per a class? Then I'll just insert/remove classes into/from my design.

      2. A good developer is one that can prioritize time to best satisfy the business and promote ideas that will ultimately help the business. I can sit around and whine and scream about how one of our modules sucks but when they ask me how long it will take to "change it and do it the right way" and I say "half a year" they will laugh.

      3. A good developer doesn't just fix the bug he finds. Instead it is documented and if the system/software is in production use, the changes are held off until they are reviewed with a larger group to ensure that the changes the developer needs to make do not introduce additional defects.

      4. I have never heard anyone call themselves "a bad developer." Everyone I've come across in the engineering discipline inherently thinks they're good at what they do. Otherwise, they move on to another profession because they find that engineering isn't for them. Because of that, there are rarely developers that are purposely trying to write "bad code." Instead there are companies trying to satisfy impossible requirements. The companies that ultimately succeed are the ones that can either develop a clever solution before anyone else does and take it to market before anyone else does, or develop a solution that is competitive or better than the existing solution. Bite off too much, and you fail, bite off too little, and you may never sell a thing. That's the dilemma, not that there are bad developers and bad code.

    24. Re:The summary missed those parts. by Talgrath · · Score: 2

      Actually, if you paid attention to the article, they write up a fix, but they don't test it fully (which is where most of the time goes in trying to fix bugs, making sure you don't introduce new ones as much as possible). Have you ever worked on a major software project? Half the time you fix one error only to introduce two more errors, and the only fix is to recode the two sections of code you broke completely. Okay, so that's an exaggeration, but that's how it feels; that's just how frustrating it can be.

    25. Re:The summary missed those parts. by Anonymous Coward · · Score: 0

      As far as #2 to #5 go, it sounds like they are talking about malicious people finding out about bugs that were previously unknown to them. If there is information about the bug, a person can use this information to try to find an exploit pertaining to it. If there is a patch, it can be reverse engineered and the exact section of code that causes the bug can be found and an exploit could be carried out on non-patched systems.

    26. Re:The summary missed those parts. by sarathmenon · · Score: 1

      I take it that you both haven't had to manage systems in an enterprise. Its a royal pain. Every tiny patch will need to go through change control vetted by a couple of PHBs, after first being tested in a qa and development environment. I'll any day apply 20 patches at one go (after going through this monkey dance), rather than 1 a day. I know that the systems might be unsafe, but this is _much_ more sane for me, than having meetings every day to educate everyone about why we suddenly have a lot of vulnerabilities that need daily patching.

      So, if you ask me, the best vendors are oracle etc.. who release a quarterly patch set. No PHB ever has a problem applying that; they just look at it and say "Wee, thats a shit load of patches. Damn, apply them quick". I guess a lot of people here might share the same sentiment.

      --
      Microsoft: "You've got questions. We've got dancing paperclips."
    27. Re:The summary missed those parts. by xero314 · · Score: 1

      1. Define "many bugs." This is easy. Many bugs, though variable with time, is measured by defects per instruction, not lines of code or any other abstraction. Yes this means that bloatware has more leeway for defects, but also more possibility of defects so it all works out. The reason you use in instructions is that it doesn't mater what language you use, the underlying instructions are the same (ignoring any argument that RISK architectures require more program instructions).

      As for specifics, this is highly subjective, ranging from opinions like mine that 1 per program is one to many, to those that think there is no limit to the number of bugs you should be allowed. But this also depends on if you are including design defects or engineering/code defects. It's usually best to keep them separate, but not everyone does. The only thing I can add in specifics is that projects with the least bugs have less than 1 bug per 1000 instructions, and yes there are programs that contain 0 defects, just not in the business world.

      not that there are bad developers and bad code. Thanks, that was the best laugh I had all day. That's like saying I have never heard anyone call themselves "a bad manager." Call yourself what ever you want, it won't actually change a thing. I can only assume you have never seen a well architected, designed and coded program, or the engineers that build high quality software. 95% or all professional programmers are bad programmers, and call themselves developers. The other 5% are few and far between, and tend to understand the difference between developers and engineers. About 1% of the quality software engineers (so .05% of the total) work on business applications, since the good engineers tend to be well paid and work on projects that usually involve the security of human life, like Medical and Flight Control systems.

      I don't know how many times it has to be said, but it is possible to write and release bug free software projects.
    28. Re:The summary missed those parts. by Askmum · · Score: 1

      You miss the most important one:

      #1: We get evaluated on the bugs known by the public and how fast we close them.

      So fixing bugs that are not know to the public does not do anything for how good they perform in the eyes of their evaluators.
      If you try to steer on improper metrics, you get unwanted results. It's as easy as that. That happens in all trades.

    29. Re:The summary missed those parts. by mackyrae · · Score: 1

      It's not necessarily that the patches introduce bugs. I've heard it before, and it makes sense, that some hackers look and see what patches have been released. Then they know what was exploitable, and they can generally make a fair bet that a good chunk of users haven't patched their systems, so they can use the patch as a map to the eX(marks-the-spot)ploit

      --
      look! it's a bird, it's a plane, it's....a girl? yes, a girl browsing Slashdot on Linux
    30. Re:The summary missed those parts. by happyemoticon · · Score: 1

      There is software out there that has approximately 0 bugs, but it takes years and years to get the software into that state, by which time it may look positively antediluvian to someone who has an eye for the cutting-edge. The target audience for these solutions is very small and specialized, so it's often pretty expensive to boot unless it's free software. Most people can cope with a few random and inexplicable bugs.

      It's just how the industry works. You have some folks on one side for whom the existence of a bug means, to varying degrees, that you're fucked. Usually they realize that this means they're working with a limited feature palette. Then you have people on the other side who need everything to be bleeding edge because they need the performance, the features, or they're just total technophiles. And then you have all of us in between. And because the early adopters and average people have far more eyes than most QA departments, as well as a more varied set of conditions, we see bugs that would be more difficult to isolate for QA. So, five years after we've started beating on it, it gets to the people who require stability, and it is stable in part because of early adopters.

      So really, a lot of software is released before all the bugs are gone not because the executives are evil and unscrupulous plutocrats, but because they want to get it out there and because the people out there want it. Of course, a lot of software is developed under the whip of evil, unscrupulous plutocrats who release (for example) barely playable games which never become perfect, ever, but they shouldn't really be a part of this discussion because they live in their own warped little world.

      Really, Bill Gates was correct when he said that people don't buy software for bug fixes. What he meant, I think, was that the average home user or desk jockey has no use for such software, for the costs of a crash are almost nonexistent for them, while the hassle of not being able to run new software is significant.

    31. Re:The summary missed those parts. by drsmithy · · Score: 1

      On both of those days I was modded down for suggesting that the Linux release-when-ready model offered greater security than the Microsoft release-when-we-feel-like-it model.

      Say what ? By what definition of 'ready' does Linux have a "release-when-ready" model ?

      "Release for the heck of it" would be a better description.

    32. Re:The summary missed those parts. by xiong.chiamiov · · Score: 1

      Uhm, you seem to be confusing "bug" with "spyware" or "virus/worm/etc". We're talking about security holes here, which you seem to understand first. But then you start talking about Windows Defender and unnamed anti-virus software. First off, I think that Defender is just anti-spyware, since it is based on GIANT's code, but idk if that's changed. Secondly, there's a big diff between a virus and a bug. Granted, bugs can allow a virus to propagate, but an anti-virus isn't like a penetration testing team, trying to break into your computer to tell you if you have vulnerabilities. And besides, different viruses can use the same loophole. And also, many viruses need the user to do something unwise, not just from someone port-scanning or something.

    33. Re:The summary missed those parts. by Incongruity · · Score: 1

      Actually, I'd say that you've exposed a further dimension to what was a somewhat over-simplified account on my part, but your point doesn't really dispute what we've said per se, it just goes along to justify waiting on applying the patches because of your own logistical constraints. What you're saying about applying 20 patches at once vs. 1 at a time seems reasonable enough given the hoops you need to jump through, but still, given those, would you prefer that the software vendors sit on the patches and not make them public to the likes of you until there's a publicly disclosed exploit for the bugs the patches cover? Remember, then you'd be even more under the gun because you'd have to rush each of the bureaucratic hoop-jumping monkey dance sessions and that'd get old real quick...

      Even if I were in your position, I'd still much much rather have the patches available to me so that I could begin the process of clearing them for use, even if I decided that I'd make that a weekly, bi-weekly or even monthly thing... it'd still be my choice and my timeline to adjust as I saw fit...rather than being bushwacked by zero-day exploits that get patched on day 5 and then cleared for use by day 10, in house or whatever because the software vendor didn't want to rock the boat and get the patch out earlier than it *had to*.

    34. Re:The summary missed those parts. by Anonymous Coward · · Score: 0
      ... which means that customers that don't install the patch are more vulnerable than they were before.

      Fuck the irresponsible bastards. They get what they deserve for their laziness/incompetence.

    35. Re:The summary missed those parts. by Anonymous Coward · · Score: 0
      Everyone I've come across in the engineering discipline ....

      Do you really believe that shit about software development being a legitimate form of engineering? I'd love to know how much time real engineers spend laughing at that. It's like the guy at the gas station (OK, they used to employ them) referring to himself as a "petroleum displacement engineer".

    36. Re:The summary missed those parts. by Anonymous Coward · · Score: 0
      vetted by a couple of PHBs

      Wow, it only takes you six words to construct a contradiction in terms.

  14. Author is Right by mpapet · · Score: 4, Interesting

    Pre-emptive disclosure works against the typical closed source company.

    Option 1:
    Exploit is published, patch is delivered really quickly. Sysadmin thinks, "Those guys at company X are on top of it..." PHB will say the same.

    Option 2:
    Unilaterally announce fixes, make patches available. Sysadmin doesn't bother to read the whole announcement and whines because it makes work she doesn't understand or think is urgent. PHB thinks "Gee company X's software isn't very good, look at all the patches..."

    The market for secure software is small even smaller if you add standards compliance. Microsoft is a shining example of how large the market is for insecure, non-standard software.

    --
    http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
    1. Re:Author is Right by Anonymous Coward · · Score: 0

      This guy well could be working for M$. It's at least always been their policy. Alongside the policy to not fix any security issues...

  15. Depends on what you call a security hole.... by zappepcs · · Score: 2, Insightful

    Examples:
    Not likely to be fixed completely - In some ways, Windows is a security hole
    Could be fixed if escalates - password strength and use
    Should be fixed - Lack of any authorization requirements etc.

    If you remember the Pinto car-b-ques, there is a money factor to think about. Since most standard computing systems are not life-critical, some bugs can be left for later. Some bugs you might know about but they are not in your code such as those shipped with the networking stack of the RTOS that you use for an embedded product. An insecure FTP client on an embedded machine that has no access to other machines or sensitive material is not terribly bad.

    On the other hand, if the machine can be compromised and allow the attacker access to other machines... that needs to be fixed.

    1. Re:Depends on what you call a security hole.... by blindd0t · · Score: 1

      Why was this modded as troll - just because of the statement, "In some ways, Windows is a security hole"?

      There is some truth in this, IMHO. An example of how one could consider this true is that Microsoft no longer offers patches for older versions of Windows. I understand it is at the users disgression to keep up to date with costly Windows updates and to keep up with patches, but I still maintain that there is some truth to this statement, even if it is only a little bit of truth. Furthermore, any OS (especially older versions) have vulnerabilities, in which case, one could clearly argue that any OS and any piece of software is a security hole. Also, a good point was made about how important it is to patch based on the possibility of escalation. Though a small device being compromised itself might be a small risk, it could escalate itself to being a high risk if it is possible to compromise another, more critical machine from the one that seemed to be a small risk. The key is to either not take any chances where possible, or be as diligent as reasonably possible to see through such risks outside of only the obvious.

  16. A car analogy... by mi · · Score: 3, Insightful

    Was not it GM, that lost millions of dollars a few years ago in a lawsuit brought by people (and their kin), whose car was rear-ended on a toll plaza and exploded in flames?

    GM's arguments, that making the car's fuel-tank more protected was too expensive for the modicum of additional safety that would've provided, were — for better or worth — ignored by the jury...

    In other words, you may not deem a security hole to be large compared with the expense of pushing out another patch, but if somebody gets hurt, and their lawyer subpoenas your internal e-mails on the subject, you may well be out of business.

    --
    In Soviet Washington the swamp drains you.
    1. Re:A car analogy... by Anonymous Coward · · Score: 0

      No that was a Ford. I remember reading that in my Ethics class.

    2. Re:A car analogy... by LWATCDR · · Score: 4, Interesting

      It was Ford and it was the Pinto. The problem is.
      1. The Pinto even before the "fix" didn't have the highest death rate in it's class. Other small cars had the same death per mile or worse.
      2. The NTSA had the dollars per rate figure in the national standards for safety and Ford referenced in in their internal documentation which the lawyer used in the case.
      3. Had Ford not identified the risk that a bolt posed to the fuel tank and documented it they probably wouldn't have lost so big in court.

      Just thought I would try and kill a myth with some truth. Probably will not work but it is worth a shot.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    3. Re:A car analogy... by 6Yankee · · Score: 4, Funny

      for better or worth

      Let me guess - you're a LISP programmer?

    4. Re:A car analogy... by Anonymous+McCartneyf · · Score: 1

      Maybe the Pinto wasn't the deadliest small car in '79. It was still the only one, AFAIK, that exploded when rear-ended. It wasn't just that the Pinto's flaw was deadly, it was that it was scary, and deadlier than it should have been.
      And yes, Ford's knowing the fuel-tank explosions could happen counted against it if it didn't try to recall affected Pintos.
      Ford, forgetting and repeating history, put exploding gas tanks in several model years of Crown Victorias recently. Again, there was only a slim chance that the accident that exploded the gas tank would happen. Again, Ford didn't want to act because the accident type was rare. Again, it was unacceptable that it could happen at all.
      If Crown Vics weren't often used for cop cars, Ford might still be making exploding gas tanks under the radar.
      I think GM made a similar design error in some varieties of Chevy Blazer. They did act as soon as it was discovered, though.

      --
      There is a fine line between recklessness and courage... -- Paul McCartney
    5. Re:A car analogy... by DragonWriter · · Score: 1

      Had Ford not identified the risk that a bolt posed to the fuel tank and documented it they probably wouldn't have lost so big in court.


      Yes, had there not been evidence that they knew that there was a problem, knew how significant it was and how easy to fix, and chose not to do so, things would have gone better for them in court.

      Not sure how that is part of a "problem", either with the popular perception's relation to the facts (since its part of the popular perception and central to the reason its held up as an example of corporate cynicism) or with the justice system and outcome.

    6. Re:A car analogy... by secPM_MS · · Score: 1
      Actually, Ford won the critical court case concerning the Pinto. What saved Ford's case is that a senior engineer on the Pinto who was very familiar with the security issue (and the relative safety of various small cars) bought a Pinto for his daughter. This was taken as evidence that the risk associated with the Pinto gas tank was not unreasonable.

      You have to look at the probablility as well as the impact of a vulnerability. All organizations that examine or fix issues categorize them by impact. An application crash is far less serious than a remote anonymous EOP or a remote anonymous DOS against a critical server. Customer's don't like installing patches. It is reasonable to fix the most serious issues via patches / updates and punt the less serious issues until the next service patch or major release.

    7. Re:A car analogy... by dltaylor · · Score: 1

      The Pinto NOT the only car with tanks that exploded when rear-ended. As the parent said, it wasn't even the most likely to do so. Ford simply wasn't smart enough to destroy the documentation that they knew an explosion was technically possible.

      As for the argument that "they knew, therefore they had to act"? Nonsense. If Ford spends the extra money to prevent the explosion in an accident, raising the price of the car, then customers would have bought the competing, cheaper cars that lacked the protection, dying in those instead. No lives saved, or injuries prevented, but Ford's shareholders and workers suffer lost income for nothing.

    8. Re:A car analogy... by LWATCDR · · Score: 1

      Actually several other cars where just as likely to catch fire from from a rear collision. The Datsun had the highest death rate and the same flaw. The VW bug was less likely to catch fire from a rear end collision because the fuel tank was in front. The VW bug where much more likely to suffer a fire since the tank was in the front and frontal impacts tended to be much higher energy than rear impacts. And as one person pointed out that Ford actually one the most import of the court cases.
      It is a myth that refuses to die. Besides it is still fashionable to blame a US car company than a Japanese or German company.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    9. Re:A car analogy... by stephanruby · · Score: 1

      "It wasn't just that the Pinto's flaw was deadly, it was that it was scary..."

      Scary is the operative word here, that's why I clipped the rest of your comment. Emotions are what drives most juries. In California, allowing your child to go in a house where there is a swimming pool may be less scary than allowing your child to go in a house where one of the occupants owns a gun. But considering those two scenarios, your child will be much more likely to die from the swimming pool than from the gun.

      The same goes for exploding gas tanks. They're visual, they're dramatic, they're scary. If you can imprint such a fear in a jury, then you're much more likely to make them rule in favor of the person making the claim.

  17. What do they have to gain? by 644bd346996 · · Score: 1

    Why would a corporation choose to not release a patch for a known security vulnerability, even if it is minor? Wouldn't it be better PR to always release the patch before the exploit comes out? This sounds totally unethical to me. They are trying to take an ostrich approach to security: the bug doesn't exist unless the customer can see it.

    Besides, aren't there liability issues with knowingly shipping a product with undisclosed defects? What if they underestimate the severity of a vulnerability? How can they be so confident that they have judged the severity correctly, when they are the ones who created the bug in the first place? This sounds a lot like brinkmanship to me, and I wouldn't want to be associated with that kind of company.

    1. Re:What do they have to gain? by Dan+Ost · · Score: 2, Insightful

      Besides, aren't there liability issues with knowingly shipping a product with undisclosed defects?

      The fix the problem as soon as they discover it. The next release of the product does not have the problem. If the
      problem becomes public before the next release, then they immediately issue the patch for it and hope that people
      patch.

      As long as they release often enough that the fixes are largely in place before the problems are found, I have no
      issue with this. It actually seems responsible since it posses less risk to the customers that are slow in patching
      their systems that the alternative.

      --

      *sigh* back to work...
    2. Re:What do they have to gain? by 644bd346996 · · Score: 1

      IANAL, but doesn't this strategy leave them open to lawsuits from the customers who are affected by a zero-day exploit? What if one of these "minor" bugs actually enables a DoS? It would seem that the affected customers could sue for damages even if the company had underestimated the severity of the bug.

    3. Re:What do they have to gain? by Anonymous Coward · · Score: 0

      Why would a corporation choose to not release a patch for a known security vulnerability, even if it is minor?

      Because it (backporting an existing, possibly quite complex fix
      with multiple dependencies on new features,
      code review of the backport, creating a patch, possibly several
      patches per release if this is cross-plattform software,
      running all these patches through full automatic and manual
      regression test suites) costs a lot of money.
      Money you can spent only once.
      Money which the paying customers expect you to spend
      on the patches they requested, rather than on the patches
      you would want to create.

      Thomas

    4. Re:What do they have to gain? by Dan+Ost · · Score: 1

      I don't think any commercial vendor lets you use their software without waiving your rights to sue them if you have a less than perfect experience with their product. I don't know if such a thing would hold up in court, but the fact that these things never seem to go to court implies that they are at least minimally binding.

      --

      *sigh* back to work...
    5. Re:What do they have to gain? by drinkypoo · · Score: 1

      It actually seems responsible since it posses less risk to the customers that are slow in patching their systems that the alternative.

      Just so we're clear, what you're saying here is that it's better to leave the responsible customers twisting in the wind so that the lazy fucks who don't do their jobs will be safer.

      Congratulations on your support of mediocrity. The Shrub would be pleased (as a C student himself.)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    6. Re:What do they have to gain? by Anonymous Coward · · Score: 0

      I wouldn't want to be associated with that kind of company.
      Where do you work? And are they hiring?

      It sounds like you work for the only company in the world that has an ethical approach to software defects. Forgive me if I come across as cynical, but I've actually worked as a developer/bug-fixer for a fortune 50 that would not let developers choose which customer-filed bugs to fix in its flagship software product because of the reasons given in TFA. We had to get high level management approval to take ownership of a defect, even if there was an obvious one-line fix.
  18. (2) possible outcomes by DebianDog · · Score: 2, Insightful

    The one you hope for: Someone finds and public announces a problem. You team looks "quick to act" deploys a solution.

    That other one: Someone exploits the bug to a degree you and your team never considered and your user community is devastated.

  19. yes by brunascle · · Score: 2, Insightful

    all known security bugs should be fixed, but low-risk non-public ones can be low priority. we cant expect any vendor to send a patch each and every time they find a security bug, but once they find one the next version they release damn well better have it patched.

    1. Re:Yes by pammon · · Score: 1

      > But why not fix the small ones as you find them? Because a fix isn't always obvious, or may be risky, or may impact a feature, etc. If the security problem is indeed "small," then the fix may not be worth it.

  20. Reactivo! by evil_Tak · · Score: 1

    The arguments only make sense if one's development methodology is purely reactive. The guy makes it sound like his entire software team is scampering around frantically putting out fires, and doesn't have any time to spare on any bug that hasn't reached three-alarm status yet.

    I'd rather squash my bugs when they're unknown or barely known than race to hack together a fix when the whole world is screaming. But apparently that's just me.

  21. Proposal by PaladinAlpha · · Score: 2, Interesting

    I think developers and companies should think long and hard about how such policies would be received if the end-user were presented with them in plainspeak.

    "Welcome, JoeUser. This is WidgetMax v2.0.3. As a reminder, this product may contain security holes or exploits that we already know about and don't want to spend the money to fix because we internally classify them as low-to-medium risk."

    I'm not saying it's necessarily wrong -- budgets are finite -- but keeping policies internal because of how they would be viewed publicly is deceiving your customer, full stop. Also, these guys are setting themselves up as final arbiter of what's risky in code exploits. It makes one uncomfortable to think about.

  22. Liability insurance? oh wait.. it's software... by Anonymous Coward · · Score: 0

    Think of this in some other industry.

    If Say a major car company found a systemic flaw in there product, they would be compelled to fix it and rework any product that had already shipped.

    This is called a recall.

    Something about Fight Club.... and some a * b Cost of a recall math.

  23. Not fix bugs? Not a good idea. by Todd+Knarr · · Score: 1

    A security hole is a bug, plain and simple. There's no excuse for deliberately not fixing a bug. Now, you can make an argument that if the bug's minor and not causing customer problems you should hold the fix for the next regularly-scheduled release, but that's about it. The argument that unannounced holes don't seem to be being exploited is particularly disingenuous. People aren't looking for exploits of holes they don't know about. It's not surprising, then, that few people are reporting problems they aren't looking for. What's more likely is that the small subset of crackers who can find unannounced holes are quietly using them for their own gain, keeping a low profile specifically to avoid having customers raising a stink and forcing the vendor to close the hole, and only after it finally goes public do they release their secret to the wider script-kiddie population since it's no longer of use to them.

  24. Why is software different than tangible things? by Dracos · · Score: 2, Interesting

    If an automaker or toy manufacturer didn't issue a recall on a minor safety issue immediately, they'd get tons of bad press. But a software company can sit on just about any security bug indefinitely (I'm looking at you, Microsoft) and few people care.

    I suspect 2 factors are at work here:

    1. The general public doesn't care about software security because it doesn't effect their daily lives
    2. There's no "think of the children!" emotional aspect to software

    #2 probably won't ever happen industry wide, and until the public understands how much impact software security can have, they won't care.

    1. Re:Why is software different than tangible things? by laffer1 · · Score: 1

      I have to disagree.

      1. It does effect the general public due to identity theft, spam, and spyware slowing down their PC.
      2. spam and spyware often send porn content to children.

      The problem is that people think computers are so complex that they don't think its possible to fix security problems. Some people don't relate the problems above to Microsoft's weak security. If we could convince media types that its Microsoft's fault then people might get serious about asking for fixes. Good luck with that.

      The problem with making demands on patching is that it effects the open source community too. Sure big projects like the Linux kernel can patch their bugs very quickly because there are so many developers. Small projects might get so bogged down with security issues that they never get a chance to add features or improving things. Microsoft can then spread FUD that Open Source is not as reliable since these small projects can't compete with their enormous number of developers. And before someone says well you can look at the source, remember people have to CARE ENOUGH to look at the source and patch it!

  25. 100% Correct -- for many reasons by holophrastic · · Score: 5, Interesting

    We do the same thing. Every company has limited resources, and every decision is a usiness priority decision. So the decision is always between new features and old bugs.

    Outside of terribly serious security holes, security holes are only security holes when they become a problem. Until then, they are merely potential problems. Solving potential problems is rarely a good idea.

    We're not talking about tiny functions that don't consider zero values. We're talking about complex systems where every piece of programming has the potential to add problems not only to the system logic, but also to add more security holes.

    That's right, I said it -- security patches can cause security holes.

    It is our standard practice not to touch things that are working. Not every application is a military application.

    I'll say it again. Not every application is a military application.

    Your front door has a key-lock. That's hardly secure -- they are easily picked. But it's secure enough for most neighbourhoods.

    So the question with your software is: when does this security hole matter, and how does it matter. If it's only going to matter when a malicious person attacks, then the question comes down to how many attackers you have. And if those attackers are professional, you might as well make their life easier, because they'll get in eventually in one way or another -- I'd rather know how they got in and be able to recover.

    How it matters. If it reveals sensitive information, it matters. If it causes your application to occasionally crash, when an operator is near-by, then it doesn't matter.

    There are omre important things to work on -- and many of these minor security holes actually disappear with feature upgrades -- as code is replaced.

    1. Re:100% Correct -- for many reasons by UncleTogie · · Score: 1

      If it causes your application to occasionally crash, when an operator is near-by, then it doesn't matter.
      Says you. Try deploying a restaurant point-of-sale system that only crashes "occasionally". You'll have managers just LOVING your software when it goes down during rush hour. It matters...
      --
      Don't tell me to get a life. I'm a gamer; I have LOTS of lives!
    2. Re:100% Correct -- for many reasons by Anonymous Coward · · Score: 0

      "Solving potential problems is rarely a good idea."

      Is this Homer Simpson in charge of worker safety? So if I see a big rotten tree branch hanging over my house I should ignore it until it falls on my roof?

      "Your front door has a key-lock. That's hardly secure -- they are easily picked."

      Sorry, couldn't ignore this comment.
      Who picks locks, especially on front doors? That tends to look suspicious. Most burglars prefer to break a back window. Anyway...

      So a door lock is secure for most homes. Ok, but based on your "if it works don't fix it" comment I'd assume that if no one had a break in via an open window that you'd leave your windows open or unlocked? Obvious security holes should be fixed even if it requires a round of QA.

      This is the attitude you get when you don't have to worry about liability lawsuits unlike every other product manufacturer.

    3. Re:100% Correct -- for many reasons by holophrastic · · Score: 1

      Of course, you are correct. But I spend a lot of time deploying kiosks. And I'd bet that if yoru restaurant POS terminal crashes once a day, even during rush hour, and it is easily restarted with the power button, then the two minute delay is a pain, but will be acceptable by some managers.

      And if you give them the option of fixing the problem, or building a new feature, my experience says that at least 75% of them would prefer the new feature. Because the new feature solves a pain or frustration and winds up letting their business grow in other ways, whereas the problem is merely a two-minute paid once a day.

    4. Re:100% Correct -- for many reasons by holophrastic · · Score: 2, Interesting

      Certainly your point is taken. Liability lawsuits would drastically change things. But in general, product manufacturers are not liable for malicious attacks. If you lock is picked, your locksmith is not to blame. And you can always purchase low-quality products without warranties -- like cheaper surge protectors.

      Regarding the rotten branch, I'd hope that falls under the other half of my comment regarding dangerous things taht really matter. Regarding the windows, yeah I live in a very safe neighbourhood -- you can punch through every glass window here, and most of them won't shatter so you won't even get hurt. But in general, picking locks may look suspicious, but it can be done in under ten seconds by anyone who has procticed for a few days.

      But that's exactly our points -- yours and mine. We don't get better locks, and we don't get better windows -- front or back. We simply don't worry about such attacks because we live in safe neighbourhoods -- safe by statistical standards. There's a break-in every few months around here, and expensive things are stolen. But these thieves get through police-patrolled neighbourhoods, alarm systems, and locks of all kinds. We don't improve them because most would get through anyway. And ultimately, there aren't enough break-ins to be concerned.

    5. Re:100% Correct -- for many reasons by Anonymous Coward · · Score: 0

      Outside of terribly serious security holes, security holes are only security holes when they become a problem. Until then, they are merely potential problems.

      All security holes are serious. How can you prove otherwise?

      Solving potential problems is rarely a good idea.

      Idiotic. You should solve all problems that you know about. A known security hole is a problem.

      We're talking about complex systems where every piece of programming has the potential to add problems not only to the system logic, but also to add more security holes.

      You need to change your design or work on simpler systems. Apparently, you're not up to the task.

      Not every application is a military application.

      Idiotic again. You don't know what will happen once someone breaks into your app. You don't know who will break into your app, or what they'll do. Your system might be connected to one responsible for health or public welfare. Better to assume ALL security holes are serious. It reminds me of clients who say "nobody will break into our computers, we don't have anything important". These are the idiots responsible for the massive amounts of zombies out there that can be used to do REAL damage (i.e., $$$$ loss).

      Your front door has a key-lock. That's hardly secure -- they are easily picked.

      Software is not a physical system. You have finite byte streams in, and finite byte streams out. Also, the current state of the software industry is laughable compared to the lock industry. At least the lock makers are TRYING.

      And if those attackers are professional, you might as well make their life easier, because they'll get in eventually in one way or another -- I'd rather know how they got in and be able to recover.

      Wonderful attitude. Are you saying you should leave some security holes laying around so the hackers don't have to try too hard and come up with unknown attacks? Huh?

      If it causes your application to occasionally crash, when an operator is near-by, then it doesn't matter.

      How does the operator know what happened when it crashed? Maybe some malicious code was copied in and the restart is just what was needed to install it.

      There are [more] important things to work on

      None of that matters once there's a security breach.

      and many of these minor security holes actually disappear with feature upgrades -- as code is replaced.

      Do I laugh or cry?

    6. Re:100% Correct -- for many reasons by holophrastic · · Score: 1

      I'm saying welcome to business decisions with limited resources. It's not free to solve security problems. It is only at the expense of something else.

      And of course I know the worst-case scenario if someone breaks in. I know which systems are hooked into health systems. I can tell you with absolute certainty what the worst thing someone can do is.

      And I can also tell you what our surface area is, as well as the types of people who are trying ot break in. And if it's a matter of corporate espionage, where someone is willing to pay a professional to break in, then I know how many dollars they are willing to spend. I only need to secure up to that point. And if it's high enough, then I'm not going to beat Ethan Hunt.

      So I'd rather leave the front door open to Ethan Hunt, so that he doesn't do crazy damage to my ventilation system. I'd rather hand my information over to him so that I know when it happened, and what information he has. If he's willing to ask for only some of it, I'll be happy to limit my loss to only what he needs.

    7. Re:100% Correct -- for many reasons by UncleTogie · · Score: 1

      And I'd bet that if yoru restaurant POS terminal crashes once a day, even during rush hour, and it is easily restarted with the power button, then the two minute delay is a pain, but will be acceptable by some managers.
      Some managers can live with it, but not the client I'm thinking of....

      Looking at it from their side: They spent around $10-15,000 on a system that takes orders, prints them, handles CC transactions, etc. They {as many users} believe that for THAT kind of money, it SHOULD be bug-free. What logical points do you use with your clients to justify bugs/lockups?
      --
      Don't tell me to get a life. I'm a gamer; I have LOTS of lives!
    8. Re:100% Correct -- for many reasons by holophrastic · · Score: 1

      Well, it varies from client to client depending on their particular project. But I've built similar products for similar amounts, so I'll try to tailor my tips to your situation.

      Ultimately, we have three angles of attack -- so to speak. First off, I have a collection of news articles over the last few years about software bigs. Things like military aircraft becoming unusable mid-air on the way to a battle; credit card systems being compromised; and bank upgrades not depositing cheques for 24 hours. Things where millions or billions of dollars have been spent on software, and it has bugs. Hey, the space shuttle can't fly across new years eve -- date bug.

      So the first concept is that all software has bugs. It's the nature of programming. And we'll fix them when we find them. And there are options -- we can spend months in QA to find most of them, or you can start using it and we'll find them during use -- it's basically a Beta scenario.

      So our client's business will actually start moving forward, as opposed to waiting forever through an expensive QA time. We give them some assurances like saying that certain systems are programmed very carefully -- credit card processing, dollar amounts, and reference numbers. It's all ultimately to ensure that problems can be undone. Much like your bank, every day there are thousands of transactions that are reversed. So we ensure that data is not lost -- records aren't actually deleted, they are marked as removed.

      In the end, our clients are made to understand that computers are generally unreliable -- something with which they are already very familiar in their own lives.

      My new prime example revolves around a kiosk application that we're deploying. We have many options -- one is to build it so that it never crashes. Good luck. Our magstripe reader driver has a bug and it takes down the application at random. In every twenty kiosks, it happens at least twice a day. WE can't solve it because it's not our code.

      So either we try out more suppliers, and play more games, or we work around it. The application is configured to kick back up every 60 seconds. So in a set of five kiosks in a row, if one goes down, it'll be back in no more than 60 seconds. As a business person, our client loves that because it saves development time, hardware investigations, supplier investigations, and trying to solve a problem that may never go away. Also, solving the symptom of application crashing is wider than solving one particular way that it can crash.

      Similarly, the kiosks automatically reboot nightly, just for fun.

      In the end, our clients are business professionals. It's not about avoiding problems -- business is full of all kinds of problems, even for them. It's about ensuring that problems are dealt with so that tehy don't become worse.

      Incidentally, the biggest thing we do is answer the phone. Nothing causes more fear than having a problem, and not being able to reach the guy who can solve it. So we answer the phone. And every few months, a client calls with a big problem, they reach us on the third ring, they describe the problem, we say that yes we're on it, and they are are completely satisfied. As long as they don't have to do anything, they are thoroughly happy. The actual problem doesn't phase them.

      That said, keep in mind that there are always real problems with software that have nothing to do with holes or bugs. The classic one: a record got deleted. how? I hit delete, and cilcked the confirmation, and typed the "yes I want to delete this item" and typed the "yes I backup up the files first", but now I've changed my mind, or my assistant didn't understand, or it was done by accident. So we have to solve problems of mysterious deletions anyway. There are more user action problems than bug problems just like there are more client-decision delays than programming delays.

      If you client is a business professional, and understands that every business day is full of problems, then this is j

    9. Re:100% Correct -- for many reasons by UncleTogie · · Score: 1

      Wow. A clear and concise reply, on-topic, and insightful.... Thanks for your input; you've helped my boss out immeasurably {and scored me some brownie points to boot!}... I appreciate it!

      /me checks to be sure he's on /. .....

      --
      Don't tell me to get a life. I'm a gamer; I have LOTS of lives!
    10. Re:100% Correct -- for many reasons by holophrastic · · Score: 1
    11. Re:100% Correct -- for many reasons by mythar · · Score: 1

      But that's exactly our points -- yours and mine. We don't get better locks, and we don't get better windows -- front or back. We simply don't worry about such attacks because we live in safe neighbourhoods -- safe by statistical standards. There's a break-in every few months around here, and expensive things are stolen. But these thieves get through police-patrolled neighbourhoods, alarm systems, and locks of all kinds. We don't improve them because most would get through anyway. And ultimately, there aren't enough break-ins to be concerned. home security makes a good analogy that anybody can understand. i doubt even a single person here has door locks that can't be picked, windows that can't be broken, or garage door openers that can't be hacked. wtf? isn't your family's safety important?

      how many people here have even bothered to replace their $30 deadbolts with $100+ models that can't be bumped?

    12. Re:100% Correct -- for many reasons by holophrastic · · Score: 1

      Great point on the deadbolts! For a simple one-time fee, and for a device that you have anyway, you'd think that $100 would be the obvious choice over $30.

    13. Re:100% Correct -- for many reasons by Anonymous Coward · · Score: 0
      We're talking about complex systems where every piece of programming has the potential to add problems not only to the system logic, but also to add more security holes.

      What crap -- adding "features" aka "bloat" has even more chance of adding security holes, because security is not a priority when "enhancing" a program. Where do you think the holes (and the complexity) come from in the first place? All you're advocating is that it's better to add holes in a place that the marketeers prefer, rather than in the place reasonable engineers prefer.

      It's like arguing that adding a couple of good locks to a door with a cheap lock will compromise the structural integrity of the door, so let's leave it with the cheap lock.

    14. Re:100% Correct -- for many reasons by holophrastic · · Score: 1

      That's exactly what I'm saying. Until you are willing to open the door, you can't repair / replace / supplement the lock.

      So, the scenario that I encounter is as follows. The system is perfect. It's secure, and everybody is happy. Then, one day, my client's customer demands a particular feature. My client then comes to me and says that he needs the feature in three days because it's worth tonnes of money to my client but only if it's done in time.

      Trouble is that there is no time to program it properly, it just has to be hacked in there. The quotation says hack-version, the invoice says hack version, and everyone understands that it's a hack to get the feature in there in time for the deadline.

      So then it's in, and everyone is happy. But it's totally insecure. But in order to make it secure, we need to rebuild the feature. And in order to rebuild the feature, we need to remove the hack. But there is no time to take down the feature -- not even for a five minute mirroring processing. And every day that goes by, there's more data that would need to be converted.

      So the more time passes, the more expensive it becomes to fix the hole. And the more time passes, the more the customer and client says "it has been broken in all this time, let's just wait a little longer". And eventually, no one wants to spend more than the original rush-cost of the feature to fix the feature, and there is more and more statistical evidence that it isn't being taken advantage of. So everyone settles into the high risk scenario.

      Months or years go by, the customer's event ends, we upgrade the system, we migrate the machine, or the feature gets upgraded to the point where it's not at all the same as it was. And the closer we get to those points, the more people say: "we'll just wait until the planned upgrade".

      It's not that having the security hole is a good thing -- it's terrible. But it's a commonly accepted risk -- it saves money, it saves time, and it's an understood risk. That makes it a business decision -- and that means it's not my decision, it's the client's decision. Their business, their risk. I can't even advise them. I can only educate them. It's not illegal, it's not unethical, so it's not my call.

  26. If you HAVE a solution, you should fix it. by gurps_npc · · Score: 2, Insightful
    That is, if you have a patch, then you should fix it.

    I could see not waiting till your next regular patch, so as to avoid bringing it to the attention of the hackers.

    But the rest of his arguments are pretty crappy.

    --
    excitingthingstodo.blogspot.com
  27. Bullshit. by khasim · · Score: 1, Interesting

    Closing all vulnerabilities is not practical.

    Then running that software is not "practical". Any vulnerability is a vulnerability.

    In any sufficiently complex piece of software, there will be bugs and security holes.

    And "sufficiently complex" is defined as having "bugs and security holes". No. That just means that there is no such thing as "security". And we've been over that before.

    Obviously, you need to close the nasty ones, but many of these exploits are not particularly high risk.

    Right. And enough of those "not particularly high risk" vulnerabilities can be linked together to crack your machine as surely as 1 remote root exploit could be.

    In these cases, especially if the fix would involve a major redesign or other highly disruptive solution, it may be best to just leave them alone.

    "Best" in this case is being defined as "best for the company selling the software" and NOT "best for the people using that software".

    What would be best for the users is the knowledge that there are fundamental security issues and that they might want to use a competitor's product.

    If, for example, the underlying design of your product allows for a minor, difficult to exploit security hole, it is probably not worth it to spend the time and money to redesign the product.

    Again, "not worth it" from the point of view of the vendor. Let's be clear on that.

    The decision to close a security hole should be dependent on the potential impact of the hole, the urgency of the issue (are there already exploits in the wild, for example), and how many resources (time and money) it will take to fix it.

    How would you KNOW if there were already exploits in the wild? Unless someone was advertising them.

    That approach means that an exploit can sit for years at the "unimportant" level ... until one day it hits the "EMERGENCY!!! FIX IT NOW!!!" level.

    Yeah, that's the kind of support I want from my vendors.
    1. Re:Bullshit. by moderatorrater · · Score: 2, Insightful

      Wow, what's it like to live in a world where everything's black and white? ;) But seriously, anyone, and I mean anyone, who's worked with a large program (depending on the language you use, over 10,000 lines) knows that you can't change code without the risk of unintended consequences. If a small security hole requires a large rewrite, it's nearly 100% guaranteed to introduce new bugs and security holes. And if you rtfa you'd realize that the person has real numbers to back up the fact that most exploits are used after the patch is released and the details are public. Finally, the argument that the company should do what's best for the consumer is bullshit. Profits drive business, everything dealing with the software should boost the bottom line somehow. If you want people to program something for the pure joy of programming, use open source, otherwise you're buying from a business and you have to deal with the downsides of businesses.

    2. Re:Bullshit. by Delkster · · Score: 1

      Finally, the argument that the company should do what's best for the consumer is bullshit. Profits drive business, everything dealing with the software should boost the bottom line somehow.

      While that's obvious, it's equally obvious that in commercial software development, like in any other commerce, both parties involved try to maximise their benefit -- and probably should, lest the other party take benefit of it. Quite clearly from a customer's point of view the best policy in the other company is the one that does what's best for the consumer, so it's completely reasonable that someone writing from a customer's point of view demands that.

    3. Re:Bullshit. by moderatorrater · · Score: 1

      Actually, it's best for the costumer to buy from a vendor that won't sink millions of dollars into small holes, because that cost will be passed on to the costumer. If a completely secure program costs $1000 and a 90-95% secure product costs $200, the costumer will almost always buy the $200 program, especially since there's usually no way for the consumer to know if some thing's 100% secure.

    4. Re:Bullshit. by Delkster · · Score: 1

      I didn't say what was best for the customer. That's up for the customer to judge. Whatever it is, it makes sense for him to demand that.

    5. Re:Bullshit. by Anonymous Coward · · Score: 0
      Actually, it's best for the costumer to buy from a vendor that won't sink millions of dollars into small holes, because that cost will be passed on to the costumer.

      WTF are you smoking -- Halloween's still five months away. Get back to work!!!

  28. Uh.. A/V bad? by ushering05401 · · Score: 1

    From TFA:

    "It's possible that if anti-virus software had never been created, we wouldn't be dealing with the level of worm and bot sophistication that we face today."

    And if we didn't use antibiotics we wouldn't be seeing the current evolutionary pace of biological malware.

    TFA presents some points for discussion, but this doesn't strike me as one of them.

    Did I really just type 'biological malware?'

    Regards.

  29. Just because Microsoft acts that way... by 644bd346996 · · Score: 1

    ...doesn't mean it is the key to success.

    I really want to know what company the "reader" works for, so I can add them to my shit list. I don't want to support such abhorrent security practices.

    And remember: Friends don't let friends buy Microsoft.

  30. Risk of litigation by Dancindan84 · · Score: 2, Insightful

    IANAL, but if a company suffers a significant financial loss due to a bug that the vendor knew about but did not patch, does that not open them up for big time law suits?

    --
    "Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
    1. Re:Risk of litigation by cdrguru · · Score: 1

      Sure, if there was any liability. Read the fine print that comes with everything, including open source software.

      The purchaser/user is warned specifically that you can't claim consequential damages. If you don't like it, return it. If the store won't take it back, the publisher will. If you find a bug that causes all your data to be lost after 6 months you might have some trouble getting your money back but some will still give you a refund.

      But no way are you getting consequential damages for software. There are too many ways to misuse it.

  31. The Biggest U.S. Security Hole: +1, Informative by Anonymous Coward · · Score: 0


    Is President-Vice Richard B. Cheney's Spider-Hole.

    I hope this helps the war criminal trial in The Hague.

    Yours PatRIOTically,
    Kilgore Trout

  32. fraud? by DM9290 · · Score: 1

    selling a product which you know does not meet specifications in order to derive a benefit is a crime called "fraud".

    Trying to artificially inflate your bugfix ratings or trying to save money is a benefit.

    I dont see how this company expects to evade legal CRIMINAL responsibility when someone is harmed because of a pre-existant security problem they knew about but did not disclose at the time of sale.

    --
    No one has a right to their *own* opinion. They have a right to the TRUTH.
    1. Re:fraud? by jbrandv · · Score: 1

      Can you say Microsoft? I have yet to find a single product from this company that actually meets its own specifications. Criminal? You bet, but nothing is being done to them. Hiding bugs? They are the best at it. Heck they have been found by the courts to abuse their monopoly but little to nothing was done and their behavior has only gotten worse! Buy a clue.

    2. Re:fraud? by DM9290 · · Score: 1

      abusing a monopoly and commiting wilful fraud are entirely different things. I dont see what 1 has to do with the other.

      But what are you trying to say about microsoft exactly?

      --
      No one has a right to their *own* opinion. They have a right to the TRUTH.
  33. argument (summary) by Anonymous Coward · · Score: 0

    1. Our programmers are trained to program perfectly
    2. We spend our time fixing critical bugs, fixing medium and low security bugs slows down fixing the high priority bugs
    3. Next priority (after critical bugs) is fixing publicly disclosed bugs
    4. Hackers find bugs by examining patches so when we patch bugs that are not publicly disclosed hackers find out about them and then they become publicly disclosed bugs and our bug count goes up.
    5. Our fixing vulnerabilities makes hackers smarter/better.
    6. Most hackers only exploit publicly disclosed vulnerabilities. By not fixing bugs our customers are protected against most hackers.

  34. You missed the point about "patches"? by khasim · · Score: 1

    No matter how good the QA testing is on a piece of software before it's released, it invariably has bugs and security risks.

    No one is arguing that.

    The discussion is about whether the attempt should be made to address ALL of those ... or not.

    Why do you have a problem with assigning priorities to issues that need fixing?

    Where did I say that?

    They SHOULD be prioritized. No sense in trying to patch a local user, non-exploitable crash bug when you have a remote root vulnerability (with exploit).

    But the system is only as secure as all of its components. While you may not believe that your vulnerability is important enough to patch, if enough people take that same approach, the vulnerabilities can be linked and your box will be cracked just as if you had left a remote root vulnerability unpatched.

    That approach means that YOU are relying upon EVERYONE ELSE to cover your code by ensuring that THEIR code does not have any exploits. While you don't bother to patch your's.
  35. Re:Two words: Exploit Chaining by Anonymous Coward · · Score: 0

    ..But on the flip side, not every bug can be exploited, even though it may seem severe. Every conceivable buffer overflow is not useable in practical terms.
    I guess the point is, you have to prioritize.

    And seriously, if you want software with guaranteed security or reliability, you probably don't want consumer grade stuff to begin with. (Just call your local nuclear power plant and ask them who wrote their process management software. )

  36. Yeah, I can see that. by khasim · · Score: 1

    I'll go with your reading. Thanks!

  37. there is no taxonomy of problems by gelfling · · Score: 1

    All problems are theoretical until they happen to you. Before they happen to you they fall into two categories:

    It can never happen to you Probability = 0.0
    It might happen to you Probability 0.0 x 100.0

    The problem is that we don't know this when we hear of a problem. All we hear about is the theoretical problem and the probability of a theoretical problem being theoretically true = 100.0%. If we had a way to neatly classify vulnerabilities into both the probability of occurence and the probability that something of a given 'oh-shit'-edness happening then we could easily ignore problems that are more expensive to fix than the risks they present. Since we can't really do risk analysis we're stuck with trying to do everything, I guess, or not. I'm not sure. Maybe it doesn't matter much.

  38. over working codes and dumb PHB's does not help by Joe+The+Dragon · · Score: 1

    When you work people 80+ hour week you get a lot more bugs in the code.
    When you rush things out to meet a clueless PHB dead line things get passed over.
    When you cut funding some times you don't have the hardware to do full testing and you end up with test code on the sever or a desktop turned in to a test sever.
    When you waste the codes time on crap like TPS reports useless meetings to tall about way things are running late that does not help.

  39. Hit em in the pocket by packetmon · · Score: 1

    The problem with vendors closing security holes is, they often can't keep up with the volume of it.

    In the case of MS, how often do they close one hole only to open up another. I don't want to throw OS' around, but look at team OpenBSD, regardless of the smug attitudes, you have to give Theo and his group credit. They don't release for the sake of keeping up with the Jones'. They're methodical and accurately screening and scrutinizing what their OS does, what its supposed to do and how it does it.

    The issue with vendors are, they're in a race to meet stockholder/shareholder demands and are often releasing whatever they can to meet sales forecasts. This leads to shoddy designs and implementations. If you ask me, some of these vendors should be getting fined by governments based on the severity of their holes. I'm sure with that kind of pressure, they'd be more reluctant to release cruddy programs as opposed to hurrying something insecure out the door.

    If I were a vendor and all of the sudden I was getting fined for not taking security seriously, I would put on a big old about face and audit the hell out of my code. But what incentives, qualms, repercussions face vendors now? None. People will bitch about MS' security yet go out and buy Vista. How about people start taking things very serious and start suing some of these vendors... "My personal information was compromised because of shoddy program X class action lawsuits." Hit em where it hurts, eventually they will either listen or go broke.

    1. Re:Hit em in the pocket by cdrguru · · Score: 1

      How about people start taking things very serious and start suing some of these vendors... "My personal information was compromised because of shoddy program X class action lawsuits." Hit em where it hurts, eventually they will either listen or go broke.


      I've never heard of a product that didn't disclaim liability for problems using the software. How do you discern - it court - between a bug in the program and a user error? No debugger, no "let's see", just the documentation and the user saying "I lost my stuff" with a bunch of lawyers. No, I don't see how you could tell the difference at all. So every user error becomes actionable back to the developer if you open the door to this kind of liability. And be assured there would be plenty of users ready to sue.

      I sure as heck wouldn't be in the software business if customers could sue because of user errors.

      OK, let's limit it just to security issues. User saves data to an insecure remote server, data is compromised. User blames software - the software did not encrypt the data to protect it. User error, bug or a feature for a future release? Interoperability goes out the window if every program saves output in a proprietary encrypted format, so maybe that's not such a hot idea. But if you leave defining appropriate security up to lawyers that is where it is going to go.

  40. I once worked for a place like that by pestilence669 · · Score: 4, Interesting

    The place I worked for was a security company. They had no automated unit testing and never analyzed for intrusions. You'd be shocked to find out how many holes exist on devices people depend on to keep them safe. The employees took it upon themselves (subverted authority) to patch our product. Security problems, even on security hardware, were not "priority" issues.

    We too "trained" our coders in the art of secure programming. The problem, of course, is that we were also training them in basic things like what a C pointer is and how to not leak memory. Advanced security topics were over their head. This is the case in 9 out of 10 places I've worked. The weak links, once identified, can't be fired. No... these places move them to critical projects to "get their feet wet."

    At the security giant, training only covered the absolute basics: shell escaping and preventing buffer overflows with range checking. The real problem is that only half of our bugs were caused by those problems. The overwhelming majority were caused by poor design often enabled by poor encapsulation (or complete lack of it).

    There were so many use cases for our product that hadn't been modeled. Strange combinations of end-user interaction had the potential to execute code our appliance. Surprisingly, our QA team's manual regression testing (click around our U.I.) never caught these issues, but did catch many typos.

    I don't believe security problems are inevitable. I've been writing code for years and mine never has these problems (arrogant, but mostly true). I can say, with certainty, than any given minor-version release has had 1,000's of high-quality tests performed and verified. I use the computer, not people... so there's hardly any "cost" to do so repeatedly.

    I run my code through the paces. I'm cautious whenever I access RAM directly. My permissions engines are always centralized and the most thoroughly tested. I use malformed data to ensure that my code can always gracefully handle garbage. I model my use cases. I profile my memory usage. I write automated test suites to get as close to 100% code coverage as possible. I don't stop there. I test each decision branch for every bit of functionality that modifies state.

    Aside from my debug-time assertions, I use exception handling quite liberally. It helps keep my code from doing exceptional things. Buffer overflows are never a problem, because I assume that all incoming data from ANY source should be treated as if it were pure Ebola virus. I assume nothing, even if the protocol / file header is of a certain type.

    Security problems exist because bad coders exist. If you code and you know your art form well, you don't build code that works in unintended ways. Proper planning, good design, code reviews, and disciplined testing is all you need.

    1. Re:I once worked for a place like that by joggle · · Score: 1

      When would you consider that you are using RAM directly? Do you mean when you are using low-level functions like malloc() and free() or any time you access an object on the heap? Heck, even the stack is in RAM for that matter. It makes sense to be cautious when allocating memory and accessing it without a memory manager, but when using higher-level languages like Java or C# it doesn't seem to be as critical (since an exception will be thrown which is easily caught when trying to access invalid memory areas). That's one of the primary reasons I prefer writing code in C# and Java, it's much easier to write bullet-proof code (so long as the implementation of the underlying libraries and just-in-time compiler are similarly bullet-proof).

      One other question: How do you handle 3rd-party libraries that your application uses? Do you try to run unit tests for them as well? You seem to be pretty thorough in your security approach and I was just wondering how far you are willing to go to keep your app secure. Personally I haven't ever written a unit test for a 3rd-party library (but I haven't ever saturated my app's code with unit tests either--critical code, sure, but other items--especially GUI-related logic--less so).

    2. Re:I once worked for a place like that by Anonymous Coward · · Score: 1, Insightful

      I don't know where you work but I can tell from your focus on secure coding that you have never worked for Microsoft.

      "Buffer overflows are never a problem, because I assume that all incoming data from ANY source should be treated as if it were pure Ebola virus. I assume nothing, even if the protocol / file header is of a certain type."

      You don't trust data being passed even internally? Ever? Doesn't all of the redundant checking hurt speed and efficiency? What if it is part of a loop being called thousands of times?

    3. Re:I once worked for a place like that by poot_rootbeer · · Score: 2, Insightful

      Proper planning, good design, code reviews, and disciplined testing is all you need.

      Unfortunately there seems to be very few companies willing to budget (in time or resources) for any more than two of these, let alone all four. And even more unfortunately, the past 40 years of commercial software seem to suggest that such miserliness has been a profitable decision.

    4. Re:I once worked for a place like that by PhotoGuy · · Score: 1

      Great post, with some good tips and practices.

      It always amazes me how the simplest of things is not done by most coders. For example, if I introduce a branch of logic (if...then or otherwise), I will at the very least do a quick test on each of the branches, to make sure it exhibits both behaviours as appropriate. It's been my experience that most coders do not even do that, much less creating formal test suites (something of which I'm guilty). But if you make a change, goddammit, *test* the changes and any "logic branches" you might have added. It's not exactly rocket science. I think a lot of the training that true engineers receive, should be applied to "software engineer" training. It really is scary what people are creating out there.

      --
      Love many, trust a few, do harm to none.
    5. Re:I once worked for a place like that by pestilence669 · · Score: 1

      Trusting internally passed data too much can be a serious problem. On one hand, like you mentioned, excessive checking can slow things down. On the other, too much trust, and you can open your code to the effects of another team member's bug.

      I believe strongly in building black box components with defensive coding around the public interface. There may be a small amount of redundancy. If there's a great deal, it might be a good idea to review the design. I've certainly found problems with my own designs in this respect. Are there performance costs? Absolutely, but they should be negligible. You never really know how much until you profile your code.

      In my experience, profiling has never revealed error checking, or exception handling for that matter, to be the primary bottleneck in performance... despite my colleagues whining about my use of exceptions :). It's always, without failure, bad algorithm design and bad implementation. If you make it a rule to benchmark / profile first, and then optimize, you can make educated decisions about what error checking is expensive and what to refactor.

      Tight loops are good candidates, but optimization before coding? I wouldn't suggest it if you enjoy your sanity.

    6. Re:I once worked for a place like that by Anonymous Coward · · Score: 0
      The place I worked for was a security company. They had no automated unit testing and never analyzed for intrusions. You'd be shocked to find out how many holes exist on devices people depend on to keep them safe.

      I'm not in the least bit surprised. The day I was laid off from an extremely well-known financial analysis software house (with whom nearly everyone in the US has had some interaction), they also laid off nearly the entire QA team. WTF!?!?!?

  41. Thats retarded by JustNiz · · Score: 1

    That approach allows hackers to exploit known-about but unreported (and therefore unfixed) loopholes potentially for ages.

    Please give me the name of this guy's company so I can avoid all their products.

  42. Then there's the ethics and responsibility args by postbigbang · · Score: 2, Informative

    They say: if you know about it, you're obliged to fix them. And then you kick your QA department's butts around the corridor several times. If your customers are your software testers, then you're business model is likely corrupt. And while there are a number of coders that will complain that it was the libs, or the other guy's fault, ultimately, a responsible organization takes ownership of their faults, just like humans should.

    --
    ---- Teach Peace. It's Cheaper Than War.
  43. Pitiful by Stumbles · · Score: 1

    Not patching security flaws no matter their "level of criticality" is like standing in the middle of some railroad tracks that's lightly used. Sure you might stand there for a long time before a train comes along but when it does your toast.

    --
    My karma is not a Chameleon.
  44. Hear Hear by Khammurabi · · Score: 1

    Closing all vulnerabilities is not practical. In any sufficiently complex piece of software, there will be bugs and security holes. Obviously, you need to close the nasty ones, but many of these exploits are not particularly high risk. In these cases, especially if the fix would involve a major redesign or other highly disruptive solution, it may be best to just leave them alone.
    Having worked on commercial software for a few years now, I'd have to agree with the parent. All complex programs come with bugs, period. I'd have to wager any application that is completely free of bugs is either a non-commercial product, or is in a stagnant market. The bugs that are fixed for patches are usually the ones deemed during the triage process as being the most critical and/or most time-efficient to fix.

    As a developer, while I'd like to fix all the bugs in the system, the truth is there will always be a few that require architecture changes or impact large sections of code, and as such tend to persist in the application. Since these bugs tend to require a large time investment for almost no perceptible gain for the end-user, they are often ignored in favor of devoting time to new features.

    Should all bugs be fixed? Yes. Should all bugs take precedence over new features? No. This is not to say developers do not try to fix long-standing issues, just that the churn rate for bugs tends to be rather constant. (Once an older bug is fixed, a new one takes its place.)
  45. Re:Two words: Exploit Chaining Be... by davidsyes · · Score: 1

    affredd... be veddy effredd.

    In code space, noone can hear you scdream...

    This is a GOOD case of "chain" smoking...

    Maybe they need to debug their approach? Is anyone else bugged by this?

    --
    Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
  46. Maybe if they spent more time ... by voislav98 · · Score: 1

    ... fixing their bugs instead of studying whether to fix them they would have a better product. It reminds me of a joke http://www.infojokes.com/index.php/archives/10184

  47. Litmus Test by Fnord666 · · Score: 2, Insightful

    Are you willing to indemnify your users for any and all losses suffered by them due to a flaw/bug which you knew about but chose not to patch? If not, then patch it!

    --
    'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
  48. Re:A car analogy... GM would probably fix a by davidsyes · · Score: 1

    4-inch crack in a chastity belt by applying multiple layers of Armor All, or maybe Poly-glycote...., butt, on the other hands....

    (CAPTCHA: DISCREET)

    --
    Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
  49. Fixing holes by kupekhaize · · Score: 2, Insightful

    The problem is that if you've discovered a security hole; chances are someone else has as well. Just because a problem hasn't been reported to your company doesn't mean that it is unknown.

    History shows that there are lots of black hats that will sit on security breaches/expploits/bugs/etc and exploit them for their own end rather then reporting them to a company. Breaches in security should be patched as soon as they are discovered. If 1 person found the bug/hole/exploit/whatever, that means another person can find it as well. There's nothing there about having to report it to a vendor once found by either person.

    --
    One of these days i'm going to find this 'peer' guy and reset HIS connection!
    1. Re:Fixing holes by fozzmeister · · Score: 1

      It's a whole different thing to find a hole with the source code, than without it.

      But I'm not sure on the practice, what happens when a disgruntled employee leaves? Did he have access to that information?

    2. Re:Fixing holes by Creepy+Crawler · · Score: 1

      Thats patently false.

      The difference is that you no longer have access to C code. You instead, have access to binary code.

      Machine code has very similar patterns of loops and data handlers, and can be stepped through them instruction by instruction.

      If there is a "bad" check, one can load the stack and crash the buffer, writing on executable code. The gunk you used to crash the buffer happens to execute properly as if you wrote it.

      Or do you think source code is needed for No-CD patches, or the newest crack for Adobe software or 3DSMax?

      --
  50. Re:Yup - not really by qaz2 · · Score: 1

    This is not entirely true. It is not always feasible to change your software just like that. Processing patches can be a lot of work for the customer, as their IT department might wish to test the patched version on test systems. Furthermore a patch may impact other parts of an application, especially if a bug resides deep in the framework and the application is complex.

    In such a case it really is not bad to consider fixing a low-risk bug in the next "normal" release when a usual full QA test has verified that no other stuff has, or seems to be broken.

    Leaving a high-risk, or highly irritating bug be will cost you customers. But daily dumping patches on your customers ICT department will also not endear you to them; and changing functionality or accidentally introducing new bugs will not endear you to the end users.

    It's always a difficult decision to make, and you never make the right one:)

    By the way, I like making software, and I like to make quality software. It's all about the money, but consistently delivering bad or buggy software will cost you your customers. It does not (always) pay to be cheap, and I believe most companies know that.

  51. Fixing bugs can also expose other bugs by EmbeddedJanitor · · Score: 1
    fixing a bug causing a known issue can also fix several unknown issues

    Just as often the reverse applies. A bug often shadows other bugs. Take away the main bug and there's just another right behind it which might even be worse. This is why you don't just "shoot from the hip" when fixing bugs.

    --
    Engineering is the art of compromise.
    1. Re:Fixing bugs can also expose other bugs by Anarchysoft · · Score: 1

      |fixing a bug causing a known issue can also fix several unknown issues Just as often the reverse applies. A bug often shadows other bugs. Take away the main bug and there's just another right behind it which might even be worse. This is why you don't just "shoot from the hip" when fixing bugs.

      Are you suggesting it's better to not fix the bug and thus reveal the problems it masks? When fixing bugs causes many bugs it usually indicates one of two common things:

      1. The bug fixer is being careless and there isn't sufficient regression testing happening, or
      2. the initial code was fragile to begin with.

      In many ways, problem 1 is much more serious than problem 2 as the code is probably getting worse rather than better. It would seem to follow then that the fact that a person 'fixing' something can screw it up more is not a strong rationale for avoiding fixing bugs as long as the engineers' and SQA skill level is sufficient to handle the risk associated with the project. Of course, if people would just engineer things right the first time... ;)

    2. Re:Fixing bugs can also expose other bugs by EmbeddedJanitor · · Score: 1
      I am not suggesting that it is better to leave bugs unfixed.

      What I am saying is that fixing bugs has a possibility of making benign bugs go live. Thus, fixed software needs to be well tested to ensure that nothing else was broken in the exercise.

      This means that the cost of fixing bugs can be quite high and often companies need to prioritise or batch up bug testing to make sure that bug fix releases are good.

      --
      Engineering is the art of compromise.
    3. Re:Fixing bugs can also expose other bugs by Anarchysoft · · Score: 1

      I am not suggesting that it is better to leave bugs unfixed. What I am saying is that fixing bugs has a possibility of making benign bugs go live. Thus, fixed software needs to be well tested to ensure that nothing else was broken in the exercise. This means that the cost of fixing bugs can be quite high and often companies need to prioritise or batch up bug testing to make sure that bug fix releases are good.
      I totally agree.
  52. Re:100% Correct -- for many reasons What...? by davidsyes · · Score: 1

    If it aint FOKE don't BRIX it? EESHSH

    I suppose that is why some software companies use the S/W equiv of Poly-Razz-Ma-Tazz... overwhelm the user with a plethora of "features" so that metrics look better when ONE otherwise major bug would stand out in a small-feature program/app. But, then many customers (and devs/publishers) cannot see the forest for the trees.

    --
    Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
  53. Words Important by Ahnteis · · Score: 1

    >>We still research the bug and come up with ****tentative**** solutions, but we don't patch the problem.

    They come up with a tentative solution, but they don't spend the time to do full testing on it unless it's a critical security hole. Why? As mentioned, they prefer to:
    1) Use limited resources to focus on finding critical problems
    2) Not introduce new code to a known system unless necessary
    3) Not put their real-world, paying-customers-who-don't/can't-patch in danger.

    Again, the letter makes clear that they do patch the most critical things, and anything that is public (and thus likely to be exploited).

    If the hole becomes known, they can issue a fix more quickly because they already have a starting point.

  54. Yes by madsheep · · Score: 2, Interesting

    Yes, yes they should patch them all. Personally it'd eat away at me knowing I could spending a few minutes, hours, or days to fix a vulnerability in my software. I don't think I could take pride in what I do if I just leave crap like this around because I don't have to fix it and don't think it's important unless someone finds it publicly. I'm glad they fix the HIGHs (however they rate this.. who knows?) and the publicly disclosed ones. But why not fix the small ones as you find them? It's a little bit of embarassment every time an issue is found. This is one less piece of embarassment. However, maybe it's the quasi-perfectionist in me, I couldn't imagine not fixing this stuff.

  55. There always is a question by KZigurs · · Score: 1

    What exactly is a security hole and what exactly is a feature?

    Simple truth is - for any software with sufficient amount of users there will be users that will manage to find even most strange "features" and often exploit to their advantage (as in - it benefits them actially).
    As long as you are facing the unknown (users that might actuall think that any particular issue is a feature and use them) versus known ("yes, there seems to be a problem with IP parsing if using nonstandart syntax, but nobody has complained") those two has to be weighted quite carefully.

  56. the OpenBSD approach by DaMattster · · Score: 1

    They should absolutely patch bugs when discovered, regardless of classified severity. They should take the OpenBSD approach and regularly and aggressively audit their code. I think customers that have paid good money for a product, deserve one as bug free as possible. OpenBSD is an OS that you get for free that has far fewer flaws and is proactive about letting its users know when a bug does crop up. If a free/open source project with an even tighter budget, there is absolutely no reason a commerical vendor cannot do the same.

  57. ...and... by commodoresloat · · Score: 1

    That other one: Someone exploits the bug to a degree you and your team never considered and your user community is devastated.
    And they initiate legal proceedings based on the policy of not fixing known security bugs.
  58. Downside to always patching by drfuchs · · Score: 4, Insightful

    The article and responses miss an important point: patches of any kind are risky! And not just because they might introduce a new security flaw, but more generally because they may break some feature or another. In applications with millions of lines of code, and where the cost of doing a patch release amortized over all customers is millions of dollars, it can make lots of sense to just roll a fix into the next planned upgrade release. That way you get a complete Q/A and customer beta-test cycle to increase the confidence level of the fix.

  59. What the hell??? by Anonymous Coward · · Score: 0

    I RTFA (I must be new here;) and I'd like to know what shitty half-assed company the "reader" works for so I can avoid his company's software like the plague? God damn it, if you sell me software and you find a security hole there's a damned good chance that the black hats have found it too, and there's no way in hell they're going to disclose it to anybody. They're going to exploit it until your company finds it and patches it.

    I know this won't sit well with most slashdot readers, but we (in all our countries, or at least one or two large ones) need some liability laws. If I buy your software and it needs patching, patching your poorly designed buggy insecure piece of shit should be on YOUR dime. If a defect that can cause a fire or accident is found, GM pays for it. Software companies should do the same for security bugs, and I would include bugs that can result in loss of data as well.

    If your shitty software causes me a million dollars in lost data, I should be able to win a lawsuit against you for a million, plus legal fees, and if it turns out you knew about the flaw and sat on it I should be able to get punative damages as well.

    Now, I know some of you halfassed so-called "software engineers" are going to whine about how complex modern software is, and my answer is "tough shit". Cars have literally hundreds of thousands of interlocking and moving parts, yet my last car was twenty years old when I got rid of it. Your software is NOT more complex than a modern car!

    The difference between cars and software is the car's engineers are actually real live engineers who know WTF they're doing. Software bugs should be rare, and the only reason they're not is because we users allow it.

    -mcgrew

  60. Re:100% Correct -- for many reasons What...? by holophrastic · · Score: 2, Insightful

    You know something, I was planning on rebutting, but you're entirely correct. But you make it sound like a bad thing. Some of our clients are educated and experienced in the technical world. Many of them choose to see the forest from above -- and so they demand a taller tree first.

    When given the option between a week of effort to fix a security hole (for free), or a week of effort to build a new feature (for cost), not all but most of our clients prefer the latter. They would rather grow their business (even on an unstable balancing act) than safe-guard their business. And all the advice in the world doesn't seem to be able to change that.

    I guess it's the typical/traditional backup advice. I have yet to meet a client that is willing to spend the time and effort to develop a reliable backup routine (not even a restoration routine). They'd rather run the risk of losing all of their data, and dealing with the headaches and fall-out, than to spend money to prevent something that may never occur.

    I can respect that -- hell I make the same decisions every day. And sometimes I even make those decisions with other people's data. But that's the very same risk/reward decision that every business entrepeneur makes. So in the grand scheme of things, I guess it's insignificant compared to most of the other decisions in running a business.

    Just off the top of my head, I'd say that firing an employee is a bigger risk than worrying about hard drive failures.

  61. The OpenBSD experience by Beryllium+Sphere(tm) · · Score: 1

    >Solving potential problems is rarely a good idea.

    It worked for OpenBSD, though conceivably they could have gotten the same results with less labor.

    Their policy was to audit code looking for problems, and then fixing every problem they found without even checking whether it was exploitable.

    Interestingly, one result was that OpenBSD became unusually difficult to crash.

    Not many projects are willing to set up their priorities the way the OpenBSD team has, and there are reasons.

  62. I don't think you understand that. by khasim · · Score: 1

    Finally, the argument that the company should do what's best for the consumer is bullshit.

    And that explains the massive growth of Linux and other Open Source apps.

    It's "bullshit" to you, but it's very real to the customer. And the customers are moving because of it.
  63. Ok, I'll feed the troll. by Weaselmancer · · Score: 1

    hi im from delhi, u should listen when i tell you how it is.

    Odds are, since you type like a 14 year old texting someone - you probably don't know how it is. Call me after you make your first few college loan payments. kthxbye.

    Don't assume we write crappy programs.

    Don't have to assume. I'm actually in the industry and I've dealt with outsourced code. It IS crappy.

    Don't assume you have greater brains. We are the country that invented Mathematics

    There are a few greek fellows I read about who might want a word with you on that.

    And the accent..ugh...we have the most neutral of all accents.

    To YOU, maybe. Because everyone around you has the *same freaking accent*. Of course you find it agreeable. To the rest of the world it sounds like you're talking through a mouthful of pudding.

    Don't u want a better quality of life too? Isn't it why you go and bombard every country you find oil in?

    How has bombing anyone made our lives better? Did it make gas prices go back down? Have they lowered my taxes? No, both times. Gas is at an all time high, and taxes to support all this are astronomical. I much prefer a peacetime economy, thank you very much.

    Be thankful of what you have and wait for the time when you would be fighting with each other to come and work in India.

    Not bloody likely. I'd quit the field if I had to move to India.

    --
    Weaselmancer
    rediculous.
  64. Of course not! by pammon · · Score: 3, Insightful

    I'm shocked by how many people answer this with an unqualified "Yes." That's not realistic at all.

    Here's an example. An app asks for your password. That password gets written to memory for a period of time. During that time, the page containing the password may get swapped to disk. The system may then crash or lose power, leaving the password on disk. I could then boot into another OS, read the swap file, and recover your password. Unlikely, but possible.

    There, I "found" a security hole. Want to patch it? You could try to make every app that uses a password store it in wired (not swappable) memory - but performance will suffer (and good luck doing that in every app). You could also dynamically encrypt all data that gets written to the swap file, and decrypt it when read, at the cost of performance again.

    Are you willing to trade performance in every app to defend against this mostly theoretical vulnerability? Probably not. Security is about tradeoffs. Welcome to the realities of software development.

    1. Re:Of course not! by DaleGlass · · Score: 2, Informative

      Bad example.

      Ever heard of mlock? You don't need to make the whole application non-swappable, just the page that contains the password. And the call is trivial to use.

    2. Re:Of course not! by Error27 · · Score: 1

      That's normally viewed as the admin's problem for not locking the system down properly. The root user can always access passwords on a system.

    3. Re:Of course not! by Random+Walk · · Score: 1
      Ever heard of mlock? You don't need to make the whole application non-swappable, just the page that contains the password. And the call is trivial to use.

      No, it isn't that trivial. For portability, you have to round down the memory address to the nearest page boundary (which implies that you have to determine the page size). Also, mlock/munlock does not stack, thus if you lock multiple addresses, you need to keep track of their location to avoid unlocking B if you only wanted to unlock A. I.e. if you have multiple small buffers which may or may not reside in the same page, you would need to implement reference counting for the page, or waste a full page for each buffer. And on many OS you need root privileges to use mlock(). And some OS (older HP-UX, I think) will not return an error, but segfault if a non-root user uses mlock()...

  65. Wasted Time by jabskeeterbug · · Score: 0

    Has this guy figured in the time to re-investigate bugs when they get brought up again? Chances are if they blew it off in the first place they didn't take the time to document what was at fault. This would create a huge re-investment time for every bug that is reported by a vendor/hacker later on down the pipeline. Maybe he should compare the time re-investigating against the time to just patch the bug. I bet they are similiar, but the latter would give them a better, more secure product.

    --
    -Skeeterbug
  66. I think I understand what they're saying by Whuffo · · Score: 1
    They're saying that there are known security bugs in their products, that they have researched said bugs and designed possible patches for them - and are intentionally withholding this information from their customers and are not going to release the patches.

    So, Mr. Corporate Executive - your customers are at risk, you know it, and you're not going to do anything about it?

    Oh, that's right - not until there's a public release of information about the security holes from someone else. Go ahead and wait for the media report - but don't be surprised if what they say isn't what you were expecting.

    And you might want to check with your attorney about your liability for the losses your customers incur - because you knew about the risk and DID NOTHING to correct it or advise your customers.

  67. Am I reading this right? by Anonymous+McCartneyf · · Score: 1

    Let me get this straight.
    You are saying that, since most businesses and most people prefer risky practices that let them move faster, or with fancier stuff, to practices that secure what they have but won't move them forward as quickly, the risky practices must be better?
    [sigh]
    Yes, most people do it. Yes, I have been lax at back-ups myself, and often regret my failure to back up only after I lose important files (preserved on the internal hard drive of a dead computer--or corrupted on that hard disk--or saved on a disk in a proprietary format which my new computer won't read). But just because most businesses don't believe in back-ups doesn't mean back-ups are overrated.

    --
    There is a fine line between recklessness and courage... -- Paul McCartney
    1. Re:Am I reading this right? by holophrastic · · Score: 1

      What I'm saying is that because most businesses (read clients) prefer risky practices, supporting risky practices is better as a business decision. I do better supporting what my clients want, than demanding that they let me do what I say they need.

    2. Re:Am I reading this right? by Anonymous+McCartneyf · · Score: 1

      Okay, thanks for making that clearer. If they refuse to pay for security, then it does make financial sense not to provide it. I understand that a programmer's gotta eat.
      It's common to man, and to corporation, to pick short-term profits over long-term benefits. Some long term later, they'll wonder where all the unintended consequences came from.

      --
      There is a fine line between recklessness and courage... -- Paul McCartney
  68. Please continue by Kjella · · Score: 1

    For commercial companies, it's all about PR and sales (since they've disclaimed any liability whatsoever anyway). A high number of bugs fixed can mean that either your product is a pile of crap to begin with, or that someone is doing a helluva job securing the code. To the public that's completely indistinguishable. The only test is the test of time - if you're still stomping out bugs, eventually your codebase will have much fewer bugs and less exploits. By the time you decide to play catch-up, hackers will first find your obvious bugs, then your almost obvious bugs, then your easy bugs... it'll take forever to catch up. For those looking at the next quarterly earnings, they don't care about that at all though. So by all means, play the FUD game instead of actually fixing bugs. When you fall you might find it's a loooooooong way down.

    --
    Live today, because you never know what tomorrow brings
  69. consumer vs. custom software by Gary+W.+Longsine · · Score: 1

    It's also possible that "consumer" or more precicely, "off the shelf" (either comercial or free open source) might be, on average, more secure and sport fewer bugs than a given bit of custom software. There seems to be a wide variance in quality in all these categories, and overlap. The forces at work in favor of COTS or FOSS vs. Custom Software include a larger pool of users who are more likely to find problems, better funding, and a convergence on a more rational feature set or design that might come from more sources of input and an expected product lifecycle involving many customers over a long period of time. (This may not always lead to better design and higher quality, but probably does sometimes).

    --
    If you mod me down, I shall become more powerful than you could possibly imagine.
  70. Low risk bugs don't always stay low risk by vinn01 · · Score: 1


    Risk is not fixed. Things change. One of the reasons to fix low (and medium) risk security bugs is so that they are mitigated before they can possibly become high risk security bugs.

    I would bet that they have no process to re-evaluate bug risk on a regular basis. Only when a bug blows up in their face do they ask "How come this low risk security bug just bit us in the ass?". I doubt that think: "I wonder if there are other low risk security bugs that are no longer low risk?

  71. His basic argument is.... by queenb**ch · · Score: 1

    His basic argument is that all the low level patching does is to accelerate the arms race between software makers and black-hats. Frankly, I think his argument is flawed. There are plenty of people out there who know how to exploit all kinds of things. Just because some of us choose not to do so doesn't mean that we don't know how. If *I* can find things and figure it out, I'm sure that other people can as well.

    If you don't know that they're being exploited because you're customers don't know to look for it. That's like saying your security is good because you've never been hacked.

    2 cents,

    Queen B.

    --
    HDGary secures my bank :/
  72. Q\A? by antdude · · Score: 1

    Don't you mean without slash (QA)?

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  73. My opinion by einhverfr · · Score: 1

    Is somewhat nuanced. I don't buy the argument in the story, but I don't buy the "fix every possible security bug as soon as it is discovered" argument either.

    When you are developing software, there are always going to be bugs, security shortcomings (i.e. areas where the architecture is weak on security) and the like. In all cases, one must prioritize which bugs to fix.

    I would give priority to bugs based on a number of criteria including:
    1) How severe is an exploit? What can be done with it?
    2) What is the overall effect on security from this particular bug?
    3) Are there other mitigating factors? Any aggrevating factors?
    4) How likely is it that this will be exploited?

    Now, a few things I do not condone:
    1) Having a policy which says "you leak this to the press and we will fix it." This encourages zero-day exploits.
    2) Having a policy which says "publically noted bugs will be given priority." This encourages zero-day exploits.

    A saner policy is, when doing triage, to evaluate the bug, its security, what work-arounds are available, etc. Publically document what is required to properly secure the application, and then triage against the implementation best-practices. Sure, where possible, one should be abe to fix as many problems as possible, but at least this way you can truthfully say "if you followed our documentation, this won't affect you."

    In short, I entirely disagree with the article's argument. They are misapplying their limited resources to encourage security problems.

    --

    LedgerSMB: Open source Accounting/ERP
  74. Of course. Ridiculous! by mcrbids · · Score: 1

    Should Vendors Close All Security Holes?

    Yes. Just like you should obey ALL TRAFFIC LAWS.

    Next?

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  75. Re:100% Retarded -- for many reasons by Chris+Burke · · Score: 1

    Outside of terribly serious security holes, security holes are only security holes when they become a problem. Until then, they are merely potential problems. Solving potential problems is rarely a good idea.

    NONSENSE. Maybe it isn't a "good idea" to your manager whose only care is a deadline, but that's the exact opposite of what any rational person would do. Solving things when they are merely potential problems is the ideal time to solve them! If you wait to fix a bug until it causes problems, then you've waited to fix a bug until after it has hurt your customers. I bet they won't agree that you did things in the right order, waiting until it was no longer "potential".

    Do you work for the Louisiana Corp of Engineers? "Well the levies are a potential problem, but I think it's better for us to wait until they are an actual problem before we fix them. That should be the smart thing to do." Just compare the cost of repairing New Orleans to the cost of fixing the levies to see just how much of a "good idea" that was.

    I could go on and on and on for days and days with countless examples from software and Real Life of just how stupid it is to wait for something you know is a potential problem to turn into a real one. But so long as its the customer who pays the price for this attitude, I guess it works, eh?


    We're not talking about tiny functions that don't consider zero values. We're talking about complex systems where every piece of programming has the potential to add problems not only to the system logic, but also to add more security holes.

    That's right, I said it -- security patches can cause security holes.


    Oh noes, what a terrible secret! That's why you take the lower priority bugs, fix them, and then spend the time to test the fixes to see if they introduce new bugs and release them in a periodic patch. Yes I know you can't prove you haven't introduced bugs, blah blah, you can't for any other checkin either. If by your own estimate the bug isn't urgent, then you can take the time to check your fix at least. Frankly I'd be more worried about the patch you have to hastily throw together when one of your "potential" problems becomes a real one and your customers are getting pwnzored and are demanding a fix yesterday. That's the fix that is more likely to introduce bugs, and it's a direct consequence of your "don't worry about potential problems until they bite us in the ass" idiocy.

    Your front door has a key-lock. That's hardly secure -- they are easily picked. But it's secure enough for most neighbourhoods.

    If there was a device that could automatically attempt to lock-pick any lock with a known vulnerability, and it could check thousands of locks per second, you better believe I'd be out to buy the best damn lock I could find, and upgrade every time a vulnerability was discovered in my existing lock. And I'd be pissed as hell if I found out my old lock vendor had known about an issue but didn't do anything until after my house had been robbed. Door locks serve as a deterrent because even if they are relatively easy to pick that at least takes time and effort for every lock. Computers allow the lock to be picked once and then every lock of that type can be opened with essentially zero effort. Thus why there are tens of millions of Windows zombies out there.

    So the question with your software is: when does this security hole matter, and how does it matter. If it's only going to matter when a malicious person attacks, then the question comes down to how many attackers you have.

    Once again, no. Remember computers? Automation? The question comes down to is there a single attacker on earth who knows the vulnerability. If the answer is "yes", then that one hacker can exploit every single one of your customers.

    And if those attackers are professional, you might as well make their life easier, because they'll get in eventually in one

    --

    The enemies of Democracy are
  76. Re:100% Correct -- for many reasons What...? by Chris+Burke · · Score: 1

    When given the option between a week of effort to fix a security hole (for free), or a week of effort to build a new feature (for cost), not all but most of our clients prefer the latter. They would rather grow their business (even on an unstable balancing act) than safe-guard their business. And all the advice in the world doesn't seem to be able to change that.

    I guess it's the typical/traditional backup advice. I have yet to meet a client that is willing to spend the time and effort to develop a reliable backup routine (not even a restoration routine). They'd rather run the risk of losing all of their data, and dealing with the headaches and fall-out, than to spend money to prevent something that may never occur.


    Oh, okay, I see. Your customers are idiots, and you are merely providing them with the quality of software they deserve. If you just want to exploit the foolish for minimal effort, that's fine for you, just don't act like your policies are actually how software should be developed.

    --

    The enemies of Democracy are
  77. Option 3 by bill_mcgonigle · · Score: 1

    Option 3:
    Blackhats have the exploit for the problem the vendor is sitting on and extort the shit out of any company they can with it.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  78. Re:100% Retarded -- for many reasons by holophrastic · · Score: 1

    I can rebut a few of those claims.

    "If there was a device that could automatically attempt to lock-pick any lock ... allow the lock to be picked once and then every lock of that type can be opened with essentially zero effort. "

    There is. It's called a lock-pick. And every single lock that uses a standard key -- i.e. not an electronic key -- can be picked in under ten seconds. It's as easy as carding a door that doesn't use a deadbolt. We're talking seconds, and we're talking easy, by anyone, any house. Your garage door too. And your keyless entry system for your car. Hey, my car remote opens my friends garage door -- what are the odds?

    "The question comes down to is there a single attacker on earth who knows the vulnerability. If the answer is "yes", then that one hacker can exploit every single one of your customers."

    That's not the question, but it's close. The question is: "is there a single attacker on earth who WILL TAKE ADVANTAGE OF the vulnerability".

    I think we can all agree -- well, scratch that. I'm asking. From a philosophical perspective, if you could guarantee that no one will do a particular something, what would be the benefit (i.e. direct benefit, not recreational) of ensuring that no one does?

    There are plenty of aspects of society that are not regulated for the sole reason that they just don't happen. No one suggests that we sit down and devise laws for everything that could happen. In fact, we wait until someone does something, and then we rule on it, decide if it should or should not be illegal, and work towards an eventual law -- sometimes. And that's after people have been robbed, defrauded, killed, injured, or otherwise upset.

    Same goes for software. There is an endless supply of potential threats, and limited resources with which to prevent them. Some solutions require time, others money. And some solutions have performance hits which make the solution a bigger problem always. I'm thinking a system that processes tasks. Insecure, ten tasks per second, secure five tasks per second. Unfortunately, there are eight tasks that need performing. Two machines could handle the load, but then they require twice as much maintenance -- which blows profit margins.

    I'm not saying that planes should fall out of the sky, and I'm not saying that every problem should go uncorrected. I am saying, however, that planes do fall out of the sky. That there have been many successful shuttle launches, and three tragic ones. How many people think that only those three had shortcuts taken? Spin doctors are good. The point is that risk goes with reward. Like everything else, when you incur risk in the name of reward, the reward goes up. It a competative world, that's a business decision.

    But hey, those are two very different lifestyles. I run a business where I've attempted to take no risks, offer great customer service, be responsive 24/7/52 because I prefer to sleep well at night and I love my ethics. But for the amount of effort that I've put in, I could have started ten business, run each one with high risks, not provided any service and just hoped for clients that tolerated it. All in the hopes of failing nine times and pulling a large profit on the tenth.

    Human exploration has always been a high-risk venture with people dying before finding land. Human medicine has (typically) been a very safe venture, with the patient being put ahead of research.

    My ultimate point is that "potential problem" does not mean "eventual problem". 90% of potential problems never amount to anything. So outside of dangerous cases, highly influencial situations, and drastic loss scenarios, it settles down to a business decision.

    I think most here would agree that Microsoft has chosen to build new features in place of repairing bugs -- certainly not exclusively, but new features are released while existing bugs remain. Certainly Microsoft makes more money than I do. So clearly, it's a somewhat successful strategy.

  79. Re:100% Correct -- for many reasons What...? by holophrastic · · Score: 1

    I don't think that my clients are idiots. They understand the situation and choose to take the risks. That's not idiotic, if anything that's adventurous. It is a gamble, every time, but to date, most of them have paid off. Some have resulted in bad weekends and extra costs, and even a lost customer or two. But my understanding is that they've gained more customers by implementing requested features for potential customers than the number lost due to bug-related problems.

    But that's the business trade-off. Not everyone is a good (i.e. profitable) customer.

  80. umount!!! by gfim · · Score: 1

    Every time I see your sig, I do a second take. That should be "umount".

    --
    Graham
    1. Re:umount!!! by packeteer · · Score: 1

      unmount works fine for me as a command...

      Unmount is a regular command on some non-linux and non-windows systems. Remember that Linux technically uses umount as the command but unmount will work on many mainstream distro as far as I can tell.

      --
      unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
  81. Definition of a "low security bug"? by Opportunist · · Score: 1

    Until a few years ago, a few people would have called a buffer overflow bug caused by a malformed data file a low security bug. Few have imagined that a widespread use would be common. Sure, everyone knew that you could run code that way, but it would require someone with very good knowledge of the inner working of a processor to pull that stunt off, and it would work ONCE, since the user would usually immediately find out, at the very least, that the file "doesn't work" and would neither spread it nor use it again.

    With the internet and its use to distribute malware, this changed significantly. First of all, there are code packages now that you only have to slap onto the exploit. Second, with the net you can spread this problem billion times instantly.

    Who tells you that what you perceive now a "low security bug" won't be a serious threat with the advent or the general adaption of some technology? Sure, one could say that you'll have the next gen product out the door before that happens, but those bugs have existed for generations of products. Looking back through some of the thusly exploited products, you will find that this bug existed already in Versions of the program for Win95 and even Win3.1.

    There is no such thing as a "low security bug". A low security bug is just a bug that didn't get used creatively yet.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  82. public != known by Tom · · Score: 1

    The whole "responsible disclosure" and "it's not public" crowd is ignoring the oldest, most boring and just a tiny bit important fact of the security world: Bad guys don't publish their 0days. They keep them for themselves or their group. The "0day" you read on bugtraq today is old news for many of the people you don't want to exploit it.

    So not patching a bug because it's not (yet) public means giving priority root access to bad guys. If that's your philosophy...

    --
    Assorted stuff I do sometimes: Lemuria.org
  83. Economics by asninn · · Score: 1

    As Bruce Schneier would say, security holes ultimately aren't a security problem as much as they are an economical problem, and this is a perfect example: the vendor does not care about whether their customers are secure; they only care about how acknowleding holes, putting out patches etc. will affect their bottom line.

    The solution to this is to make sure that unpatched security holes DO affect their bottom line; for example, there could be a fine for leaving known holes unpatched intentionally. Once you shift the financial burdens to those in a position to fix the problem, the problem WILL get fixed, but if you don't do that... good luck; you'll need it.

    --
    butter the donkey
  84. Software changes cost money by overlook77 · · Score: 1

    Don't forget about business costs people. Changes to software cost money. The smallest code change must be extensively tested in QA, and a software release can have hundreds of potential fixes/features that are queued and must be prioritized.

  85. Riiiiight by p3d0 · · Score: 1

    If this is the kind of software you work on, then yes, this solution will work.

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  86. hundreds OF thousands of objects? by mosel-saar-ruwer · · Score: 1


    In case of big data structures (in some of the cases I've had to deal with: hundreds of thousands of objects, built gradually and modified heavily during several hours) finding the exact sequence that causes the inconsistency can be a nightmare.

    Did you mean to type "hundreds OR thousands of objects"?

    I'm kinda dubious that even M$FT Vista has hundreds OF thousands of objects [i.e. hundreds OF thousands of instantiations of classes] when it boots up. Or that Vista even ships with hundreds OF thousands of classes capable of being instantiated.

    Even the idea of "thousands" of objects makes the hair on the back of my neck stand up on end...

    Or maybe you use the word "objects" to mean something other than "instantiations of classes"?

    1. Re:hundreds OF thousands of objects? by mce · · Score: 1

      I mean objects to mean instatiations of classes and, yes, I mean "hundreds of thousands" of objects.

      Actually, 100,000 objects is not a lot at all. Imagine parsing a 10 KLoC piece of C++ code, ignoring comments and whitespace. (Our biggest standard test case was about 50 KLoC IIRC, some of our customers did even bigger things). These 10 KLoC are spread out over about 50 files. Furthermore, imagine having to retain that program's abstract syntax tree in memory, including how each of the files references others via #includes, because later on you will be required to regenerate modified code that looks as much like the original one as possible. Let's also say that an average line of code requires about five "source level" objects (declarations, variables, statements, variable references, operators, constants, for-loops, conditions, function definitions or calls, argument lists, ...) to be represented. (Actually, I think that that five estimate is low, but I no longer have access to the program in question, so I can't check.) That's about 10000 * 5 + 50 * 10 or 50500 objects right there (and I'm on purpose skipping important concepts such as "compilation units" to keep things simple).

      Then remember that above ignores all temporary objects created and destroyed along the way while building this tree. Then remember that, since we're parsing C++, since we need to keep track of the original file structure, and since we need to keep track of the #includes, we also need en embedded C preprocessor, not just a file-flattening one in an up-front separate process. Yet more objects. All this also ignores all the hidden auxiliary objects that are needed behind the scenes to implement the one-to-many or many-to-many relationships between the main objects (sets, hash tables, hash table entries, ...). And it does not take into account that when using proper encapsulation every string is an object. Before you know it, you need more than 100000 objects just to get from process initiation to the internal representation of that 10 KLoC program. Multiply by 5 to get an estimate for our 50 KLoC test case and it's way over 500000.

      And so far you have not yet done anything valuable with this data structure! I will spare you a description of the kind of thing we did with it, esp. as it required a lot more additional data structures and several hours of calculations creating and deleting temporary objects almost all the time. It will be clear that on bigger applications we were talking not hundreds of thousands, but many millions of objects. This also explains why in one of my posts in this discussion I mentioned a custom memory allocator: having that thing really helped a lot (often both in terms of speed and size, but on each platform that we supported at least in terms of one of these without compromising the other).

      Before I forget: We had a complete embedded Python interpreter sitting in our program as well in order to provide scriptability. There's a ton more objects sitting right there. And did you notice that so far I didn't even touch upon the implementation of the GUI? We did have one, though...

      I remember counting the number of memory allocations needed to process our biggest test case once. The number was absolutely mind boggling. Of course, not every allocation corresponds to an object instantiation, especially not when you're frequently dynamically reallocating auxiliary buffers, but even so...

  87. It's all basically rationalization . . . by Anonymous Coward · · Score: 0
    . . . but this part is pure sophistry:

    Fourth, every disclosed bug increases the pace of battle against the hackers. It's like the anti-virus war. Anti-virus vendors detect each new virus and the virus writers make better viruses. It's possible that if anti-virus software had never been created, we wouldn't be dealing with the level of worm and bot sophistication that we face today.
    No, we wouldn't, because the internet would be just one big, unsophisticated botnet.