Come posso eseguire un eseguibile non attendibile su Linux in modo sicuro?


34

Ho scaricato un eseguibile compilato da una terza parte e ne ho bisogno per funzionare sulla mia scatola (Ubuntu 16.04 - x64) con pieno accesso alle risorse HW come CPU e GPU (tramite driver nVidia).

Supponiamo che questo eseguibile contenga un virus o una backdoor, come dovrei eseguirlo?

Devo creare un nuovo utente, eseguirlo con esso e quindi eliminare l'utente stesso?

modificare

Non approvare ancora la risposta di seguito perché firejail potrebbe non funzionare .

modifica 2

firejail è ok ma bisogna essere estremamente cauti nello specificare tutte le opzioni in termini di lista nera e lista bianca . Di default non fa ciò che è citato in questo articolo della rivista linux (vedi anche alcuni commenti dell'autore del firejail).

Fai molta attenzione quando lo usi, potrebbe darti un falso senso di sicurezza senza le giuste opzioni.


questo potrebbe essere meglio su Ask Ubuntu
phuclv

Risposte:


56

Innanzitutto, se si tratta di un binario ad alto rischio ... dovresti installare una macchina fisica isolata, eseguire il binario, quindi distruggere fisicamente l'HDD, la scheda madre e praticamente tutto il resto. Perché al giorno d'oggi, anche il tuo robot aspirapolvere può diffondere malware. E se il programma avesse già infettato il tuo forno a microonde attraverso l'altoparlante del PC utilizzando la trasmissione di dati ad alta frequenza ?!

Ma togliamo quel cappello di stagnola e torniamo alla realtà per un po '.

Nessuna virtualizzazione, veloce da usare: Firejail

È già impacchettato su Ubuntu, è molto piccolo, praticamente non ha dipendenze.
Come installare su Ubuntu:sudo apt-get install firejail

Sito Web: https://firejail.wordpress.com/

Informazioni sul pacchetto:

Package: firejail
Priority: optional
Section: universe/utils
Installed-Size: 457
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Reiner Herrmann <reiner@reiner-h.de>
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  

Ho dovuto eseguire un binario simile "non attendibile" solo pochi giorni fa. E la mia ricerca ha portato a questo piccolo programma molto interessante.

Virtualizzazione: KVM , Virtualbox .
Questa è la scommessa più sicura. A seconda del binario. Ma hey, vedi sopra.
Se è stato inviato da "Mr. Hacker" che è un programmatore cintura nera - cappello nero, c'è una possibilità che il binario possa sfuggire all'ambiente virtualizzato.

Binario malware, metodo di risparmio: noleggia una macchina! Uno virtuale. Esempio di provider di server virtuali: Amazon (AWS), Microsoft (Azure), DigitalOcean, Linode, Vultr, Ramnode. Noleggiate la macchina, eseguite tutto ciò di cui avete bisogno, quindi le cancelleranno. La maggior parte dei maggiori fornitori fattura ogni ora, quindi è davvero economica.


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Journeyman Geek

2

Eseguilo su un'installazione separata: imposta un'installazione separata su un'unità esterna o su un altro disco rigido, assicurati che le partizioni dell'installazione principale non siano montate (o meglio ancora, scollegale) e test. È possibile eseguire il backup di questa preinstallazione nel caso in cui sia necessario di nuovo e, una volta terminato, eseguire l'annotazione.

È un metodo molto più robusto del sandboxing / jailing e puoi tranquillamente considerare la seconda installazione come usa e getta e / o usarla solo quando necessario.


2

Dalla pagina man di 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.

Questa è una descrizione di alto livello, ci sono altre cose in corso, ad esempio / boot è nella lista nera, così come / sbin e / usr / sbin.

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

Puoi anche guardare questo documento: https://firejail.wordpress.com/documentation-2/firefox-guide/ - hanno un'ottima descrizione del file system.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.