Look into Code Access Security (CAS) in .NET - it is a pretty damn tough 
security sandbox; every operation that can be called in the default libraries 
is security rated; everything outside that is weighted based on:
- What it declares itself
- What functions in the Standard Library it calls (can only be as secure as all 
the functions it calls)
- If it uses native code (automatically 'unsafe')

>From what I understand, Mono ended up implementing a lot of that for 
>Silverlight; although I do not know how the security holds up compared to the 
>official .NET runtime; but AppDomains + CAS is a pretty rock solid sandbox on 
>Windows.

Regards,

Adam

> -----Original Message-----
> From: opensource-dev-boun...@lists.secondlife.com [mailto:opensource-
> dev-boun...@lists.secondlife.com] On Behalf Of Argent Stonecutter
> Sent: Thursday, 18 February 2010 5:46 AM
> To: Morgaine
> Cc: opensource-dev@lists.secondlife.com
> Subject: Re: [opensource-dev] Client-side scripting in Snowglobe
> 
> 7. 8. 9. 10. ... I'm not going to run client-side scripts if I can't
> eyeball them. Creating a sandbox is a huge, complex, and difficult
> job, even in an application designed to run untrusted content from the
> ground up. Putting a blind scripting environment inside something like
> the SL client is risky. Putting one that isn't inherently secure in
> there is scary.
> 
> Linden Lab does not trust the Mono sandbox on the server: you can't
> upload Mono bytecodes like you could LSL bytecodes. And they
> shouldn't. LSL bytecodes are run in an inherently secure
> environment... they can not perform any operation outside the
> capabilities of the LSL runtime: security and access controls are
> implemented outside the interpreter. Javascript and Activescript in
> Flash are in the same situation: they are languages that can (and
> usually do) run in an interpreter that does not even implement unsafe
> operations. Java and Mono/.NET intermediate language can do anything
> native code can, they are not inherently secure, and should not be
> treated the same way. *
> 
> Even if the entire viewer was run in a provably secure virtual machine
> this would not seem like a safe option to me, since the viewer has
> full access to all my assets and account information in Second Life.
> 
> Now there are situations where this kind of assembly would be
> acceptable, where it's treated and presented to the user as an
> application, where the user has to explicitly request that it be
> installed, where it is made clear that installing a plugin is the same
> kind of risk as installing and running an application. But not when
> it's something that can be pushed from an untrusted source with no
> more than a warning dialog between you and HonestImNotInThePN
> ThrowawayAlt.
> 
> Even if they were using an inherently safe language, accepting
> unexaminable binary payloads from untrusted sources and running them
> in the SL client in anything like its current state would raise all
> kinds of warning flags with me. Doing this using an internally-
> sandboxed interpreter just isn't something I'm prepared to do.
> 
> * No, I don't use Silverlight and I have Java disabled.
> _______________________________________________
> Policies and (un)subscribe information available here:
> http://wiki.secondlife.com/wiki/OpenSource-Dev
> Please read the policies before posting to keep unmoderated posting
> privileges
_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to