Me parece que se me había pasado comentaros pero…
Es posible pasar un fin de semana divertido con amigos mientras os dedicáis a hackear como si no hubiera un mañana, y por supuesto me refiero a hacerlo de forma legal. Todo esto es gracias a los diferentes CTFs («Captura La Bandera» en español) que se organizan a lo largo de todo el año. Estas competiciones permiten poner a prueba nuestras habilidades de hacking mediante diferentes pruebas o retos que tendremos que resolver. La forma de participar varía en cada caso: algunas veces toda la competición es pública, otras tienen una fase abierta (quals) y una final que se participa de forma física en un determinado lugar, en caso de haber pasado la eliminatoria previa. Generalmente hay dos tipos de CTFs:
- Jeopardy: En este caso, se van liberando retos en diferentes categorías y los equipos tienen que resolverlos para obtener la codiciada bandera. La bandera suele tratarse de un string de texto que demostrará que el equipo ha sido capaz de completar el reto satisfactoriamente, un ejemplo seria: «flag{congr4tz_y0u_found_1t}”. Algunas de las categorías más típicas son: Forensics (análisis forense), Crypto (criptografía), Pwn (explotación), Web y Misc (miscelánea). Esto no significa que todos los integrantes del equipo sean especialistas en todas esas áreas, sino que cada persona dentro del grupo tiene unos conocimientos específicos que ayudan.
- La liberación de nuevos retos depende mucho del organizador de la competición, aveces no se liberan nuevos retos hasta que un equipo haya sido capaz de resolver el reto previo, otras, la liberación de retos está atada a una planificación determinada. Respecto a la clasificación de puntos final, una vez más, depende completamente del organizador. Lo más común suele ser indicar una cantidad de puntos estática a cada reto, teniendo los más difíciles mayor número de puntos. En otras ocasiones, el valor de cada reto se calcula dependiendo de cuantos equipos hayan sido capaces de resolverlo. Por ejemplo, si un reto solo ha sido resuelto por 3 equipos, tendrá muchos puntos asociados, pero si todos los equipos han podido resolverlo, tendrá una puntuación muy baja.
- Attack-Defense: Este es, históricamente hablando, el primer tipo de CTF que existió. Aquí cada equipo dispone de una red/servidor con servicios vulnerables (al igual que en el caso de jeopardy, se irán liberando paulatinamente). Los equipos deberán desarrollar exploits para lanzarlos contra el resto de participantes y parchear sus propios servicios para impedir que el resto de participantes exploten los suyos. Cuando se parchea un servicio, este debe seguir funcionando, por tanto no se permiten bloqueos totales o parciales de los mismos.
- Automáticamente se comprobará que este tipo de conductas no ocurren, y que las banderas de cada equipo siguen en el lugar donde deben estar y no han sido eliminadas. Los organizadores van almacenando banderas en los servidores de los equipos periódicamente, por tanto no basta con exploitar un servicio de un equipo determinado una única vez, sino que el exploit se debe lanzar de forma continua hasta que el equipo logre parchear la vulnerabilidad, para lograr la mayor cantidad de banderas posibles. Los puntos para este tipo de competiciones se dividen en dos: puntos de defensa (depende de cómo hayas podido proteger las banderas) y puntos de ataque (depende de cuantas banderas hayas podido robar del resto de participantes).
Existen un gran número de CTFs a nivel mundial, pero sin duda DEF CON CTF es considerado el más prestigioso de ellos, siendo muchas veces conocido como la copa del mundo de los CTFs. Consta de una fase clasificatoria (DEF CON CTF Quals) del tipo jeopardy que permite el acceso a las finales que se celebran cada año en Las Vegas. Otra forma de llegar a las finales es haber obtenido el primer puesto en otros CTFs como PlaidCTF o iCTF. Este año ha sido la última edición con Legitimate Business Syndicate como organizadores, y han querido dar una vuelta de tuerca final con su nueva arquitectura cLEMENCy, con features tan pintorescas como middle endian o bytes de 9 bits en lugar de 8. Todo ello para «romper» todas las herramientas existentes y dar un toque de dificultad extra. He vivido todas estas dificultas personalmente (ya que he participado como parte del equipo Shellphish) y os puedo asegurar que lograron dicho objetivo. A pesar de ello, logramos un muy buen séptimo puesto (parte superior de la tabla).
Si queréis empezar a jugar CTFs, echarle un ojo a estas herramientas, os pueden venir muy bien. Y no olvidéis estar atentos a los diferentes CTFs o las posiciones de otros equipos en CTFtime. Pero os aviso, no es algo para todos los públicos, estad preparados para arrancaros mas de un pelo.
El que avisa no es traidor.