Python: Protegendo scripts / subprocessos não confiáveis ​​com chroot e chjail?

Estou escrevendo um servidor web baseado em Python que deve ser capaz de executar "plugins" para que a funcionalidade possa ser facilmente estendida.

Para isso eu considerei a abordagem para ter um número de pastas (um para cada plugin) e um número de scripts shell / python lá nomeados após nomes predefinidos para diferentes eventos que podem ocorrer.

Um exemplo é ter umon_pdf_uploaded.py arquivo que é executado quando um PDF é carregado no servidor. Para fazer isso eu usaria o Pythonsubprocesso Ferramentas.

Por conveniência e segurança, isso me permitiria usar variáveis ​​de ambiente Unix para fornecer informações adicionais e definir o diretório de trabalho (cwd) do processo para que ele possa acessar os arquivos corretos sem precisar encontrar sua localização.

Como o código do plug-in vem de uma fonte não confiável, quero torná-lo o mais seguro possível. Minha idéia era executar o código em um subprocesso, mas colocá-lo em uma jaula chroot com um usuário diferente, para que ele não pudesse acessar nenhum outro recurso no servidor.

Infelizmente, não consegui encontrar nada sobre isso e não gostaria de confiar no script não confiável para se colocar em uma prisão.

Além disso, não posso colocar o processo principal / de chamada em uma cadeia chroot, já que o código do plug-in pode ser executado em vários processos ao mesmo tempo, enquanto o servidor está respondendo a outras solicitações.

Então, aqui está a pergunta: Como posso executar subprocessos / scripts em uma cadeia chroot com privilégios mínimos para proteger o resto do servidor de ser danificado por um código não confiável e defeituoso?

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion