Slashdot Mirror


Why Can't Microsoft Just Patch Everything?

paneraboy writes "If smaller software companies can patch all of their bugs serious or minor, ZDNet's George Ou asks, why can't Microsoft -- with its massive army of programmers and massive budget -- patch all of its vulnerabilities? Had Microsoft fixed a low risk browser vulnerability six months ago, perhaps we could have avoided last week's zero-day exploit. Currently, more than two dozen Windows XP issues remain unpatched. Ou thinks Microsoft ought to fix them all." From the article: "Almost 4 years after the launch of Trustworthy Computing, I found myself wondering why am I staying up till 4:00 AM to deliver an emergency set of instructions (Home and Enterprise) to my readers because Microsoft felt it unnecessary to patch a flaw six months ago that was originally low risk but mutated in to something extremely dangerous."

23 of 640 comments (clear)

  1. Seems like some people don't understand coding by MSFanBoi2 · · Score: 5, Insightful

    Seems like some members of the press don't understand coding. You can't just go and patch everything. Regression testing? Making sure all the changes work as needed without impacting other subsystems.

    Do you really think if Microsoft COULD do it, they wouldn't.

    1. Re:Seems like some people don't understand coding by redfirebmd · · Score: 5, Interesting
      Seems like some members of the press don't understand coding. You can't just go and patch everything. Regression testing? Making sure all the changes work as needed without impacting other subsystems.

      Do you really think if Microsoft COULD do it, they wouldn't.

      Whereas I agree with you that it isn't as easy as some people think, if any company in the world has the resources to do it, its Microsoft. I see NO reason why a company with this many people and this much money can't get good patches out the door soon after vulnerabilities are found. The only exlplanation is poor organization and bureaucracy.

    2. Re:Seems like some people don't understand coding by cnelzie · · Score: 5, Informative

      Of course, if the base design philosophy is flawed to begin with, even if they could "patch everything" the would likely be better off rewriting from the ground up.

          Many components of Windows and MS Software on Windows utilized Remote Procedure Calls, even if the applications are on the same exact system. This is inherently flawed, as shown in many past MS Windows exploits. Just look at the MS-SQL expoits as perfect examples.

          If designed with security, instead of "ease of coding" was the design from the start, RPC wouldn't be used for communication between processes on the exact same piece of hardware. This is how it is done with MySQL and Apache on Linux and why RPC exploits won't work if those services are running on the exact same hardware.

          The list of flawed design decisions that went into Windows at the very beginning continue to haunt the Windows Operating System to this day. No, I am not some blind unqualified moron making these statements, I manage Windows desktops for a living, used to work full time with Windows Servers and one of my hobbies has been looking into OS architecture design and how it relates to system security.

      --
      If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
    3. Re:Seems like some people don't understand coding by mmjb · · Score: 5, Funny
      Of course, if the base design philosophy is flawed to begin with, even if they could "patch everything" the would likely be better off rewriting from the ground up.
      Outstanding idea!

      1. Base it on tried and tested code. Maybe supply the source code for the world's programming talent to see if there is anything wrong with it. Also encourage help with new projects.

      2. Give it a snappy name - words ending in an "x" always sound cool.

      3. Oh - and it would need a logo - maybe from the animal kingdom?

      4. ...

      5. Profit! (Oh - wait...)
    4. Re:Seems like some people don't understand coding by rocjoe71 · · Score: 5, Interesting
      I see NO reason why a company with this many people and this much money can't get good patches out the door soon after vulnerabilities are found.

      I agree with you that it's pissheaded of any software company to ignore fixing their security holes, I would suggest that that their "reason" would have something to do with the fact that a new version of Windows and IE are on their way, that don't have the same holes, and the cost/effort to fix those existing problems would be too costly to the newer versions (going from the IE Blog, alot of the IE 6 team has something to do with IE 7, and the WinXP team is involved in WinVista).

      That being said, perhaps the problem here is that it costs less for Microsoft to ignore security holes than fix them. That would mean the solution is to forget adding to the "Microsoft so bad" arguments and start pressuring lawmakers to punish companies that are negligent and exposing consumers to harm.

      Once the cost of inaction is greater than the cost of action, we'll start seeing a difference.

      --
      Height: 38U, Weight: 0 Newtons, Eyes: #0000FF, OS: Gray Matter 1.0 (Alpha)
  2. patch the leaky boat by Speare · · Score: 5, Insightful

    You can only patch a leaking boat so much, even if you drydock the vessel for a few months. When it's only held together by the barnacles and the masthead, it's going to sink whether you bail it out or not. At some point, you're going to have to re-think the design of that hull, and start from scratch.

    --
    [ .sig file not found ]
  3. It can't be done ... by malcomvetter · · Score: 5, Insightful



    I think MS has come a long way from where they were, but I agree. To the people who claim it can't be done: OpenBSD does it!

    1. Re:It can't be done ... by Anonymous Coward · · Score: 5, Insightful

      I think you're missing the point: OpenBSD doesn't think it can make perfect software. But rather they have a policy of fixing any bug *no matter how small*.

      Microsoft (and other vendors) make a cost-benefit analysis.

      And that's where we get screwed.

  4. Because they don't have to by nuggz · · Score: 5, Insightful

    Why should they?

    People will still buy thier product, people accept that it sucks.
    Unless they see a good ROI on patching or developing good code they won't.

    Quite honestly if it isn't a worthwhile use of their resources they shouldn't patch code.

    When there is serious competition and code quality becomes a competative advantage they'll fix it.

    1. Re:Because they don't have to by pubjames · · Score: 5, Insightful

      People will still buy thier product, people accept that it sucks.

      This is something that winds me up terribly about Microsoft, or rather, the people who use Microsoft software. For example, a friend has had absolutely terrible problems with his Windows XP laptop, tearing his hair out stuff with viruses and worms and other issues. He was going to buy a laptop for his wife and asked me for my advice. I said, buy an Apple laptop and you won't have all these problems. So what did he get? Another windows machine. Why? WHY??? Because everyone uses Windows, and he was afraid of something different. And this isn't the only example.

      I got my old mum and dad a Mac Mini - they love it, and their friends coo over the slide show software and ask me how to buy one. I explain it's an Apple computer, it's cheap and compatible and will have all the software they need already installed. Then I find out later they've brought a Windows machine, because their son uses one and they were afraid that if they got an Apple they wouldn't be able to email him.

      Microsoft survives because of the fear most people have of something different. Drives me nuts. My only recompense is saying to these people "You asked my advice and I said buy a Mac then you wouldn't have these issues. So sorry I can't help you. " when they phone me to solve their stupid problems...

      Rant over.

  5. Doesn't he know? by AEton · · Score: 5, Funny

    Issuing patches is dangerous.

    Every time Microsoft patches its software, hackers use their patches to discover security holes and to issue exploits!

    But when they don't patch their software, no bad guys notice these vulnerabilities. In fact, no virus or worm has *ever* exploited a vulnerability before a critical update was released!

    Duh.

    --
    We recently had heard in the office over one of the Yellow Machine that's made by Anthology Solutions.
  6. I ask the same question by xtracto · · Score: 5, Insightful

    Why can't the Mozilla Software Foundation allt the 6300
    Firefox Bugs? instead, they have to release a "new" version... just freeze the freaking lreleases and patch your bugs!

    No, OSS is not free of bugs

    --
    Ubuntu is an African word meaning 'I can't configure Debian'
  7. It's because they are so big. by gasmonso · · Score: 5, Interesting

    The biggest problem that M$ has is their size. Sure they have tons of cash and an army of coders, but I bet the left hand doesn't know what the right is doing. There must be so much red tape there as to basically paralyze them. Just look at the lack of innovation coming out of M$. Windows has been stagnant since Windows 98 and Office hasn't improved much since Office 97. M$ is being crushed under their own weight.

    gasmonso http://religiousfreaks.com/
  8. Obligatory tinfoil hat by Bombula · · Score: 5, Funny
    From some Bond movie (Tomorrow Never Dies?):

    "What's the status of our new software?"

    "Ready for launch Mr Carver, and - as requested - it's full of bugs, so people will be forced to upgrade for years."

    "Delicious."

    /not serious... no, seriously.

    --
    A-Bomb
  9. Mod parent up! by khasim · · Score: 5, Insightful

    There are two types of "patching".

    1) Patches to fix code flaws in an otherwise sound security model.

    2) Band-aids for a flawed security model (anti-virus updates are in this category).

    Microsoft focused on "user friendly" and "easy of use" for so long to the detriment of security. And security cannot be retro-fitted to a system.

    When they merged IE with the OS, just to be able to beat Netscape, they opened the OS to a whole new category of exploits.

    And then ActiveX made web app programming so much easier ... and opened a whole other category of exploits FOR THE OS.

    1. Re:Mod parent up! by cnelzie · · Score: 5, Informative

      Well, ActiveX was really initially designed to not only "kill" Java (which didn't work), but also to attempt to lock everyone into using Windows running PCs for using the Internet. (Thank whatever belief system you have that didn't work.)

          By tying ActiveX so tightly into the OS, they not only succeeded in making ActiveX an almost required component of any Windows Installation, they also knee-capped themselves in regards to handling security. Unless it is seperated from OS, ActiveX will always be a threat to the security of a Windows PC.

      --
      If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
  10. Michael, Row the OS Ashore by dexter+riley · · Score: 5, Funny

    Attention all hands! Abandon metaphor! ABANDON METAPHOR!!!

    Though I must admit, it gives new meaning to "software piracy". Ahrrrrrrrr.

  11. Re:Good ole' 2002 by Tony+Hoyle · · Score: 5, Informative

    That problem was fixed, um... 4 years ago?

    $ /lib/ld-linux.so.2 ./test ./test: error while loading shared libraries: ./test: failed to map segment from shared object: Operation not permitted

  12. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  13. Strawman argument... by Numen · · Score: 5, Insightful

    The initial post is a strawman argument...

    If smaller software companies can patch all of their bugs serious or minor, ZDNet's George Ou asks ...which predicate the argument on the notion that small software companies patch all their bugs.

    So if I go looking for bugs in say the Opera browser I wont find any, because small companies patch all their bugs?

    Nobody patches all their bugs; not small companies, and not large companies. The argument is a piece of sophistry that simply sets up another round of MS bashing. A fun sport, but it shouldn't be mistaken as anything exccept sport.

  14. You're Missing Something... by abscondment · · Score: 5, Informative

    Note the vast majority of "bugs" in bugzilla that are labeled "enh" --> those ones are enhancements that users would like to see.

    Instead of counting against Mozilla, the fact that they allow so much user input is a great OSS feature.

    No one said OSS was free of bugs. Since end users are allowed to submit bugs, the only ones that should be counted are those that are confirmed.

    Try the following list: bugs that are in Firefox, not marked "enh", and have an action priority (P1-P5). (note: copy/paste link since bugzilla refuses connectiosn referred by /.)

    Only 179 bugs. Sure, those are only the ones that the Mozilla team deem necessary to work on; however, we've seen from their reactions with 1.06 -> 1.07 that they are very quick on figuring out what's important and patching it quickly. Sure, that's a lot of unpatched bugs. But: that list is publicly available. Any researcher can go in and say, "hmmm.... let's find the security flaws that Mozilla has left unpatched". And they do, trust me; the thing is, the Firefox team patches the bugs that cause security flaws. Other ones are cosmetic, user interaction, or feature-based in nature. They still appear as "bugs", even though they don't pose a security threat.

    The issue is not that OSS has no bugs - that's an obvious farce. The issue is that Microsoft first misdiagnosed a critical bug, and then left it unpatched for 6 months and counting. The Firefox team consistently finds those bugs that do pose a threat, and they leave the work they do open and transparent so that security researcheres can check up on what happens. Microsoft - let's put it thise way: if security researchers never found the flaws in Microsoft's programs, Microsoft would save money and increase efficiency by not fixing them.

  15. "Quality" by RealProgrammer · · Score: 5, Insightful
    the minimum they have to do in order to keep people just happy enough to stick with their products.

    There was a business mantra in the '90s, and still out there today, that defines "quality" as whatever it takes to please the customer. Consultants hauled in buckets of money generating cliches out of that. Companies may be driven by customer satisfaction, which is fine as far as it goes, but it doesn't mean their products are any good.

    The flaw in the cliched definition is that often the customer doesn't know what they're getting or have any basis to judge how good the product is.

    Microsoft, being driven by market share, is a step removed even from that level of quality. They only want their customers to be happier with their products than with the competition (which is often another of their products or an earlier version of the same one).

    Making things properly is not in their range of capability.

    --
    sigs, as if you care.
  16. Re:It's all about "cute" data structures by daVinci1980 · · Score: 5, Informative

    Insightful? Clearly moderated by people who don't code for a living.

    Okay, first off, your code (as mentioned by the other poster) isn't legal C or C++. But let's fix it and discuss it how I'm sure you *meant*.

    So here's the correct code:

    struct foo {
            int length;
            char* buffer;
    };


    Now then, you argue that this is problematic because it's allocated dynamically, based on what someone else told me the size was.

    Actually, this struct doesn't appear in the Win32 or the MFC API anywhere (nor does anything that looks significantly like it), but more importantly, this kind of struct will *never* be a problem. Let's consider all of the cases:

    1) length is too large to allocate a buffer for. The code throws a bad_alloc exception when buffer = new char[length] is called.
    2) length is negative. new takes unsigned integers for allocation, so the value is actually very large and positive. The bad_alloc will be thrown in this case too.
    3) length is zero. I get a pointer to memory that is 0 bytes long.
    4) length is valid. We allocate a proper amount of space and away we go.

    Let's assume for a second though that someone gives me the buffer pointer *and* the length.
    1) length is the correct size (no issue).
    2) length is too small for the buffer (no issue, but I am wasting memory).
    1) length is larger than buffer actually is long. I write out of bounds, but in the heap. This will likely result in a crash, but NOT in an exploit. This struct could be anywhere in memory, but it will not overwrite the stack, which would be necessary to execute arbitrary code.

    Buffer overflows are only a problem when the buffer exists on the stack. In the heap, buffer overflows will result in a crash, or possibly undefined behavior. But on the modern PC, it would be impossible to use a buffer overflow in the heap to reliably execute arbitrary code.. Unless the coder in question was doing something really, really stupid (like executing code from an arbitrary instruction buffer in their structure, which you conveniently just overwrote). Fortunately for us, MS does not do anything of that nature.

    For reference, buffer overflows occur when someone does something like this:


    void GetAddress(char *& streetName, char* fullAddress)
    {
            char buffer[25]; // No one will ever give us input longer than this!
            sprintf(buffer, fullAddress); // Possible overflow
            streetName = new char[strlen(buffer) + 1];
            strcpy(streetName, buffer);

            0; // Improved : sprintf(buffer, "%s", fullAddress);
            0; // More Improved : snprintf(buffer, 25, "%s", fullAddress);
    }

    But the best would've been to do it like this:


    void GetAddress(char *& streetName, char* fullAddress)
    {
            int requiredBufferSize = snprintf(0, 0, "%s", fullAddress) + 1;
            streetName = new char[requiredBufferSize];
            snprintf(streetName, requiredBufferSize, "%s", fullAddress);
    }


    Or to not use C style reading at all.

    --
    I currently have no clever signature witicism to add here.