Google Groups Home
Help | Sign in
Sandbox server
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  2 messages - Collapse all
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
Adem24  
View profile
 More options Jul 5, 3:55 pm
Newsgroups: comp.programming, comp.lang.c++, comp.lang.c
From: "Adem24" <ade...@adem24.org.invalid>
Date: Sat, 5 Jul 2008 21:55:00 +0200
Subject: Sandbox server
How would one program a sandbox?

Let's say the server and all clients have the same architecture,
and environment (for example 32bit x86-Linux environment).
The server shall offer sandbox services to clients.
A remote client can get a sandbox (an empty directory space)
on the server, upload his precompiled executable program,
start it, and then disconnect. When the program finishes
then the sandbox server sends a notification to the
email adress of the client.
Then the client can connect to the sandbox and
pick up the result file.
So, there is no need for manual login; everything should be
done programmatically via an agreed upon protocol (API).

The main problem here is security and safety.
The client program shall not be able to access any
other directories on the server except its own directory
and the subdirectories it can create therein.
And, the sandbox client shall be allowed to use only some
predetermined services, ie. only those that were explicitly
allowed him to use, for example a specific tcp port
and a specific ip-adress. And disc space, memory,
and the # of file handles the user can use shall be restricted too.
These limits are mainly for protecting the server itself
from possible bad code of the clients.

Ie. the sandbox server shall execute the program of the
client in a controlled manner by ensuring that the client program
does no harm to the server and also that the client program
does not get access to other areas and services of the system
beyond the sandbox. And that the client does not use all the
disc space, ram, file handles, CPU priority, network bandwidth etc.

Performance is important. The client wants to run his number-crunching
program on the server because it is a much faster machine.

Is such a sandbox server feasable and if yes, what would one need
for developing such a safe&secure sandbox server?
Can this be realized in C/C++ or does one need also assembler programming,
if yes then how much % of the code would be needed to be done in assembler?


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Walter Roberson  
View profile
 More options Jul 5, 4:35 pm
Newsgroups: comp.programming, comp.lang.c++, comp.lang.c
From: rober...@ibd.nrc-cnrc.gc.ca (Walter Roberson)
Date: Sat, 5 Jul 2008 20:35:21 +0000 (UTC)
Local: Sat, Jul 5 2008 4:35 pm
Subject: Re: Sandbox server

In article <g4ojj8$ua...@aioe.org>, Adem24 <ade...@adem24.org.invalid> wrote:
>How would one program a sandbox?
>Let's say the server and all clients have the same architecture,
>and environment (for example 32bit x86-Linux environment).
>The server shall offer sandbox services to clients.
>A remote client can get a sandbox (an empty directory space)
>on the server, upload his precompiled executable program,
>start it, and then disconnect.
>Is such a sandbox server feasable and if yes, what would one need
>for developing such a safe&secure sandbox server?
>Can this be realized in C/C++

The standard C library does not provide any network or security
services. What you are asking for cannot be done in portable C.
Possibly it could be done by using C plus some operating system
specific extensions; you would have to inquire about those extensions
in a newsgroup that deals with that specific operating system.

>or does one need also assembler programming,
>if yes then how much % of the code would be needed to be done in assembler?

We have no way of knowing here. It would depend upon what
system services the operating system and hardware together could
provide. There is no general reason why it would be impossible for
an operating system / hardware combination to provide all necessary
services and give a C-compatible interface to them, but whether or not
a particular system does so is not for us to say. You need to check
newsgroups or resources that are more specific.

The people in comp.security.misc might perhaps have some thoughts
on the overall sandbox scheme.
--
This is a Usenet signature block. Please do not quote it when replying
to one of my postings.
http://en.wikipedia.org/wiki/Signature_block


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google