Quero executar pequenos programas não confiáveis, mas restringi-los de acessar arquivos fora de suas pastas, acesso à rede e tudo o mais que eles realmente não precisam. Qual é a maneira mais simples de conseguir isso?
Quero executar pequenos programas não confiáveis, mas restringi-los de acessar arquivos fora de suas pastas, acesso à rede e tudo o mais que eles realmente não precisam. Qual é a maneira mais simples de conseguir isso?
Respostas:
Se eles não forem realmente confiáveis e você quiser ter certeza, configuraria uma caixa separada. Realmente, ou virtualmente.
Além disso, você não deseja que essa caixa esteja na mesma rede que suas coisas importantes, se você for paranóico o suficiente. Em todas as soluções, você configuraria um usuário separado, sem direitos, para não abrir muitas ferramentas ao possível comprometedor.
Se você é obrigado a executá-lo na mesma caixa, você tem, por exemplo, esta opção
chroot
. Essa é uma opção padrão para fazer isso para muitas pessoas e, para ameaças não específicas, pode até funcionar. Mas NÃO é uma opção de segurança e pode ser facilmente quebrada. Eu sugiro usar isso como pretendido, ou seja, não por segurança.No final, você pode precisar configurar um modelo específico de sandboxing sem a necessidade de virtualização ou caixas separadas, ou a situação ainda em risco de chroot
. Duvido que tenha sido isso que você quis dizer, mas veja este link para obter informações mais detalhadas.
Firejail é relativamente novo e em constante desenvolvimento. Fácil de usar.
Você pode simplesmente:
sudo apt-get install firejail
firejail app
O Docker o ajudará a configurar contêineres que você pode executar fora do seu kernel atual, mas mantenha-o afastado do resto do seu sistema. Parece bastante avançado, mas há um foco no Ubuntu uma boa documentação.
Uma solução possível é um software de virtualização como o VirtualBox, que você pode encontrar no centro de software.
Agora você pode instalar o software em que não confia para ver o que ele faz. Ele não pode perturbar o mundo exterior ou você hospeda o SO, pois ele não tem acesso.
No entanto, isso pode prejudicar sua máquina virtual, mas, se houver, você poderá restaurar a partir do seu instantâneo.
Pode haver outros métodos para limitar o poder destrutivo de software não confiável, mas esse é o método mais robusto em que posso pensar.
Outra opção pode ser o LXC, mais informações aqui
LXC é o pacote de controle do espaço do usuário para Linux Containers, um mecanismo de sistema virtual leve, às vezes descrito como "chroot on steroids".
O LXC é desenvolvido a partir do chroot para implementar sistemas virtuais completos, adicionando mecanismos de gerenciamento e isolamento de recursos à infraestrutura de gerenciamento de processos existente do Linux.
Está disponível no centro de software. Eu não tenho experiência com no entanto.
O Mbox é um mecanismo leve de sandbox que qualquer usuário pode usar sem privilégios especiais em sistemas operacionais básicos.
Eu o usei para algumas coisas de maneira confiável.
Você pode usar o subusuário para proteger seus aplicativos com o Docker. Isso permite que você faça coisas como aplicativos da GUI da área restrita, o que não é fácil com o Docker diretamente.
sudo apt install subuser
Penso que uma solução possível é criar um usuário separado para fins de teste e limitar seus privilégios. Dessa forma, você não perderá o desempenho, o que definitivamente aconteceria na máquina virtual, mas acho que isso é menos seguro, se não configurado de maneira adequada, o que não posso aconselhar sobre como fazer.
No caso de você simplesmente desejar proteger a atividade dos usuários, você pode usar "DoSH"
O DoSH (que significa Docker SHell) é um desenvolvimento para criar contêineres do Docker quando os usuários efetuam login no sistema Linux e executam um shell neles, em vez de simplesmente criar o shell.