Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Security

Gates: 'You don't need perfect code' for Security 593

securitas writes "ITBusiness has an interview from the Microsoft Professional Developers Conference where Bill Gates says 'You don't need perfect code to avoid security problems.' Instead he suggests that users acquire and properly configure firewalls and make sure that they keep their software patches up-to-date. Considering that Microsoft says it is focused on security, the comments from the Chief Software Architect aren't inspiring, especially beacuse the underlying attitude seems to contradict the idea of well-written, secure code. What kind of message does that send to the developers who work for Gates?"
This discussion has been archived. No new comments can be posted.

Gates: 'You don't need perfect code' for Security

Comments Filter:
  • by dtolton ( 162216 ) * on Friday October 31, 2003 @01:31PM (#7359879) Homepage
    This is a typical problem, that was discussed a few days ago. People
    are confusing microsoft's success in general with Technological
    superiority.

    I find it interesting that *anyone* would care what Bill Gate's
    opinion is on security. The volume of critical problems reported, and
    of actual viruses and worms that have spread across the internet
    lately should've been enough to indicate that microsoft doesn't have a
    good understanding of security in general.

    His argument is an interesting point of view though. It sounds to me
    like he's saying microsoft doesn't need perfect code because people
    can just install firewalls. What if the code in the firewalls in turn
    isn't perfect though? Doesn't that leave us in an insecure position
    again? What about the e-mail scanning software? What if it misses a
    virus? Shouldn't you have layers of protection, instead of an outer
    layer of protection and a soft underbelly?

    Of course he is shifting the burden back to the users of the software
    again. If only they had our firewall product and a good e-mail
    scanning software package, and if they kept their software up to date
    none of this would've happened.

    Of course if they didn't ship their software with nearly every service
    turned on by default, and everyone running as root this wouldn't have
    happened either, but let's not trifle with details.

    I really liked the part at the end where he comments that all the
    viruses and attacks on microsoft's os are really a compliment.

    You keep telling yourself that Bill.
    • by mcspock ( 252093 ) on Friday October 31, 2003 @01:37PM (#7359959)
      I dont even see why this is news. No code is perfect, especially at the OS level. If you think about it abstractly, what gates is saying is that security should be layered, so you have multiple filters protecting you.

      The part about it "being a complement", which i dont really agree with, is based on the fact that windows is high visibility, so it gets the most attention from virus writers.

      The whole argument is silly though - windows is what happens when you have a desktop only operating system and transition it into a network enabled system. You end up with design flaws (everyone runs as "root") and security holes.
      • by Otter ( 3800 ) on Friday October 31, 2003 @01:52PM (#7360186) Journal
        At any rate, the question was about outside developers, not Microsoft code. His point was that in a well-designed system with safe APIs, a reliable, usable update system and good blocking, there's less burden on the developers to get every detail right -- and that Microsoft hasn't provided such an environment.

        It's roughly analogous to insisting that Unix permissions make harmful worms and viruses impossible, except less false.

      • No code is perfect, especially at the OS level.

        Perfect code is approached asymptotically. That is, you'll never fix all of the bugs/holes/etc.

        But an OS that has been refined for 20 years is further along the curve than a brand new OS that has just been released.

        This will bite Microsoft sooner or later.
        • by evilpenguin ( 18720 ) on Friday October 31, 2003 @05:23PM (#7362590)
          There's a famous quote, wish I could remember who said it (someone leap in with attribution!) (and I'm quoting from memory, so I'm sure I'm misquoting...)

          "It is axiomatic that every program contains at least one bug and can be reduced in size by at least one instruction, therefore, every computer program can be reduced to a single instruction which does not work."

          There's the singularity on your asymptotic curve ;-)
      • by AKnightCowboy ( 608632 ) on Friday October 31, 2003 @02:51PM (#7360895)
        I dont even see why this is news. No code is perfect, especially at the OS level.

        Of course that's only true for varying degrees of "no". There is perfect software that has no bugs, but it's extremely expensive and difficult to produce. You need integrity checks at every single layer of development to ensure that nothing added compromises the code already in place. IMHO Windows should be scrapped and a completely new code base developed from the ground up with security in mind. Security is not something you can tack on as an afterthought, it MUST be implemented at the earliest stages of planning an application or you've already lost the battle.

      • by isn't my name ( 514234 ) <.moc.htroneerht. .ta. .hsals.> on Friday October 31, 2003 @03:04PM (#7361036)
        Gates said:

        I mean, people act like some other systems don't have vulnerabilities; actually all the forms of Unix as well as Linux have had more vulnerabilities per line of code.

        Now, that is the best justification for MS code bloat I have ever heard. It reduces your security vulnerability density!
    • by Rhys ( 96510 ) on Friday October 31, 2003 @01:38PM (#7359981)
      The really great thing is we just had a Microsoft security speaker at the ACM Reflections|Projections conference at UIUC.

      He was talking about how important it is to have secure code, and all the initiatives they have to fix security holes.

      He also talked about how fast worms are spreading these days. Patching is not going to be sufficient - a bug discovered and posted will turn into a worm hours or days before Microsoft will respond with a patch. By then it'll be too late.
      • Shouldn't you be able to go a whole month without a new vulnerability before you start foisting yourself off on the public as a security expert?!!!

        Microsoft's expertise is controlling the market, not writing code.

    • by retinaburn ( 218226 ) on Friday October 31, 2003 @01:45PM (#7360074)
      microsoft doesn't have a

      good understanding of security in general.

      Just because their code is bad doesn't mean they don't understand security, it may just mean it is not profitable to write perfectly secure code.....and they get money from upgrades :)

    • by 4of12 ( 97621 ) on Friday October 31, 2003 @01:45PM (#7360080) Homepage Journal

      Three parties are responsible for providing a secure computing environment:

      1. The software creator or vendor: needs to code carefully, to test exhaustively, to debug, and to audit.
      2. The exploit writer, releaser: ought to publicize the vulnerability by describing it and illustrating protection measures before hammering the world with a working exploit to illustrate the deficiencies of the other two parties.
      3. The user hooking up his purchased system to the net. Should be listening to the other two parties about what's vulnerable, how to mitigate it in the short term and patch for the long term.
      I see all three parties not wanting to fulfill their responsibilities and trying to shift blame on to the other two parties.

      Until Bill Gates starts to act more like Theo de Raadt, I don't belive he's upholding his part.

    • Not only that (Score:5, Insightful)

      by siskbc ( 598067 ) on Friday October 31, 2003 @01:51PM (#7360172) Homepage
      His argument is an interesting point of view though. It sounds to me like he's saying microsoft doesn't need perfect code because people can just install firewalls. What if the code in the firewalls in turn isn't perfect though? Doesn't that leave us in an insecure position again? What about the e-mail scanning software? What if it misses a virus? Shouldn't you have layers of protection, instead of an outer layer of protection and a soft underbelly?

      I'd say two things to him. First, the only completely effective firewall is the one where I unplug my computer. Assuming you leave a port open, that's a possibility for an attack. Second, all a hacker needs is a proper buffer-overflow in a user program that employs that port, and it's fun time. I'm sure Internet Exploder etc wouldn't apply there. No, not at all.

      He has a point in that firewalls have to be a large part of the solution. However, the idea that I can write the world's shittiest code and this is OK because I have a firewall is ludicrous.

      Naturally, all this assumes you don't buy your firewall software from MS. That would be pretty funny.

    • by rifter ( 147452 ) on Friday October 31, 2003 @02:55PM (#7360930) Homepage

      His argument is an interesting point of view though. It sounds to me
      like he's saying microsoft doesn't need perfect code because people
      can just install firewalls. What if the code in the firewalls in turn
      isn't perfect though? Doesn't that leave us in an insecure position
      again? What about the e-mail scanning software? What if it misses a
      virus? Shouldn't you have layers of protection, instead of an outer
      layer of protection and a soft underbelly?

      This in and of itself proves that Mr. Bill does not have a clue, not only about security but about how the recent worms propogated. Firstly, firewalls are not a panacaea. They only protect from extenral threats. They do not protect against internal threats or trojans/viruses/worms which are brought inside. They do not protect you when you have a worm/virus infected computer connecting to your network via VPN remotely or which is brought inside after being infected. They also do not help you if there is a vulnerability in a core world-facing service like, say, IIS.

      These things should be intuitively obvious to the meanest of minds, but are beyond Bill Gates' understanding. Further, he has put the lie to his earlier promise of better software. Now that security firms have been paid off not to report Microsoft holes that they do not deign to fix, Microsoft seems to be ditching the whole idea of writing secure code. It's not as though it was anything more than a marketing ploy in the first place, but now he has pretty much told us that Microsoft will write crappy software on purpose because they don't believe that software has anything to do with security.

      If you continue to use Microsoft products after this, well, I guess you get what you deserve.

    • by Spoing ( 152917 ) on Friday October 31, 2003 @03:00PM (#7360988) Homepage
      His argument is an interesting point of view though. It sounds to me like he's saying microsoft doesn't need perfect code because people can just install firewalls. What if the code in the firewalls in turn isn't perfect though? Doesn't that leave us in an insecure position again? What about the e-mail scanning software? What if it misses a virus? Shouldn't you have layers of protection, instead of an outer layer of protection and a soft underbelly?

      More importantly; A firewall -- depending on the situation -- prevents access to some ports, and allows access to others.

      When data can be transfered through the firewall, you now depend on the program servicing the port to be secure. If it's not, the fact that there is a firewall in place won't matter since it's out of the picture.

    • by Dr. Molf ( 586917 ) on Friday October 31, 2003 @03:56PM (#7361670) Homepage
      Who is Bill Gates?

      I would like to hear what a real security expert like Jeff Goldblum had to say, though. After all, he managed to interface a Mac with an Alien computer. I mean, he's no Sandra Bullock, but he's still a pretty good "hacker". (That's the correct term, right?)
    • by divide overflow ( 599608 ) on Friday October 31, 2003 @04:04PM (#7361743)
      > It sounds to me like he's saying microsoft doesn't need perfect code because people can just install firewalls. What if the code in the firewalls in turn isn't perfect though?

      More to the point, what if the firewall RUNS ON WINDOWS??

      It sounds to me like Bill Gates has just become a strong advocate of Linux/*BSD/UNIX based firewalls. Tee hee hee....
    • "Another way to make your computer more secure is to assign a password to the Administrator account, which is blank by default."

      There's a line between convenience and leaving the whole system completely open. This is on the wrong side of that line.

  • What happened, did the all of their programmers just unionize or something? What else could spur that sort of "laziness is OK" mentality?
    • Please, show me some perfect code that does something useful. It's not just Microsoft. This even gives an advantage to OSS, since OSS has at least the potential for peer review, and the imperfections that will exist can be found better by many pairs of eyes.
  • by Anonymous Coward on Friday October 31, 2003 @01:32PM (#7359894)
    For example, if you introduce a bug that breaks the TCPIP stack, that's going to really secure things nicely.
  • I think it says a lot.

    That's why Outlook is so *cool*.

    T.
  • As an SSL developer (Score:5, Interesting)

    by Anonymous Coward on Friday October 31, 2003 @01:32PM (#7359900)
    I couldn't agree more.

    Majority of security issues come not from buffer overflows in the application code or similar stuff, but from dumb users clicking on e-mail attachments and downloading wicked screensavers.

    Ever ran Spybot through a typical home user computer? Middle-aged women seem to be the worst offenders, Spybot and Ad-aware have pages and pages of stuff that the user usually isn't aware about.
    • by RatBastard ( 949 ) on Friday October 31, 2003 @01:53PM (#7360198) Homepage
      Middle-aged women seem to be the worst offenders

      Of course they are. They tend to be trusting and don't realize that perfect strangers are more than willing to screw them into the ground. But the OS doesn't need to be a welcome mat for these problems. There are some very basic things that MS could have done to make Windows secure enough that being a trusting user doesn't put the entire system at risk.

      To make a analogy that fits users of this level and background, your point is like saying that cars are less likely to get stolen if the doors are locked and blaming said car owners for because their Fnords are getting stollen because they haven't locked the doors that Fnord didn't bother to install in the first place.

    • It's odd, there's very few accidents involving people cutting off their fingers in electric coffee grinders.

      Why? Because the manufacturers put in a switch which makes it hard to do it. The blade won't operate without the lid on.

      Now you CAN work out a way to remove the guard and cut off your fingers...if you really want to.

      If Windows had been a little better thought through, they'd have locked it down, done more sandboxing and helped people run it in idiot mode, or allow people who know what they are d

  • by grasshoppa ( 657393 ) * on Friday October 31, 2003 @01:33PM (#7359903) Homepage
    and he's absolutely right. We could just unplug our computers and leave them in a cold, dark room all by themselves, with no power.

    For the rest of us, however, security starts with the code.
  • Sooo. (Score:3, Insightful)

    by Creepy Crawler ( 680178 ) on Friday October 31, 2003 @01:33PM (#7359911)
    How do you firewall off a semi-legit request to a external MS-Exchange that "Admin's" the server? Even stateful devices like the Packeteer cant selectively block data in the TCP block... expessially 0-day exploits.

    Yeah. You can use firewalls(cough). That's why Unix is the Internet OS.
  • by sapped ( 208174 ) <mlangenhoven.yahoo@com> on Friday October 31, 2003 @01:33PM (#7359914)
    If we are not going to rely on perfect code but expect firewalls to catch the problems, then what do we do if the code in the firewalls aren't perfect?

    Do we string together a series of firewalls in the hope that the code problems don't overlap?
    • Some locations (including a former employer of mine) do exactly that. Have, for example, a Cisco firewall connected to the 'net feed. Plug that into an OpenBSD firewall, connect that to the house 'net. Possibly include more firewalls around the DMZ.
    • by jonhuang ( 598538 ) on Friday October 31, 2003 @01:51PM (#7360163) Homepage
      You string together many lines of defense and hope for the best. Really, what gates said makes a lot of sense to me.
  • by stratjakt ( 596332 ) on Friday October 31, 2003 @01:34PM (#7359921) Journal
    It makes sense to me. Don't rely on someone else to keep your computer secure. Take steps yourself.

    Look at me, I'm just going to get the latest debian iso and install it and not worry about anything!

    Look at me, I'm just going to go buy a car and not worry about locking the doors or using a club, because I expect that the ignition system is tamper proof.

    Don't blame the architect when someone comes through an unlocked window in your home and steals your stereo.

    No, you don't need perfect code. Linux has no "perfect code". If it did, Linus et al would be finished and have moved on to other things.

    I dont rely on Linus for security, I don't rely on Bill Gates for security. At the end of the day, it's my system, and it's up to me to take steps to protect it.
    • by Tsali ( 594389 ) on Friday October 31, 2003 @01:42PM (#7360029)
      So Joe SixPack is going to secure every pager, phone, wireless access point, and hell, even a car because he is self-reliant?

      Joe SixPack either does nothing or sues someone.
    • Don't rely on someone else to keep your computer secure. Take steps yourself.

      Too bad most people who use computers don't know what steps to take. Even with Windows Update enabled to run automatically, people won't have secure computers. It is the responsibility of the car makers to make cars safe, should it not be the responsibility of operating system makers to make desktops safe?

      Unfortunately, without government intervention car makers wouldn't have made their cars as safe as they are today by them

    • by DeltaSigma ( 583342 ) on Friday October 31, 2003 @01:53PM (#7360200) Journal
      I'm not disagreeing with you, or trying to dampen your point.

      You might be a college graduate, hell a professor when it comes to security. You might have an understanding of every open cryptic algorithm in use today. You just might have learning and experience which has engraved security processes onto your heart.

      But then, there's the rest of us. I'm a simple web/graphics designer. I don't even know how to compile a program. The most complicated things I produce are script. In the technical arena my contributions are child's play. As a long-time windows user, I had no concept of security. It was accepted fact that I had to patch and run process sapping virus scanners to prevent what was inevitable anyways, the infection and subsequent re-install of my operating system.

      In the last year, I switched to Linux. Debian, first, now RedHat 9.

      It's Linux that taught me security. It's Linux that gave me a better understanding of how ports work, how services can be hijacked and used to tamper with your machine, how random programs can degrade my security, how running as root is like volunteering my machine to be a DOS attack zombie.

      Linux isn't inherantly secure due to superior code (don't get me wrong though, I strongly believe Linux utilizes superior code). It's inherantly secure because it conditions its user to consider security. Debian and RedHat taught me where vulnerabilities can exist in my operating system, and how to account for them.

      Thanks to Debian and RedHat, my Windows box is more secure as well.

      I may not have the safest internet-connected box on the face of this earth, but I can rest assured I'm in the top 10% when I'm using my Linux-based operating systems.
    • by DeadSea ( 69598 ) * on Friday October 31, 2003 @02:08PM (#7360400) Homepage Journal
      There is no such thing as being secure.
      There is no such thing as software without bugs.
      There is no such thing as an operating system without vulnerabilities.
      No scan will find all the holes.
      No firewall will protect you from all attacks.
      No patch will fix all your systems.
      No intrusion detection system will catch all breakins.
      No employee screening process will weed out all the criminals.
      No employee training program will eliminate all employee mistakes.
      Security cannot be purchased.
      Security cannot be achieved.

      The security process is a checklist of items that should be evaluated and expanded periodically.
      Continuously and actively search for vulnerabilities. If the cracker knows about the hole before you do, you have a problem. Run scanners, hire people to test your security.
      Read security advisories, keep systems up to date with the latest patches, consult others who also try try to keep their security bar high.
      Take preventative measures: install a firewall, train employees to use secure practices, implement stricter checks and balances.
      Detect problems with intrusion detection systems. Put up honeypots and tripwires. Enable logging.

      It scares me, but Microsoft is right.

    • by Zelet ( 515452 ) on Friday October 31, 2003 @02:26PM (#7360610) Journal
      Your arguement is flawed. A better analogy would be:

      I have a car. Even though I locked the door... it fell off.

      Basically what I'm saying is that the basic of security that the manufacturer should provide isn't functioning. Of course I could always use 'the club' but the door shouldn't fall off the hinges.

      Of course if you wanted a true analogy of what Windows security is like:

      You can lock the doors - but the door locks are hidden and my mom couldn't figure out how to do it and the doors come unlocked by default. Even if you lock the doors the windows are always open - and there is no way to close them without buying the windows rollers yourself. If somebody gets into your car not only can the ignition be turned by any basic screw driver but they could blow up the entire car - including the engine by using easy to use functions from within the cabin of the car.

      Now take OS X (I haven't used Linux in a while so I'm more familiar with OS X)

      Your car comes with the doors locked by default. The windows are all rolled up. If somebody DOES get into the car - they can trash the cabin but can't destroy the engine.
    • by Jeff DeMaagd ( 2015 ) on Friday October 31, 2003 @02:27PM (#7360623) Homepage Journal
      I don't expect perfect code but I also don't expect that car door locks to be defeatable by toothpicks or that a "master" remote unlocker unlocks every car in a parking lot in a second with one button press.

      I think security should be important in _all_ phases of product usage, not just the user. It should be important in design, coding, testing and actual use. Any weakness in those four reaps a weakness in the entire product.

      It is important for the user to take proper steps but that doesn't releave any product maker from their end of the responsibility of properly designing and producing secure code. Yes, the user should take steps but then being a user of any particular piece of software shouldn't be a "kick me" sign.
    • Don't rely on someone else to keep your computer secure. Take steps yourself.

      That's why I find free software to be superior to non-free software. With non-free software you must "rely on someone else to keep your computer secure" because only one person or organization has the source code and the legal authority to improve the software. If a program is Free Software for me, I get to choose how much time am I willing to spend developing the skill to improve my software to suit my needs. It doesn't mat

    • by poot_rootbeer ( 188613 ) on Friday October 31, 2003 @03:35PM (#7361412)
      Look at me, I'm just going to go buy a car and not worry about locking the doors or using a club, because I expect that the ignition system is tamper proof.

      But would you buy a car that didn't even come with locks on the doors, and instead of needing a key to start the ignition you just had to press a big red button on the dashboard that says CAR GO NOW?

      Microsoft isn't 100% responsible for making sure your Windows installation is secure. But at the same time, MS isn't ZERO percent responsible, either. They need to do their share.
  • Perfection (Score:3, Interesting)

    by mukund ( 163654 ) on Friday October 31, 2003 @01:34PM (#7359923) Homepage
    I don't want to sound like a troll :-). If Bill Gates said "perfect software" isn't necessary, he's somewhat on the lines we are at today because no software out there can be declared perfect or bug free. There is no such thing. But whenever bugs are found, it is good practise to patch software. We do this under Linux, Mac OS X and Windows. And having a good firewall configuration helps keep out the dirty world.
  • by PD ( 9577 ) *
    Isn't Microsoft the company that's trying to encapsulate object access on port 80? SOAP? What firewall will block that?

    And what are home users supposed to do? Block off their e-mail ports so they can't get mail? That'll stop viruses for sure.
  • by andyring ( 100627 ) on Friday October 31, 2003 @01:35PM (#7359935) Homepage
    Sounds like what Bill is actually saying is that "It's not our fault!" or "Security is not our responsibility!". By saying that security should fall to firewalls, etc., he is trying to shift responsibility from his company to the end user. Sounds to me like it is nothing more than justifying the trend in software, particularly MS (but admittedly others) to let software schedules be driven by the marketing department as opposed to when the software is actually ready for prime time.
  • by mikeee ( 137160 ) on Friday October 31, 2003 @01:35PM (#7359936)
    The fact is, you won't get perfect code, whether you need it or not. You should design things to minimize the amount of code that does have to be perfect, and the damage done if it isn't.
  • "What kind of message does that send to the developers who work for Gates?"
    Since you can't write secure code, we'll just pretend secure code is unecessary. And when they gets bugs and viruses, just blame it on the user for not configuring their firewall right. And prepare to be buried by an avalanche of patches in the aol-cd-level magnitude range.
  • Transfer of blame (Score:5, Insightful)

    by nurb432 ( 527695 ) on Friday October 31, 2003 @01:35PM (#7359938) Homepage Journal
    Blame the user, not the developer, is the message.

    Its not the users responsibly to compensate for poor design, regardless of the product. Be it an unsafe car, or insecure OS.
  • Micro$ecure (Score:4, Funny)

    by tds67 ( 670584 ) on Friday October 31, 2003 @01:35PM (#7359940)
    Gates: 'You don't need perfect code' for good security

    By that logic, Microsoft software should be the securest software around.

  • Ironic (Score:2, Insightful)

    by Idou ( 572394 ) *
    "You don't need perfect code to avoid security problems."

    Here is a guy who knows nothing about perfect code, nor security.

    Reminds me of the child who keeps on flunking school responding to the first sign of criticism, "I don't have to be PERFECT, do I?"

  • by nightsweat ( 604367 ) on Friday October 31, 2003 @01:37PM (#7359966)
    To rely on any code to be perfect is a fool's errand. Sorry, but Bill is right here. (Ow! That hurt to say.)

    "All code has at least one extra instruction and at least one bug. Therefore by extrapolation, all programs can be reduced to one instruction that doesn't work."

  • Right an Wrong (Score:5, Interesting)

    by chill ( 34294 ) on Friday October 31, 2003 @01:37PM (#7359967) Journal
    "You don't need perfect code to avoid security problems. There are things we're doing that are making code closer to perfect, in terms of tools and security audits and things like that. But there are two other techniques: one is called firewalling and the other is called keeping the software up to date. None of these problems (viruses and worms) happened to people who did either one of those things."

    The first sentence is correct -- or moot. The last is pure bullshit.

    "Perfect" code is probably unattainable in complex applications. This is why things like firewalls, IDS, backups, etc. exist. Code should be made as good as possible, but dwelling on perfection will only pull your focus from other issues.

    However, no virus or firewall in the world is gonna stop a cluleless user from clicking on an attachment and screwing their system. Virus scanners are mostly reactionary -- if it isn't in their list of malware, they can't find it. If it is a new way to screw users, and they click it...

    EVEN if users have to jump through hoops like not executing from inside the mail program, saving it to the desktop, unzipping, scanning -- they'll screw something up. It is the nature of the beast.

    Even with sandboxing -- good luck getting a user to execute the code in a sandbox first, every time.

    • Re:Right an Wrong (Score:3, Insightful)

      by Pseudonym ( 62607 )

      Actually, the last point is worse than bullshit. It's downright dangerous.

      One of the most important rules of security is: Don't engineer a single point of failure. The reason for firewalls et al is that we know that the software that they protect will be insecure despite our best efforts. That's why we put up an additional barrier.

      Relying on firewalls because we made the software insecure and have no intention of fixing it is effectively engineering a single point of failure.

  • It surprises me that BG is taking the 'pass the buck' approach to security. I'm not claiming that anyone shouldn't take those measures regardless of their OS (even the most staunch Linux camps will tell you this), but seriously, shouldn't the head cheese of MS at least pretend that their intent is to make their products as secure as possible? It really doesn't infuse much confidence in MS in me.
  • If someone else said "You don't need perfect code to have good security." instead of Bill Gates, do you think you it would raise the same kind of stink that this comment makes?
  • BG We've had 12 things in about an eight month period in Windows Server 2003 and with the equivalent level of attack in the previous generation we would have had over 100. We had 43, but adjusting for the level of intensity it's a factor of 10 difference.

    This is not clear, but seems to suggest
    (a) he thinks that 100/12 is close to 10;
    (b) he thinks there are 57 (TM Heinz) or more vunerabilities yet to be found in XP but the intensity of attack has not been high enough yet.


  • BG is right, to a point... almost.

    Good design will minimize the liability from imperfect code, but unfortunately, MS hasn't gotten to the point of admitting their design is the problem yet. When they do, this interview will mean something.


    (Oh, and I'm sorry for the ridiculously lame subject line, but I'm finished summarizing for today. [grin])
  • Answer.... (Score:4, Funny)

    by MoeMoe ( 659154 ) on Friday October 31, 2003 @01:40PM (#7359998)
    What kind of message does that send to the developers who work for Gates?

    That it's time to get more G5's because 18 isn't enough...
  • Silly Soccer Moms (Score:3, Insightful)

    by twoallbeefpatties ( 615632 ) on Friday October 31, 2003 @01:40PM (#7360003)
    It's kind of hard to say any system, even open source, is going to have "perfect code," but the major problem that is pointed out here is that it does no good to patch a system when the customers aren't going to install the patch. With products like 'nix, which are used more by *ahem* "serious" computer users, admins and the ilk, as soon as someone says "There's a bug in the software," word gets out, and people in the know make sure they are protected. The general population doesn't respond that quickly, however. Many Windows owners aren't even going to understand how to update their systems. This is not so much a fault with Windows as a fault with computer users who don't attempt to fully understand the product they are working with. People don't understand firewalls, they don't understand basic security. They know that you double-click on Outlook, and, poof, there's your e-mail.

    We're going to see some obvious responses to this post about the faults of closed-system software, but Gates does bring up a good point: It's hard to have a secure system if the end-user doesn't know what he or she is doing. It's like a car that you drive for five years without ever getting the oil changed; there is no patch for ignorance. And what's funny is: whenever a company tries to become more user-friendly, Windows, Macintosh, etc., the hardcore community gets on their case for it. If we could develop an open-source system with enough depth to satisfy the experienced users, but is easy enough to keep in control by the neophytes, then you could have a widespread, secure system.
  • by Gothmolly ( 148874 ) on Friday October 31, 2003 @01:41PM (#7360012)
    BillG: "You don't need secure code".
    (aside to Ballmer - "The Force gives power over weak minds")
    Ballmer: "Um yes, the Force gives power over weak minds."
    BillG: "Steve, stop that!"
    Ballmer: "Um... Steve, stop that!"
  • You don't need perfect code for security. You need secure code for security, and that's what seems, thus far, to have been beyond Microsoft's grasp.

  • As long as everything is tunneled through port 80, not only am I safe (got a firewall) but also fully productive without the inconvieniences of a firewall.

    I'm glad we have people like Bill Gates to solve all our problems for us.

    (Yes, this post is a troll.)
  • You don't need perfect code to avoid security problems.

    And, of course, you don't. You can just unplug it from the network.

    More to the point, though, is what's required in terms of code quality for the context it's running in. Windows' evolution has been one of a desktop operating system becoming a network-centric operating system, whereas *nix's history has been the reverse. This, naturally, is the area where Microsoft has the most catching up to do.
  • by Tenareth ( 17013 ) on Friday October 31, 2003 @01:45PM (#7360070) Homepage

    How much trouble their products have when seperated by stateful firewalls. I mean, it wasn't until after AD was out for a bit that they realized you couldn't put a firewall between them and for large corporations, that wasn't acceptable. Now there is a bogus work-around, but ultimately W2K is horrible at dealing with firewalls inside the enterprise.

    And the whole idea of a protected shell, soft middle has been destroyed by the likes of Nimbda, Nachi, etc. Eventually, someone gets past the outer shell.

    We like to keep all of our satallite locations seperated by Firewalls, but as we started moving to W2K3 we found out Microsoft won't support our infrastrucure with internal firewalls...

    Real nice Bill, thanks for the help.
  • I think what we're seeing is characteristic of business mentality. In business, you have a lot of pressures: paying employees, meeting deadlines, reducing capital investment, satisfying shareholders with snazz. A business simply can not afford to create software that is as secure as software generated by academics, or even small developers.
  • Bill is right (Score:2, Insightful)

    re: don't need perfect code to be secure

    Linux code is not perfect and is secure.
  • by Animats ( 122034 ) on Friday October 31, 2003 @01:48PM (#7360120) Homepage
    The whole "patching" approach is bogus. It only protects against nuisance attacks. A serious attacker, one who's doing it for gain and has a specific target, isn't restricted to whatever the script kiddies are using this week. They can exploit any vulnerability, well known or not.

    From a military perspective, "patching" is equivalent to deploying your forces to protect against kids throwing rocks over the base fence. That won't help when an organized force attacks.

    • You seem to be the only person around here who gets it as far as what security really is.

      The Blaster worm was a good thing in that a major flaw which basically rendered permissions irrelevant is now fixed just about everywhere...

      The recent RPC bugs have been around since NT 3.51. Do you honestly believe that real hackers have not been taking advantage of that fact for years?
  • Perhaps he meant one of the following instead:
    1) Microsoft makes code with lots of bugs, so protect yourself as if you were a sailor in Shanghai.

    2) "I" (meaning BG) can't figure out how to make secure code. And since I'm rich, I will buy your company if you figure it out.

    hmmm....
  • Considering that Microsoft says it is focused on security, the comments from the Chief Software Architect aren't inspiring... What kind of message does that send to the developers who work for Gates?

    The same message M$ has always sent.

    "The left hand does not know what the right hand is doing, so once again you're on your own, folks."

    Weaselmancer

  • Just like GWB said more people dead in Iraq proves that the American occupation of Iraq is working.

    Gates is saying the more attacks and flaws that are exploited proves Windows success.

    Do you believe either one?
  • BG: I mean, people act like some other systems don't have vulnerabilities; actually all the forms of Unix as well as Linux have had more vulnerabilities per line of code.
    br That's funny, I haven't ever seen a BSOD on my Linux machines? Every system has vulnerabilities Mr. Gates, the difference is that the people working on Linux/Unix FIX the problems...
  • A pat on the back (Score:5, Insightful)

    by jonhuang ( 598538 ) on Friday October 31, 2003 @01:53PM (#7360205) Homepage
    For an out of context quote. This whole article is clearly just a biased "ooo ooo they suck omg" sort of thing. The line could have been just as easily phrased: "you can't rely on perfect code for security". Note that (IRTFA) the next line is along the lines of "but while we're working toward pefect code..."

    seriously.

    • by twitter ( 104583 )
      'You don't need perfect code to avoid security problems.'

      IS NOT

      'you can't rely on perfect code for security'

      First, imperfect code is a security problem. M$ has many flaws and they know it each time they ship code. The kind of problems M$ has extends to poor design as well, so it would break even if it were perfect.

      Second, Bill's statement implies that his company never will get better. That's something anyone familiar with M$'s history and hype knows, but it's kind of in-your-face for him to put it

  • patch size (Score:4, Insightful)

    by rakerman ( 409507 ) on Friday October 31, 2003 @01:54PM (#7360208) Homepage Journal
    I don't understand why no one raises the patch size issue. To fix a buffer overflow, you've got to need what, 2K of modified code, tops? But the patch is like 2MB? Or 20MB?

    In the US, where most people are still on dialup, how can anyone reasonably expect that people are going to download tens of megabytes of patches?

    Microsoft should be mailing out free CDs with the latest patches.
  • Advocatum diaboli (Score:3, Insightful)

    by isomeme ( 177414 ) <cdberry@gmail.com> on Friday October 31, 2003 @01:54PM (#7360209) Journal
    Let's be fair to Mr. Gates, for once. If you needed perfect code to achieve security, security would be impossible; I've never seen a nontrivial perfect program. All real-world large projects are going to have errors in them; it's a simple fact of our imperfect world.

    Once you recognize this, attention must turn from achieving some mythical perfection to dealing with the probable scope and impact of errors. Just for example, one good thing about languages like (e.g.) Perl and Java is that (absent major kludging) they are incapable of expressing a buffer-overrun bug, a category of possible bug in (e.g.) C which is single-handedly responsible for a majority of significant net security holes.

    In other words, once you admit that your code will never be perfect, you are forced to consider how to limit the damage your imperfections can do, and that in turn steers you toward technologies, processes, and practices that help you with that potential-damage reduction goal.

    In that sense, Gates is entirely correct that one key to maintaining a secure system is to limit the accessibility of unneeded ports (and the services possibly behind them) from the net at large. Yes, ideally, all those ports and services would be invulnerable to attack. But we know that we're not perfect, so we play it safe and use a firewall. It's classic "belt and suspenders" engineering.

    There is certainly a lot to be said about Microsoft's culpability for the low quality of their products, particularly with regard to security. But that doesn't mean Gates was wrong to say what he said.
  • by SirSlud ( 67381 ) on Friday October 31, 2003 @01:58PM (#7360265) Homepage
    thats hilarious .. you dont need good code to be sure .. you only need somebody else's good code to run a firewall.

    oh lordy.
  • by bigpat ( 158134 ) on Friday October 31, 2003 @01:58PM (#7360271)
    "make sure that they keep their software patches up-to-date"

    They are pursuing a subscription based model which the regular release of software patches supports. Now users see regular patches for scary new security holes downloaded on a regular basis... I expect now that most people are getting used to it, that Microsoft will shorten its supported lifecycle for OS releases and require full upgrades... which of course you can get downloaded to your machine directly using a credit card.

    Funny how Bill is using the Open Source community to help spread FUD about its own products which will then be used to help force regular costly upgrades on people.

    Security concerns might cause some people to start using Linux Desktops, but the majority of people will just buy into a system of regular updates from Microsoft.

    This is a no win issue for the Open Source community.

    The evil is too strong to resist, the only way to win is to deny it battle.

  • Comment removed (Score:3, Insightful)

    by account_deleted ( 4530225 ) on Friday October 31, 2003 @02:01PM (#7360315)
    Comment removed based on user account deletion
  • by callipygian-showsyst ( 631222 ) on Friday October 31, 2003 @02:06PM (#7360378) Homepage
    One of the things Microsoft is adding (for processors that support it) is explicitly marking executable code with hardware-implemented "execution permission".

    This would prevent most buffer overflow attacks.

    I think it's correct to assume that you'll never--on a box where many companies can write software--have 100% perfect code. Having hardware at the processor and network level to add security is a fine idea.

    Microsoft isn't too far off the mark.

  • by Archfeld ( 6757 ) * <treboreel@live.com> on Friday October 31, 2003 @02:10PM (#7360428) Journal
    Perfect code is a myth, like extra money, or a temporary tax. What we really need is consistency between the calls, internal (local) or external (web) in the way the buffer is handled and access controls that make sense. At least on the M$ side they still have not recovered from the code mangling idiocy with MSIE and Explorer co-mingling.
  • You *can't write perfect code. Luckily, you *don't* have to write perfect code, if you write everything in a language that properly handles exceptions. This doesn't mean you shouldn't try to write perfect code...just that if, like every other programmer that has ever touched a keyboard or punch card, you have bugs in your code, you're much better off if your tools are watching your back.

    A good example is the number one favorite tool of the hacker, the buffer overflow. I don't care what OS you have, if you have buffers that can be overflown, you have insecure code. It doesn't matter what "user" the code is running as when it gets full access to your memory and command stack.

    So use one of the dozens of languages that won't let you write unchecked code. And you can write as sloppy as you like -- nobody's going to be able to bust down that door. To be honest, i think in the next few years we'll see more of this sort of problem with LINUX than we will with Microsoft. Microsoft is trying to get everybody to write for a virtual machine in languages like C# and VB.NET (which is significantly less of a joke than you think it is). Whereas open source developers seem to pride themselves in sticking to archaic C code...shit, that language was old when I was in MIDDLE SCHOOL (in fact, the computer librarian would only let you check out books on C++). It's not "faster" in today's world, where machines are three clock cycles FASTER than the fastest common interconnect...coding in C is simply some bizarre combination of laziness and bravado. Hey, if you guys want to code in a masochist's language, there's always PERL. The rest of the time we should all be in C++ and Java wherever possible. Sorry if those overflow checks take .1% off your linpack benchies...
  • by dwheeler ( 321049 ) on Friday October 31, 2003 @02:25PM (#7360599) Homepage Journal
    As author of a book on how to write secure programs, I feel I have to comment on this. Let's look at his claims:

    1. "You don't need perfect code to avoid security problems."
      Actually, that's true. For security, you want to minimize the amount of code that's important for security, and the security-relevant pieces have to be right in the sense that they don't allow security to be broken. Even the critical pieces can be imperfect as long as the imperfections don't harm security. But there's a danger here - typically the bar is set far too low. My fear is that this will be interpreted by his developers as "slipshod implementations are still okay." Which is not true - the parts that matter, still matter.
    2. "There are things we're doing that are making code closer to perfect, in terms of tools and security audits and things like that. But there are two other techniques: one is called firewalling and the other is called keeping the software up to date."
      Tools and security audits can help, as can firewalling and keeping up with patches. But that's not enough. Training developers how to develop secure software , and giving them the time to do, is probably even more important. I know Microsoft has done at least some of that, though I don't know how widespread it is and how well it's compensating for all the years they did not do that. Techniques other than the ones he's listing are frankly more critical, too. In particular, the system needs to be broken down into smaller, mutually suspicious pieces with minimal privileges, so that breaking one component doesn't break everything. There needs to be multiple layers of defense. The system needs less tight integration, and it needs to be easier to disable and remove everything not strictly necessary for a particular task. In contrast, firewalling is only a first baby step - his competitors (like Red Hat Linux) enable that by default as a starting point, and so Microsoft is only just catching up there. Besides, viruses are almost entirely an Outlook-unique problem, other systems are designed to not have that weakness in the first place. Patch management is important, but given Warhol worms, they won't be enough - if attacks take a few seconds or minutes, we won't be able to patch every system around the world fast enough.

    I hope that Microsoft is doing much more than Mr. Gates is saying here.

  • by Chris Mattern ( 191822 ) on Friday October 31, 2003 @02:33PM (#7360686)
    When a program doesn't meet your standards, there's only one thing to do--lower your standards!

    Chris Mattern
  • Read the article (Score:3, Informative)

    by nomadicGeek ( 453231 ) on Friday October 31, 2003 @02:57PM (#7360950)
    Heaven forbid that anyone should read the article before posting.

    Taken out of context, what Gates said sounds ludicrous. You also have to remember that this was an off the cuff remark. Read the whole article and it makes more sense. His point is that despite the holes in Windows code, patches were provided prior to the hole being exploited and the people who patched their systems and had reasonable security (i.e. many layers) in place had no problems.

    My experience would seem to support this. I see a lot of networks in my travels. The folks who are on top of things don't seem to have a lot of problems. The folks who aren't have lots of problems, viruses and otherwise. I would say that the quality and quantity of the people involved is more important than the OS that you run at this point.

    The biggest problem that I see is IT departments that have people with insufficient skills. The right person with the right skills can make all the difference in the world. Many companies deploy systems in a haphazard fashion without thinking about maintaining the systems. Before you know it they have a big stinking mess that is going to cost a lot of money to clean up when it could have all been avoided if the right people had been involved from the beginning. Once the mess is there, they can't afford to go back and fix it. They have systems everywhere that aren't patched and were never locked down properly anyway. They have no way to centrally manage the systems and don't monitor their network traffic.

    If you have your shit together and pay attention to detail, you can maintain a pretty secure environment with Windows. I would say that this is the same for most major systems out there. Look at the security patches available for Linux, Apache, and most other software out there. If you are lax then you likely have security vulnerabilities no matter what you have installed. There is no perfect code out there. Any complex system is bound to have holes.

    I think that it is unwise to underestimate Microsoft. In the past, stability was the main issue. They have come a long way in improving stability. Now the main issue is security. It is going to take a couple of years but I would say that you will see a level of improvement that is comparable to the stability improvements seen in NT. It won't be perfect but it will be good enough to keep people buying.

An Ada exception is when a routine gets in trouble and says 'Beam me up, Scotty'.

Working...