¿Cómo puedo ejecutar un ejecutable no confiable en Linux de forma segura?

34

He descargado un ejecutable compilado por un tercero y necesito que se ejecute en mi caja (Ubuntu 16.04 - x64) con acceso completo a recursos HW como CPU y GPU (a través de controladores nVidia).

Supongamos que este ejecutable contiene un virus o una puerta trasera, ¿cómo debo ejecutarlo?

¿Debo crear un nuevo usuario, ejecutarlo con él y luego eliminarlo?

editar

No apruebo la respuesta a continuación porque la cárcel de incendios podría no funcionar .

editar 2

firejail está bien, pero hay que tener mucho cuidado al especificar todas las opciones en términos de lista negra y lista blanca . Por defecto, no hace lo que se cita en este artículo de la revista Linux (ver también algunos comentarios del autor de firejail).

Tenga mucho cuidado cuando lo use, podría darle una falsa sensación de seguridad sin las opciones correctas.

Emanuele
fuente
esto podría ser mejor en Ask Ubuntu
phuclv

Respuestas:

56

En primer lugar, si es un binario de muy alto riesgo ... tendrías que configurar una máquina física aislada, ejecutar el binario, luego destruir físicamente el HDD, la placa base y, básicamente, todo lo demás. Porque hoy en día, incluso su robot aspirador puede propagar malware. ¿Y qué pasa si el programa ya ha infectado su microondas a través del altavoz de la PC usando transmisión de datos de alta frecuencia?

Pero, quitemos ese sombrero de papel de aluminio y volvamos a la realidad por un momento.

Sin virtualización, rápido de usar: Firejail

Ya está empaquetado en Ubuntu, es muy pequeño, prácticamente no tiene dependencias.
Cómo instalar en Ubuntu:sudo apt-get install firejail

Sitio web: https://firejail.wordpress.com/

Información del paquete:

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  

Hace unos días tuve que ejecutar un binario similar "no confiable". Y mi búsqueda condujo a este pequeño programa genial.

Virtualización: KVM , Virtualbox .
Esta es la apuesta más segura. Dependiendo del binario. Pero bueno, mira arriba.
Si ha sido enviado por "Mr. Hacker", que es un programador de black hat - black hat, existe la posibilidad de que el binario pueda escapar del entorno virtualizado.

Binario de malware, método de ahorro de costos: ¡ Alquile una máquina! Uno virtual. Ejemplo de proveedores de servidores virtuales: Amazon (AWS), Microsoft (Azure), DigitalOcean, Linode, Vultr, Ramnode. Usted alquila la máquina, ejecuta todo lo que necesita, y luego los eliminarán. La mayoría de los proveedores más grandes facturan por hora, por lo que es realmente barato.

apache
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Journeyman Geek
2

Simplemente ejecútelo en una instalación separada: configure una instalación separada en un disco externo u otro disco duro, asegúrese de que las particiones de su instalación principal no estén montadas (o mejor aún, desconéctelas) y pruebe. Puede hacer una copia de seguridad de esta preinstalación en caso de que la necesite nuevamente, y bombardearla una vez que haya terminado.

Es un método mucho más robusto que el sandboxing / jailing, y puede tratar con confianza la segunda instalación como desechable y / o usarla solo cuando sea necesario.

Journeyman Geek
fuente
2

Desde la página de manual de 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 es una descripción de alto nivel, hay otras cosas que están sucediendo, por ejemplo / boot está en la lista negra, y también lo están / sbin y / usr / sbin.

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

También puede consultar este documento: https://firejail.wordpress.com/documentation-2/firefox-guide/ : tienen una muy buena descripción del sistema de archivos.

vvasea
fuente