Como posso executar um executável não confiável no linux com segurança?

34

Fiz o download de um executável compilado por terceiros e preciso que ele seja executado na minha caixa (Ubuntu 16.04 - x64) com acesso total aos recursos de HW, como CPU e GPU (por meio de drivers da nVidia).

Suponha que este executável contenha vírus ou backdoor, como devo executá-lo?

Devo criar um novo usuário, executá-lo com ele e excluir o próprio usuário?

editar

Ainda não aprovou a resposta abaixo, porque o firejail pode não estar funcionando .

editar 2

O firejail está ok, mas é preciso ter muito cuidado ao especificar todas as opções em termos de lista negra e lista branca . Por padrão, ele não faz o que é citado neste artigo da revista linux (veja também alguns comentários do autor do firejail).

Seja extremamente cuidadoso ao usá-lo, pois isso pode lhe dar uma falsa sensação de segurança sem as opções corretas.

Emanuele
fonte
isso pode ser melhor no Ask Ubuntu
phuclv

Respostas:

56

Em primeiro lugar, se for um binário de alto risco ... você teria que configurar uma máquina física isolada, executar o binário e destruir fisicamente o disco rígido, a placa-mãe e basicamente todo o resto. Porque hoje em dia, até o vácuo do seu robô pode espalhar malware. E se o programa já infectou seu micro-ondas através do alto-falante do PC usando transmissão de dados de alta frequência ?!

Mas, vamos tirar esse chapéu de papel alumínio e voltar à realidade um pouco.

Sem virtualização, rápido de usar: Firejail

Já está empacotado no Ubuntu, é muito pequeno, praticamente não possui dependências.
Como instalar no Ubuntu:sudo apt-get install firejail

Website: https://firejail.wordpress.com/

Informações do pacote:

Package: firejail
Priority: optional
Section: universe/utils
Installed-Size: 457
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Reiner Herrmann <[email protected]>
Architecture: amd64
Version: 0.9.38-1
Depends: libc6 (>= 2.15)
Filename: pool/universe/f/firejail/firejail_0.9.38-1_amd64.deb
Size: 136284
MD5sum: 81a9a9ef0e094e818eb70152f267b0b6
SHA1: 41d73f8b9d9fd50ef6520dc354825d43ab3cdb16
SHA256: f1cbc1e2191dbe6c5cf4fb0520c7c3d592d631efda21f7ea43ab03a3e8e4b194
Description-en: sandbox to restrict the application environment
 Firejail is a SUID security sandbox program that reduces the risk of
 security breaches by restricting the running environment of untrusted
 applications using Linux namespaces and seccomp-bpf.  It allows a
 process and all its descendants to have their own private view of the
 globally shared kernel resources, such as the network stack, process
 table, mount table.
Description-md5: 001e4831e20916b1cb21d90a1306806f
Homepage: https://firejail.wordpress.com
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu  

Eu tive que executar um binário "não confiável" semelhante, apenas alguns dias atrás. E minha pesquisa levou a esse pequeno programa muito legal.

Virtualização: KVM , Virtualbox .
Esta é a aposta mais segura. Dependendo do binário. Mas ei, veja acima.
Se ele foi enviado por "Mr. Hacker", que é um programador de faixa preta - black hat, há uma chance de o binário escapar do ambiente virtualizado.

Binário de malware, método de economia de custo: alugue uma máquina! Virtual. Exemplo de provedores de servidor virtual: Amazon (AWS), Microsoft (Azure), DigitalOcean, Linode, Vultr, Ramnode. Você aluga a máquina, executa o que precisar, e eles a limpam. A maioria dos provedores maiores fatura por hora, por isso é realmente barato.

Apache
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Journeyman Geek
2

Basta executá-lo em uma instalação separada - configure uma instalação separada em uma unidade externa ou em outro disco rígido, verifique se as partições da instalação principal não estão montadas (ou, melhor ainda, desconecte-as) e teste. Você pode fazer o backup dessa pré-instalação, caso precise novamente, e destruí-lo quando terminar.

É um método muito mais robusto do que o sandbox / encarceramento, e você pode tratar com confiança a segunda instalação como descartável e / ou usá-la somente quando necessário.

Journeyman Geek
fonte
2

Na página do manual Firejail:

   Without  any  options,  the sandbox consists of a filesystem build in a
   new mount namespace, and new PID and UTS namespaces. IPC,  network  and
   user  namespaces  can  be  added  using  the  command line options. The
   default Firejail filesystem is based on the host  filesystem  with  the
   main  system directories mounted read-only. These directories are /etc,
   /var, /usr, /bin, /sbin, /lib, /lib32, /libx32 and /lib64.  Only  /home
   and /tmp are writable.

Esta é uma descrição de alto nível, há outras coisas acontecendo, por exemplo, / boot está na lista negra, assim como / sbin e / usr / sbin.

https://firejail.wordpress.com/features-3/man-firejail/

Você também pode consultar este documento: https://firejail.wordpress.com/documentation-2/firefox-guide/ - eles têm uma descrição muito boa do sistema de arquivos.

vvasea
fonte