Sandbox per GNU / Linux abbastanza sicuro per eseguire malware in esso senza danno [chiuso]

1

Sto sembrando che una sandbox per Linux sia abbastanza sicura da eseguire malware in modo sicuro. Dovrebbe consentire

  1. crea sandbox diversi

  2. eseguono diversi programmi in essi, compresi quelli che richiedono i privilegi di amministratore (in questo caso sandbox deve fornire loro un amministratore simulato, indistinguibile da quello reale se non è necessario un accesso di basso livello agli interni del sistema operativo e all'hardware).

  3. limitano il loro accesso a diverse API, ad esempio limitano l'accesso a Internet a processi non autorizzati, l'installazione dei driver, l'accesso a cartelle diverse, i processi di avvio eccetto quelli da whitelist, accesso ai contenuti di basso livello, ecc ... le restrizioni devono essere configurabili.

  4. ogni sandbox dovrebbe avere una propria cartella / fs in cui sono archiviati i file modificati, dovrebbe essere usato copy-on-write per consentire ai processi sandboxed di scrivere

  5. i processi in modalità sandbox all'interno della stessa sandbox dovrebbero essere in grado di interagire tra loro, ma non con il resto dei processi (a meno che non sia permesso).

  6. tutte le modifiche apportate nel sistema principale dovrebbero essere disponibili in sandbox

  7. Dovresti riuscire a trasferire facilmente i file dalla sandbox al sistema operativo principale

  8. Dovresti essere in grado di eseguire app che utilizzano GPU al suo interno.

L'esempio di tale sandbox per Windows è SandboxIE . A volte dovevo eseguire malware nella sandbox, il malware non si era infiltrato nel sistema principale. Esiste anche una soluzione di analisi del malware (bsa.isoftware.nl) basata su SandboxIE.

Esiste una soluzione per Linux che offre una sicurezza paragonabile senza virtualizzare l'intero sistema operativo in KVM / Xen? È possibile ottenere questo effetto combinando SELinux con LXC e alcuni file system di copia su scrittura? C'è una soluzione che fa questo?

    
posta KOLANICH 28.09.2015 - 15:48
fonte

1 risposta

4

Create different sandboxes

Linux attualmente supporta sei tipi di spazio dei nomi del kernel :

  • Spazio dei nomi IPC
  • Spazio dei nomi di rete
  • Monta spazio dei nomi
  • Spazio dei nomi PID
  • spazio dei nomi utente
  • Spazio dei nomi UTS

run different programs in them, including the ones requiring admin privileges (in this case SandboxIE gives them simulated admin).

fakeroot può dare ai programmi l'accesso root simulato, ma scoprirai che non è così utile come pensi. Un programma completamente in modalità sandbox è un programma inutile e un programma che non è in modalità sandbox non riesce a soddisfare i requisiti di sicurezza.

restrict their access to different APIs, for example restrict internet access to non-whitelisted processes, driver installation, access to different folders, launching processes except the ones from whitelist, low level media access, etc ...

In Linux, questi accessi sono limitati usando il regolare meccanismo dei privilegi di sistema. Esistono diversi sistemi:

  • autorizzazione file system Unix tradizionale: limita chi può accedere ai file
  • capacità : limita le chiamate di sistema che possono essere fatte da un processo di root
  • SELinux / AppArmor / TOMOYO: controllo di accesso obbligatorio per applicare le politiche di sicurezza

each sandbox has its own folder where modified files are stored, copy-on-write is used to allow the sandboxed processes to write

Linux supporta copia su file system di scrittura come btrfs, oppure può essere usato un filesystem di sovrapposizione come UnionFS o OverlayFS.

sandboxed processes within the same sandbox can interact with each other, but cannot with the rest of the processes (unless allowed).

Questo è lo spazio dei nomi del kernel.

sandboxed processes in fact have the lowest integrity level, but they don't sense this at most cases.

Linux non ha un concetto come il livello di integrità. Tuttavia, Linux consente una configurazione di integrità molto più fine con il sistema di capacità e i quadri di controllo di accesso obbligatori.

all the changes made in the main system are available in sandbox

Puoi farlo con un overlayfs.

you can transfer files from sandbox to the main OS easily

Questo dipende da come sono configurati i contenitori.

Queste sono le funzionalità del kernel che esistono per i programmi che possono essere utilizzati dal programma per trarne vantaggio. I programmi userland che useresti per usare queste funzionalità del kernel sono solitamente Linux Containers (LXC) o Docker.

    
risposta data 28.09.2015 - 17:34
fonte

Leggi altre domande sui tag