Quali opzioni di sandboxing leggero ho su linux?

3

Che cosa posso usare per evitare di eseguire una VM completa che mi offre una sicurezza paragonabile?

Forse, qualcosa come link ma non so quali sono le loro proprietà di sicurezza.

    
posta Elias 31.01.2017 - 16:16
fonte

2 risposte

1
  1. VM classica: ci sono due kernel, l'hypervisor utilizza la funzione CPU per emulare un hardware e il kernel guest generalmente non sa che è in esecuzione su un sistema virtualizzato. Generalmente si ritiene che ciò offra il massimo isolamento, tuttavia l'accesso limitato al sistema guest può essere complicato in quanto molte funzioni di sicurezza devono essere applicate dal sistema guest.

  2. Paravirtualizzazione: ci sono due kernel, il kernel guest è consapevole del fatto che è virtualizzato e utilizza un driver di paravirtualizzazione progettato specificamente per comunicare con l'host kernel / hypervisor per l'accesso all'hardware invece di provare ad accedere ad un hardware reale. Questo è il mezzo della strada in termini di isolamento e flessibilità.

  3. Contenitore: c'è solo un kernel, il kernel crea uno spazio dei nomi per ciascun contenitore in modo che i contenitori non possano vedersi l'un l'altro. Ciò fornisce il minimo isolamento, poiché eventuali errori di sicurezza nel kernel possono scoppiare nel sistema host, ma anche la più flessibile se è necessario definire una restrizione di accesso complicata. Ad esempio, con container è possibile definire un criterio SELinux che verrà applicato al sistema guest ma applicato dal sistema host.

Se vuoi eseguire un malware noto, ti suggerisco di utilizzare una macchina virtuale in piena regola. Come attualmente implementato, la tecnologia dei container come rkt e docker non è destinata a essere infrangibile dai processi privilegiati eseguiti all'interno del contenitore. Tuttavia, si noti anche che esiste una certa classe di malware chiamata malware pillola blu progettato per uscire dalla virtualizzazione classica sfruttando i difetti nell'hypervisor. Anche se questi sono abbastanza rari, non è consigliabile eseguire campioni di malware se hai zero indizi su cosa dovrebbe fare.

    
risposta data 06.02.2017 - 13:51
fonte
1

Dipende piuttosto da cosa intendi per "sicurezza comparabile".

Una delle principali differenze tra una VM e altri approcci è che il primo semplifica la gestione della disponibilità; è possibile migrare una VM in esecuzione su diversi nodi hardware, è facile creare uno snapshot dello stato di una VM in esecuzione su un'immagine del disco.

Ignorandoli per ora (forse è una domanda troppo complicata a cui rispondere qui):

1) Utilizzare correttamente il sistema operativo. Unix è sempre stato un sistema operativo multiutente / multi-tenant. Ha un modello sofisticato e maturo per utenti, file e processi. È possibile controllare la memoria disponibile, la pianificazione, l'archiviazione e l'utilizzo della CPU. Puoi anche avere firewall configurati per ambienti specifici sull'host (tramite netgroups).

2) esegui il software richiesto in un ambiente chroot (facoltativamente con elementi dall'alto)

3) esegue il software richiesto all'interno di un ambiente apparmor (facoltativamente con elementi dall'alto)

4) esegue il software richiesto in un contenitore (facoltativamente con elementi dall'alto)

    
risposta data 06.02.2017 - 14:41
fonte

Leggi altre domande sui tag