CTF: Entrenamiento en seguridad informática

Fecha de publicación 26/02/2014
Autor
Rafael Pablos (INCIBE)

¿Quién no recuerda al mítico David Lightman en la película Wargames (Juegos de Guerra)? Un joven autodidacta experto en informática, capaz de evadir la seguridad de cualquier sistema mediante el uso de su ordenador. Hoy vamos a hablar sobre eventos Capture The Flag (en español, Captura la Bandera), una serie de desafíos informáticos enfocados a la seguridad, cada vez más populares en este sector. Con ellos pondremos a prueba nuestros conocimientos, e incluso aprenderemos nuevas técnicas.

A modo de introducción, el objetivo de cada CTF es resolver una serie de tasks (tareas) que van aumentado su grado de dificultad conforme a los puntos especificados en cada una (Ej. Stego100, Forensics500, etc.). Estos eventos suelen tener una duración de 2-3 días, y posteriormente se publican voluntariamente Writeups (solucionarios) a cada reto propuesto, haciendo posible conocer las técnicas usadas por otros jugadores. Si un reto no es resuelto por un determinado número de equipos, los organizadores del CTF suelen publicar algunas hints (pistas) para facilitar la obtención de la flag, también conocida como key (clave).
 

El sitio referente en esta temática es CTFTime, donde podemos encontrar un detallado calendario con los próximos eventos, una recopilación de los mencionados Writeups, o un ranking a nivel mundial con todos los jugadores, enumerado por equipos. También contamos con otro completo calendario en CapTF, sitio que a su vez lista material de distintos CTF desde 2004, incluyendo aplicaciones Web donde practicar.

Aparte de estos eventos, también contamos con los denominados Wargames, otro conjunto de pruebas sobre seguridad informática, preparadas para ser resueltas de forma individual y sin límite de tiempo. Los retos propuestos suelen ser más sencillos que en los CTF, puesto que no están preparados para ser resueltos por equipos. Una buena parte de estos Wargames se encuentran recopilados en el referente WeChall, el cual cuenta con otro ranking de participantes a nivel mundial, con más de 8.000 registrados. Algunos de estos Wargames son: Sinfocol, Yashira, CanYouHackIt, LOST-Chall y Rankk. Todos ellos llevan varios años en funcionamiento, y cuentan con un perfil sobre cada participante (puntuación total, retos que se han resuelto, categorías mejor dominadas, etc.). En INTECO también se han desarrollado en años anteriores, tal como el celebrado en 2012 durante la 6ª edición del ENISE.

Por otro lado, si se prefieren retos únicos en lugar de múltiples a la vez, diversos sitios hispanos dedicados a la seguridad informática publican (o han publicado) desafíos ocasionalmente, tal es el caso de ESET Latinoamérica, HackPlayers, SecurityArtWork, Flu-Project y ElLadoDelMal, entre otros.

En algunos CTF se suelen ofrecer recompensas económicas a los primeros equipos del ranking, incluso la posibilidad de optar a puestos de trabajo relacionados con la seguridad informática. Las recompensas ofrecidas, poniendo como ejemplo al CTF coreano Codegate, son superiores a 30.000€. Algunos de estos eventos, los cuales llevan varias ediciones organizadas, son RuCTF (Rusia), Nuit Du Hack (Francia), DEFCON (EE.UU.), Positive Hack Days (Rusia) y CSAW (EE.UU.).
 

Debido al auge de estos desafíos, cada vez vemos nuevos CTF por parte de nuevos organizadores, contando también los que preparan algunos de los equipos internacionales más conocidos. Si nos centramos en el año 2013, los equipos que más puntos obtuvieron en CTF a nivel mundial fueron: Plaid Parliament of Pwning (EE.UU.), More Smoked Leet Chicken (Rusia), Eindbazen (Países Bajos), Dragon Sector (Polonia) y dcua (Ucrania). Dentro de nuestro país, algunos de los equipos activos más conocidos son: Activalink, w0pr, int3pids, w3b0n3s o PHT. Todos ellos cuentan con una larga experiencia participando en estos eventos y un amplio conocimiento en seguridad informática.

Participando en equipo, los jugadores se reparten las tareas que mejor dominen, resolviendo así los retos propuestos con un mayor grado de efectividad. Otros equipos constan de un solo jugador, siendo esto bastante más complejo, puesto que se publican múltiples retos en un corto período de tiempo. Tal es el caso de George Hotz, de 24 años (alias tomcr00se), estudiante de la Universidad Carnegie Mellon, ampliamente conocido por ser el desarrollador de diversas herramientas para desbloquear las restricciones impuestas en iPhone y PlayStation. Este jugador ha conseguido alcanzar el primer puesto en varios eventos, jugando contra equipos de varias personas.

Existen también CTF para que los más jóvenes se puedan iniciar en la seguridad informática de una forma entretenida y formativa. Tal es el caso de DEFCON for Kids, para jóvenes de entre 8 y 16 años; y PicoCTF, el cual cuenta con multitud de patrocinadores, entre ellos Microsoft y la NSA.

Los CTF se suelen dividir, generalmente, en las siguientes categorías:
 

  • Análisis Forense [Forensics]: Lo más común; imágenes de memoria, de discos duros o capturas de red, las cuales almacenan diferentes tipos de información.
  • Criptografía [Crypto]: Textos cifrados mediante un criptosistema determinado.
  • Esteganografía [Stego]: Imágenes, sonidos o vídeos que ocultan información en su interior.
  • Explotación [Pwn]: Descubrimiento de vulnerabilidades en un servidor.
  • Ingeniería Inversa [Reversing]: Inferir en el funcionamiento del software. Lo más común, binarios de Windows y Linux.
  • Programación [PPC]: También conocidos como PPC (Professional Programming & Coding), desafíos en los que se requiere desarrollar un programa o script que realice una determinada tarea.
  • Web: Descubrimiento de vulnerabilidades en una aplicación Web.
  • Reconocimiento [Recon]: Búsqueda de la bandera en distintos sitios de Internet. Para resolverlo se ofrecen pistas, tal como el nombre de una persona.
  • Trivial [Trivia]: Diferentes preguntas relacionadas con la seguridad informática.
  • Misceláneo [Misc]: Retos aleatorios que pueden pertenecer a distintas categorías sin especificar.


Participantes de la 10ª edición del evento CSAW, en el campus de la Escuela Politécnica de Ingeniería de Nueva York (NYU-Poly).


Todos los eventos CTF se realizan en entornos preparados para ser atacados. A pesar de que éstos cuentan con una fuerte seguridad (tanto a nivel de servidor como de aplicación Web) y, además, se disponen una serie de normas para todos los participantes; durante el desarrollo del juego es habitual ver CTF inoperativos por saturación del servicio, debido a la gran cantidad de ataques que se producen. Como anécdota destacable, el grupo Eindbazen encontró una vulnerabilidad real en PHP-CGI participando en uno de estos eventos.

A continuación vamos a mostrar un reto de esteganografía, en el cual comprobaremos cómo es posible ocultar información en una imagen, y además hacerlo a simple vista:

 

 

¿Dónde podríamos encontrar un mensaje oculto, con tan solo observar el dibujo? Si nos fijamos en todos los elementos, cada uno de ellos cuenta con diferentes alturas. En este caso, la información que buscamos se encuentra representada en código Morse, en la cual los distintos elementos actúan como guiones, puntos y espacios. Vamos a ir fila por fila, empezando desde abajo, viendo cómo se representa en el dibujo, y revelando a su vez la información que éste contiene:

 

 

 

 

  1. Flores: ... --- .-.. ..- - .. --- -. (“SOLUTION”)
    Las flores más bajas representan puntos, las más altas representan guiones, y la hierba sirve como espacio entre las distintas letras.
  2. Árboles: ..-. --- .-. / - .... . (“FOR THE”)
    Los árboles más bajos representan puntos, los más altos representan guiones, y los arbustos sirven como espacio entre las distintas letras. El río actúa como separador de palabras.
  3. Montañas onduladas: .. ... / - .... . / .-- --- .-. -.. (“IS THE WORD”)
    El mismo método sobre altitudes, pero con una interesante diferencia: ahora contamos las montañas onduladas que apuntan hacia arriba, y después las que apuntan hacia abajo (sin necesidad de girar la imagen, pero interpretando la montaña al revés). Así, sucesivamente. La parte que corta la montaña actúa como separador de palabras, al igual el río que las atraviesa.
  4. Montañas nevadas: -... .- -.-. -.- --. .- -- -- --- -. (“BACKGAMMON”)
    Lo mismo en esta última parte, pero ahora tenemos una sola palabra, por lo tanto no existen separadores. Contamos los picos que apuntan hacia arriba, y después los que apuntan hacia abajo. Repetimos la operación hasta obtener la palabra que buscamos.

Para facilitar la lectura del código morse en las montañas, se puede optar por trazar una línea imaginaria que divida cada fila de montañas en su mitad, comprobando que, cada vez que ‘subimos’ y ‘bajamos’, tenemos una letra diferente. La frase final del reto es: “Backgammon is the word for the solution”.

Una modalidad distinta a los CTF que hemos visto hasta ahora son los de “defensa-ataque”, tal como CTF365, y otros organizados a nivel empresarial y gubernamental por organizaciones como la ENISA o el DHS. Estas pruebas tratan la simulación de ataques, y tienen como objetivo mejorar la coordinación entre países ante ciberataques a gran escala, como pudimos ver en Cyber Atlantic 2011 y Cyber Europe 2012. Existen también otras simulaciones basadas en la comprobación de la resiliencia de los sistemas, como es el caso de CYBEX 2012 y CYBER-EX 2013, organizados por ISMS Forum e INTECO. Todos estos ciberejercicios sirven para entrenar a los equipos de las empresas y organizaciones participantes. INTECO pretende seguir apostando por este tipo de pruebas, participando en las futuras ediciones de las mismas.

Para finalizar, tal y como apuntó Vicente Motos en HackPlayers también podemos crear nuestro propio CTF muy fácilmente y sin necesidad de desarrollar código usando Mellivora, el cual queda de la siguiente forma. Con este motor CTF, es más que probable que en el futuro sigamos viendo una gran cantidad de eventos de este tipo y, cómo no, nuevos equipos con talento dispuestos a participar.