-
A máquina virtual pode oferecer maior segurança sem reinicialização, mas com desempenho mais baixo.
-
Outra opção, para maior segurança do que uma máquina virtual: inicializar um CD / DVD / pendrive "ao vivo" sem acesso ao disco rígido (desative temporariamente o HDD no BIOS; se você não pode, pelo menos, não montar a unidade / desmontá-lo, se montado automaticamente - mas isso é muito menos seguro)
-
Um contêiner docker é uma alternativa um pouco menos segura para uma máquina virtual completa. Provavelmente, a diferença crucial (em termos de segurança) entre esses dois é que os sistemas em execução no docker realmente usam o kernel de seu sistema host.
-
Existem programas como isolar que criará um ambiente especial e seguro - isso geralmente é chamado de sandbox - esses são tipicamente baseados em chroot, com supervisão adicional - encontre um que se encaixe em você.
-
Um chroot simples será menos seguro (especialmente em relação à execução de programas), embora talvez um pouco mais rápido, mas ... Você precisa construir / copiar uma árvore raiz inteira e usar montagens de bind para
/dev
etc. (veja Nota 1 abaixo!). Portanto, em geral, essa abordagem não pode ser recomendada, especialmente se você puder usar um ambiente mais seguro e muitas vezes mais fácil de configurar,sandbox
.
Observação 0: Para o aspecto de um "usuário especial", como a conta nobody
: Isso dá a quase nenhuma segurança, muito menos do que um simples chroot
. Um usuário nobody
ainda pode acessar arquivos e programas que tenham as permissões ler e executar definidas para outras . Você pode testá-lo com su -s /bin/sh -c 'some command' nobody
. E se você tiver qualquer arquivo de configuração / histórico / cache acessível a qualquer pessoa (por um erro ou falha de segurança menor), um programa rodando com permissões nobody
pode acessá-lo, grep para dados confidenciais (como "pass=" etc. ) e de muitas maneiras, enviá-lo pela rede ou qualquer outra coisa.
Nota 1: Como Gilles apontou em um comentário abaixo , um simples ambiente chroot dará muito pouca segurança contra exploits visando escalação de privilégios. Um único chroot faz sentido em termos de segurança, somente se o ambiente for mínimo, consistindo em programas confirmados por segurança somente (mas ainda existe o risco de explorar potenciais níveis de kernel) vulnerabilidades), e todos os programas não confiáveis em execução no chroot estão sendo executados como um usuário que não executa nenhum processo fora do chroot. O que o chroot impede (com as restrições mencionadas aqui) é a penetração direta do sistema sem escalonamento de privilégios. No entanto, como Gilles observou em outro comentário , até mesmo esse nível de segurança pode ser contornado, permitindo que um programa saia do chroot.