Estoy buscando recursos e información de personas que tengan experiencia en la ejecución de desafíos de captura de bandera.
Para resumir todo en una pregunta simple de una oración: ¿Cómo configura un servidor de tal manera que pueda permitir que sea hackeado a través de una vulnerabilidad muy específica mientras que (a) no se expone a usted ni a otros? riesgo indebido, y (b) evitar que un participante arruine la experiencia para otros.
Esto comparte mucho en común con la ejecución de un honeypot, pero una gran diferencia es el enfoque en mantener una experiencia constante para todos los visitantes para que un visitante no la "arruine" por los demás.
Como un poco de antecedentes, esto no se configura como una competencia, sino más bien como una forma de enseñar a los programadores el peligro y la naturaleza de las malas prácticas de codificación al mostrarles cómo se explotan. Por lo tanto, los servidores permanecerán accesibles de manera indefinida en lugar de simplemente durante una competencia.
Como motor de arranque: nuestro diseño existente consiste en máquinas Linux minimalistas y reducidas que se ejecutan como máquinas virtuales bajo KVM, todo el almacenamiento persistente montado solo para lectura, y todos los cambios del FS persistieron solo en la RAM. Los servidores se reinician periódicamente, eliminando cualquier posible cambio y volviendo a empezar de nuevo. No se permiten conexiones de red dentro o fuera a menos que sea necesario para la explotación en cuestión.