Um sandbox relativamente simples para permitir a leitura e a gravação de descritores de arquivos já abertos pode ser implementado usando seccomp
. Um programa python inicializa o sandbox e, em seguida, executa o script não confiável. Ligações em Python adicionadas para o libseccomp 2.2.0 (LWN) tem um exemplo genérico de como usar a API libseccomp2 do Python.
O SELinux sandbox pode fornecer uma caixa de proteção mais genérica para executar qualquer aplicativo não confiável. O comando sandbox
tem algumas opções úteis que podem ser suficientes para impedir o acesso aos seus arquivos . Com a opção -M
, os diretórios inicial e temporário serão mascarados com uma montagem tmpfs, impedindo que o sandbox acesse os arquivos subjacentes. Juntamente com a opção -i
, você pode copiar os arquivos necessários para o diretório temporário. Se os seus arquivos não forem grandes, pode ser mais simples copiar o arquivo na sandbox. Idealmente, seria melhor escrever um domínio de sandbox personalizado para o seu caso de uso.
Os contêineres LXC fornecem outra opção. No entanto, a configuração de tudo é uma quantidade um tanto grande de trabalho, mas o contêiner resultante fornece muita flexibilidade. O contêiner pode ter um sistema de arquivos somente leitura e usar uma montagem de ligação para o diretório de aplicativo gravável. As opções de configuração podem ser usadas para impedir que o aplicativo obtenha novos privilégios .