Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Possible? Yes. Difficult? Also yes. OS-dependent? Very yes.</p> <p>Most modern OSes support various levels of process isolation that can be used to acheive what you want. The simplest approach is to simply attach a debugger and break on all system calls; then filter these calls in the debugger. This, however, is a large performance hit, and is difficult to make safe in the presence of multiple threads. It is also difficult to implement safely on OSes where the low-level syscall interface is not documented - such as Mac OS or Windows.</p> <p>The Chrome browser folks have done a lot of work in this field. They've posted design docs for <a href="http://www.chromium.org/developers/design-documents/sandbox" rel="nofollow">Windows</a>, <a href="http://code.google.com/p/chromium/wiki/LinuxSandboxing" rel="nofollow">Linux</a> (in particular <a href="http://code.google.com/p/chromium/wiki/LinuxSUIDSandbox" rel="nofollow">the SUID sandbox</a>), and <a href="http://www.chromium.org/developers/design-documents/sandbox/osx-sandboxing-design" rel="nofollow">Mac OS X</a>. Their approach is effective but not totally foolproof - there may still be some minor information leaks between the outer OS and the guest application. In addition, some of the OSes require specific modifications to the guest program to be able to communicate out of the sandbox.</p> <p>If some modification to the hosted application is acceptable, Google's <a href="http://code.google.com/p/nativeclient/" rel="nofollow">native client</a> is worth a look. This restricts the compiler's code generation choices in such a way that the loader can prove that it doesn't do anything nasty. This obviously doesn't work on arbitrary executables, but it will get you the performance benefits of native code.</p> <p>Finally, you can always simply run the program in question, plus an entire OS to itself, in an emulator. This approach is basically foolproof, but adds significant overhead.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload