¿Cuáles son las limitaciones al realizar una prueba de penetración con una máquina virtual en lugar de una física?
¿Cuáles son las limitaciones al realizar una prueba de penetración con una máquina virtual en lugar de una física?
En mi opinión, realizar una prueba de penetración desde una máquina virtual es en realidad la forma preferida de hacerlo desde la perspectiva de Opsec (es decir, para mantener la separación entre los datos de sus clientes).
Pueden surgir limitaciones debido al hecho de que no puede acceder directamente al hardware subyacente, en particular:
Dicho esto, la mayoría de estos problemas se pueden resolver dedicando el hardware necesario a la máquina virtual (por ejemplo, PCI o USB).
Utilizo docker-machine y packer / vagrant con vmwarefusion como mi proveedor. Puedo verificar el estado de mis máquinas con:
docker ps
vagrant global-status
Vagrant se usa para imágenes de Windows y OS X, mientras que Docker se usa para Linux y FreeBSD.
La imagen de mi Kali 2.0 Docker, por ejemplo, comenzó a alrededor de 550 MB y ahora tiene alrededor de 1,8 GB. Ahorro mucho espacio en disco de esta manera, y soy capaz de diferenciar mis imágenes fácilmente para determinar qué ha cambiado y cómo ha cambiado. Tengo imágenes para Arch, CentOS, Debian, Fedora, FreeBSD, Kali, Qubes, REMnux, RHEL, Scientific y Ubuntu.
Acceder a mis contenedores es muy fácil. Puedo tener una nueva imagen de OS X o Windows iniciada en unos 15 segundos. Docker es mucho más rápido: fracciones de milisegundos para unir a un contenedor de ejecución recién creado. Uso CTRL + P CTRL + Q para separar, casi como pantalla o tmux.
En mi opinión, es el efecto contrario: me siento limitado en mis capacidades de prueba de penetración sin máquinas virtuales. Me siento especialmente habilitado con contenedores y flujos de trabajo basados en Docker. El uso de un único sistema operativo solo de host es la verdadera limitación. ¿De qué otra forma se supone que debes emular entornos, herramientas de escenario o desarrollar nuevas ideas sin un laboratorio en constante evolución?
Usted puede tener algunos problemas de inyección de paquetes, ya que la VM verá la interfaz virtual en lugar de la interfaz física. Esto solo afectará algunos ataques inalámbricos.
Aparte de esto, no puedo pensar en ningún otro problema.
En mi experiencia personal, las máquinas virtuales realmente no importan siempre y cuando no tenga programas en ejecución que a veces necesiten una interacción directa con cierto hardware.
Para situaciones de ejemplo en las que desea abordar directamente la GPU (descifrado de contraseñas) o donde desea realizar algunas operaciones de red de bajo nivel, es posible que tenga problemas.
Además, también depende del tipo de virtualización que use.
Teóricamente, las únicas limitaciones a las que podría enfrentarse al usar una máquina virtual son inherentes a las limitaciones de hardware y esto depende completamente de la naturaleza del Pentest que desee realizar. En la práctica, puede decir que no hay limitaciones en la mayoría de los casos comunes.
En mi experiencia con MSF (Metasploit Framework), cuanto más potencia pueda ofrecer, mejor: preferirá una VM potente y grande con una conexión WAN rápida en lugar de una notebook i3 dedicada con 4GB de RAM.
Lea otras preguntas en las etiquetas penetration-test