Cure For Bad Software? Legal Liability
satch89450 writes: "SecurityFocus had a column that I missed when it was first published a few days ago, titled 'Responsible Disclosure' Draft Could Have Legal Muscle, but I discovered it when researching an answer to a comment on the CYBERIA mailing list. In this article, Mark Rasch discusses how the Draft would set the rules for reporting security vunerabilities, and in particular define the boundaries of liability assumed by bug-disclosers. By adopting a "Best Practices" RFC, the IETF could help the reporters of security-related bugs do their job, and put the onus of fixing the bugs on the vendors who make the mistakes, where it belongs. (The RFC draft described in the article, 'Responsible Vulnerability Disclosure Process, is here at the ISI repository.) This is, of course, in direct opposition to the process that Microsoft's Scott Culp, Manager of the Microsoft Security Response Center, would like to see. As Microsoft is more part of the problem than part of the solution, I believe that the path to a formal process would better serve the entire community - and that community includes Microsoft's customers. I'm taking this seriously because the mainstream press is talking about the issue, and what it's going to take to fix it. Here is an example from BusinessWeek that scares me silly. I'm glad I'm looking to change careers from software development to something safe, like law."
if we have software liabilities then we also open "Open Source" software to liabilities....
It would be crazy to say that "Open Source" have no liability while "Closed Source" do...
-- Note: These Comments are Generated by ME! Not You! ME!
Should such a situation come to pass, the fallout would include:
1) Higher development costs
2) Far fewer small companies in consulting
3) Shrinking job market for new grad coders
4) Larger legal costs on both sides on the fence
On the brightr side, it would also include:
1) Lessening of age discrimination - experience outweighs youth
2) Alteration of programming education to focus on security
3) Higher standard of programming excellence
4) Self-policing. Companies who fail to adhere will run themselves right out of business in short order.
Finally, legal liability for Open Source projects is not a bad idea at all.
If I'm using a tool, component, or class library from a 3rd party, what happens if the vulnerability is in their code? As a contractor would I have to spend $10,000 in legal fees just to prove it's Borland or MS or Sun's fault? Besides, how can you gurantee 100% that anything is safe? With the lawsuit happy society we have today the smallest mistake could put even a medium sized company right out of business. And if you think this will help open source, it won't. Would you use "free" software that has no liability while commercial software does? Would you get a "free" operation from a doctor with no liability or pay for one from someone who does.
Any liability law should offer an exemption for software that is distributed along with buildable, commented source code.
The reason is simple. The end-users of open source software are in a position to verify the integrity and correctness of the software. Even if such an end-user is not a programmer, they could, if they were concerned, pay someone else to inspect the code. They have been provided with the ability to protect themselves, because the source code accurately describes the actual operation of the product.
The end-users of proprietary software are in no such position. They are absolutely dependant on the software vendor to verify the integrity and correctness of the software. They are powerless to protect themselves, and without the source code, they are only left with a representation of the operation of the product. This is far less information then the source code, which specifies the actual operation of the software.
Therefore, only proprietary software vendors should be held liable for bugs in their software.
Comment removed based on user account deletion
If I give you a car, am I liable for the fact that it has no brakes? What if I sell you a car?
What if I give you a tool? Am I liable that it breaks and breaks whatever you were trying to fix with it, too? What if I sell you one? What if I sell you one and say that it's rated for the work you're trying to do, but it still breaks?
See the differences?
Now for software:
What if I give you a binary? Am I liable that it doesn't work? Am I liable that it has flaws?
What if I sell it to you? Am I liable then?
Now for something completely different: Source Code What if I give you source code? It's available for your inspection... Can we say that source code documents itself? If you are worried about what the code does, you can read it, compile it, debug it, step-trace it. Source code is NOT a program, it's closer to an algorithm than to a program. Can I be sued for giving you instructions on how to tell you computer to do something?
If source code if just instructions, directions for a computer, then source code starts to look like something different, and precedent must come not from binary-software but from things like legal advice.
And you know how that goes... IANAL, so I can say anything, you take my word if you want to. So, if IANAP (not a programmer), can I give you whatever source code I want, and I won't be liable?
And who defines what a programmer is? The ACM?
free the mallocs!
IMNSHO, this would be a really good thing. One of the current problems with software (and a lot of other things) is that cost are shifted away from where they belong in order to make a product cheaper.
It is cheaper to write software that works most of the time, but has a few bugs than it is to have an proper design, implementation and testing process that prevents buggy software from being shipped too soon. In general the industry has the felling that it cheap and easy to release a patch for a bug later so the cost of not catching it early is small.
This is the exact opposite of hardware engineering, were companies go to extreme measures to try and debug the design be commiting to Si since it is very expensive to do this.
Increasing the cost of bugs to the software developer will decrease the quantity of code and increase the quality of code, something that is sorely needed.
</rant>
The Economics of Website Security
This could have a wonderful effect on upgrades. No more mixing fixes and feature adds -- too dangerous (aka Service Packs).
:-)
Can you imagine MicroSoft's position? New license agreements with WinXP require users to upgrade every two years. MS will be held legally liable for the stability of those upgrades. They better damn well get it right.
Remember that U.S. Navy ship that switched to NT and was dead in the harbor? Imagine the Navy sending a bill to Bill.
Learning HOW to think is more important than learning WHAT to think.
Because of this, it can be SOLD. If I sell you a keyboard for $20, you now have the expectation of merchantability. It is expected to work, and both reasonable business sense and many local and federal laws require that if it does not, I either provide something that works, or give you your money back, within a reasonable period of time. (14 days in California)
If we re-institute the concept of merchantability in software, all that would happen is that you could get your money back - thus little to no effect on OSS software.
Red Hat may be impacted, but since they are already selling services rather than products (you can download all their stuff for free) even they would be minimally affected.
So, as an advocate of open source and "free" software, I welcome the issues of product liability and the enforcement of merchantability. It would improve the industry, force it to get better, and would finally provide its customers what they've been promised all along - a better, easier life!
What should happen? A date set for a software "merchantability horizon". All products released before that date would be exempt, any products released/sold after that date would have to fit the definition of merchantability, products sold before that point can continue on their merry way.
Can you imagine how many people would upgrade their Windows if they knew that MS would be liable thereafter if it screwed up?
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Non-Donor []
A check in the Campaign Donor box guarrantees the
holder insulation from legislation which may find
the card holder liable for any damages, further, the
card holder may be elligible for assistance from the
Department of Justice in legal matters.
A feeling of having made the same mistake before: Deja Foobar
I believe a good model for liability in the software field is to move to the service and practitioner of the field model.
A customer asks a practitioner of the software field to solve a particular problem. The practitioner then writes and/or reuse and/or adapt existing software to solve the customer problem. Then the provider is liable for having provided a wrong solution according to current practices of the field.
For example delivering a closed source software with poor security track record as part of a contract specifying security as critical would rank as an obvious cause of liability, since the provider choosed it amongst various solutions, he/she will have to justify its choice before a court.
I believe the regular mechanism to cover potential liability damage in other fields, insurance companies, will play its cleaning up role by not accepting to cover software solution providers with poor practices.
It will probably also make the free software code base the center of most of these service providers, since it easy easy to customize, most of the code base have well known status, and there is no hairy licensing issues when you use them
As for shrink wrap software, it should install on the designated system, but after that you probably have no recourse at all if this doesn't work that well.
I attended a lawyer conference on software licenses and liabilities, and there are vague texts and no case law, and most lawyers were quite sure that the standard warranty disclaimer was with high probability invalid (under French law). They talked about services and "open source", and some recognized that using that as scientific knowledge and having practioners use it to deliver solution was like architects building bridges vs people creating mathematical models of gravity: the scientist is not responsible if an architect use his/her model (reviewed and published in good faith) to design a bridge and it falls down, it is obviously the architect responsability to choose a model that works, to the level of the accepted practice of the field of course. If the architect has a solid track record, if the phenomenom is beyond current knowledge, then it is up to insurance companies.
Since a piece of software shares a lot with a theorem applying to symbolic information I find this model of liability very pertinent to the software field.
Disclaimer: I am not a Lawyer
Does this mean we can get a class action against uncle George for making crappy Star Wars (TM) strategy games?
I think I'm going to get some money back for Force Commander!
In theory, this should help the little guy and open source because they could be more responsible for their customer.
But in fact, it will have the opposite effect. It means that software will have to be "certified" before it could be released.
Little developers (guys in their basement) could never afford this. Big guys (Microsoft) could. Again, this favors big, established companies over upstarts.
But more seriously, lets look at the worst issue with having liability for unsecure software:
If I have a Firestone tire (as mentioned in one of the links), I expect that it will be safe to put on my car and drive up to the speed rating on the side. But if I used the tire as a swing in my backyard and I fell off and broke my arm, should Firestone be liable? After all, a lot of people use tires for swings, and they didn't do anything to make them safer for this purpose.
Silly? Maybe. But now apply to something like a computer operating system. What is its intended purpose? Basically its purpose is infinite. It will allow a piece of hardware to begin to have infinite possibilities. So now I have to make sure my software is safe in any possible circumstance that I can't even forsee!
Mind you, I'm not excusing bad software, but I don't see how this proposal will do anything, because a new license will come out that people will simply have to accept something like:
"I accept that if I use this software it is completely insecure and will allow bad people to do bad things to me and my computer. I completely waive all rights to bring legal action again the makers of this software, even if they knew there is or was a problem. "
This is a "good in theory, bad in practice" solution.
You were mistaken. Which is odd, since memory shouldn't be a problem for you
Now if you want to give away software you'll really have to pay for it. Sooner or later a responsibility document was going to happen but the areas where it's going to hit hardest are not in mainstream press but in free software, where programmers won't have enough money to release anything in the first place.
For example, If I buy a car tire from firestone, but instead use it on some home-build dune-buggy that I use to drive over lava fields in Hawaii and the tire blows (flipping me into the lava) should Firestone pay? I wasn't using the tire according to the specs that they call for the tire.
Imposing liability on software will only force software manufacturers to list hardware/software configurations on which they are willing to accept liability. If you use the software outside of that configuration, then you're on your own. My guess is that this would disqualify just about everybody, as they'll only be able to certify a limited amount of equipment (as it will entail actually owning that equipment to test).
I mean, would you accept liability on a product that can be used on a multi-use computer that may have god-knows-what software/hardware config?
So this will lead to something like:
Which then just gives software companies even more reason to offer less support, as they'll then only need to offer support on their specific hardware, or risk the liability of condoning the use of their software on unsafe/untested environments.
Think about it.
Comment removed based on user account deletion
I've said it once and I'll say it again. CowboyNeal should be held responsible for these vulnerabilities. *grin* Anyway, here's a very similar slashdot discussion and the related article at eWeek which I don't believe is referenced in this new incarnation.
'Same speed C but faster'
you won't like it.
It will lead to VERY VERY strict licensing terms for software, and software development tool - sort of like Civil Engineering
Let's say I was Microsoft (or ANY other software vendor)
You buy a new motherboard - my answer is, "I do not approve of my software being installed on that hardware" - You will very quickly see things like "Approved Configuration Lists" - X Brand Motherboard, with Y brand Video Card, Z keyboard - ONLY. The "ONLY" other software I approve on the box at the same time is AAAA. Make any changes and your on your own
Heck, buy a car, change the suspension parts yourself to NON factory parts. Flip over due to your front wheel falling off - good luck suing the car mfg, you'll have to prove it was not YOUR changes
-- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
Microsoft might be able and interested to remove security bugs from their software, no downside for them there. But what if Microsoft would engage in some obvious "good software practices" to make their software less bad? Like what if they made their software simpler? More modular? Like if their OS could run whatever window system, window manager, file browser you wanted, a la UNIX. Or whatever web browser. Imagine.
What kind of idiotic system design is it that has all these user-mode applications inextricably woven into the fabric of the OS? What unfathomable nonsense. What person who ever studied software engineering buys this silly story?
How about if MS would use unobfuscated data formats, so that it would be easy to work with document data (let's grep through my .doc files!)
or multimedia data (let's convert between .wma and .mp3!).
How about if they had a simple and stable API for writing software, so that it would be easy to port software between the MS OS and other OS's. Fat chance.
These are some of the things that make MS bad. Will they ever address them? Magic 8-ball says, "Outlook not so good."
Ok, so I'm currently working on a auction system that is in use by at least one company. They ask for a change in the software so the commission percentages that are charge to their consignors are handled in a slightly different way. I make the change and under certain conditions, it's now possible for the consignor to be charge half of what they should be. I can see there should possibly be some liability here especially if I were "selling" the product.
btw, none of the things I'm listing here ever happened, I'm just supposing...
Now, they ask for a change that resizes the storage size for the Notes for each customer. I make the change, but my code does not also make the change to their database schema. I provide a separate script that does that. The customer installs the upgrade, but does not upgrade the db. Who is liable? Can I be held liable for not making my upgrade *easy* enough if the client forgets to run the db upgrade script and loses data?
Let go even further. I use MySQL for the db, python-mysql for the db module, python for the language and Qt for the interface. ReportLab is being used for pdf generation, lpr for printing, X-windows for launching the program, KDE for the desktop manager, and Acrobat Reader to parse the pdf files into ps for printing. Without these things, the program will not run.
Now, due to a bug in MySQL, the company finds that it is losing n*$50 where n is the number of items in the auction for every auction. Perhaps the 50 entry fee is not getting stored correctly and suppose that's a database problem. Who's liable? Me, for leveraging off an existing system without it being totally stable? The db? Maybe in this case it's clear the db maker would be held responsible.
Now let's lose some data because MySQL was not *configured* correctly. Who's fault now? Customer, me, or MySQL?
Lastly, let's lose some data due to a bug in the database that was caused by a ambiguity in the API of glibc that allows a function to be called in a way that was not intended and works as expected most of the time, but is clearly not a bug when it doesn't work the expected way. Who now? MySQL? The library they used? Me for using MySQL? The customer for being stupid enough to hire me when I'm not even competent enough to ensure the tools I use have absolutly no bugs in them? ARGH!
I'll tell you one thing... I've never associating my name with a general library if this kind of thing goes through. Blame would very often be passed back down the chain as far as possible trying to find a scapegoat other than yourself.
As a programmer, I have often given a simple explanation of why I can't write reliable software. On most vendors' computers (Microsoft obviously, but also Sun, HP, IBM and most of the rest), the inner workings are totally hidden from me. I can't even in principle know what a lot of my code will do in all cases, because I much make calls to the underlying system and its libraries, and the code for these things is a proprietary secret.
What I usually use as a parallel is: Imagine that the people who built buildings or bridges were required to use commercial steen and concrete, but the specs for these materials were trade secrets. Imagine that construction firms had to use whatever material was delivered, and were not permitted to see its specs. There would be no way that anyone could calculate the effect of loads and stresses, and things would fall down under load.
This is how software is built.
On Open Source systems, it's somewhat different, because the source is available. But even there, you can only understand the system "in principle". You usually don't have the time it would take to thoroughly investigate all the components that you use. Open Source software does generally work better, true, but it's not because every programmer has examined every piece of the source. It's because a lot of them have examined a few pieces, and they can tell each other about problems (and fix them).
This probably has significant legal impact. Consider the construction parallel again. If I design a structure and specify materials of a certain quality, those materials are used, and the structure collapses, I am probably liable. But if the material vendors substitute material with different properties (usually for cost reasons), all I need to do is show in court that the material didn't meet my specs. I'm not liable, and the vendors end up facing some serious fraud charges.
With software, this sort of fraud happens routinely, with all sorts of system components that are delivered knowing that they don't do what the manuals says they do. Or the vendors don't even bother checking that things work right, because they know they can't be held liable. Then people hire programmers like me to write software using such shoddy systems, and expect us to write reliable software on top of it. Then it turns out that some parts of the system have "undocumented features", and the code doesn't work right.
Until we find a way to force reliability on the Microsofts and Suns and IBMs of the world, the way we have with companies that sell steel and concrete, there's no way whatsoever that programmers can ever write reliable software.
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
Comment removed based on user account deletion
Second of all, the RFC really has no force given the RFC language. The two key provisions, that companies SHOULD fix holes within 30 days, and that customers SHOULD apply patches in a timely manner, can both be ignored since "SHOULD" in RFC-speak is different from "MUST".
Thirdly, this RFC is a bit too targeted at Microsoft:
1) The Vendor SHOULD ensure that programmers, designers, and testers are knowledgeable about common flaws in the design and implementation of products.
2) Customers SHOULD configure their products and systems in ways that eliminate latent flaws or reduce the impact of latent flaws, including (1) removing default services that are not necessary for the operation of the affected systems, (2) limiting necessary services only to networks or systems that require access, (3) using the minimal amount of access and privileges necessary for proper functioning of the products...
This is too "ripped from today's Microsoft headlines". This stuff about removing default services is bogus. Something like UPNP in Windows (designed to makes things easy for novice users) is useful only if it is turned on by default. Anyway what does "not necessary for the operation of the affected systems" mean. You can run Linux without a GUI...so if an exploit is found in KDE or Gnome will someone jump up and say, "You enable the GUI by default and it wasn't necessary and you violated the RFC"? The solution to flaws in UPNP to not ship with them, not to disable everything in the box.
Fourth, what the heck is this supposed to mean:
7) The Customer SHOULD give preference to products whose Vendors follow responsible disclosure practices.
Can we please keep the social engineering out of the RFC -- this is an absurd requirement to put in there. Why not just say "Customers SHOULD give preference to open source software because we think it's k3wL"?
- adam
I think a lot of software is released buggy as hell simply because investers and customers expect development houses to show results very quickly. Many contract jobs are six months or shorter, barely enough time to come up with a dog & pony slideshow of great software, let alone develop a secure product. Most developers depend on tools from other companies to cover the gaps in the process -- tools like IIS and apache.
The problem lies with the fallacy of internet time -- that software advances can keep up with hardware advances. The difficulty here is that Moore's law is based on years of research -- an advance in memory that doubles the speed next year will have begun five years or more ago with tons of R&D. Software doesn't really have that luxury -- it's all about the now.
One might say that this sort of demand is a requirement in business -- but in many ways, it's a self maintaining fad. Look at biotech -- a biotech company might do research for dozens of years before they can release a new drug or procedure. They have amazingly tedious checks and balances. Why? Because human lives are at stake. Because a single slip up will cost them millions in malpractice.
Holding software companies liable for security failures is a great idea in the respect that it will force dev houses to make better software. But in the process something will have to be done about the expectation that software is a need it now sort of deal.
As a side note: this sort of legislature would be a godsend for contract programmers. If company X has to wait years for a secure product to come out of Microsoft or hire somebody now to do the work cheap and sign off on the liability, they'll probably choose the latter. It'll also decrease on the feature blitz of new products that is leading to the increased need for pay for play software licensing.
Hey freaks: now you're ju
There is a lot of "sky is falling" rhetoric going on about this that is just wrong-headed. Clearly, it would be a bad idea to make a company liable in perpetuity for a software product, with that liability beginning the moment a vulnerability is reported to them, or worse yet, discovered.
However, it is possible to write reasonable legislation around this. Consider: you can do any software task in hardware, albeit possibly less efficiently and frequently less easily and at higher cost. If you were to make a circuit which performed some function, and that circuit were to have an error which caused economic harm to someone, that person could sue you for damages. Thus, why should it not be legal to sue for damages a company which makes a product which *could* be reduced to a circuit, provided that the other circumstances were the same?
If a law were written to allow users to sue a software company for liability, under the conditions that the company had known of the vulnerability for some time (say, 30 days just to be arbitrary, or say 3 years - whatever), and knowing that, had neither produced a fix nor issued a recall to all registered customers, I don't see a problem.
You would certainly want a grace period for the company to fix the flaw or recall the product. You would probably want limitations on liability to the provable immediate losses, or the cost of the software, whichever is higher (possibly with some limited damages above that). You would likely want such a law to exempt programs distributed as or with complete and understandable source code, on the same basis that you couldn't sue someone who printed a design from which you built your own circuit. (That is, including source code would transfer liability from the producer to the user.)
This would allow companies which depend on commercial products that they cannot inspect to have legal protection, while not bankrupting companies who act responsibly by fixing problems within a short period after they are found.
-jeff
-- Two men say they're Jesus. One of them must be wrong. - Dire Straits
Comment removed based on user account deletion
I think making software companies liable for their products so they would be forced to fix reported bugs would be a great idea. I remember a year or so ago I found a bug in a game by Activision, and I dutifully reported it to them. I didn't make it public at the time, since I wanted to give them a fair amount of time to issue a patch, but their complete refusal to do anything about it leaves me little choice. Maybe they don't think that fixing the bug in Ghostbusters that prevents you from entering one of the buildings on the map from a certain direction isn't worthy of their attention, but dammit I paid $30 for that game back in 1984, and it interferes with my enjoyment of the product! The customer support rep's excuse? "I'm sorry sir, I've never heard of a 'Commodore,' so I must assume we do not support it." Where does it end?
Mind you, I'm not excusing bad software, but I don't see how this proposal will do anything, because a new license will come out that people will simply have to accept something like:
"I accept that if I use this software it is completely insecure and will allow bad people to do bad things to me and my computer. I completely waive all rights to bring legal action again the makers of this software, even if they knew there is or was a problem. "
Okay, whose EULA were you quoting there?
Nope, no sig
...to make their software as reliable and trustworthy as electric, water, and telephone service
Well, Windows is already more reliable than Ameritech or Indianapolis Power & Light Co. The water company still has 'em beat, though.
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
This is silly. First off, the Firestone thing caused DEATH. So if a software malfunction/bug caused DEATH because of the malfunction/bug, whoever wrote it should absolutely get sued for writing bad software. Just like malpractice suits. It's DEATH because of poor quality.
Off of that tangent, I think this is a great idea. Maybe software will come out slower because people are being more thorough. Maybe software will have a higher quality because people spend the time rather than rush it. Maybe it creates a whole new insurance industry for programmer's insurance.
Do you want missile guidance systems to have software bugs in them? Do you want your financial institution to "lose your accounts" because of bugs in the software? This is serious stuff folks. It's time to get serious about it.
I personally don't think it'll hurt the little guys at all unless they're creating bad software. In which case, maybe it should hurt them.
Speaking for myself, I'm all for this. How many times have you wanted to do a better job but were given impossible deadlines, leading to shipping something you knew wasn't tested well enough, and hoping to fix the bugs later? Most programmers WANT to produce good software, but are not given time or tools.
I hope that something like this will cause managers and execs to provide proper tools and sufficient time to produce truly stable programs. I do believe that, like other forms of liability, though, unless intentional negligence is shown, liability must stop at corporations, not individual programmers.
Also, there must be still a way for free software to escape liability. If you're getting something for free, you can't expect the author to take liability.
I would think that in this situation, Microsoft should WELCOME liability law; it would be a great selling point for them in the face of Linux, if they could say "if you use free software, nobody is liable if it destroys your business, but Microsoft IS liable for any harm caused your business by our software." I imagine that many corp execs would give that argument a lot of weight.
However, at the same time I don't know if it would be 100% effective, because by now enough CTO's have realized that Linux (and other free solutions) is a more reliable platform for many applications, and it's still better for all involved to use something that works than to use something that causes you monetary loss and then try to recoup it in court.
If you want liability for software kiss the GPL goodbye and look forward a stifling of developmental progress in software. Under a liability law the GPL would be unenforcible because it provides that the author is in no way responsible for the software you're using. One of the two isn't going to work out and I think the liability law would have a little more clout. That is assuming people even develop software anymore. I'm not going to put myself in a position to get sued because of a bug in my software. I'm not going to go through the hassle and effort to try to start my own business if any software we write is going to lead to our legal raping because we couldn't possibly squash all the bugs in our code.
The GPL and free software in general would be forced the way of the Dodo. If your license couldn't absolve you from responsibility for your code fucking up a whole tenet of the GPL would be meaningless. Besides being impossible to develop no one would continue to use it. If the possibility for a software glitch to cause monetary damage are you going to pick a vendor you can sue or can't sue? Managers are going to go with the folks they can slap a lawsuit against in order to recoup damages. Why would you use an open source application in which a bug could cause you millions in damages that you couldn't recoup? The only reason managers go with open source software now is they can't sue vendors of proprietary software for bugs so they go with the lower TCO (whichever option that is).
It is also ridiculous to compare an operating system like Windows to some RTOS or firmware system that control hazardous equipment. Windows and Linux aren't designed for use in hazardous environments. They also are not cleared to operate on certain pieces of equipment. If a system doesn't pass a safety inspection it isn't going to get sold. A heart monitor isn't going to run Linux and the control equipment for a nuclear reactor is not going to have Clippy morphing into a bicycle.
I'm a loner Dottie, a Rebel.
Great, another revenue source for lawyers. Does any one else see a problem with this?
Imagine someone suing everytime they got a blue screen. The ONLY way to make the software super duper lawyer proof would be to overly control the hardware. Thus stiffling inovation and the creative process as a whole. Remember that original IBM PC and the clone makers were more successful than Apple because the box was open and could be added to and hacked with relative ease. No persons box will have anything "easy" about hacking at it after the lawyers are finished.
For almost any problem where litigation has been the answer, the solution is often worse than the initial problem.
"Science is about ego as much as it is about discovery and truth " - I said it, so sue me.
When it comes to stealing music of the internet all the open source zealots make comparisons about sharing physical items with friends.
But when it's open source software that can be held liable for deficiencies it's somehow very different than physical products and it's up to the user to fix problems.
It will definitely hurt the companies that can't afford to hire a full time lawyer. The exact effects would, of course, depend on the details of the law. I suspect that one of the reasons for the degree of apprehension about this is that we have recently seen so many laws that were only to the benefit of whoever was the highest bidder.
(Well, that's not strictly true. MS has benefited from laws designed to aid Disney. But if you consider categories of bidders rather than individual bidders, then it appears to be true.)
.
I think we've pushed this "anyone can grow up to be president" thing too far.
IANAL, but IIRC, source code has been found by the courts to be speech. Software liability will create a prior restraint on the expression of that speech. I don't think that any liability laws will be upheld in the courts for people who release source code. They can claim that it's simply the exercise of their 1st amendment rights.
But this will impact the distributions, who release software in binary form. I don't believe that binary code is considered speech. So the Red Hat's, SuSE's, Madrake's, Debian's of the world might be in trouble with their current distribution method. But probably not the authors.
All told, I still find the idea of software liability to be discomforting. Unless it can be done in such a way that it doesn't immediately disadvantage free/opensource software, either directly (by holding authors/distributors liable) or indirectly (by making free/opensource software a business liability since there's no one to sue), I think it's a really bad idea. See my journal entry for more details.
Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
As it is, software companies get off scott free, with only their reputations at stake (and those w/ deep pockets can afford the advertising budget to counter the bad experiences and boost their reputation). But it would be nice to see some sort of financial incentive to produce better quality, reliable software instead of just a lousy implementation of the latest greatest big idea. Just like there are contracts that reward being completed on time and punished for being late, we could have mandated licensing terms where a major bug (like the UPnP hole thing) VERIFIED by a disinterested 3rd party, would result in a partial refund, to partially cover the expenses of patching. I would not go so far as making a company legally liable for some of those always overinflated 'costs' that show up in class action lawsuits. Noone should have to code in fear that a missing comma is going to cost the company a million dollars. But a simple system of rewards and punishments to get over the 'flashy crud' that so many consumers fall for, and onto a more stable, robust, secure world.
try { do() || do_not(); } catch (JediException err) { yoda(err); }
A large proportion of the of the security problems would just go away if the subroutine return address was stored in a separate memory area from the data area. This would make the buffer overflow / stack-smashing type of attack impossible. It's such a simple idea I am amazed that it has not implemented long ago. There must therefore be something wrong in my thinking, what is it?
I write an anti-spam filter that and post it into the public domain (Open Sourced). Microsoft uses it in their next whiz-bang mail server.
Who sold it, you or Microsoft? The one selling it bears the liability. Same as when a component of a physical good is defective. The end user sues the seller, and maybe the original componenet manufacturer. The seller may also sue the manufacturer to recover their own legal costs.
But end users always sue the guy with the deepest pockets. In your example, I don't think many people would waste their time suing you.
Nope, no sig
Incredibly, the latest proposed UCITA modifications (to make it acceptable to more states) is the exact opposite of this.
Commercial software is exempt from all liability. Even if they acted in bad faith and consciously lied to you about the presence of critical bugs, you have no resource.
Open source software is held to the highest legal standards.
The legislation doesn't state it this nakedly, but it moves commercial software out of the "product" category and into a new category, so none of the consumer protection or product liability laws apply. Esp. if you never release the "final" version of your software.
In contrast, other definitions apply to all software. But since there's no exchange of "items of value" with OSS, there's no contract and it gets hit with the full power of the law.
This is totally indefensible for the reasons mentioned elsewhere. Microsoft has the ability to test its software bettter, and denies me the ability to protect myself, yet it gets a free pass. Meanwhile the guy who spent his weekends trying out an idea and who posted it with warnings that the code is not yet well-tested could lose his house.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
If you want your software to be guaranteed to have feature 'x', then demand that your vendor sign on the dotted line a promise that the product meets your expectations. And be prepared to pay money to get what you want.
Otherwise, read the damn license. You know, the one that says "NO GUARANTEE OF FITNESS TO RUN NUCLEAR POWER PLANTS BLAH BLAH BLAH". If a vendor is explicitly telling you that they are NOT promising you anything, then you are just plain stupid to think that you have the right to demand more. If you don't like it, put your money back in your pocket.
Where you might take issue with are products that hide the fine print inside the shrink wrap. Of course you have no such problem when you can see the source.
--Lawrence Lessig for Congress!
I seem to recall, in big bold letters, a statement at the end of the standard EULA that says without question that installing the software makes the user assume any and all responsibility for loss due to the installation or use of the software being licensed. Even if the law generally requires people to give reasonable disclosure, I don't see how someone can't use the EULA and say,"Sorry bud. You read the agreement, and there's your notice."
Lawyers please reply.
Merchanitability is not liability. As far as I can see, this already covers software, correct?
Most modern EULA's specifically disclaim merchantability to any purpose whatsoever. The poster you're replying to is simply saying that if your software doesn't do what the seller said it would, then they owe you your money back.
You downloaded it for free? Then they don't owe you anything. You paid $50,000 for multiple installations and several hundred user seat licenses? They owe you a refund.
Nope, no sig
One thing that is encouraging is that Software Engineering may become a real discipline and not just a buzzword. It is inevitable that Software Engineering will take the same course as other traditional engineering disciplines. Our reputations depend on it.
One thing that is discouraging is the possibility that hobbyists will be shut out depending on what sort of legislation occurs. This is something that hasn't happened in many other disciplines. Would wonders like TLC's "Junk Yard Wars" be possible if the Mechanical Engineering industry were regulated to death? What about model rockets? Home chemistry sets? Do-it-yourself electronics? Helping your neighbor build a tree-house for the kids?
I hope the people behind any new legislation understand that purely non-commercial efforts, where the would-be customers pay nothing and nothing is promised, should not be regulated.
Free Software is non-commercial and nothing is promised to the end-user, so it should be left as-is. However, those who choose to commercialize it, such as Red Hat or IBM, should be willing to accept some liability. After all, they are making money off of it.
In conclusion, software should be treated just like any other product. If money is being made off of it, then the customers are due what they paid for. If no money is involved, the lawyers and politicians should just keep their hands off.
Healthcare article at Kuro5hin
Obviously, since simple software is both more reliable and easier to prove, I'd limit myself to simple software. Good-bye GUI, hello command line. Also, since most software these days is built heavily dependant on someone else's libraries, I'd either have to have the source or roll my own: black boxes, no matter how well guaranteed by the vendor, won't fly because of the costs of litigation. So what we end up with are small, simple programs to which the source is widely available and easy to tinker with.
:)
Is it me or does that sound very familiar?
Before WWII, there was a thriving business with dozens of light plane makers. You could buy good, cheap little planes. After WWII, there was some consolidation in the industry but you could still get a decent little plane for reasonable bucks.
Then the lawyers got involved. Liability lawsuits appeared everywhere. Since planes stick around for a while, a crash of a 20 year old model was still grounds to sue. Cessna quit making anything smaller than a corporate jet. Piper nearly went bankrupt. The entire GA industry entered a slump.
Finally, Congress acted and set strict liability limits on older light planes. (If it's been flying for 15 years, the maker probably isn't at fault.) Liability is still a problem though: a decent light plane that can carry a small family costs as much as a house now. This isn't a fancy plane: cloth seats and barely enough room to move your feet.
There are a few small makers out there (Cessna came back), but almost nothing cheap is left. You can build your own from a kit and slap an "Experimental" tag on it, but that leaves *you* fully liable for anything that happens. (Then again, as a pilot it was probably your fault anyway.) You could go for an ultralight, but that's for sightseeing, not for travel.
End result: a few companies sell a few, very expensive planes to rich people. Folks like me with a pilot's license but no trust fund rent aging C152s on weekends since we can't afford anything else. (Someday I'm going to build one, but I've got a 7-month old kid and a mortgage right now.)
Liability is almost certainly the wrong way to do this
Eric
"Seven Deadly Sins? I thought it was a to-do list!"
My gut instinct (like many people here im sure) was to say . 'GREAT .. now M$ has to fix their holes.'
.. after thinking about it (and finishing the article) Many smaller companies (shareware/freeware) are gonna get nailed on this first.
.. anyone wanna bet how quickly the new M$ department that checks for vulnarabilities in compedator's products would get formed ? Why spend years in court .. when you can just bury them in paperwork *THAT THEY LEGALLY ARE RESPONSABLE FOR*.
.. vote no.
Bad move on my part
The one man-opensource-grassroots guys are gonna get hammered.
Hell
I for one
--Ne auderis delere orbem rigidum meum, non erravi pernicose!
Recall that an American Destroyer was rendered dead in the water as a result of NT crashes and space shuttle missions rendered write-offs because of NT crashes. Not to pick on NT, but these are cases where lives did depend upon software. Death is just an example of liability.
The authors assume that there is consensus regarding dealing with disclosure of vulnerabilities, at least in the industry, i.e. some limited information is published.
However, this assumption is false. Have you ever read about a security hole in z/OS? Or SAP? Do you think these products are completely error-free?
There are two elements to this: loss of revenue resulting from software failure due to poor design, and failure due to illegal activities.
Software is a tool. When you pay for software you have an expectation that the software will do it's job. If it fails to do it's job and results in loss of revenue because of it's poor design, then it seems clear that the company who designed the buggy software should share some of the liability.
On the other hand, when a security hole is found and exploited, the ensuing loss of revenue is the result of a criminal activity. Why should software companies be held liable for the actions of law breakers? (unless the software is implicitly designed as a security tool).
If I buy a new TV set and a week after I get home it doesn't work because of a defect in the manufacturing process, I expect the company who made the TV to make reparations. If it doesn't work because vandal kids broke into my apartment and smashed the screen with a baseball bat, I doubt it would be fair to file suit against Sony because they didn't make the screen with thick enough glass.
Of course, Microsoft shoots itself in the foot every it mentions 'secure' in it's marketing. By doing so, it implies that security is a feature of it's software, and in turn should bear legal liability of it's own security holes.
Personally, I'd like companies to make software that works. Microsoft should focus on making an operating system that doesn't crash. In turn, other companies should focus on making software that protects the operating system from criminals.
If anything should be done in the courts, some legislation that would force software companies to release source code to third parties in the business of security for review would be a good start.
The Internet is generally stupid
Of course, any liability law would have to have a clause for beta testers, becuase you can't hold somone liable for failing while in the TESTING phase (If you could, test tracks all over the country would be bankrupt). The solution will naturally be that everything gets released as a beta. Everything. Office Xb, Mac OSb, Linux Kernal 2.5.4.7.1.1-prebeta-RC4-b ... um, ok, Linux kernals will remain unchanged.
"Your superior intellect is no match for our puny weapons!"
Sad, but those of us not in the Land Of The Free may have to consider this eventually, sort of an inverse case of the situation that used to exist with encryption and the US. Sigh.
I hereby inform you that I have NOT been required to provide any decryption keys.
WRT Open Source software, I see no a priori reason why OSS developers should be any less liable than commercial software companies, PROVIDED that certain reasonable guidelines apply:
- liability should never exceed the amount of money the developer/company *received* from the customer or class of customers unless gross negligence can be proved;
- in cases of gross negligence, the liability should coincide with the amount of *actual damages*; i.e., you don't get a million bucks because someone was able to read your web documents unless that act actually cost you $1 million in losses;
- developers should be reasonably shielded from liability in cases where the customer/user *actually* modified the software (not just *had* source available) -- if the modifications had a substantive affect on the security or safety of the product;
- parties can enter binding legal contracts to alter the balance of liability -- in instances where the customer *plans* to alter the software, whether they end up doing it or not. CLICKWRAP LICENSES DON'T COUNT.
These measures will only benefit the the software industry; serious programmers will have the satisfaction of working in a climate where time to market takes a back seat to quality (because the law penalizes nonconformance to this norm); software processes in the aggregate will improve for the same reason; customers and users will have a better experience with software in general and will have more respect for practioners who take the profession seriously.And people who lack confidence in their abilities to generate bug-free code can buy liability insurance, just like many other professionals currently do. In other words, software professionals can finally expect to *earn* the title!
Businesses like to (and must) manage their risk. If software companies are in fact reasonably liable for bugs/security issues in their software, IT managers and their bosses will have to weigh the ease with which they can tell their lawyers to sue someone against trusting their network administrators and support personnel with verifying open source software is secure. If the current sheep-like decision making holds -- *bleat* Buy Microsoft! *bleat* -- this could result in much less corporate adoption of open source software.
I believe this is pretty much the way it works with everything except software, and recently some courts have starting invalidating clickwrap licenses on the basis of arguments like these (which IIRC was one of the motivations for the UCITA). In other words, in the literal basketball example you would currently legally be liable (AFAICT, IANAL, etc). Why should Free Software be any different?
First off, this is an Internet Draft. Anyone can write one, with a simple boilerplate saying that ISOC owns the copyrite on it (so they can publish it for 6 months) and some formatting I can publish an Internet Draft that says anything (I have published a few too...) THERE IS NO SUCH THING AS AN RFC Draft
Second this is going non-standards track, and as such has no weight, either protocol wise, or legally
Oh well... It must have been fun to write, ZDnet in London had a link to it a week ago, where they tried to pawn Mr. Culp off as the author... Oh well.
Thank you... Come again
Most businesses that contract software have an SLA (service-level agreement); if the software doesn't meet certian standards, the supplier must pay a penalty. For the most part, the more serious potential problems are handled privately, without the need for some sweeping government iron hand.
And how does that help some small business when they buy a copy of Windows* and it hoses, costing them hours of work? How does that help them if Outlook Express cheerfully formats someone's hard drive because some kid in Brazil sent a virus-infected e-mail that exploited yet another Windows/HTML/Javascript/VBscript/etc. flaw? Most businesses buy and use commercial software for which there is no SLA available. Ever try to get Microsoft to agree to an SLA?
I am a software engineer and have been for over 20 years. I am still astounded by the "everyone except us" attitude. Why should we hold Boeing liable if one of their jets has an engineering flaw that kills people? The engineering in a commercial jet is far more complex than the engineering in 99.99% of the commercial software that's been written. The same can be said of automobiles, skyscrapers, submarines, satellites, and nuclear reactors. But we don't exempt the companies the produce those items from legal liability.
And don't tell me that "software flaws don't kill people." Software flaws in aircraft and medical equipment have already killed people. When a software flaw takes the phones down and people can't call 911, it can kill people.
I think any developer who releases source code should be shielded from product liability. The only ones that ought to be liable are the ones that keep the source code private.
If you release source, you have fully disclosed the capabilities of, as well as the flaws in your product, and any liability laws ought to recognize that and reduce yor eliminate your liability burden. If you decline to release source, you should assume liability for the undisclosed capabilities and flaws in your product. It would then be your choice whether keeping your code proprietary is worth assuming the liability burden.
Admittedly, I haven't thought about this a lot, but it has a certain logical appeal to it. There might be some ways around it. Maybe Microsoft releases source code to Windows 95 claiming it is for Windows 2000, hoping no one would notice. Myabe small firms or individuals that want to keep code proprietary are unfairly burdened. Or maybe lack of liability and/or source unfairly burdens the customer, regardless of the size of the vendor. I dunno... what do you think?
Edith Keeler Must Die
How much of a stretch is it to see M$ declare that they don't agree with the RFC, that it's an irresponsible process, so they're not going to play? I'd be surprised if they did anything else.
Sorry, but I see this as a weak claim. Sadly, law often seems to work counter to how rational people would expect, so we'll see.
Gimmie a break. THAT will kill free software, *not* imposing liability!
Nobody would do software development except companies that can afford massive liability insurance. Experts don't even agree on whether it is theoretically possible to guarantee that code is bug-free. Software liability is an attempt to milk money out of the inevitable. Bugs happen. Kids fall off tricycles. Coffee is hot. The last thing I want to see is for the litigation industry to grow in yet another direction at everyone else's expense.
But you're right, I guess people don't actually ever get sued for people falling down and hurting themselves on slippery sidewalks in front of businesses ("accident", you cry) or getting burned by a cup of McDonalds coffee ("accident" you merrily chirp again).
Oh, wait; they do! For millions even!
Let's say MS buys some code from a small competeing company. MS runs the code and it crashes one of their servers and causes some minor damage. MS then, using these new laws about accountability, sends it's massive legal department after the small competing company. The small company, having no finances to put up against MS, will cease to exist.
Sure the new laws of accountability sound nice but it takes money to enforce them.
Outdoor digital photography, mostly in New Engl
It's so simple: If you don't like crappy software, Just Say No. Don't buy it, don't use it.
Is "Just Say No" not an option (e.g. MS monopoly)? Then there's your problem; fix that. Until then, keep your lawyers off my computer.
There's some magic point along the cost/quality somewhere in between Microsoft and NASA, and people can find the right point for themselves, if they are free. The current situation may be funnelling people toward one extreme, but software liability (even in cases where the customer doesn't want to pay for it) will just funnel everyone toward the other. We don't need that.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
So, you could change it... but you'd need to make a new CPU, new controlers, rewrite virtual memory... it's be a lot of work.
I don't know if it would be more or less effort to do that than it would be for sloppy programers to stop writing code that's vulnerable to buffer overflows.
Those who fail to understand communication protocols, are doomed to repeat them over port 80.
Time for your daily dose of Open Source Heresy...
All commercial software should be warranted. [gasp!]
I am not advocating a law demanding such warrantees, rather, I am advocating that software companies stop committing fraud by marketing products while simultaneously disclaiming merchantibility.
If I buy a refrigerator and it does not keep my food cold I can return it and get my money back. If the manufacturer won't refund my money I can sue. If this same refrigerator explodes causing material damage to my home and my health, I can sue for major bucks. But not so with software. They all have this little warranty disclaimer saying if the product even *intentially* kills my dog I am S.O.L.
Before you all get your panties in a bind, please note that I said "commercial" software. Noncommercial software is a completely different matter.
"But no one would want to contribute to Open Source if they could get sued. Bullshit. No one but the seller gets sued. YOU are not the one selling the software. Remember when Odwalla got sued for tainted apple juice? It was Odwalla, the seller of the apple juice, that got sued, and not the Odwalla employees, or the apple growers, or the fertilizer salesmen selling manure to the apple growers, or the cattlemen selling manure to the fertilizer salesmen selling fertilizer to the apple growers, etc.
Now before all the libertarians and free marketeers jump all over me, let me stress again that this is a *fraud* issue. A company that sells a product is asserting that the product is fit to be sold. This is known as merchantibility. It's the cornerstone of the US Commercial Code, and much of Western Civilization's common law. Any disclaimers of merchantibility need to be be explicity to the consumer before purchase. Hiding them in fine print on the bottom of the box, or God forbid inside the box itself, is fraudulent.
Every other product on the store shelves is assumed to be fit to sell, EXCEPT for software. This is stupid. This needs to be changed. All warranty disclaimers for commercial products should be null and void unless they are written in three foot high blinking neon lights.
A Government Is a Body of People, Usually Notably Ungoverned
From BusinessWeek Online: MARCH 18, 2002 See today's date... I wonder who's at fault.
No one. Most weekly magazines use the principle that the "issue date" is the last day that the magazine should be sold on newsstands, not the date that the magazine was first published.
Sorry.
Comment removed based on user account deletion
Comment removed based on user account deletion
In Tort law, people are all held to some normative standard of "due care" in all of their interactions with other people regardless of the context. If a person's failure to excercise said normative level of due care causes harm to another, they are liable for damages, plain and simple. Even in war, where the purpose is to kill others, there exist normative standards, transgression of which turns warriors into war criminals.
The McDonalds coffee lady got her money because 12 jurors felt that McDonalds didn't meet the standard of due care with regard to the temperature at which reasonable people serve coffee. If you decided to show your contempt for normative standards of urban foot travel by running blindfolded up and down city streets until you collided with someone, sending them tumbling to the ground and injuring them, legally you'd be liable. No less a legal mind than Oliver Wendell Holmes wrote "If, for instance, a man is born hasty and awkward, is always having accidents and hurting himself or his neighbors ... his slips are no less troublesome to his neighbors than if they sprang from guilty neglect." So AS I SAID BEFORE, even incompetence is no excuse.
Because of standard warranty disclaimers in software, software developers are among the only people for whom no violation of normative standards of due care are enough to trigger liability.
I can understand how anonymous trolls might not feel bound by normative standards of society; most reasonable and thoughful people in this forum, however, can probably conceed that some liability, properly crafted to offer balanced protection to consumers and producers of software products, whether free or proprietary, is at least as morally justified and neccessary as standards for hot caffeinated beverages.
BTW, the Holmes quote is from Common Law. Thank God for Project Gutenberg.
The friend's lack of liability comes from his lack of negligence, not his lack of profit. He might be held liable if he knew it was defective, or if it had been on the news for months that the empty lot he'd taken it from was full of cars that explode, or if the reason he gave it to me was because he didn't like the overwhelming stench of gas fumes that mysteriously appeared every time he drove it...
This is where I'd usually say "you get the point," except it's clear you don't.
Everybody has authority to fix the problem, and license to do so- hence, everybody in the world is liable.
I'm serious- think about the question, "Who has authority to fix the problem, and who DOES NOT have authority to fix it?"
http://www.google.ca/search?q=space+computer+failu re&hl=en
r /
(search: space computer failure)
Gives at least this result: http://www.cnn.com/TECH/space/9806/01/mir.compute
Which, although neither referencing Windows NT, and on MIR not a shuttle, is an equally valid example of software failures jeapordizing human life in space.
Regarding the failure on the Space Shuttle, I similarly cannot find references for it. I remember it quite clearly (which does not make it an infalliable statement by any stretch, though), but references for it I cannot find at this time.
Hope that helps.
The idea is that when you hear the term "free speech" you usually think of the freedom of the speaker, not that the speech is available for no cost. And when you think of "free beer" you usually think of the beer being available at no cost.
I feel sorry for you if you have never seen free beer. Don't you have any friends who party?
Now if I distribute a web server, and I either
- know it contains a buffer overflow which can result in a remote root exploit, and don't fix it
- think that since I'm giving it away, I don't have to be bothered to check for common code errors that are well known sources of exploits
Than it can (and should) be argued that I have failed to show consumers of my software "due care", have been negligent, and am therefore liable for damages -- ASSUMING that damage results from the vulnerabilities!I need to let this thread die before I have a stroke!
Code has to be run before any bugs in the code can manifest themselves. The bugs only turn into damage when the code is deployed. In addition, the same code in another deployment might not cause any damage. Therefore, you cannot hold a programmer responsible for bugs. You can only hold him liable for damages done through bugs.
When software bugs cause damage, that implies the software was being run, probably doing something useful, perhaps operating on valuable data. The software breaks *because* it is part of a workflow, part of a system.
This is when you can hold liable the person that sold you the *system*. Some people, notably IBM, will do this.
HOWEVER, if you download and install applications willy-nilly, and play games, and don't reboot properly, and thus proceed to *construct your own system*, then *you* are liable.
What people do not realize, is that by dragging icons and windows across the screen, they are picking the fruits of over 40 years of work by other programmers, who made programming a computer as easy as dragging icons and windows across the screen.
Pushin' 'n dealin', shovin' 'n stealin'
Comment removed based on user account deletion
And if they used linux, and the same thing happened, the developers shouldn't be responsible......why?
First, it wasn't Linux, it was NT.
Second, NT was a purchased product, so money was exchanged for software architecture, engineering and development. The liability would be different if no monetary exchange was made.
Third, if it was Linux, then the agency would be capable of fixing the problem internally, on the fly. A software systems expert can fix any problem, save hardware, with enough experience or training, on an open system.
Fourth, as I said, that was not a post about NT, it just so happened that the most fruitful examples involved NT, so I used them. There are several excellent posts regarding why developer liability of free & open software is posited onto the user in that the user can fix it, has not entered into a commercial contract, and the user has not just the option but the incentive to fix problems, should they encounter them and will them away.