Good day! When writing a subsystem for testing custom solutions to programming problems, I encountered the following problem:
It is necessary to prohibit the program sent by the user, which I launch using the Process class functionality, make changes to the registry, prohibit access to the Internet, and prohibit reading / writing of files, folders, etc.
- I do not use AppDomains. requires support for non-dotnet programming languages
- Virtual machines (Virtual Box + its API) will decrease performance too much
- Docker containers are not suitable due to the complexity of working with them, as well as due to a loss in performance
- The functionality of Sandboxie is too limited, and besides, it is paid ...
- Running on a separate user without rights is already in use, but it does not help to prohibit the launch of processes by a user program ...
On this modest list, my ideas are exhausted. Tell me, please, what can be done in this situation.
PS Testing subsystem works on Windows, written in C #.