What's the best way to protect system integrity while running possibly malicious third party executables?
I would like to allow a program to be able to store some information for its own use during execution, but disallow access to the network and to devices, and of course to other users' data and the overall system.
A few constraints: 1. This needs to be able to run on Windows. 2. I can't restrict the language (e.g. "just use Java"). 3. It needs to have native, or near-native performance. 4. Ideally it should be able to run in the background as a service.
Can I simply use a restricted-privilege windows user? Would it be safe?
Do I have to use a virtualization environment? Are there any free ones?
Other ideas?