È possibile utilizzare macchine virtuali per isolare software vulnerabili?

8

Ho dato un'occhiata alla maggior parte delle domande precedenti sulle macchine virtuali (VM) e sembrano tutte focalizzate sull'hosting di malware nella VM e ad impedire che si diffondano nella VM.

Ciò che non riesco a trovare è il contrario, ad esempio utilizzando una VM per eseguire un sistema operativo obsoleto e impedire al malware di compromettere la VM tramite l'host.

Ovviamente per ridurre al minimo il rischio di compromissione, il sistema operativo vulnerabile deve essere isolato il più possibile dalle minacce esterne, quindi assumiamo quanto segue:

  • Nessuna connettività di rete;
  • Altre interfacce disabilitate (USB, Bluetooth ecc.);
  • Trasferimento di file tramite un'unità / partizione dedicata solo sull'host (ovvero senza accesso all'unità di sistema dell'host).

E quanto segue per il sistema host:

  • Sistema operativo corrente;
  • Patching regolare;
  • AV aggiornato:
  • Limitazioni sull'importazione di file (ad esempio blocco di tipi di file pericolosi via email, Internet e supporti rimovibili).

È in esecuzione il sistema operativo vulnerabile (o qualsiasi altro software) in questo modo un modo efficace per isolarlo e prevenire exploit esterni?

    
posta R15 21.11.2014 - 14:01
fonte

1 risposta

3

È possibile uscire da una VM ed eseguirlo sulla macchina host che di solito è la versione e il software specifico, quindi lo scopo di questo attacco vero e proprio, ma sono sicuro che avrete indovinato che è una possibilità molto bassa ma non essere trascurato.

Se sei molto paranoico e vuoi la massima sicurezza, nessun software può offrirti un completo isolamento. Utilizzare un computer fisico che non ha accesso a qualsiasi dispositivo in grado di emettere segnali a qualsiasi dispositivo remoto.

Se non è possibile utilizzare una macchina fisica, sì, VM è la soluzione migliore. Assicurati di limitare l'utente che esegui la VM attuale non ha più permessi (DACL, ecc.) Che richiede effettivamente di ridurre al minimo il rischio di sicurezza che il malware esegue al di fuori della VM.

Modifica Scusa, ho interpretato erroneamente ciò che l'OP chiedeva. Tanto meno mi lascio sopra la risposta se qualcuno fa il contrario.

Detto questo, ovviamente è possibile entrare in una VM. Io uso Visual Studio che è un IDE di programmazione e c'è un plug-in VMWare che è possibile eseguire il debug del software in VM in esecuzione creato da VMWare. Pertanto, se VMWare Plugin è in grado di visualizzare tutte le VM in esecuzione, è necessario esportarle utilizzando un IPC su VMWare stesso.

Anche se il fornitore VM non aveva funzionalità incorporate se il software dannoso può eseguire OpenProcess (o API inferiori come NtOpenProcess), ReadProcessMemory (NtReadVirtualMemory), WriteProcessMemory (NtWriteVirtualMemory):

link

link

link

Bene, questa lista potrebbe continuare su altre forme di iniezione di codice. Spezzare dall'ospite in un ospite dovrebbe essere più semplice dato che avrai accesso diretto alla memoria.

Per proteggere il tuo software, dovrai eseguirlo con un altro utente e negare a tutti gli altri utenti che utilizzano DACL quanto segue:

  • PROCESS_VM_OPERATION
  • PROCESS_VM_READ
  • PROCESS_VM_WRITE
  • WRITE_DAC
  • WRITE_OWNER
  • PROCESS_DUP_HANDLE

link

Infine assicurati di utilizzare un AV che monitora IPC e memoria virtuale e fisica.

@Comment Sì, il rischio è davvero minimo, a meno che non sia il tuo obiettivo come individuo. Se l'utente malintenzionato può compromettere il computer host, le macchine virtuali sono facilmente a rischio a meno che non si siano eseguite le attività sopra riportate per ridurre la portata dell'attacco. Però, se il malware riesce a entrare nel kernel, allora è game over indipendentemente dalla sicurezza che hai messo in atto. Il malware sul computer host che accede alla macchina ospite è un campo completamente diverso.

Per spiegare meglio questo aspetto farò lo scenario:

  • Il tuo software VM è Oracle VirtualBox
  • Il tuo computer host è un sistema operativo Windows che è stato infettato da x malware.
  • La tua macchina ospite è isolata da qualsiasi connessione remota ecc. che al momento è priva di virus (questo è il motivo per cui è diversa dalla scala di attacco all'host)

Sfruttare i componenti incorporati del software (metodo Easy):

  1. Il modo più semplice per spiegarlo senza conoscere gli interni di Windows potrebbe essere un eseguibile chiamato VBoxManage.exe che è in grado di gestire l'hardware della VM e dell'intera VM stessa. Pertanto, il malware invoca solo i comandi dannosi a VBoxManage.exe per copiare ed eseguire il malware sul computer guest. Tuttavia, tieni presente che le autorizzazioni di amministratore sono richieste dal malware. Se mi fai sapere che la VM stai usando, posso darti un raggio d'azione più preciso. VMWare ha praticamente le stesse funzionalità di Oracle VirtualBox senza mettere tutto nei dettagli. Non uso VirtualBox da un po 'di tempo, quindi le cose potrebbero essere leggermente diverse ma potresti usare un comando chiamato VBoxManage.exe guestcontrol.

L'hacking della memoria

  1. Diciamo per argomento che non esiste alcun eseguibile da riga di comando per gestire la VM e / o l'SDK su come comunicare con VM. Se il processo malware può utilizzare l'API OpenProcess con PROCESS_VM_OPERATION, PROCESS_VM_READ e PROCESS_VM_WRITE, il malware può eseguire molti diversi modi per iniettare codice o leggere dati dal processo VM. Questo può essere un compito molto impegnativo o facile, ma è difficile da dire senza provarlo da solo, anche se sono sicuro che le autorizzazioni di amministratore sarebbero necessarie per iniziare.

Non so se vuoi che entri nei dettagli della sicurezza del processo e decodifichi il software? O semplicemente attenersi a quanto sopra su come ridurre l'ambito degli attacchi relativamente alle autorizzazioni di processo e alle autorizzazioni degli utenti.

    
risposta data 21.11.2014 - 14:54
fonte

Leggi altre domande sui tag