iCTF 2013 – Baptême du feu

UT_FlagÇa y est je l’ai fait ! J’ai participé à un CTF ! Et franchement, je dois dire que c’était plutôt cool.

Bien entendu je n’espérais pas briller particulièrement lors de ce dépucelage, le but était avant tout de découvrir l’univers des CTF, comprendre le fonctionnement global de ces compétitions en somme.

L’ubiquité n’ayant jamais été mon fort, étant déjà appelé ailleurs en début de soirée, je n’ai pas pu suivre l’intégralité de l’événement, mais les deux petites heures que j’y ai consacré ont été riche d’enseignement.

En tout cas une chose est sûr, ‘il ne s’agissait pas de mon dernier ! Et maintenant que j’ai un pied à l’étriller, il sera plus aisé d’aborder les prochains sereinement.

Mais qu’est-ce qu’un CTF d’abord ?

Oui, après tout ce n’est pas forcément évident, un acronyme n’est pratique que si tous les interlocuteurs savent à quoi il fait référence (un principe simple qui devrait être rappelé régulièrement aux chefs de projets tiens !). CTF est l’abréviation de Capture The Flag, un jeu où le but est de capturer des drapeaux. Les gamers maîtrise sans aucun doute le concept, tout comme les amateurs de paint-ball. S’il est plus étonnent de trouver ce jeu associé au monde de la sécurité informatique, le principe reste sensiblement le même. L’enjeu est toujours la capture de drapeaux, qui dans ce cas ne sont pas de simples fanions, mais plutôt des chaines de caractères par exemple “G00dG0llyMi55M0lly” ou “ed6503a473bc136f52137cfdce224e8a” . Ces drapeaux sont bien évidemment cachés, et les récupérer nécessite un certain touché…

iCTF 2013

 ucsbL’iCTF 2013 est une compétition organisé par l’UCSB (University of California, Santa Barbara) ou des équipes du monde entier s’affronte pendant neuf heures (et oui quand même hein !). Chaque équipe dispose d’un serveur accessible en SSH.

Ce serveur héberge une dizaine de services vulnérables que vous pouvez patcher, arrêter, redémarrer et même pourquoi pas, supprimer. Si il est judicieux de patcher au plus vite vos services pour empêcher les autres équipes de les corrompre, il vous faudra aussi veilliez à ne pas les rendre inaccessibles ou inutilisables en modifiant inconsidérément le code de ces derniers.

En effet, un certain nombre de scripts  sur des machines distantes neutres permettent de vérifier la disponibilité de vos services. Et lorsque l’un de vos service ne répond plus, vous perdez beaucoup (beaucoup beaucoup*) de points…

Car il ne s’agit pas simplement de récupérer le plus de drapeaux possibles, le but est de collecter le plus de ressources (points), et les drapeaux ne représentent qu’une partie des moyens à votre disposition pour engranger ces points. Le CTF est découpé en rounds, à chaque round vous obtenez des points en fonction de plusieurs critères. Et figurez vous que plus de la moitié des ressources que vous recevez est déterminé par l’accessibilité de vos services ! Du coup pas mal, même sans toucher à rien, vous gagnez quelques points, comme disait la compagnie créole “C’est bon pour le moral !“.

La récupération de ces précieuses ressources se fait aussi par la détection des intrusions… Oui car vous disposez d’une sorte d’analyseur de flux auquel vous accédez au travers une page web et qui recense la totalité des connexions vers vos services. Certain sont légitimes et d’autres correspondent à des attaques. Pour gagner des points, il vous faut identifier dans le lot les attaques menées contre vous… Et ne pas vous tromper s’il est besoin de préciser.

Bref tout ça est bien sympathique et bien monté (comme nous chez 0x0ff.info) mais concrètement que fait un participant pendant ces quelques neuf heures me direz-vous innocemment alors que vous l’avez sans doute deviné depuis longtemps, votre esprit étant l’un des plus vif et des plus brillant (la preuve vous lisez 0x0ff.info). Je ne vous apprends donc rien, l’analyse comportementale des services et l’audit de code représente la part la plus importante du travail à fournir. Car de la détection des vulnérabilités, dépend votre aptitude à patcher vos services. Et du coup, c’est aussi le point départ de la création des exploits associés.

D’ailleurs les exploits parlons-en. J’ai été très surpris, et en même temps effondré par ma candeur quand j’ai découvert qu’une équipe n’attaque jamais directement une autre équipe. Il en va bien entendu du bon déroulement de l’épreuve, notez d’ailleurs que le règlement est relativement strict et sévère pour qui tenterait d’handicaper malhonnêtement les autres participants (par exemple en crashant un service ou en tentant de DoS un serveur). Vous vous demandez peut-être comment les vulnérabilités sont exploitées dans ce cas. Et bien c’est très simple en réalité. Vous soumettez un exploit, c’est à dire vous l’envoyer à une équipe du staff qui teste puis valide votre code. Le script est alors installé sur un serveur d’attaque géré par les organisateurs. Les scripts sont lancés régulièrement en prenant pour cibles d’autres équipes. Si le service attaqué n’est pas patché, vous récupérez un flag.

Dernier points et non des moindres, le CTF inclue une sorte de marketplace sur laquelle il vous est possible d’acheter des services : exploit, patch, détection de flux, sabotage et j’en passe… Cette hôtel des ventes se présente sous la forme d’enchères à l’aveugle sur trente secondes cycliques. Il vous est possible de proposer une offre pour un ou plusieurs services (en fonction de votre nombre de crédits bien entendu), si à la fin du compteur vous êtes l’équipe proposant la meilleur offre, vous remportez le lot. Vous ne disposez que d’une seule information sur laquelle vous pouvez baser votre offre, le prix de vente du service lors du tour précédent.

*Comme le souligne Yaap dans les commentaires, les crédits sont obtenus au prorata de votre efficacité durant le CTF, il n’est pas question de Pay2Win.

Write-Up

Remerciements à Dzeta de some46.org pour la liste ci-dessous :

Si vous souhaitez participer à un CTF, franchissez le pas. Ce n’est pas si terrible que ça croyez moi. Et si vous ne parvenez pas à faire grand chose lors de ce coup d’essais, qu’importe après tout ? Il vous suffira de lire les Write-Up pour comprendre ce que vous avez loupé, où ce que vous n’avez pas pensé à chercher… Car une chose est sûr, il est bien plus agréable et formateur de lire les dossiers présentant les méthodes utilisées par d’autres équipes pour exploiter des services que vous connaissez (vous étant cassé les dents dessus), que lire les Write-Up d’un CTF auquel vous n’avez pas participé.