¿Qué es un CTF?

Un CTF (Capture The Flag) es una competición orientada a la seguridad informática en sus distintas vertientes. Los CTFs pueden tener distintos formatos, entre los que se incluyen: attack-defense, donde los participantes intentan proteger sus propios servicios mientras atacan los de sus rivales; o el formato de Jeopardy, como el de la MLP, donde los participantes intentan resolver una serie de retos. En el resto de secciones nos enfocaremos en los CTFs de tipo Jeopardy como el de la MLP.

¿Cuál es el objetivo de un CTF?

En un CTF los participantes intentan obtener pequeños trozos de información privada llamados flags. Un flag es una cadena de texto que los participantes pueden reconocer fácilmente como tal.

¿Cómo participo?

Registrate en la web de la competición, crea un equipo (o únete a uno que tus compañeros ya hayan creado) y lee los retos (y estas normas) para ver si ves alguno interesante.

¿Qué tipos de prueba puede incluir un CTF?

Entre las pruebas de un CTF, se pueden tocar los siguientes temas: explotación de vulnerabilidades en aplicaciones web (web), explotación de vulnerabilidades en binarios (pwn), ingeniería inversa (rev), criptografía (crypto), esteganografía (stego), análisis forense (forensics), miscelanea (misc) o cualquier otra categoría que los organizadores consideren relevante.

¿Quien gana la competición?

Normalmente gana la competición aquel que más puntos tiene al acabar la misma. En caso de empate se tiene en cuenta quien resolvió antes el último reto que hayan resuelto en su equipo. La organización se reserva el derecho de penalizar a aquellos equipos que participen en conductas antideportivas.

¿Cómo se ganan puntos?

Cada equipo ganará automaticamente los puntos asignados al reto una vez resuelto. Adicionalmente, la organización otorgará 25 puntos al primer grupo en resolver un reto «difícil» y 15 al segundo. Debido a la variabilidad del nivel de los participantes, para considerar si un reto es «difícil», la organización intentará mantener el contacto con los participantes durante la competición para monitorizar su progreso durante la resolución de los retos y poder adaptarlos si fuera necesario. La renuncia, de forma activa o pasiva, a mantener el contacto con la organización implica asimismo la renuncia a la asignación de dichos puntajes al grupo que ha renunciado a dicho contacto. En tal caso, la organización puede asignar dichos puntajes a aquellos participantes que si hayan mantenido el contacto pese a no haber sido los primeros o segundos en resolver el reto. Adicionalmente, cada equipo puede recibir hasta 5 puntos extra por proveer un writeup (documento detallando como se ha resuelto una prueba con suficiente detalle para que otros participantes puedan reproducir los resultados) a menos que el reto indique lo contrario y hasta 5 puntos extra si el equipo acepta la invitación de la organización a presentar su solución en la reunión posterior al CTF. Normalmente, serán invitados aquellos equipos que hayan mantenido el contacto con la organización en el orden en que hayan resuelto los retos. Sin embargo, la organización se reserva el derecho a cambiar dicho orden si lo considerase necesario.

¿Qué ocurre si mi equipo tiene conductas antideportivas?

Según la seriedad de la infracción, la organización podrá penalizar a aquellos equipos cuyas conductas sean consideradas antideportivas o, incluso, descalificarlos completamente de la competición. Los equipos amonestados podrán hablar con la organización con aquellos argumentos que consideren adecuados, sin embargo las decisiones de la organización a este respecto serán finales e inapelables. Estas decisiones serán válidas incluso si la conducta no está recogida en este texto.

¿Cúal es el espíritu de la competición?

El principal objetivo de la competición es ofrecer un entorno que favorezca el aprendizaje práctico de diversos conceptos relacionados con la ciberseguridad por parte de los participantes de la misma. En esta competición el factor competitivo y los premios existen principalmente para proveer un incentivo en el aprendizaje a los participantes. Si el objetivo de los participantes es únicamente obtener los premios de la competición les recomendamos que consideren otras competiciones más adecuadas a dicho fin: por ejemplo en esta lista en CTFtime.

Debido al enfoque didáctico de la competición, la organización puede tomar en cualquier momento decisiones que contribuyan al aprendizaje de los participantes como proveer pistas, ajustar las puntuaciones de los retos en base al nivel de los mismos o cualquier otras acciones similares.

¿Qué conductas son antideportivas?

El principal objetivo del CTF es ofrecer un entorno que favorezca el aprendizaje de conceptos de seguridad informática con los incentivos provistos por un entorno competitivo.

Una lista, no exhaustiva de conductas antideportivas incluye las siguientes:

  • Compartir flags u otra información de como resolver los retos entre grupos antes de la finalización de la competición.
  • Participar con más de una cuenta de grupo en el mismo grupo.
  • Intentar ocultar el progreso a los otros grupos de forma activa. Por ejemplo, evitando introducir un flag ya resuelto en la plataforma.
  • Explotar vulnerabilidades de la plataforma de CTF (y no de los retos) para obtener puntos. (Un equipo podrá, sin embargo, ganar puntos extra por realizar un responsible disclosure a la organización si encuentra una vulnerabilidad en la plataforma).
  • Atacar la plataforma del CTF o de los retos con el objetivo (a criterio de la organización) de evitar su acceso por otros participantes.
  • Faltar al respeto a la organización u a otros participantes.
  • Usar ingeniería social para extraer el flag de la organización o los participantes (siempre y cuando este no sea el objetivo de la prueba).

En caso de duda es recomendable consultar con la organización primero.

¿Qué formato tienen los flags?

Normalmente los flags contienen una cadena de texto con una frase que empieza por MLP23{ y acaba con }. Por ejemplo: MLP23{esto_es_un_flag_sencillo_de_obtener}.

¿Qué conductas son deportivas?

En general cualquier conducta que pueda motivar a los participantes al aprendizaje y a seguir compitiendo. Por ejemplo (de nuevo esta lista no es exhaustiva):

  • Animar a los rivales a seguir adelante con aquellos retos que un equipo ya haya resuelto sin compartir información que facilite su resolución.
  • Socializar con otros participantes o la organización.
  • Distribuir tareas dentro de un mismo grupo.
  • Compartir información dentro de un mismo grupo.
  • Compartir con la organización información relevante para el correcto funcionamento del CTF (por ejemplo vulnerabilidades que puedan afectar a su correcto desarrollo) y proponer soluciones si fuera necesario.
  • Tratar a otros participantes y organizadores con respeto y educación.
  • Divertirse participando en la competición.
  • Tomar pausas frecuentemente para poder mantener la agilidad mental.
  • Compartir el conocimiento adquirido tras la competición con los otros grupos.
  • Mantener el contacto con la organización durante la competición para que puedan adecuar las pruebas al nivel de los participantes.

¿Cómo son las decisiones de la organización?

Debido a la naturaleza de la competición es imposible prever todos los posibles supuestos que puedan darse en la misma. Por ello, las decisiones de la organización una vez presentadas las alegaciones por parte de los afectados son finales e inapelables siendo prioritarias sobre el contenido de estas normas. En todo momento la organización velará por mantener el espíritu didáctico de la competición por encima de la letra de esta normativa.

¿Pueden aparecer retos durante la competición?

Sí, algunos retos son preparados a medida que progresa el evento. Otros pueden depender de que hayas completado un reto anterior. Por ello, es recomendable que compruebes el listado de retos periódicamente.

¿Cómo mando mi writeup?

Mándanos un correo a ctf@murcialanparty.com con el writeup en formato PDF o texto plano. Utiliza en el título «Writeup CTF MLP2023: $RETO — $EQUIPO» reemplazando $RETO por el título del reto y $EQUIPO por el nombre de tu equipo para que podamos encontrarlos fácilmente.

IMPORTANTE: los writeups y las transparencias de las presentaciones serán publicados al final del CTF (salvo que el reto indique lo contrario). Para optar a los puntos extra se debe aceptar esta condición.

¿Qué contiene un buen writeup?

En el writeup seguramente quieras mencionar el nombre del reto y de tu equipo o aquellos que lo hayáis resuelto para poder fardar.

Además se debe indicar las herramientas que se han utilizado (con enlaces a las mismas) y la forma en que se ha hecho para resolver el reto.

Si el writeup está bien escrito, debería ser posible, para cualquier persona con un mínimo de conocimiento técnico, reproducir vuestra solución sólo con el contenido del mismo.

¿Qué fechas y horas son relevantes?

  • Miércoles a las 15:00 apertura del CTF.
  • Viernes a las 00:00 momento a partir del cual pueden congelarse la tabla de puntuaciones (si la organización lo considera necesario).
  • Viernes a las 19:00 cierre.
  • Viernes a las 19:15 deadline entrega writeups.
  • Viernes a las 19:30 reunión de equipos.
  • La organización puede adaptar estas fechas y horas si lo considerase necesario.

¿Cuáles son los premios?

Se otrogarán los siguientes premios:

  • Primer premio: 90€ y trofeo
  • Segundo premio: 60€ y trofeo
  • Tercer premio: 30€ y trofeo
  • Adicionalmente existe un pool de 20€ que será distribuido por la organización al equipo que mejor writeup y/o presentación haga.

¿Quiénes organizan el CTF?

El CTF es organizado por la Asociación Murcia Lan Party.

En el CTF han colaborado (en ningún orden especial).

  • Inforges (premios y retos)
  • ChicoPánico (organización y retos)
  • Habbim (retos e infrastructura)
  • Jesus (retos)
  • Francisco Blas Izquierdo Riera aka [RIOT]Klondike (retos y consultoría senior)