[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Securing ActiveX.



In response to my questioning why one would want to run
an ActiveX control in a sandbox Ray writes:
> To prevent ActiveX controls from formatting your hard drive while still 
> being able to run native code to do fast DES cracking, why else?  
> Sandbox!=Virtual CPU emulator.  Sandboxes work at the supervisor/user CPU 
> level deciding which calls are cool and which will result in a core dump.

I would be happier running an ActiveX control with Peter Trei's signature on it
than I would an unsigned control in a sandbox.  (This kind of a trust decision
is probably the normal case in the intranet world.  ActiveX as it sits is quite
sufficient for rolling out internal intranet applications.)

On the second point, I never suggested that a sandbox would require virtual CPU
emulation.  What I do find likely is that the overhead from the extended types
of checking the kernel would need to do would probably outweight the performance
advantage of native code over a JIT compiler.  The DES cracker is probably not
a good example of the problem because it would make virtually no API calls.

> Viruses can sneak into software.  Given enough time you will see them 
> sneak into compilers which will then happily create virus infected or 
> trojan loaded controls which will be happily signed.  I'll leave the test 
> of that scenario up to your imagination.  There were cases of viruses 
> making their way to production distributed disks back a few years ago 
> because people weren't watching carefully enough.

This is scaremongering.  No, I don't virus scan every new CD I get from
Microsoft/Netscape/etc, do you?  More importantly to the discussion at
hand, what is to prevent said virus from infecting the compiler used to
build the sandbox?  Part of the decision to trust a software vendor must
include trusting that they use appropriate clean build procedures.

> Or you may find that shareware control authors won't bother to sign their
> controls, etc...  Same situation.  At some point trust or no trust, once
> your hard drive is wiped, so is the record of the signature that says "The
> last control you downloaded came from XYZ.com and was written by Vulis." 

If you choose to run an unsigned control all bets are off.  On a related note,
I recently saw a Java implementation of a board game that recommended
the user download the zipped up .classes and run it locally.  How many
average users realize this would disable the Java sandbox entirely?

> > An equivalent Unix problem would be to allow an open-access guest
> > account with the ability to transfer in and execute arbitrary binaries.
> > While doing this securely may be possible in theory I don't think the 
> > state of the art is up to it today.  (I sure wouldn't allow it on my system.)
> 
> Right, so if that's the case, why would you allow ActiveX controls to run 
> on your system?  It's the same problem whether signed or not as 
> signatures only tell you the author's identity and not much else.

You mis-read the paragraph above.  Trying to build the sandbox for native
code as you've described is akin to the problem above.  Is it not?

regards,
-Blake