Hace muchos años, cuando tuve que capacitar a jóvenes profesionales para trabajar con Active Directory, estaba calculando tristemente qué tipo de potencia informática necesitaría de un centro de capacitación. Era ese momento distante cuando la virtualización acababa de comenzar a conquistar la TI. Puse los requisitos para trabajos, controladores de dominio, servidores de aplicaciones en una columna, y los números no me complacieron en absoluto. No complacieron al administrador del centro de capacitación.
Desde entonces, se ha leído una gran cantidad de cursos, pero el problema de los recursos no ha desaparecido en ninguna parte, mientras que un enorme mamífero azul cargado de contenedores se cernía en el horizonte.
Por supuesto, creo que todos buscaron en Google "Contenedor vs VM" y obtuvieron algo así.

No explica mucho, pero la esencia general es clara: en lugar de una gran cantidad de sistemas operativos y aplicaciones en ellos, lanzamos un sistema operativo, y las aplicaciones necesarias comienzan dentro de él. Este enfoque tiene sus pros y sus contras, pero hoy hablaremos sobre cómo los contenedores pueden ayudar a capacitar a los pentesters y auditores.
Lo más simple que podría ser es usar contenedores para crear entornos de trabajo intencionalmente vulnerables. Ahora, en lugar de implementar las versiones necesarias de apache, mysql y otras cosas, podemos obtener un contenedor listo para usar con todo lo que necesita. Comencemos, por supuesto, con los clásicos:
• La aplicación web DVWA más popular y condenadamente vulnerable. Una aplicación clásica de php / mysql con sus favoritos XSS, CSRF, LFI y más. Un poco anticuado, pero se sigue encontrando en cada segundo pentest:
Damn Vulnerable Web Application (DVWA) (docker pull ciudadanotig / dvwa)• Otra aplicación popular en la que las vulnerabilidades están estructuradas de acuerdo con OWASP TOP10:
Aplicación de práctica de prueba de pluma web OWASP Mutillidae II (docker pull ciudadanotig / nowasp)• Tienda de jugos OWASP, creada sobre la base del popular angular, node.js, nosql, pero no menos vulnerable a esto. Mi elección para cualquiera que se sumerja en el valiente mundo de las pruebas de penetración:
OWASP Juice Shop (docker pull bkimminich / juice-shop).• El mismo OWASP TOP10, solo basado en Node.js:
OWASP NodeGoat (docker-compose build && docker-compose up)• Otra aplicación de OWASP con el mismo conjunto de vulnerabilidades:
Imagen del acoplador OWASP WebGoat Project 8.0 (acoplador de extracción webgoat / webgoat-8.0)• Una vez que hay una cabra, debe haber un pastor. En nuestro caso, este es OWASP Security Shepherd, que le permite ver el lado del cliente de las aplicaciones web, así como las aplicaciones móviles:
OWASP Security Shepherd (docker pull ismisepaul / securityshepherd)Periódicamente, cuando se revela otra vulnerabilidad, puede ser útil tocarla con las manos. No necesita elevar una máquina virtual para esto. Tenemos VaaS - vulnerabilidad como servicio:
•
Vulnerabilidad como servicio: Heartbleed (docker pull hmlio / vaas-cve-2014-0160)•
Vulnerabilidad como servicio: SambaCry (docker pull vulnerables / cve-2017-7494)•
Vulnerabilidad como servicio: Shellshock (docker pull hmlio / vaas-cve-2014-6271)También puede explorar productos específicos que se encuentran con mayor frecuencia en pentests, por ejemplo, WordPress vulnerable:
•
Instalación de WordPress vulnerable (docker pull wpscanteam / vulnerablewordpress)Además, las herramientas de prueba se pueden obtener en forma de contenedores:
nmap ,
zap ,
wpscan ,
metasploit , etc.
E incluso toda la imagen de Kali Linux se puede obtener con el
comando docker pull kalilinux / kali-linux-dockerPor cierto, ahora los propios contenedores se han convertido en objetos de prueba, por lo que las máquinas virtuales correspondientes comenzaron a aparecer para el autoaprendizaje:
Vulnerable Docker: 1 ,
BSidesTLV: 2018 CTF ,
myHouse7: 1 ,
DonkeyDocker: 1 .
Los contenedores tienen muchas ventajas, sin embargo, es obvio que el número de adherentes de las máquinas virtuales clásicas no se está reduciendo. Hay muchas razones para esto, pero de hecho, si los recursos de su centro de capacitación lo permiten y puede automatizar el trabajo con Packer y Vagrant, es demasiado pronto para pensar en este tema.
Sergey Polunin ,
Jefe de equipo, Departamento de diseño, Gazinformservice LLC