RE: Charging customers on security
"Horton, Brad" <[email protected]> Thu, 30 Sep 2004 08:53:20 -0500
| Newsgroups | gmane.comp.security.programming |
|---|---|
| Message-ID | <[email protected]> |
This sounds far too ivory tower for me. "no excuse for not expending that effort...personally, I'd rather pay..." That says enough right there. The question is rarely what we, as programmers and admins, feel is the necessary level of security. The question is what level is appropriate given sensitivity, time, budget, and customer requirements. Would you give a five year old fine drafting instruments to take to kindergarten to draw circles? I hope not. On the same token, how could you justify the testing, planning, and overall time investment it takes to write solid code and design secure systems when your customer simply asks for a simple command line program? I doubt the answer is <because> "I'd rather pay." Brad Horton -----Original Message----- From: Wesley Shields [mailto:[email protected]] Sent: Tuesday, September 28, 2004 3:29 PM To: Glynn Clements Cc: ovi; [email protected] Subject: Re: Charging customers on security On Tue, Sep 28, 2004 at 04:12:54AM +0100, Glynn Clements wrote: > There's nothing ridiculous about the cost to the client reflecting the > development costs. Implementing security features takes time and > therefore costs money. > > Validating inputs requires effort. Testing for and handling errors > requires effort. Authentication, encryption and lots of other things > which may improve security all require effort. Yes, and there is no excuse for not expending that effort. Keeping the cost to a customer low is a sound business decision, but it quickly becomes outweighed by the number of bugs left open when not expending the effort to fix them because it will cost more money. Personally, I'd rather pay more to know that the code was developed as best as it can possibly be developed than to pay less knowing there are some bugs. > Depending upon the environment in which the software will be used, > there may or may not be any point in expending that effort. The environment you plan for the software to be used in is not always the one it is ultimately used in. Many times software is deployed outside of what the developer was initially told. > E.g. a command-line utility which isn't setuid and which is only > accessible by users with shell access may not need to be concerned > with buffer overruns. There's nothing which I can achieve by injecting > shellcode into one of my own processes which I can't achieve by just > compiling/installing and running an equivalent program. This argument is insane. You should always write software to be secure, regardless of how it is being executed. A bug is a bug, and while it may not be exploitable under certain conditions those very conditions are subject to change and the bug suddenly goes from harmless to a security problem. [snip] > But not all software fits this model. A lot of software is bespoke, > i.e. it is developed for a specific client for a specific purpose, and > will only be used in a specific context. It's entirely possible that > it doesn't need to deal with unexpected cases, because you are sure > that the only people who will ever use it won't be deliberately trying > to break it. In that situation, expending additional effort on > security issues is unjustified. I'm reminded of the old saying: "The only two things that are certain in life are death and taxes." The environment the software is intended to operate in can very well change - either intentionally or not. Using the "the software was never intended to run in a hostile environment" argument is worthless in my book. The bottom line is you either develop secure code or you don't. Where the software will be used should not enter into this argument at all, as the environment is _ALWAYS_ subject to change. > -- > Glynn Clements <[email protected]> -- WXS Wesley Shields