I don't really see this as two approaches.  At one end of the spectrum, you
can do security inside your code. But there are many underlying "sandboxes"
that restrict what your code is able to do. Each of these may be
configurable to be 'semi-permeable' for your app.

My opinion is people should locate the security where it's most effective
and easiest to build, configure, maintain, and operate. For example, you
could enforce access to local files in your code, in the VM, or in the OS.
Where is best?  Depends on what you're doing and your environment.  The
important point is that everyone involved understands the approach and that
it's simple to verify.

I'm confused about how your "fix the tools" approach is any different from a
sandbox. Building APIs that prevent developers from making security mistakes
is just the same.

And there's another important use of sandboxes that I think you're ignoring.
When you have to run code that you didn't develop, the end-user can use the
sandbox to protect their underlying platform. It's a question of control.

--Jeff

> -----Original Message-----
> From: Brian Eaton [mailto:[EMAIL PROTECTED]
> Sent: Friday, May 26, 2006 10:54 AM
> To: [EMAIL PROTECTED]
> Cc: Dinis Cruz; Stephen de Vries; Secure Coding Mailing List; owasp-
> [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: [WEB SECURITY] RE: [SC-L] Re: [WEB SECURITY] On sandboxes,
> and why you should care
> 
> On 5/26/06, Jeff Williams <[EMAIL PROTECTED]> wrote:
> >
> > Dinis Cruz wrote:
> > > If you do accept that it is possible to build such sandboxes, then we
> > > need to move to the next interesting discussion, which is the 'HOW'
> > >
> > > Namely, HOW can an environment be created where the development and
> > > deployment of such Sandboxes makes business sense.
> >
> > It's the "business sense" part of this that's really difficult.  It
wouldn't
> > be *that* hard to put sandbox enforcement into all libraries.  If you
want
> > to protect against XSS, put a validation and encoding sandbox into
> > HttpServletRequest.  If you want to stop SQL injection, get rid of
> > non-PreparedStatement and build in some control for direct references.
> 
> Two distinct approaches to fixing software are described here.
> 
> With one method, sandboxes, developers need to do a bunch of extra
> work to define sandbox policies for their applications.  Sandboxes
> don't have a great track record because it is too much work to do them
> properly.
> 
> With the other method, better tools and APIs, developers do less work
> and get better results.  The reason buffer overflows are relatively
> rare in web applications is because web applications aren't usually
> written in C.  They are written in high level languages that do bounds
> checking automatically.  XSS is endemic in web applications because
> the tool sets encourage people to generate HTML on the fly.  The
> evidence is clear: fix the tools and you'll end up with more secure
> apps.
> 
> Sandboxes are best understood as band-aids on buggy, broken
> applications.  Band-aids have a place, but avoiding the errors in the
> first place is more effective.
> 
> Regards,
> Brian

_______________________________________________
Secure Coding mailing list (SC-L)
SC-L@securecoding.org
List information, subscriptions, etc - http://krvw.com/mailman/listinfo/sc-l
List charter available at - http://www.securecoding.org/list/charter.php

Reply via email to