Slashdot Mirror


Outlining a World Where Software Makers Are Liable For Flaws

CowboyRobot writes with this piece at the ACM Queue, in which "Poul-Henning Kamp makes the argument for software liability laws. 'We have to do something that actually works, as opposed to accepting a security circus in the form of virus or malware scanners and other mathematically proven insufficient and inefficient efforts. We are approaching the point where people and organizations are falling back to pen and paper for keeping important secrets, because they no longer trust their computers to keep them safe.'"

66 of 508 comments (clear)

  1. Sure by recoiledsnake · · Score: 5, Insightful

    It will just cost 100x more, just like healthcare with the torts. Time to take out software developer insurance, similar to the healthcare insurance of approximately 1 million dollars a year paid by doctors these days.

    --
    This space for rent.
    1. Re:Sure by maliqua · · Score: 3, Insightful

      and software development grinds to a halt. opensource vanishes who's going to donate time to a liability.

    2. Re:Sure by Anonymous Coward · · Score: 4, Insightful

      It's very important we decimate the last industry the US has that's still mostly functional, profitable, and productive

    3. Re:Sure by sqlrob · · Score: 4, Informative

      What liability?

      Clause 1. If you deliver software with complete and buildable source code and a license that allows disabling any functionality or code by the licensee, then your liability is limited to a refund.

    4. Re:Sure by medv4380 · · Score: 2

      If Console game developers can put in the added effort to make a product that is reasonably bug free, or is otherwise unplayable, back before consoles could update the software then I'm sure MS can debug Office a little bit better before shipping.

    5. Re:Sure by tmosley · · Score: 2

      80 years ago doctors were members of the middle class. Doesn't that strike you as odd?

    6. Re:Sure by mandelbr0t · · Score: 4, Insightful

      Give me a fucking break. First I was hired as a hacker, then I was told that I no longer had the required credentials to work in software, and now you want to tell me the degree I've gotten is the wrong one? Go fuck yourself. I have no problem carrying liability insurance, but this shared delusion that only engineers can possibly write good code is merely an attempt to make software development an activity of the elite. And people wonder where groups like Anonymous and LulzSec come from.

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    7. Re:Sure by h4rr4r · · Score: 2

      Define middle class.

      It used to mean all the wealth of aristocracy and none of the privilege. So then there has not been much change by that metric.

      If you mean they were considered middle income and paid like other white collar workers. Then we can be pretty sure this is the result of the regulations they have protecting them.

    8. Re:Sure by Amouth · · Score: 3, Insightful

      so a PE can get out of being liable for a badly designed bridge by putting the blueprints and the bill of materials on a sign before you get on the bridge?

      there is a point where i agree that the programmers should be liable for their code - to the extent that it shows negligence. the fact that software for so long has gotten away with "good luck, thanks for the cash" mentality is kinda sad.

      I am a programmer - and i would be willing to stand behind my code used in the environment for which it was intended.. but at the same time i would want to be compensated for the risk.. same way a PE gets compensated based on the scope of work they have to sign off on.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    9. Re:Sure by Daniel+Dvorkin · · Score: 3, Insightful

      Ah, idealism! The proposed law, with Clause 1 in place, and enforced, doesn't sound too bad. Do you really think that's the way it would work? In the real world, any software liability law would be written by lobbyists working for Microsoft, Oracle, Adobe, EA, et al., and there is no way in hell it would make life easier for open source developers than for the big commercial developers.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    10. Re:Sure by slippyblade · · Score: 4, Insightful

      am a programmer - and i would be willing to stand behind my code used in the environment for which it was intended..

      ROFL! Wow, you actually expect liability to be limited to the scope the product was INTENDED? That ranks up there with lawsuits against toys because little jimmy choked on a Lego brick or Peggy Sue shoved a jet fighter figure up her nose and shot the plastic missile into her sinus. There is no limit to the stupid and out of intended uses people will put things. There is NO SUCH THING AS IDIOT PROOF. The world keeps making better idiots. If this becomes law, at some point you WILL be sued. No ifs, ands, or buts about it.

    11. Re:Sure by Anonymous Coward · · Score: 4, Insightful

      the fact that software for so long has gotten away with "good luck, thanks for the cash" mentality is kinda sad

      Genuinely critical software isn't usually handled like this.

      The whole premise is retarded. You want guarantees? Great, we already have a handy tool of commerce for that. They're called contracts. Just a heads-up... it's going to cost more.

    12. Re:Sure by dohnut · · Score: 5, Insightful

      No, licensed engineers just cover their asses better.

      Or do you think the engineer should be held liable when someone parks a 30 ton vehicle on a bridge rated for 10 tons and the bridge fails? Well, then why should a software developer be held liable when the software asks you to enter your name and, instead, you feed it data which causes a buffer overrun which allows you to root the database server and steal everyone's credit card numbers? If you would have just entered your name correctly that never would have happened. A clear case of misuse if I ever saw one.

      I think software developers should be liable but the liabilities need to be defined first. And if someone hacks the software outside of the scope of the security standards and practices that have been set by the government, put in place correctly by the developer and verified by the assigned regulatory bodies then there is no liability if something goes wrong.

      Meanwhile the cost and time required to develop software will skyrocket. If you need any evidence of that, just look at how much time and money it takes to build a bridge these days.

      --
      Stupider like a fox! - H.S.
    13. Re:Sure by fuzzyfuzzyfungus · · Score: 2

      I could perhaps, see the logic behind having a 'standard' contract(where software buyers share the cost of writing an airtight and toothy contract), which could then be used by anybody in a critical situation,but the idea of making that the default is insane. Goodbye OSS, goodbye any software that isn't mission-critical and priced to match. Worse, depending on the level of vendor influence, you might see the worst of both worlds. Some sort of perverse situation where having a clueless support drone close your ticket with "asdesigned" within 30 minutes will be legally acceptable, but having to wait a weekend until the software's primary author sends a patch isn't...

    14. Re:Sure by Mitchell314 · · Score: 2

      Heh, but new bridges don't have to worry about backwards compatibility. :P

      --
      I read TFA and all I got was this lousy cookie
    15. Re:Sure by digitig · · Score: 3, Interesting

      No, you just find that all software production is shifted offshore outside the jurisdiction of such a law, and you will find in the small print of your license that by purchasing the software you are acting as the importer and so accepting legal liability for any defects.

      --
      Quidnam Latine loqui modo coepi?
    16. Re:Sure by publiclurker · · Score: 3, Informative

      Or even the cost of defending things that are not your fault. I worked for a company once where a contractor provided module required 3rd party drivers. The installer for these drivers would occasionally do strange things, making the module act funny causing problem in our program. The customer does not care about any of this, all they know is that they bought your program and every so often the screen goes blank. they are going to sue you, and then you'll have to go through the chain of ownership to get things straightened out.

    17. Re:Sure by Microlith · · Score: 4, Insightful

      They already have the beginnings in place.

      It's called "patent indemnification," which they insist that vendors must have. Yes, effectively "patent violation insurance" to keep other companies off your back. Granted it's not entirely "liability insurance" but it's a step towards the state where you cannot develop software independently, but instead must be under the thumb of some larger corporation (or somehow have millions in insurance) to write and distribute software.

    18. Re:Sure by drsmithy · · Score: 2

      Since the summary seems to have malware in mind, primarily, maybe the most universal code in existence could be studied by a few million inquiring minds. If NT Kernel could be examined with the aim of making it as secure as possible, I wonder what might happen. Is it possible that it could be pruned, tuned, and eventually rewritten so that it actually is secure?

      There is little evidence to suggest the NT kernel is especially insecure. The vast, vast majority of "exploits" don't rely on kernel design flaws or bugs (or even software bugs in general, for that matter).

      And, if that were to happen, is is possible that people simply wouldn't NEED Symantec, McAfee, and the myriad of other vendors offering ineffective security solutions?

      Of course they would. The point of malware tools is not to supplement OS-level security, it's to act as a last-ditch defense effort once OS-level security has already been breached.

      You don't fire the city guard just because you've put in a new moat.

    19. Re:Sure by Oxford_Comma_Lover · · Score: 2

      there is a point where i agree that the programmers should be liable for their code - to the extent that it shows negligence.

      This has good and bad points. A few things of note:

      1) One major function of tort-liability is cost-shifting--the programmer's negligent behavior causes an actual cost to the business owner who uses his software, and maybe the programmer should have to reimburse him. If the programmer does, then this means that a part of the total cost of making that particular software--the part otherwise paid by the loss the business owner suffers--gets built into the expected costs of making the software on the part of the developer, rather than being foisted on the unsuspecting buyer. This results, in theory, in the software not getting made if it costs more (to society) than it benefits society, since profits no longer artificially exceed costs due to unaccounted-for externalities.

      2) It actually doesn't go far enough, in theory, since strict liability is necessary to truly internalize the costs.

      3) But the real world is very different than the theory. Transaction costs--the costs of litigation and the deterrence effects of the risk of litigation and of a jury holding the wrong way--can be massive. The threat of litigation leads to a huge amount of wasted time in the medical community, and a lesser amount of wasted money, and a lot of malpractice (falsification and deliberate omissions from patient records).

      4) On the bridge question: It depends on state law. Consult a lawyer in your state. YMMV. Obviously, that is an extreme case, and most software is not designed with the expectation of having lives depend on it. Just like you have different standards for military grade hardware and consumer hardware. There are a lot of options we have as a society in deciding how to treat risk.

      --
      -- IANAL, this isn't legal advice, and definitely isn't legal advice for you. Also, Squee!
    20. Re:Sure by ScrewMaster · · Score: 4, Interesting

      so a PE can get out of being liable for a badly designed bridge by putting the blueprints and the bill of materials on a sign before you get on the bridge?

      there is a point where i agree that the programmers should be liable for their code - to the extent that it shows negligence. the fact that software for so long has gotten away with "good luck, thanks for the cash" mentality is kinda sad.

      I am a programmer - and i would be willing to stand behind my code used in the environment for which it was intended.. but at the same time i would want to be compensated for the risk.. same way a PE gets compensated based on the scope of work they have to sign off on.

      What truly irks me about discussions such as this is that everyone wants to lay the blame on the programmer. It is the organization that is at fault. Matter of fact, the responsibility for a defective software product lies squarely with upper management. Frankly, I just don't get this perceived need to roast programmers and software engineers alive, when defective designs in every other industry cause harm, and nobody talks about throwing those engineers under a bus.

      Standing by your code is one thing: taking the legal responsibility for a finished, shipping application that has problems that you would certainly have fixed if you knew about them is something else again. Management decides who works on what project, how much (if any) quality control time is assigned to that project, management decides what bugs are minor enough to fix in an update (and sometimes they're wrong about that.) Management decides who to hire in the first place.

      I work in an industry where my codebase, if it were to malfunction in any serious way, would be a major problem for some rather large plants worldwide. But here's the thing: if the responsibility (and legal penalties) for such problems were mine, and mine alone ... well, guess what. I wouldn't be a software engineer anymore. Why should I go to jail, or be bankrupted with legal fees, when I did a perfectly competent job, but a bug still managed to get by QC? Might as well put the QC team on the hot seat too: they're the ones that missed it. Fact is, the corporate veil is there for a reason.

      In any organization it's the people at the top (the people who get the big salaries and golden parachutes) who ultimately maintain responsibility for such failures. And that is how it should be: they make the big decisions, they're the ones who allocate resources. Your average code monkey is no more at fault for a product failure than the janitor. That's why, unless there's gross mismanagement, it's the company that is penalized, not the individual employees. There are supposed to be checks and balances. Face it people: we know how to do code right, but most vendors simply don't want to spend the money.

      That bridge you were talking about is a perfect example: the reason bridges don't fail very often because of design flaws is because those designs are reviewed and cross-checked and signed-off upon by slew of other engineers and designers who make sure the design is solid. It's that way because nobody is perfect. Again, who decides how much code review and design assurance is necessary? Yeah, you got it: management.

      All the disclaimers in the world don't mean squat in court if your software causes significant economic or physical harm. The company that produced it (not the individual developers) certainly can be sued and redress granted. But penalizing individuals for systemic problems within a given organization? Even discussing that is patently ridiculous.

      There's no good reason to burn engineers at the stake. Plenty of reason to boil a lot of CEOs and managers in oil though.

      --
      The higher the technology, the sharper that two-edged sword.
    21. Re:Sure by dasherjan · · Score: 2

      I completely agree. For a while I worked as a design engineer. The hoops we had to jump through to cover our butts were staggering. It was the insane amount of CYA needed that made decide to switch to what seemed a better choice at the time...network engineer.

    22. Re:Sure by Amouth · · Score: 2

      Obviously, that is an extreme case, and most software is not designed with the expectation of having lives depend on it. Just like you have different standards for military grade hardware and consumer hardware. There are a lot of options we have as a society in deciding how to treat risk.

      You should see the amount of code that goes into a modern car, elevator, or the summation of code in plc's in plants. There is plenty of code now days that have an expectation not to kill a user.

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
    23. Re:Sure by tsotha · · Score: 2

      What statistics do you have to demonstrate the cost savings "tort reform" would bring to healthcare?

      How could there be evidence for something like that? The closest you get is opinions from economists, practitioners barely one step above Voodoo priests, and you can always find one that supports your position. Clearly what we have isn't working very well, and many of us who've been around long enough to see the way the system has changed over the years don't find it hard to imagine torts as a cause.

      Or, did you just lazily accept what you were spoon fed by people who don't want to be responsible for their actions?

      Did you just lazily accept what you were spoon fed by people who don't want to see anything upset their profitable little extortion racket? If I had to choose who to believe, between doctors and lawyers... oh, who to believe?

    24. Re:Sure by Surt · · Score: 2

      Well, as a median, it implies that it goes both up and down from there.
      And
      http://www1.salary.com/Physician-Family-Practice-salary.html

      Suggests the median might be a bit lower, and that curve looks pretty bell (not sure if that's by definition at the source, or by actual sampling).

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    25. Re:Sure by kevinNCSU · · Score: 2

      No. As a Software Engineer myself I see this 'blame the management not the engineer' mindset as an unacceptable abdication of responsibility. Management isn't the technical expertise, the engineer is. If your a Civil Engineer PE and your MBA boss asks you to sign off on a design, that's great and all, but you don't sign off unless you're sure that the designs are sound and acceptable according to your trained, professional opinion. The company is paying you to make that call honestly, they did not and can not simply buy your signature unless you have no sense of honor or integrity to your profession, in which case you shouldn't call yourself an engineer in the first place and can rightly look forward to being 'thrown under the bus' for signing off on a design that causes harm to others.

      In your bridge example you state the designs are cross-checked and reviewed by a slew of other engineers. Guess whose job that is to make sure that's all been done properly before they sign their name on it? The CE with the PE license that's in charge of the bridge. If management doesn't give him the resources to have the designs cross-checked and reviewed he doesn't sign and the bridge doesn't open. He most certainly does not piss and whine about management privately, pocket the money, sign the design and say it's the fault of the MBA's who don't know anything about bridges when 20 people die on it.

      Are management dicks? sometimes. Is it easy to stand up to them? No. Might there be negative consequences for doing the right thing and acting like a professional? Yes. Welcome to real life and having responsibility of a profession rather than a job.

    26. Re:Sure by juancn · · Score: 2

      And yet the PLC manufacturers themselves specifically disclaim using them in elevators or medical equipment, or other places where lives could be lost.

      They also sell the "safe" version but if you want it, it costs way more than the other version (and usually is just the same product or older and well-known product, plus insurance). As the recolidesnake said, this is can be very very expensive.

  2. Another law? No thanks. by PhxBlue · · Score: 2, Insightful

    "There should be a law!"

    No. No, there shouldn't. There also shouldn't be disclaimers that "this coffee can burn your ass," "don't point this gun at your face" or "don't use this curling iron to stir your bathwater while it's plugged in."

    If organizations see pen and paper as the only alternative, then they're probably getting the quality of IT support that they're paying for.

    --
    !#@%*)anks for hanging up the phone, dear.
    1. Re:Another law? No thanks. by shutdown+-p+now · · Score: 3, Insightful

      The buyers bewared, ganged up together, and started to act pre-emptively.

    2. Re:Another law? No thanks. by Ichijo · · Score: 3, Insightful

      The author is talking about making the producer of bad software liable, just as we would hold a gun manufacturer liable if the gun blows up in a person's face.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    3. Re:Another law? No thanks. by 1729 · · Score: 5, Funny

      Funny, none of my firearms actually say don't point at face

      It's usually engraved at the end of the barrel. Look closely.

  3. A terrible idea... by Lohrno · · Score: 2

    Software is complex enough that even the most diligent programmers produce bugs. It's nigh impossible to create 100% bug free code. I think this would pretty much kill the industry as well as be detrimental to hobbyists.

    1. Re:A terrible idea... by obarel · · Score: 2

      I'm sure you are aware of the fact that even NASA don't always get it right.

      http://en.wikipedia.org/wiki/List_of_software_bugs

      It's a great article, by the way. But still...

      "...on a dollars-per-line basis, it makes the group among the nation's most expensive software organizations."
      "The specs for that one change run 2,500 pages, a volume thicker than a phone book."

  4. You can't trust code ... by LordNimon · · Score: 5, Informative

    "You can't trust code that you did not totally create yourself."

    I can't trust the code that I did totally create myself, either.

    --
    And the men who hold high places must be the ones who start
    To mold a new reality... closer to the heart
    1. Re:You can't trust code ... by amicusNYCL · · Score: 4, Interesting

      That reminds me of an anecdote one of my CS professors mentioned. When fly-by-wire technology for passenger planes was starting to get rolled out, they polled some people about their willingness to fly on a plane that was controlled by a computer. The group that had one of the largest negative response was programmers. For everyone else the software is just magic.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    2. Re:You can't trust code ... by DriedClexler · · Score: 2

      Some quote (approximate) from Knuth or some other guru:

      "Be careful: I've only proven the code to work; I haven't actually run it or anything."

      --
      Information theory is life. The rest is just the KL divergence.
    3. Re:You can't trust code ... by dohnut · · Score: 3, Informative

      I can't trust the code that I did totally create myself, either.

      When was the last time any of us totally created code? I've been coding to various operating system APIs for a long, long time. Even back in the DOS days I made quite a few DOS and BIOS calls. We use(d) lots of 3rd party libraries for various things. Not to mention the libraries that come with your compiler/IDE.

      I'm pretty sure I've never totally created any runtime code. Maybe some useless crap I did back in an assembler class would count?

      I did have a radio-shack 8-bit processor kit when I was a kid though. That was all machine language (there was no ROM or non-volatile storage). However, I still had to trust that the opcodes did what they were supposed to do. Intel (and others) have shown us you can't even count on that all of the time.

      --
      Stupider like a fox! - H.S.
    4. Re:You can't trust code ... by DerekLyons · · Score: 2

      When was the last time any of us totally created code?

      Probably never - because the only way to totally create code is to directly generate machine code (not assembler) directly on the bare iron. Even at the assembler level, lat alone at higher levels, you're dependent on the guy who wrote the compiler.

    5. Re:You can't trust code ... by sconeu · · Score: 2

      Yep. DO-178B is a bitch.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    6. Re:You can't trust code ... by Agent0013 · · Score: 2

      When was the last time any of us totally created code?

      Probably never - because the only way to totally create code is to directly generate machine code (not assembler) directly on the bare iron. Even at the assembler level, lat alone at higher levels, you're dependent on the guy who wrote the compiler.

      How about entering the machine code in octal using press-button LEDs on the front panel of the computer. There was a long row for the instruction and a shorter row for the instruction counter. I remember doing this when I was in the Navy. The computer was the fire-control computer (YUK-20 or something) that received all of the contacts from the 3D search radar on the ship. Normal routine would involve reading the program from tape, but I do remember entering in machine code using the LEDs in class and possible for routine maintenance tests.

      --

      -- ssoorrrryy,, dduupplleexx sswwiittcchh oonn.. -Quote found on actual fortune cookie.
  5. From TFA ... by khasim · · Score: 2

    and software development grinds to a halt. opensource vanishes who's going to donate time to a liability.

    From TFA:

    Clause 1. If you deliver software with complete and buildable source code and a license that allows disabling any functionality or code by the licensee, then your liability is limited to a refund.

    So if you're distributing the source code (and license it correctly) the most you'll be out (aside from malicious intent) is a refund.

  6. Engineering liability by Anonymous Coward · · Score: 2, Insightful

    I need you to design a bridge. We've already promised the customer that it'll be light and strong, but we only have budget for paper (so we're ok on 'light', just make sure that it's strong), and the deadline is next Monday.

    If you think it can't be done, I have the "outsourcing provider" on the phone telling me that there are 500 engineers who would do it. I need an answer in two hours. I know that you've just bought a house and have a new baby on the way, so think again before you protest.

    By the way, we've also accepted liability. If anything goes wrong, I'll say that you told me it wasn't a problem.

  7. People need to stop equating software to buildings by Derekloffin · · Score: 5, Insightful

    You can overbuild a house, it generally makes it stronger. You over code a piece of software it just adds to the number of possible points of failure. The two really aren't good analogies for each other. That doesn't even consider things like how maintenance of both is handled, interactions of hardware, varying setups, and just simple complexity.

  8. Engineering is a profession by Talennor · · Score: 2

    Hey, engineering in general is a profession. Bridges and skyscrapers get built. And if the engineers mess up people can die. And there's liability for flaws.

    Should all software hold to this standard? No. I didn't involve a civil engineer building a clubhouse as a kid. But there are places where correctness does matter and is worth the extra discipline and professionalism.

    --

    //TODO: signature
    1. Re:Engineering is a profession by Billly+Gates · · Score: 2

      No because 90% of coding is working with pre-existing frameworks in code.

      70% of the job is working around bugs in IE 6/7, MFC, and Win32 for all software development in the real world. Believe it or not people need to memorize race conditions in IE 6 as sometimes code will work in a test release but in real life it wont work randomly etc.

      Sure, this is slashdot and someone may may reply they code in C, but that is niche 3% of all programmers. No one designs things from scratch all by themselves from the ground up like a real engineer

      Now if the IE 6 only site fails I can be held liable? Fuck that as the bug probably has nothing to do with me at all and is hidden in 12 year old buggy code.

      CIOs may just move to India and have all the coders and IT professionals sell cars and serve coffee at Starbucks, where I.T. company owners do not have to worry about liabilities, regulations, and other things that these 3rd world countries become so attractive. In the end you are the one then who loses out.

  9. All we need is Love by migla · · Score: 3, Interesting

    ... All we need is love and Free Software. And even the love is not strictly a requisite.

    Let's say everyone owns Free software, so nobody (i.e. everybody) is liable for faulty Free software. Everybody (i.e. nobody) pays.

    In other words, sure, let the proprietors of proprietary software pay for software behaving badly.

    If the software is free it's everybody's and nobody's responsibility. It's like culture and language in general. We do it together.

    Who's with me?

    --
    Some of my favourite people are from th US; Vonnegut, Chomsky, Bill Hicks.
  10. Standing on shoulders by Sez+Zero · · Score: 2

    The solution seems a little too simplistic. Just look at any very large software project, like an operating system. Even a simple operating system like an iPod has a huge set of sub-licenses (go check out the Legal menu item, at least twenty on my nano). Large commercial projects often have code contributed from other sources; some open source, some not. If the problem comes from one of those contributions or sub-licenses, what happens?

    I could definitely see Microsoft setup a fully owned subsidiary that gives free code to only Microsoft under Clause 1 (limited to refund) while the main shop sells it as a full operating system. "Oh, your computer is part of a bot-net? Sorry, that was a bug in the browser code. But since they gave that to us free, you get a refund of $0."

    And people resort to writing trade secrets down on paper? Who knew there were so many luddites at ACM?!

  11. Outlining a World Where No One Writes Software by greg1104 · · Score: 2

    There are already far too many lawyers sucking overhead out of software development companies. Increasing liability for code will drive up how much it costs; software is only cheap because it's relatively low risk to release.

    I make my living working on open-source projects. Given how many imperfect components I work with, in a world with liability issues my full time job would become contract paranoia instead. It's already extremely dangerous to try and make a living from open-source work due to the huge patent minefields you're exposed to. If something like this happened, the only companies who would still be able to afford the risk of coding would be corporations with large legal departments. I'd have to move to a country that doesn't have these laws instead, which is exactly where all the software jobs will migrate to (even faster than they are already migrating now).

  12. Don't trust applications, ever by ka9dgx · · Score: 3, Interesting

    The responsibility for preventing security problems with PCs should strictly fall into 2 places, the User, and the OS.... however... not the way 99.99% of you are thinking about it.

    The user should decide what resources a program NEEDS in order to do a task, such as which folder it can access, what network connections, etc. This allows the user to decide ahead of time what they are willing to risk. Once that determination is made, the user then would give that list, along with a pointer to the program, to the operating system.

    The OS should then enforce the users choices.... if it's not in the list, the application shouldn't even be able to find it, let alone access it. If the OS fails to enforce the users will, then the OS is at fault.... if the User gave away the store, well... they gave away the store.

    This requires a simple change to the base design of operating systems, instead of permitting everything, and limiting actions of a running program to that of the user's account... the OS should limit the actions of the program to a short list of resources supplied by the user... and nothing else. Of course, the refactoring of everything to add this additional layer of logic is a massive undertaking.

      There would still be the traditional user rights, access control lists, etc.... but there would also be a level of control where the user decides which of the resources they have should be given to the application. This is called "capability based security", or cabsec for short.

    It's going to take somewhere between 10 and 15 years before people are fed up enough to make the switch.... but it will happen eventually.

    Security isn't an application issue... it never was, and never will be.

    1. Re:Don't trust applications, ever by izomiac · · Score: 2

      Counterpoints:

      1) Programmers are not qualified to make security decisions about a user's data. They know nothing about it. It should be up to the user whether the program has access to both their documents and the internet, and any moron can figure out why giving a program access to both would be bad. This sort of behavior is generally handled upon or directly after installation, which is a sufficiently rare event as to be unobtrusive.

      2) Webapps aside, people generally use different programs for different things (the trend for bloated apps pretending to be an OS notwithstanding). A browser views webpages, an e-mail client sends e-mail. By giving each application the minimal permissions necessary you limit the risk. A browser needs outbound TCP ports 80 and 443, perhaps arbitrary port access if you do deep packet inspection for HTTP. An e-mail client needs completely different ports and it's absolutely trivial to make generic rule sets for such things (firewalls have done it for ages). The browser should be able to communicate with an e-mail client, but not control it.

      This is a moot point, however, because so many programmers feel entitled to have complete control of the user's computer, and corporations would never want anything that interferes with their data mining. The trend in programming for the past decade or two has been to treat the user like an idiot, so users stay idiots. Heck, if programs were consistent (rather than "easier") we could teach the folder/file/menu/program paradigm in school, but there's no uniformity.

    2. Re:Don't trust applications, ever by ka9dgx · · Score: 2

      When my mom installs Firefox, she doesn't how to choose a folder for cookies, or where the cache can reside, or where she can download files to, or where the plugins are (or what a plugin is...). Quite frankly, she doesn't care to learn these things, we programmers should "just make it work" for her. She doesn't have to know how a car works does she?

      Does your toaster automatically attach itself to bread as an option? - Computers are different beasts, and analogies don't always apply.... be careful.

      When your mom buys a toaster, she doesn't have to wire it directly in to the house. She doesn't have to worry that plugging it in will cause the entire town to go into blackout. She doesn't have to worry that the toaster will somehow send all the money in her purse to a hacker group in Anchorage... why is that?

      The outlets are generic and standardized, and protected by an operating environment which prevents the devices attached from consuming excess current.

      The capability to draw up to 15 amps is a separate and distinct capability from the physical possession of a purse.

      Even though she has all of those things, she knows better than to try to put her purse into the toaster.

      Furthermore, she chooses exactly what food items to put into the toaster.... she's never mistakenly put the goldfish into the toaster... nor would she.

      Note that none of this requires detailed knowledge of how toaster internals work... in the same way that users shouldn't have to know about application internals.

      Choosing what goes into what appliance isn't rocket science... and to imply that a user can't make such decisions just because they happen to be managed inside a computer is insulting to the users, and incorrectly focuses the attention of those seeking to make things better.

  13. Re:People need to stop equating software to buildi by bananaquackmoo · · Score: 2

    No, he had it right. Adding defensive programming techniques is ANOTHER layer, with MORE potential for failure. When it comes to software, less is more.

  14. bad example by currently_awake · · Score: 2

    If you design a vault door for a bank that can be opened with a hairpin then it's your fault.

  15. Re:Crash! by Anthony+Mouse · · Score: 2

    No, you hold the aircraft manufacturer liable because they're the one who put buggy software in an airplane.

    Or, if you're an aircraft manufacturer and you want the person who developed the software to assume liability, you make them sign a contract to that effect before you pay them.

  16. You Can't Trust An Assembler, Either by cmholm · · Score: 2

    Trust an assembler? Who wrote it? The closest I've come to creating software of my own hand has been on a PDP-11 test station, and the embedded processor it tested... writing hex values directly into memory. But even while massaging words by "hand", I was still relying on someone else's tools to get my intention from the keyboard to the flip-flops, and thus still suffering from more levels of abstraction than any civil or mechanical engineering effort.

    --
    Luke, help me take this mask off ... Just for once, let me butterfly kiss you with my own eyes.
  17. I proposed something similar in 2000 by Animats · · Score: 3, Insightful

    I proposed, back in 2000, that Microsoft be required to provide a full warranty on their products as part of their antitrust remedy. "Full warranty" has specific meaning in US law; see the article. A few vendors have provided full warranties and not found it too expensive. Notably, GTech, which builds gambling systems, is held financially responsible for errors made by those systems. This costs GTech less than half of one percent of their revenue.

    It's time for the computer industry to grow up and take on warranty responsibilities. The auto industry had that forced on them by Congress in the 1960, over the screams of the auto industry. Cars rapidly became safer and more reliable.

  18. Re:then stop calling yourselves engineers by ScrewMaster · · Score: 2

    real engineers build things that can kill people if they do things wrong. they have all the same pressures from management, but they still (theoretically) have standards, and licensing bodies, and like, rules and stuff.

    Yes, all of which are designed to ensure competence, not to assign blame. If an executive hires an incompetent, the fault for any future problems lies with that executive. Who is more the fool: the fool ... or the man who hires him?

    --
    The higher the technology, the sharper that two-edged sword.
  19. Is it still your fault... by TimTucker · · Score: 2

    If you design it before the invention of the hairpin?

  20. Re:flight control systems are already regulated tw by cerberusti · · Score: 2

    A flight control system will be a combination of hardware and software, and will have very strict usage limitations.

    I find it very unlikely that someone would produce a flight control system that runs on the average windows computer and accept liability for anything that may happen.

    If you control the entire solution, ensuring that it will work reliably is much easier.

    Start modifying the flight control system, and I bet liability goes very quickly.

    --
    I'm a signature virus. Please copy me to your signature so I can replicate.
  21. Re:then stop calling yourselves engineers by OeLeWaPpErKe · · Score: 2

    Yes, all of which are designed to ensure competence, not to assign blame. If an executive hires an incompetent, the fault for any future problems lies with that executive. Who is more the fool: the fool ... or the man who hires him?

    That depends on the division of costs versus rewards. In nearly all organizations I've worked for, it goes somewhat like this :

    Hiring a competent developer, who will be hard to find, but won't screw up :
    1) costs : go to the executive, since he's responsible for hiring
    2) rewards : go to the middle manager, since the hiring guy is never the manager with final responsibility for the product
    (and costs for hiring competent people have gone up a *lot*)

    Hiring the first fool that passes basic checks, who is easy to find, but screws up a lot :
    1) costs : go to the middle manager with final responsibility for the product (ie. someone else)
    2) rewards : go to the hiring executive (look ! quarterly quota filled in a week's time)

    So who's the greater fool ? By large, it's the executive that tries to find competent employees. And this is ignoring the fact that in languages like java, vb (and more and more) C#, competent employees are a liability. Especially for a consulting business, competent employees are a liability. Once you have one or two really competent guys, you want to hire lots of fools.

  22. Re:then stop calling yourselves engineers by techhead79 · · Score: 2

    We're not talking about ensuring the system operates in a normal expected environment though. It's not exactly complicated to make sure your software doesn't kill someone. What WE ARE talking about is making that elevator software completely impervious to any attacks or any kind of bypassing of the controls to ensure no one is killed.

    Holding a software programmer liable for all potential flaws in their code is rather ridiculous and shows a general misunderstanding of how software is written. We do not just go out and build a bridge. We go out and purchase or use countless components that are prefabbed (libraries) and we build the bridge in methods suggested by industry standards, programming language standards, or vendor apis. When you purchase or use any software by anyone you are not just using software by them you are using software and programming techniques designed by countless other companies. There are so many interdependencies it is insane.

    Let's be honest. The only reason why anyone is for this is because they are sick and tired of Microsoft and companies like them that are interested in their bottom line first. But most software companies wouldn't exist today if every line of code had to be iron clad and secure from bottom to top. So if we go the route this article is suggesting we are going to have software companies with no IP owned by just that company (open source distribution so the purchaser can make changes themself) or we are going to have very short lived software companies that are sued bankrupt every day they hire an outside contractor to do job xyz.

    This entire concept is a joke. The problem with software security does not rest with the programmer or the organization. An entire industry would have to change over night to support anything even remotely like this.

  23. Re:Crash! (Web of responsibility) by Paul+Fernhout · · Score: 3, Insightful

    "Wouldn't you hold the software developer accountable for that?"

    Which gets to why this idea by itself won't work.

    First, who is the "software developer" of a system that uses lots of modules from a variety of vendors (including hardware aspects)? You have an entire ocean of people involved with a big project like that from designers to coders to testers to users...

    Second, companies will just use corporate law to create liability shields where each part that could go wrong will be in its own sue-able unit with minimal assets.

    Third, let's say something does go wrong, and you can point at a bit of offending code. But, was that really the problem? What about the compiler not smart enough to catch a *semantic* error? What about the simulators that were not good enough to discover the bug in advance? What about the testing procedures? What about the broken CS training programs that focus on theory and not practice? What about the managers who picked a poor development platform because it was popular? When you can go up a chain (or web) of responsibility, why blame the coder at the bottom when there are so many factors involved in making that accident, some of which operate on different timescales?

    This whole issue is part of the reason why things like Forth and Smalltalk were so wonderful as small and understandable self-reflective systems, but we got mainstream adoption of buggy C/C++ and bloated Java instead. When the plane crashes from a pointer error, maybe we should blame those who did not choose to support Smalltalk decades ago?

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  24. Re:then stop calling yourselves engineers by kevinNCSU · · Score: 2

    real engineers build things that can kill people if they do things wrong. they have all the same pressures from management, but they still (theoretically) have standards, and licensing bodies, and like, rules and stuff.

    This is part of the current problem. Software Engineers are writing lots of things that can kill you and we don't have any licensing body or laws requiring a PE to make specific applications. It generally means we can't be held responsible, but that cuts both ways. If we're working on a serious application we have nothing to hold back from management if we know the design doesn't pass muster. A PE must attach his signature to his work to approve it so a PE has leverage in the ability to refuse to do so unless the work meets his professional standards. As software engineers they can just take our work any day of the week and throw it into a production system and if we don't like it we can GTFO. So to sum up, we have the same pressures, the same dangers and moral responsibilities, with none of the leverage over management or our peers to enforce professional standards.

  25. A broken bridge kills people by rsilvergun · · Score: 2

    a broken word document does not. If your software runs a device that people's lives depend on, then existing negligence laws cover the device just fine (e.g. pacemakers and whatnot).

    Software Liability is just the big companies trying to take control. Nothing else (well, there's a healthy dose of fearful stupidity there, but those people are silly, so I don't count 'em).

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  26. Re:Crash! by Coren22 · · Score: 2

    In that particular industry, they are held accountable. This is why the software for aviation is so heavily tested and costs many times what commercial software costs.

    --
    APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?