Como executar com segurança código não confiável

3

Eu gostaria de baixar / compilar / executar várias bibliotecas c / c ++ a partir da rede. Estes são, na sua maioria, projetos semi-elaborados, obscuros e / ou abandonados, alguns deles de fontes questionáveis. Como posso garantir que eles sejam executados em um tipo de ambiente "sandbox" seguro? Quero dizer que eles não tocam em recursos de sistema de arquivos / rede. Eles só devem retornar valores para as chamadas de função que faço para eles.

De preferência, uma solução para Win / Linux, mas pelo menos para Linux

    
por Baruch 24.02.2014 / 16:57

2 respostas

7

Para o Linux, essa é a carga de trabalho ideal para um contêiner. Você pode fazer isso simplesmente usando o Docker ( link ). Isso permite que os contêineres sejam facilmente criados e destruídos em questão de segundos - muito mais rápido que uma VM.

Para o Windows, você está preso usando uma VM, tanto quanto eu sei.

    
por 24.02.2014 / 17:07
0

Executar o software como um usuário não privilegiado geralmente é suficiente. A menos que você esteja usando um kernel vulnerável ao escalonamento de raízes.

sudo adduser SandBoxGuy
sudo passwd SandBoxGuy

Agora faça login como SanBoxGuy e execute seu software, o software não poderá acessar os arquivos de outros usuários ou causar danos fora do diretório do usuário do SandBoxGuy.

Tudo o que pressupõe que o seu kernel não está vulnerável ao escalonamento de raízes.

Uma resposta maior pode ser encontrada aqui . Foi escrito com o Raspberry Pi + Xserver em mente, mas mais ou menos se adapta a qualquer sistema Linux.

    
por 19.05.2014 / 13:27