Slashdot Mirror


Should Developers Be Sued For Security Holes?

An anonymous reader writes "A Cambridge academic is arguing for regulations that allow software users to sue developers when sloppy coding leaves holes for malware infection. European officials have considered introducing such a law but no binding regulations have been passed. Not everyone agrees that it's a good idea — Microsoft has previously argued against such a move by analogy, claiming a burglary victim wouldn't expect to be able to sue the manufacturer of the door or a window in their home."

77 of 550 comments (clear)

  1. Nah by Anrego · · Score: 5, Insightful

    I think excessively poor software should result in some form of negligence ... but general “can happen to anyone” type bugs.. no.

    You can buy software with a (real) warrantee attached. In general this costs a fuck tonne of money because they are accepting a fair amount of liability. Even in a very horizontal market, the price increase for accepting that liability is going to be way more than anyone can afford.

    You get what you pay for. Want software that is very secure and unlikely to have serious bugs.. you can get it.. but it’s gonna cost more than you are willing to pay if you don’t really _need_ that level of support.

    1. Re:Nah by Mitreya · · Score: 4, Insightful

      excessively poor software should result in some form of negligence ... but general âoecan happen to anyoneâ type bugs.. no.

      And how do you define the difference?
      Based on the quality of code?
      Based on the amount of unit testing that was (provably) performed?

      This will start a slew of software that is only warranted under specific OS/software configurations (and then installing an aggressive anti-virus or not error-checking your RAM chips regularly would void your warranty).

    2. Re:Nah by mcvos · · Score: 4, Insightful

      Some things, like allowing SQL injection, might be considered negligence. But no programmer can possibly guarantee a complete absence of bugs, and any bug can be a security hole. It takes time and money to track them down. If you don't give them that time and money, you can't expect perfect security.

    3. Re:Nah by Shikaku · · Score: 4, Interesting

      Simply requiring encryption when handling something sensitive like credit card info is a start. See: Sony and the PSN disaster.

    4. Re:Nah by Anrego · · Score: 3, Insightful

      Perfect, no... but I suspect there are companies where if required to justify what they did to protect the end users (was the thought of security even a consideration at any point..) would pretty much give a blank stare.

      It's not about having perfect security imo, but rather about at least making an effort proportional to the risk you are putting users in.

    5. Re:Nah by Anonymous Coward · · Score: 2, Insightful

      Allowing SQL injection attacks is negligence. And if you allow an SQL Injection attack, you need to find another line of work.

      SQLinjection is the easiest attack vector to ward off, all you have to do is use prepared statements.

      Done.

    6. Re:Nah by tomhath · · Score: 4, Insightful

      So how do you define "sensitive"? There's no end to it; once you open the door a good lawyer can can convince a jury anything.

    7. Re:Nah by jellomizer · · Score: 2

      Blame the organization not the developer.
      Week one we need a working prototype.
      Week two we need to put the prototype into production.

      We want it to do all these features... 6 months down the line we need to put in production with half the features.

      Yes this products will be only used internally.

      As developers we are often not given the full picture and the organization changes the mind. Often good developers in bad organizations write bad code.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    8. Re:Nah by muon-catalyzed · · Score: 2

      >Absolutely. There's no excuse
      Oh, there is "an excuse", happy camping on the line 50231 in the EULA. That's why we love the software industry.

    9. Re:Nah by marcello_dl · · Score: 5, Funny

      I dunno, as an indie dev you can change the warranty in the license of your software, stating that
      "This software will occasionally test your hardware by deadlocking it, perform random functions regardless the user inputs, and make hardware resources available to the cloud, specifically to the latest botnet makers."

      So it always performs as planned :)

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
    10. Re:Nah by Anonymous Coward · · Score: 2

      I don't see why those things can't be handled contractually instead of with government regulation.

      If a development company is willing to accept liability for security defects that compromise listed information, and the other party is willing to PAY for that kind of quality control... what's the problem?

      If, on the other hand, it's "well I want software companies held liable for this kind of thing by government regulation", except nearly every available option to be unavailable in your country... except for the one that costs 300x's the old options cost, so the company can carry insurance by deployment.

    11. Re:Nah by ColdWetDog · · Score: 5, Insightful

      Are you guys crazy?

      Do you realize how much bridges cost?

      --
      Faster! Faster! Faster would be better!
    12. Re:Nah by samjam · · Score: 2

      I think he means a non privileged user inserted some values via a prepared statement which became active web content (maybe unescaped javascript - but not unescaped sql !).

      That content was then viewed by an admin on another machine at which point the java script executed and could submit web pages with actions with admin privileges.

    13. Re:Nah by colinrichardday · · Score: 3

      You might want to start here:

      https://www.pcisecuritystandards.org/

    14. Re:Nah by yacc143 · · Score: 2

      Or Apple, Google, Samsung, HTC, ...

    15. Re:Nah by Grishnakh · · Score: 2

      What's really lame is that PCI is an interconnect bus on computers, and this PCI group ripped off the name. They should be forced to change it.

    16. Re:Nah by Opportunist · · Score: 4, Insightful

      The problem is that the market is by definition asymmetric. The customer usually knows jack about the implications of security concerns. If people had any idea of security, Facebook wouldn't be a success.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    17. Re:Nah by Compaqt · · Score: 2

      Translation: You want bespoke (nuclear powerplant-level) security at mass-market prices.

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    18. Re:Nah by Bert64 · · Score: 3, Insightful

      What's wrong with basic auth over ssl? it's still encrypted...
      no worse than form based auth.

      the biggest problem is that users have no idea how their data will be stored or used on the back end... the frontend auth system, wether it uses ssl, basic auth, forms or whatever, is visible to the user, but beyond that your data is going into an unknown black box..
      if you've no idea what is being done at the backend, you cant make an informed decision as to wether you want to trust a given site with your info or not.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    19. Re:Nah by davester666 · · Score: 2

      > The law defines "sensitive." That's how you prevent lawyers from arguing whatever they want.

      No, lawyers will still argue whatever they want. See the stupid [IMHO] argument some lawyer came up with about 'trepassing' when a guy using Find My iDevice to make his iPad beep in a thief's garage, so he could get the cops to then get a warrant and search the thief's garage [where they found the iPad and a whole bunch of other allegedly stolen items].

      The law seems to be mainly for defined what is roughly legal vs illegal [as it's not exact, and even if it were, there is stuff like jury nullification].

      Basically, it comes down to which lawyer mindfucks either the jury or the judge better.

      --
      Sleep your way to a whiter smile...date a dentist!
    20. Re:Nah by thsths · · Score: 2

      > You want bespoke (nuclear powerplant-level) security

      No, you misunderstand the point completely. This is not so much about functional guarantees of the software than non-functional ones. If you buy a game for $0.99, you do not expect it to be bug free. However, you do (reasonable) expect it not to steal your credit card data or compromise your system.

      It is just as with any other item for sale: a cheap toy made in China may not last very long, but you do expect it not to harm anyone. Every toy sold for $0.99 carries this guarantee, and the manufacturer is liable if anything happens. So why does software not?

      Security is typically a non-functional requirement. And in a lot of software that is actually a reasonably easy problem. Sandboxing, restricting permissions, limiting network communication, and with just a few easy measures you have massively improved safety and security. That is what best practice means: what is known to work and reasonable. There is no need to assume that your code is bug free - power plant level security and testing is not required.

    21. Re:Nah by Bert64 · · Score: 2

      PHP suffers the same problem as any language thats accessible to novice programmers...

      Novice programmers will use it, and create poor code with it...

      And then non technical management with no understanding of security or technology will decide to start putting such code into production.

      Most decisions are made by people not qualified to make them.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    22. Re:Nah by Bert64 · · Score: 2

      That's the problem of the lowest bidder system...
      Companies want to reduce costs, and don't really understand much if anything about technology... So the developer who estimates 100 hours is perceived as bad value relative to the developer who estimates he can do the same thing in 20 hours.

      In reality, the 20 hour developer will probably overrun his 20 hours, and will also almost certainly write shoddy code which is full of bugs and difficult to maintain. Although the initial quote is obviously cheaper, once you've factored in overruns, cost of fixing bugs, cost of downtime or other harm caused by bugs, cost of working around bugs, cost of future maintenance, potential cost of a complete rewrite etc it can usually work out a lot more expensive.

      And yet, businesses stumble into the same mistakes over and over again.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    23. Re:Nah by Aryden · · Score: 2
      Incorrect, it is one of the great myths of our time:

      One of the principal myths surrounding medical malpractice is its effect on overall health care costs. Medical malpractice is actually a tiny percentage of health care costs, in part because medical malpractice claims are far less frequent than many people believe. In 2004, the CBO calculated malpractice costs amounted to “less than 2 percent of overall health care spending. Thus, even a reduction of 25 percent to 30 percent in malpractice costs would lower health care costs by only about 0.4 percent to 0.5 percent, and the likely effect on health insurance premiums would be comparably small.” i

      src:Justice.org

    24. Re:Nah by Geeky · · Score: 3, Interesting

      The engineers, possibly, the architects definitely. Not so much the builders as long as they can show they were following the spec.

      If there is any liability, it should lie with the company releasing the software. No individual developer can be held responsible - the software should have gone through testing, QA, user acceptance testing... where do you draw the line? Why the developers and not, say, the testing team for failing to develop a test that shows the bug?

      --
      Sigs are so 1990s. No way would I be seen dead with one.
    25. Re:Nah by rtb61 · · Score: 4, Interesting

      What really needs to be tackled is the insane and deceitful difference between software marketing, software warranties and software EULA's. The worst examples of corporate disinformation and outright lies ever seen by man. It's like the very worst of snake oil con men from the 19th century all joined the software sales business, with all sorts of lies printed on the outside of the label but once to consume it's contents all the disclaimers, once hidden by it's contents appear on the inside of the label and this is insanely and corruptly enough is now accepted as normal practice, led by M$.

      --
      Chaos - everything, everywhere, everywhen
    26. Re:Nah by luis_a_espinal · · Score: 2

      excessively poor software should result in some form of negligence ... but general âoecan happen to anyoneâ type bugs.. no.

      And how do you define the difference?

      A.Some things can simply happen (using < when you meant to use <=). Or obscure bugs that manifest themselves as corner cases between many components. Those are the "general, can happen" types.

      B. There are others that are simply not acceptable given how much knowledge we have acquired in the last 40 years. Things that are simply erradicated by using widely accepted coding techniques .ie. putting consts/rvals on the right side of the equality operator in C/C++; always checking pointers before dereferencing; doing "string literal".equals(stringVariable) in java; sanitizing your input at every layer before passing to a lower layer (specially when the input is obtained at the UI); keeping your cyclomatic complexity low, etc.

      Based on the quality of code?

      Yep. Quality of code is pretty much a measurable thing. Looking at the things I identified in B above, if someone's code does not possess any of those violations, or if any such violation is rarely found, then that shows the person has done a best professional effort. However, if the code is riddled with unchecked pointer (or object reference) access, without sanitizing and checking input, with obscene cyclomatic complexity, then it will be obvious that the author has not done his professional duty. He/she has been negligent. Even though we coders are not typically legally bound to pay for our negligence, morally and ethically, we should be held accountable.

      At some point our profession will professionalize itself the way professional engineers do with their profession.

      Based on the amount of unit testing that was (provably) performed?

      Of course. It is one of the ways to show we are not negligent to our clients.

      This will start a slew of software that is only warranted under specific OS/software configurations (and then installing an aggressive anti-virus or

      That doesn't make any sense. If we are talking about device drivers or medical equipment, maybe. But if we are talking about, say, web-based banking applications, I do not see how code/behavior quality assurance will be subject to such things.

      not error-checking your RAM chips regularly would void your warranty).

      This would only apply if you are selling your software packaged with a hardware solution (that is, a totally integrated solution). And in that case, yes, you should be subject to penalties if you do not check the hardware you are selling. This is the case of medical equipment manufacturers whom typically develop the software along with the hardware.

      Now, if all you do is the software part, then, duh, hardware checking is not a requirement for you (not even if you are the person doing a hardware recommendation). It will be for the client who chooses the hardware and/or the hardware provider (typically contigent to some type of SLA.)

  2. Would stop a lot of development by Burdell · · Score: 5, Insightful

    If it was possible to prevent all security holes, this wouldn't be a bad idea. However, it is provably impossible to do so. This would just create a new inurance industry, profiting from others' mistakes. It would really only serve to cut down on development, especially from small companies and individuals that couldn't afford to make a single security mistake (or insurance against lawsuits).

    1. Re:Would stop a lot of development by arth1 · · Score: 4, Informative

      If it was possible to prevent all security holes, this wouldn't be a bad idea. However, it is provably impossible to do so.

      This is true. However, I still think it should be possible to sue for gross negligence. Like lack of input validation, or storing passwords in plain text, or installing everything world writable.

      That's like a bike lock manufacturer whose locks open if hit with a shoe, or a car manufacturer whose cars start if you roll them dowhill and put them in gear, even without an ignition key. Both existed, but would be considered gross negligence today.

      I don't expect software to be perfect, but I do expect it to not be outright stupid.

    2. Re:Would stop a lot of development by VortexCortex · · Score: 4, Interesting

      Turing already did. This reduces to the halting problem.

      That's incorrect. The halting problem deals with finding a general purpose algorithm that applies to all cases, but we're talking about solutions to specific problem sets, which absolutely can and do exist.

      I've written assembly programs, especially drivers, that were provably free of all bugs: Every series of opcodes did EXACTLY what it was supposed to do under all possible inputs. It's infeasible to develop all software in such a rigorous manner only due to cost, not due to some fault of the hardware or its software (the opcodes).

      I didn't have to test my driver over an infinity of inputs because the hardware had a finite set of possible inputs. The bits are limited -- We don't have Turing's infinitely long tape as a CPU word size.

    3. Re:Would stop a lot of development by Burdell · · Score: 2

      As soon as it is up to juries to set precedent, the small-time software developer is going to quit. I certainly wouldn't release or contribute to any free software that could cause me to get sued; I wouldn't have time or money to pay a lawyer to eventually hopefully get a decision in my favor.

  3. Sure by BigSlowTarget · · Score: 5, Insightful

    What we need is more and richer lawyers and frightened software developers with malpractice costs bigger than doctors. Perhaps we can eventually make sure all code is only developed by giant corporations made up primarily of legal defense teams dedicated to patent exploitation and liability control with tiny development arms tagged on the end.

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

      Developers outside of the US would thank us for our malpractice driven suicide.

  4. Windows by MrEricSir · · Score: 4, Funny

    Microsoft has previously argued against such a move by analogy, claiming a burglary victim wouldn't expect to be able to sue the manufacturer of the door or a window in their home.

    Interesting choice of words there!

    --
    There's no -1 for "I don't get it."
  5. Bad Analogy by ZombieEngineer · · Score: 4, Informative

    You can not sue a door or window manufacturer for failure of your action (leaving the door / window open).

    You should be able to successfully able to sue a door / window manufacturer for failing to provide the request product (i.e. seal the opening).

    That then hits the ugly question of what is "reasonable". Did the manufacturer provide a reasonable product that provided the expected level of security?

    1. Re:Bad Analogy by Derekloffin · · Score: 2

      Well, it isn't the greatest analogy, sure, but it does have a point. It is like the faulty 'If you can build a bridge that doesn't fail, why not a program', where the easy counter is 'Bridges generally don't have people trying 24/7 to destroy them through every imaginable means available to them, and when they do, they generally don't last long.' If you can't hold a door maker responsible for the failure of a door and lock to stop an determined intruder who has to be physically present, how do you really expect a software maker to ensure their software is secure when people across the whole globe can be attacking it constantly. Security just isn't the kind of thing you can ensure. Now, if the software maker gives you some kind of guarantee, then I can see it as they are making a claim they are now responsible for backing up, but for software in general I just can't see it working.

    2. Re:Bad Analogy by lightknight · · Score: 2

      Yeah, no. Software programs juggle so many variables that it's virtually impossible to prove the program is bug-free. And add in the computer illiterate, who will find a way to generate giant lawsuits because of "the computer didn't preserve the placement of the file icons I dragged around the folder, after I copied it to a new driver; therefore it's a design flaw" crowd, and you know as well as I do that tech will be sacrificed for the greater human stupidity.

      --
      I am John Hurt.
    3. Re:Bad Analogy by VortexCortex · · Score: 2

      That then hits the ugly question of what is "reasonable". Did the manufacturer provide a reasonable product that provided the expected level of security?

      Well, since my software explicitly states that it disclaims all warranty, and I make no claim as to its fitness for any particular use, then what is your expected level of security? I basically say, Here's the bits I configured. Hope you find them useful! I use input fuzzing, unit testing, stress testing, stateful malloc & free replacements, etc, and do my best to create good secure software. However, I don't know what else you have running in your machine -- I don't even know if your hardware is faulty or not! Say you've got a RAM sim that just randomly flips a bit every now and then? Even though I actually do have a debug mode that purposefully corrupts pointer values to test some of my memory manager code, I simply CAN'T guarantee my software to work on your system unless I've fully certified its operating environment first.

      So, if you would like me to guarantee my code, I have no problem with that; However, I'm going to want to certify your Hardware, OS, Drivers, and all other running processes each time you run my software. I'll bill you for this service once and you'll go back to using someone else's unwarrantied shite again. THAT's why I must explicitly disclaim all warranty.

  6. Engineering Discipline by DemonGenius · · Score: 4, Insightful

    If software development was an official engineering discipline that required P.Eng designation, then maybe this case would have more legs. Even then I'd be in disagreement. Otherwise, hell no, HELL NOOOOOOOOOOOO!!!!!!! That is definitely one way to drive people away from a career in software development. This actually seems like a sneaky way for management to evade culpability if their product harms a customer/user.

    1. Re:Engineering Discipline by lightknight · · Score: 3, Insightful

      He's thinking about the money that could be made if demand were to greatly outpace supply. He also thinks he isn't a hack.

      In the long run, it'd be a huge mistake. Any number of great programmers started off as hacks, then through time and experience, became who they are today. Implementing something like this would only serve to help destroy the technology field faster (and where it goes, others will be sure to follow).

      --
      I am John Hurt.
  7. Betteridge's law of headlines by fiannaFailMan · · Score: 4, Insightful

    Sue the actual developer? How would you propose to do that if they're working for an incorporated company with limited liability?

    --
    Drill baby drill - on Mars
  8. Fair's fair by Anonymous Coward · · Score: 3, Insightful

    Sure, let's agree with Prof. Clayton that you should be able to sue developers for malpractice if their code contains security holes.

    Then perhaps you should also be able to sue professors, like Richard Clayton for malpractice, if their students are undereducated, or if their papers contain flaws.

  9. Hanlon's by gmuslera · · Score: 3, Interesting

    You could consider suing developers that intentionally planted backdoors (even if was following NSA or other US government agency orders), but can't target the ones that by weren't aware of them, did by mistake, lack of knowledge or culture, or because things changed (i..e. having/forcing a 8 char password was "good enough" several years ago, not anymore), or even because taken assumptions no longer true by end user choice (how much portals meant for intranets with not specially strong security end being used on internet).

    Also, who you sue because a bug in an open source program with a lot of contributes? or against a big corporation that put in legalese that they aren't responsible for any damage or problem that could happen for using it (that is most commercial software licenses)?

  10. Sure. it can be done. by bmo · · Score: 2

    As long as you're going to foot the bill for a $500 application that changes your computer's wallpaper.

    PEs and PLSs, doctors, psychologists, etc, all carry liability insurance. They're also not cheap. In the 80s, a survey crew cost $100/hr to come out and measure your land with a half-day minimum.

    Now apply these costs to software.

    --
    BMO

  11. Re:Short answer: No by Anrego · · Score: 5, Insightful

    It'll have very little impact on actual code quality.

    All that will happen is:
    - software prices will increase
    - a whole insurance industry will spring up around it (think malpractice insurance)..
    - people will specifically seek out stuff developed by small shops and try to break it specifically so they can sue..
    - producing software will become so expensive and require so much up-front investment that indie devs will be SOL
    - the big guys will keep producing shit, and just protect themselves behind lawyers (and feed the cost back to the customer)

  12. like other engineering fields by Anonymous Coward · · Score: 2, Insightful

    It's really time for computer science to grow up and join the rest of the pack. If a mechanical engineer designs a bridge that collapses under normal load, that engineer can be held PERSONALLY responsible for breach of duty. It's long past time for us to stop forgiving shody practices and people making the same old mistakes over and over that cause 90% of security vulnerabilities. Until people are held accountable, there won't be any meaningful change, and we'll keep having a field dominated by hacks and talent-free people without a real understanding of what they are doing.

    We NEED this responsibility, and so does the public we serve. They're growing tired of the mess that exists right now. Apple is trying to do better on this front but really it needs to go much futher, and the whole field needs to improve. We've had many decades of ad-hoc cowboy-coders. It's time to start demanding professional behavior.

    1. Re:like other engineering fields by Todd+Knarr · · Score: 5, Insightful

      OTOH a professional engineer differs from a software developer in one key way: he can't legally be overridden on safety matters. If management orders him to use steel that doesn't meet spec for the bridge's designed load, he can refuse to sign off on the plans and if the company tries to fire him the company is the one who'll end up in legal hot water after he reports them. If you want to make software developers responsible in that same way, you need to give them the same authority and immunity to repercussions for using that authority.

    2. Re:like other engineering fields by russotto · · Score: 2

      It's really time for computer science to grow up and join the rest of the pack.

      It's really time for lovers of over-regulation (including regulation through overbroad liability) to consider the consequences of their actions.

      If a mechanical engineer designs a bridge that collapses under normal load, that engineer can be held PERSONALLY responsible for breach of duty.

      He's not, however, responsible if someone dynamites the bridge, deliberately overloads it, or commits other malicious acts designed to destroy it. So what's being proposed goes beyond even what is required for traditional engineering disciplines.

      It's long past time for us to stop forgiving shody practices and people making the same old mistakes over and over that cause 90% of security vulnerabilities. Until people are held accountable, there won't be any meaningful change, and we'll keep having a field dominated by hacks and talent-free people without a real understanding of what they are doing.

      The hacks and talent-free people have built everything in the field. Get rid of us and you've got nothing. You really think you're going to attract actual talent by requiring someone to have a degree plus 16 years of experience before they can work independently (that's a Texas requirement for a professional software engineer; Texas is one of the few states that licenses such)? How many actual talented software developers do you know who would put up with the amount of paperwork required to do work in such a discipline?

      All you'd actually accomplish is to bring the field to a screeching halt.

  13. Re:For "sloppy coding"? Definitely! by Ronin+Developer · · Score: 4, Insightful

    Why should FOSS get a bye? What user really has the time to validate the code, line by line, to search for security weaknesses BEFORE using it? No. Users expect the software, free or commercial, to work as advertised. And, given the "superiority" that FOSS pro-ports over commercial software, maybe they should be held to an even higher standard? Didn't think you'd want to go there.

    In many ways, FOSS would find itself encountering lawsuits despite the "good samaritan" approach it provides. Loss, whether it be from something you paid for free, is still a loss and, in our litigious society, fair game.

    No, leave it to an academic to propose making individual developers liable for each line of code they right. This will destroy the entire IT industry (and, most institutions) in a sweeping blow. Who could afford the "malpractice" insurance given the wide-spread dissemination of most commercial and FOS software?

     

  14. Re:For "sloppy coding"? Definitely! by DeathFromSomewhere · · Score: 2, Informative

    You realize the most visible open source software projects are built by commercial software vendors? Also, how would you define "sloppy coding" in a law?

    --
    -1 overrated isn't the same thing as "I disagree".
  15. If you're going to be adding accountability by Teunis · · Score: 2

    If you're going to be adding accountability, be sure of the origin of the security weakness. If it originates in management, in outside requirements or in other ways is part of the contract - the developer shouldn't be held responsible.

  16. What happens if there is gross negligence? by ChumpusRex2003 · · Score: 3, Interesting

    Bugs and security vulns are almost unavoidable - but some are due to gross negligence. Gross negligence should always be open to litigation. To follow on from Microsoft's analogy, if a door manufacturer was grossly negligent (let's assume that the door includes the lock and hinges - when this isn't normally teh case), and sold a high security door system, but had accidentally keyed all the doors to a single grand-master key. Then if you were burgled because a burglar happened to find out about this grandmaster key, then potentially you have a claim.

    I don't see why it shouldn't be too different in software development. A software vendor needs to bear some responsibilty for good programming practice.

    Bad software is everywhere; some is so bad, that it does border on grossly negligent.

    As an example, I recently reverse engineered an "electronic patient record" system that was installed at a local hospital. This had a number of interesting design features:
    1. Password security was via encryption rather than hashing. The encryption was a home-brew modified Vigenere cipher.
    2. The database connection string was stored in the clear in a conf file, stored in the user's home directory. Interesting the database connection used the "sa" user.
    3. Presumably for performance reasons, certain database tables (notably "users") would be cached in plaintext to the user's home directory. This way, an SQL join could be avoided, and the joins could be done client side.
    4. The software ran an auto-updater that would automatically connect to a specified web site and download and run patches as admin - without any kind of signature verification.
    5. All SQL queries were dynamically generated strings - no parameters, prepared statements or stored procedure. Not every user input was properly escaped. Entry of a patient name with an apostrophe in it, would cause very peculiar behavior. In the end, regular memos had to go round to staff telling them under no circumstances to use apostrophes in patient names, and to avoid, wherever possible the use of apostrophes in the plain text entries.

    This is by no means all the security problems this software had, never mind the bugs e.g. a race condition when synchronising with a second application which would result in the two components opening different patient's charts.

    Amazingly, there weren't any security breaches or significant medical errors as a result of this software - but I can't really conclude that this software production was anything other than grossly negligent.

    1. Re:What happens if there is gross negligence? by Belial6 · · Score: 2

      Your example shows how the management was at least partially to blame. The memo that said not to use apostrophes in patient names shows that they were completely aware that there was a problem. Even someone who does not code would know that trimming out the apostrophes would not be a major undertaking. If they asked for this, and were willing to pay for it, it most certainly could have been fixed. The customer WANTED the cost/quality that they were buying. Negligence would be at least as much with the customer for using software that they fully knew was buggy.

      In the door example, there are no doors that are adequate for keeping a determined thief out. The vast majority would not hold up to a firm kick. Even security doors are useless. The last home I had with a steel security door I got locked out of. All it took was grabbing the bar at the middle of the door and pulling hard to get the door to flex enough let the door pop open.

      In the end, no engineering project on the planet is held to the standards that are being suggested. Not building. Not bridges. Not doors.

  17. For those who didn't RTFA by dkleinsc · · Score: 4, Informative

    They aren't talking about suing the individual programmers, they're talking about suing the software companies. Specifically, they want to disallow this kind of language very common in EULAs (this is taken from an actual EULA, name omitted to protect the guilty):

    _______ and/or its respective suppliers hereby disclaim all warranties and conditions with regard to this product, including all implied warranties and conditions of merchantibility, fitness for a particular purpose, title and non-infringement. In no event shall _______ and/or its respective suppliers be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use of this software.

    The translation of this clause out of legalese is "No matter what happens, you can't sue us, we're not responsible. We don't promise that this software is even remotely like what we advertised it to be."

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  18. Re:For "sloppy coding"? Definitely! by swillden · · Score: 3, Insightful

    I think the company would be liable, not the individual.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  19. Re:Short answer: No by Elminster+Aumar · · Score: 3, Insightful

    Just because managers hire employees doesn't mean they're in 100% control of who they hire. Managers have supervisors just like everyone else. They have deadlines, too. Besides that, I'm not so sure it's wise to assume that just because you're the one hiring that you somehow control whether you hire talented developers. Last but not least, just because you have a talented pack doesn't mean they either work together well or acclimate to the technologies clientele require servicing with. Same with new hires, too: out of 200 applicants, a manager who hires the one that screened best doesn't imply automatic success because too many moving parts occupy the context. Long story short, it's not all on the manager's shoulders just like it's not all the fault of the developers, clients, etc. All this article is about is some whiny asshole trying to point his fat, stubby finger at someone because he made a bad decision. They're angry, they're pissed, and now someone has to pay their bill. That's all this boils down to.

  20. Doors vs Vault Doors by holophrastic · · Score: 4, Interesting

    Just like anything else, pay for whatever guarantee you desire. If you want your software created in record time, for a low cost, then the bugs are a part of the equasion. If you want secure coding, then you'll get to pay for it in time and money. It's always been that simple. You don't sue the manufacturer of your house door, but you do sue the manufacturer of your bank vault door. The difference in cost is tremendous.

    It's rare that my clients ask for proper security. But for the elements that they do indeed want to protect, they pay for me to do my very best work. And you'd better believe that they hold me responsible and often accountable for significant problems should they result.

    But in the end, it's all just insurance anyway. If a client of mine wants a particular e-commerce feature to be super-secure, then they'll ask me to pay for any dollars lost due to bugs. I know that I'm not perfect, and of the thirty possible bugs, there's a small chance that I'll fall into one or two of them, and a partial chance that I won't catch it before it's exploited. So while much of the added price is for me to sit there and check things closely, the rest of the added price is for me to accumulate in the event that I need to pay it back. Over multiple clients and multiple exploits, that's the only way to do it.

    The obvious alternative of checking things even closer winds up being far more money, and is only really relevant when physical safety is an issue.

  21. Re:only if you think you should by Belial6 · · Score: 2

    Even worse is that software is held to a standard that no other engineering field gets held to. That bridge need only function well enough not to completely collapse. Software gets racked over the coals if it has the smallest crack that gets exploited by teams of highly skilled criminals working full time to break the code.

  22. Re:Sure. it can be done. by bmo · · Score: 2

    In an up economy, it should be 300.

    Did it for a few years. Walking barefoot with your pants rolled up in the middle of winter to locate a stream centerline isn't as cold as it sounds, though.

    Hip waders? Bah.

    --
    BMO

  23. It would be the end of OSS by Sycraft-fu · · Score: 4, Insightful

    While OSS zealots like to think it is bug free, it isn't. Bugs can and do happen in OSS. Well who the hell is going to contribute to a free project if they know they can be sued for it?

    Also it would lead to way less flexibility in software. Vendors would restrict what you could run and how you could run it. That is what you find in real high end systems where problems aren't ok. They are very expensive, they only do what they are designed to do, no installing arbitrary software, and upgrades are very slow in coming.

    So long as you want your system to be the wild west where you can install whatever you like, use it in any way you like, and be nice and cheap then you have to accept that problems can and will happen. If you want verified design you can have that, however you need to be prepared to pay the price both in terms of money and in terms of restrictions.

    1. Re:It would be the end of OSS by vlueboy · · Score: 2

      It would be the end of plugins --think of the liabilities Mozilla opens itself to by letting you extend it in unexpected ways. It would be the end of App stores, given that they extend android and allow personal information to be collected in ways that are hidden and unexpected to most. Hmm, but then it would be the end of ALL Flash support and its vulnerabilities. You'd probably have a fresh start to code signing and trust / authentication system. Personally I hate that MS forced EVEN legitimate (read expensive) companies and everyone less powerful to have those stupid "trust" warnings because signing the code cost so much. Instead of actually getting stuff signed, I remember that drivers just added one little page in their install how to asking the user to disregard and click OK. I am sure a super-secure developer world of doom would contain quite a few of these new cheapskate hurdles that limit usability and get passed on to the installation and daily usage side of things.

      Imagine all those disclaimers for using JQuery and Node.js and tons of other nifty things on gray and black sites... Anyway, regulation is not really going to happen. App markets are the wind that is pushing cellphone sales up, which is pushing other tech in the USA forward as a side effect of Apple and other giants doing well.

  24. Simple compromise by viperidaenz · · Score: 2

    Require liability from closed-source software. Exempt open-source. If you can access the source code, you have the capability to examine the security provided by the software if you so desire to. If you don't have access, you must rely on the assurances made by the company providing the software. If they say "it is secure! trust us..." and provide you no means to verify their claims and it turns out to be false, they should be held liable. You'd need to allow companies to send security fixes though that provide them some sort of protection like "If you don't install this patch within x days, we are not liable for the defects resolved by it"

  25. Developers, no. Companies, yes. by Gravis+Zero · · Score: 2

    Developers don't choose when to release software, it's management. Think you need to do more testing but management thinks it looks ready? It's out the door and you cant do anything to stop them. Testing is just as important as coding and the developers dont do all the testing, it's usually outsourced.

    Bottom line: if a company doesn't do it's due diligence then yes, they should be responsible for putting out bad software.

    --
    Anons need not reply. Questions end with a question mark.
  26. Requires total change of industry by Algae_94 · · Score: 3, Insightful

    Sure this could be done, Professional Engineers put their asses on the line when they approve designs and Programmers could be held to the same level. This would most likely require devs to go through a similarly rigorous process of training and test taking.

    This would also cause a massive drop in the number of available licensed programmers for any work that needs to be done, as well as having Programmers carrying liability insurance. This would cause development costs to get much larger. I seriously doubt half of the programmers in the country are close to prepared to pass any licensing tests.

  27. Re:"Microsoft has previously argued against" by FrangoAssado · · Score: 2

    You seem to have a strange idea about what motivates people to write free software.

    I'm a free software developer on my free time. I mostly work on my own projects, but I occasionally contribute random patches to large projects. I write free software for fun, mostly doing things I'm interested at the time. Most software I write have no bad bugs, probably because I write it very slowly, and because stuff I write tend to be very simple. But if I had to go out of my way to ensure that it's impossible for someone to use my program in an unexpected way and crash it, I simply wouldn't do it -- that would take all the fun out of it (of course, I'm more than happy to fix bugs, even when it's a chore, but that's very different than being paranoid about the code you write for fun). Or, more likely, I would keep the stuff I wrote to myself.

    Now, one might argue that this applies only to volunteers, and there's a lot of people being paid to write free software. That's true, but there are two problems with discarding all work from volunteers. First, the price of writing certified-bug-free software (if that's even possible) is absolutely ridiculous -- if you don't believe me, you should see how much it costs to write software that controls aircraft, for example. That means that development would be severely affected (less projects, less new stuff, etc.). Secondly, most people being paid to write free software work in a relatively small number of large and well known projects. A typical Linux distribution has hundreds of programs that were completely written by volunteers -- sometimes someone employed by a distribution packages it in a way that plays nice with the organization of the rest of the system. Those contributions would simply vanish, and distributions would be severely affected.

    That's why any regulation like what you're proposing would actually lower the quality and quantity of free software, not increase it.

  28. Re:For "sloppy coding"? Definitely! by slimjim8094 · · Score: 2

    Except the license agreements already say that there's no warranty, express or implied, and that the developer is indemnified against defects. This is usually there in commercial software as well. If you don't agree with that clause, you don't get a license to the software.

    BSD license:

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    GPL:

    15. Disclaimer of Warranty.

        THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
    APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
    HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
    OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
    IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
    ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

        16. Limitation of Liability.

        IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
    THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
    GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
    USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
    DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
    PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
    EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGES.

        17. Interpretation of Sections 15 and 16.

        If the disclaimer of warranty and limitation of liability provided
    above cannot be given local legal effect according to their terms,
    reviewing courts shall apply local law that most closely approximates
    an absolute waiver of all civil liability in connection with the
    Program, unless a warranty or assumption of liability accompanies a
    copy of the Program in return for a fee.

    The law would have to be changed to specifically deny that right to the author. If you buy a car, or electronics or something, there may not be an explicit warranty but they usually haven't disclaimed a warranty in advance of your purchase so you can still get the "implied" warranty. The licenses are contracts that are supposed to be entered into after due consideration, so they are allowed to disclaim pretty much anything they want, same as normal contract law. The law would have to be specifically different for software than for most products, and that's a big uphill battle.

    --
    I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
  29. One word: refund. by jonadab · · Score: 2

    Of course all software is going to have _some_ bugs.

    However, if the software is buggy in a particularly egregious way, above and beyond what a rational person would normally expect (like, say, early versions of Outlook), they should have to recall it and offer every single customer their money back. (They could also offer a fix, but the customers should get to decide whether they'd rather have the fix or the money back.)

    Obviously, if you take your money back, you are no longer licensed to continue using the software.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  30. Re:It's called "Warranty of Fitness"... by epyT-R · · Score: 2

    If you start holding them liable, you can say goodbye to freeware and hobbyist projects.. No one will want the liability that only super corporations can afford to defend.. This will grant microsoft, apple, and the government exactly what they want.

  31. Re:Short answer: No by Anonymous Coward · · Score: 5, Insightful

    As a professional engineer in a closely related field (industrial control systems), I disagree. What is required is a degree of rigour in design to remove systematic errors as much as is humanly possible. Engineered products still fail, and end-users may sue, but the test is simply whether the engineer, or developer in this case, took all *reasonable* measures to limit errors.

    Long overdue in the software development profession, IMO. It's time we grew up.

  32. Re:Short answer: No by Grishnakh · · Score: 2

    Depends on the manager. It's a myth that managers make more money than developers; usually, the lowest-level manager (the one who directly supervises the developers) doesn't make much more (if any) than the developers. It's the levels above him that get paid exponentially more at each level. The only reason someone goes into management is because either 1) they're not that great a developer, and prefer talking and being in meetings and bossing people around to doing actual work, and/or 2) they want to go higher in management, where the real money is, so this is just a stepping stone.

  33. Why not managers and owners? by thesandtiger · · Score: 2

    At the last corporate job I held our managers would frequently push the development staff to put things out before they had been fully tested.

    Why punish the people who write the software when often they have an extremely limited amount of control over things?

    Businesses selling shitty, insecure software should absolutely be held accountable. Individual developers within those businesses being directly liable? No way.

    Why not hold each factory worker who was responsible for a round of ammunition or piece of a missile liable for murder when a drone strike takes out a civilian?

    Hold the people responsible for making decisions responsible, not the people who are just putting things together.

    --
    Since I can't tell them apart, I treat all ACs as the same person.
  34. Re:Particular by flux · · Score: 2

    You may not be able to just take any program and prove that it works, but you can construct a program of your own in a way that it is possible to prove that it works; actually what you do is the proof and then in best-case scenario extract the machine code from that.

    Of course, doing this is still very costly: 7500 lines of C-code can take 200000 lines of Isabelle proof code:

        http://ertos.nicta.com.au/research/l4.verified/numbers.pml

  35. Re:Short answer: No by shutdown+-p+now · · Score: 3, Insightful

    So, how does the price of a typical industrial control system compare to the price of typical boxed software for popular platforms?

  36. Re:For "sloppy coding"? Definitely! by jeremyp · · Score: 3

    Why does that make incompetent software developers any less responsible for the bugs in their code?

    --
    All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
  37. Re:For "sloppy coding"? Definitely! by gweihir · · Score: 2

    No?

    I just want anybody that earns money producing software to be able to demonstrate they were using sound engineering practices. You know, like manufacturers of food, medical goods, building materials, cars, etc. The current state of a lot of software is a disgrace, and the problem is companies earning boatloads of money without any liability if quality sucks. As soon as a company can prove they were not "sloppy", residual bugs become accidents and do not make you liable unless specifically arranged contractually.

    Yes, there is a huge gray area here and in particular the US legal system seems to be ill prepared to deal with it. Not any system is this broken though. The standard in the EU is that if you used practices that are not state of the art, you may become liable. But lawyers only get standardized fees and no part of any compensation. And compensation only compensates, absolutely no chances to get rich. That stops gold-diggers in their tracks early on.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  38. College != ready to program by Compaqt · · Score: 2

    OK, they might have taught you that in college. But they didn't necessarily teach everybody that.

    In any case, every there's a post about college on /., most posters come out to say that college isn't about learning the specifics of development (like frameworks, SCM, etc.). It's about learning the theory of computer science. Learning minutiae is for trade school.

    If that's the case, then people who studied the science of computing would have no clue about SQL injection. There's really no place you'd be able to learn, except if 1) you happen to get a good mentor at your first job, or 2) you happen to read about it on the Interwebs.

    --
    I'm not a lawyer, but I play one on the Internet. Blog
  39. Re:Dynamic PHP by mcvos · · Score: 2

    Obviously you shouldn't be using eval() on user input. That should be pretty obvious to everyone with the slightest bit of programming knowledge.

    eval() is always risky, everybody who knows about the existence of eval() has to know that you shouldn't be using it recklessly. If there's any PHP framework that does use eval() on user input, then its maker should be banned from ever programming anything in his life ever again.