Quali sono i limiti nell'esecuzione di un test di penetrazione con una macchina virtuale invece di una fisica?
Quali sono i limiti nell'esecuzione di un test di penetrazione con una macchina virtuale invece di una fisica?
Secondo me, eseguire un test di penetrazione da una macchina virtuale è in realtà il modo migliore di farlo dal punto di vista opsec (ovvero mantenere la separazione tra i dati dei tuoi clienti).
Le limitazioni possono derivare dal fatto che non è possibile accedere direttamente all'hardware sottostante, in particolare:
Detto questo, la maggior parte di questi problemi può essere risolta dedicando l'hardware necessario alla VM (ad esempio passthrough PCI o USB).
Uso la macchina docker e il packer / vagrant con vmwarefusion come mio provider. Posso controllare lo stato delle mie macchine con:
docker ps
vagrant global-status
Vagrant è usato per Windows e OS X mentre Docker è usato per Linux e FreeBSD.
Ad esempio, l'immagine del Docker di Kali 2.0 è iniziata a circa 550 MB e ora è di circa 1,8 GB. Risparmio molto spazio su disco in questo modo e sono in grado di diffondere facilmente le mie immagini per determinare cosa è cambiato e come è cambiato. Ho immagini per Arch, CentOS, Debian, Fedora, FreeBSD, Kali, Qubes, REMnux, RHEL, Scientific e Ubuntu.
Accedere ai miei contenitori è molto semplice. Posso avere una nuova immagine OS X o Windows avviata in circa 15 secondi. Docker è molto più veloce - frazioni di millisecondo da collegare a un contenitore funzionante appena creato. Io uso CTRL + P CTRL + Q per staccare, quasi come lo schermo o tmux.
A mio parere, è l'effetto opposto: mi sento limitato nelle mie capacità di test di penetrazione senza macchine virtuali. Mi sento particolarmente abilitato con container e flussi di lavoro basati su Docker. L'utilizzo di un singolo sistema operativo solo host è la vera limitazione. In quale altro modo dovresti emulare ambienti, strumenti scenici o sviluppare nuove idee senza un laboratorio in costante evoluzione?
È possibile che possa avere alcuni problemi di iniezione di pacchetti poiché la VM vedrà l'interfaccia virtuale invece dell'interfaccia fisica. Ciò avrà effetto solo su alcuni attacchi wireless.
Oltre a questo non posso pensare ad altri problemi.
Nella mia esperienza personale, le macchine virtuali non contano molto se non si hanno programmi in esecuzione che a volte richiedono l'interazione diretta con determinati hardware.
Ad esempio, scenari in cui si desidera indirizzare direttamente la GPU (cracking della password) o dove si desidera eseguire alcune operazioni di rete di basso livello potrebbe darti dei problemi.
Inoltre dipende anche dal tipo di virtualizzazione che usi.
Teoricamente, le uniche limitazioni che potresti incontrare quando usi una macchina virtuale sono intrinseche alle limitazioni hardware stesse e questo dipende completamente dalla natura del pentest che vuoi eseguire. In pratica, puoi dire che non ci sono limiti in (molto) casi più comuni.
Nella mia esperienza con MSF (Metasploit Framework) la potenza in più che puoi lanciare è migliore, preferirai una VM potente con una connessione WAN veloce su un notebook i3 dedicato con 4 GB di RAM.
Leggi altre domande sui tag penetration-test