Inizierò dicendo che questa domanda è molto ampia e mostra pochissime ricerche originali e che questa risposta non dovrebbe essere vista come un incoraggiamento per quel tipo di domanda. Al contrario, questa risposta spera di fornire alcuni suggerimenti di sicurezza estremamente basilari per le persone che hanno appena iniziato con l'analisi del malware.
Lavorando sul presupposto che si stia eseguendo malware noto precedentemente ricercato, il modo in cui isolare il proprio ambiente dipende fortemente dalle capacità di tale malware. Alcune regole generali che si applicano alla maggior parte dei malware moderni potrebbero essere:
Isola la tua VM da Internet. Questo può essere semplice come non impostare l'inoltro dell'interfaccia al computer guest e impedisce al malware di comunicare con eventuali nodi di comando e controllo che potrebbero indurlo ad agire in modo imprevedibile.
Utilizzare un hypervisor appropriato. Ci sono alcuni dei principali sul mercato, tra cui VirtualBox, HyperV, QEMU e macOS Hypervisor.framework
, solo per citarne alcuni; alcuni di questi sono attivamente colpiti dal malware e, a seconda della versione, potrebbero essere vulnerabili al malware che fuoriesce dal computer guest.
Sicuramente non installare aggiunte guest o altri analoghi della piattaforma. L'obiettivo letterale di questo tipo di software è quello di stabilire l'integrazione tra ospite e host, indebolendo effettivamente la separazione tra di loro. Non sono un ricercatore di malware, ma sarei sorpreso se non esistesse un malware specifico per questo tipo di superficie.
Per indirizzare direttamente alcuni dei tuoi punti:
Quanto è isolata una macchina virtuale dall'host?
A questo punto, una VM può essere isolata in modo abbastanza completo, ma alcune funzioni devono ancora passare attraverso l'host più o meno direttamente, con poca protezione dell'hypervisor. La maggior parte delle macchine virtuali non KVM (come VirtualBox) non condividerà un kernel con il sistema operativo host. Questo da solo funge da blocco contro numerose classi di exploit, in particolare bloccando la possibilità di eseguire syscall arbitrarie contro il kernel host (con il notevole asterisco che un'implementazione a livello di macchina virtuale rotta può consentire al malware di aggirare questo problema in modi meno ovvi).
Tuttavia, la tua macchina virtuale ha ancora uno spazio di processo all'interno dell'hardware della tua macchina host e, sebbene ciò non rappresenti generalmente un rischio poiché i sistemi operativi moderni offrono un discreto isolamento dello spazio di processo, possono comunque essere utilizzati per sfruttare attacchi di livello estremamente basso come un martello pneumatico , dove un processo scrive sequenzialmente nella memoria in un modo specifico fino a quando non è in grado di leggere blocchi di memoria adiacenti di cui non è proprietario, consentendo in tal modo una perdita di memoria tra i processi.
Vale anche la pena notare che l'isolamento tende a scomparire un po 'quando si desidera essenzialmente qualsiasi tipo di I / O: input e output significano necessariamente passthrough, che espone una superficie di attacco che può essere sfruttata per eseguire azioni dell'host. Ciò include il passthrough HID come un mouse e una tastiera, nonché elementi come il passthrough di rete, sebbene ciò dipenda generalmente da quanto bene sia implementato il passthrough I / O nella VM.
Devo (o posso?) Impostare un firewall tra il guest e l'host?
Dipende, ma generalmente non è una cattiva idea . La maggior parte delle piattaforme principali supporta firewall a livello di hypervisor. Questi sono al massimo permissivi come il firewall sul tuo computer host, che a sua volta è al massimo permissivo come il firewall sulla tua LAN o VLAN. Se vuoi sfruttare questo invece di tagliare completamente l'accesso alla rete scollegando le interfacce di rete virtuale, ti consiglio di fare delle ricerche su quali porte e host target di malware selezionato e andare da lì.
I componenti aggiuntivi per gli ospiti sono un rischio per la sicurezza?
Sì . Consentono tutti i tipi di integrazioni tra la macchina host e la macchina ospite e non sempre presentano specifiche aperte in cui è possibile vedere cosa viene aperto; vedi sopra.
Che dire delle directory condivise?
Dipende da come lo stai facendo, ma spesso è una cattiva idea . Molti hypervisor lo fanno creando un'unità virtuale montata nel computer guest la cui radice si trova in quella directory. A seconda dell'implementazione di quel meccanismo, che può variare leggermente tra i framework, potresti essere o meno al sicuro, a seconda del malware che stai provando a testare.
La mia preoccupazione è che tu abbia fatto pochissime ricerche in merito e che potresti finire per danneggiare la tua macchina o i tuoi dati. Prima di continuare, ti consiglio di esaminare i diversi meccanismi di isolamento sui sistemi operativi comuni (KVM), come si integrano con i quadri di virtualizzazione di livello superiore ( macchina virtuale ), i contenitori ( contenitore ) e il chroot
meccanismo ( chroot ) per nominare alcuni), quando ciascuno è appropriato e cosa possono e cosa non possono fare. A quel punto, sarai in grado di giudicare meglio se puoi tranquillamente giocare con il malware in un ambiente adeguatamente isolato.
Infine, non dovresti impegnarti a provare a lavorare con malware nuovi o poco conosciuti (a meno che tu non sia un ricercatore esperto di sicurezza, ma questa risposta non è rivolta a ricercatori esperti di sicurezza). Gli attori dannosi sono estremamente creativi quando si tratta di ciò che sfruttano e di come lo sfruttano. Per avere un'idea di ciò, dai un'occhiata ai recenti discorsi DEFCON che non sono incentrati sull'ingegneria sociale o sull'accesso fisico attraverso mezzi meccanici.