¿Qué es un CTF? Es un tipo de competencia de seguridad informática, llamada CTF porque captura una "bandera", una cadena única, y la envía a la infraestructura de puntuación para obtener puntos. Los CTF son casi siempre limitados en el tiempo, a menudo de 24 a 48 horas (generalmente continuos durante un fin de semana, lo que le da a los competidores de todo el mundo una oportunidad justa, independientemente de la zona horaria). Hay dos tipos principales de CTF: riesgo y ataque / defensa. Los CTF estilo Jeopardy son más fáciles de organizar y también más fáciles de jugar / menos castigadores para los nuevos jugadores. En un CTF de estilo de riesgo, los organizadores escriben un conjunto de desafíos (servicios binarios o web vulnerables que se ejecutan en la nube, desafíos de inversión de tipo crackme, cosas ocultas en imágenes de disco o captura de paquetes o mensajes cifrados), asignan valores de puntos a cada uno desafío, y ponerlos a disposición de los competidores (a menudo en un tablero como el que está en peligro, con los desafíos organizados por dificultad y categoría (explotación típica, ingeniería inversa, explotación web, criptografía y análisis forense como categorías típicas)). Cuando comienza la competencia, los concursantes obtienen acceso a la grilla de desafíos, los resuelves y envías banderas para obtener puntos, y al final, quien tenga más puntos gana (los empates generalmente se rompen por tiempo para alcanzar el total de puntos ganadores: más rápido es mejor) .
En un CTF de ataque / defensa, los organizadores aún construyen un conjunto de servicios vulnerables, pero cada equipo debe ejecutar una copia de estos servicios, que deben defender. Piratea a otros equipos para robar sus banderas e intenta parchear sus propios servicios para evitar que otros equipos hagan lo mismo con usted. Los CTF de A / D implican una gran cantidad de trabajo adicional de logística e infraestructura para los organizadores (VPN, hosts de destino por equipo, & c). También pueden ser muy desmoralizantes para los nuevos jugadores si te están pisoteando (o si alguien tiene persistencia en tu infraestructura) y no hay nada que puedas hacer al respecto. Sin embargo, también pueden ser muy divertidos, y trabajan algunas habilidades inusuales como la aplicación de parches binarios y la reflexión de exploits.
En términos de preparación: estudio, práctica y herramientas. Las sugerencias de Florent Uguet para los juegos de guerra son buenas para la práctica. Algunos otros recursos que podrían ser útiles incluyen:
- Trail of Bits ' Guía de campo de CTF tiene algunas conferencias, listas de herramientas y tutoriales de antiguos problemas de CTF.
-
picoCTF es un CTF dirigido a estudiantes de secundaria con muy pocos antecedentes. La competencia terminó, pero los organizadores han dejado los problemas para que la gente aprenda. Es un buen lugar para comenzar, y si tiene experiencia en programación, está muy adelantado a la curva y debería poder repasar las primeras cosas con bastante rapidez. También creo que habrá un nuevo picoCTF en octubre.
-
pwnable.kr tiene una variedad de buenos desafíos de explotación binaria para practicar.
- A menudo puede encontrar resúmenes de los desafíos de los CTF anteriores en línea, lo que es una buena manera de familiarizarse con los idiomas especialmente específicos o con el tipo de problemas que pueden surgir en un Ctf en particular. ctftime.org agrega reseñas, además de albergar un calendario de los próximos ctfs.
En términos de herramientas, un consejo que ofrecería es ser fuerte en un lenguaje de scripting. CTF generalmente está bajo presión de tiempo, y la velocidad es más importante que la corrección perfecta. Python parece ser el idioma de elección más común, y hay muchas herramientas buenas para los desafíos de tipo ctf en python ( pwntools , por ejemplo). Recogiendo un poco de familiaridad también podría ser bueno.