Résumé : Le Challenge Securitech a réuni cette année environ 2200 participants d'origines variées. Bilan de cette édition 2006.
Le Challenge a réuni cette année environ 2200 participants, un nombre très proche de nos projections. Comme pour les années précédentes, le panel d'inscrits est assez hétérogène : - 50% d’étudiants, 30% de professionnels et 20% de passionnés/curieux.
Cette répartition confirme que le Challenge a été cette année encore l’occasion de réunir des personnes de milieux différents mais passionnés par un sujet commun. La conférence de clôture s’est déroulée le vendredi 19 mai devant près d'une centaine de « spectateurs ».
La fin de cette édition a été l'occasion d’une lutte acharnée pour les premières places ; lutte qui s’est poursuivie jusqu'aux dernières minutes. Voici un bref récapitulatif des bouleversements du classement durant les dernières heures du challenge :
- Jusqu’à 19h00, « Marcel » est en tête. Une position qu’il détient depuis plusieurs jours et qui laisse présager d'une victoire finale,
- A 19h07, « newsoft » valide un des validateurs du challenge 7 et prend la tête du concours,
- Aux alentours de 22h, contre-attaque de « Marcel », qui en validant ce même niveau reprend la pôle position du concours,
- A 23h30, puisant dans ses ultimes ressources, « newsoft » valide encore un validateur, reprenant à son tour la première place du classement ; tout semble alors joué,
- Mais c’est sans compter sur « jj » qui a gardé deux validateurs de coté et attendra jusqu'à 23h55 pour les valider et passer ainsi définitivement en tête sur le fil.
Profitons d'ailleurs de cet article pour remercier ces trois participants qui nous ont offert un final passionnant et unique à ce jour dans l’histoire du Challenge.
Tout en conservant son principe général, de légères modifications sont apportées chaque année au concept du challenge afin que chaque édition soit originale. L’an passé, il avait par exemple été décidé de choisir d’inclure les différentes épreuves dans un scénario.
L’objectif des challenges de cette année était de rechercher des « validateurs », ceux-ci pouvant prendre des formes variées : - une table dans une base de données, une page PHP, un exécutable sur un serveur, un message chiffré.
Aucune information n’était donnée ni sur le nombre, ni sur le format des validateurs cachés dans chaque challenge ; ce principe obligeant ainsi le participant à effectuer des recherches exhaustives et méthodiques.
Pour les challenges s’appuyant sur un serveur distant (site web, serveur applicatif, …), le point d’entrée du challenge était une simple trace au format pcap (à lire par exemple avec Ethereal).
Prenons à titre d’exemple le challenge numéro 7. L’énoncé était constitué par une simple trace réseau contenant un flux HTTPS. Les données étant chiffrées à partir du niveau applicatif, seule l’adresse IP du serveur pouvait être extraite à ce stade.
Un premier scan réseau permettait de voir que le serveur avait deux services en écoute : - HTTPS et telnet.
Le serveur telnet nécessitait une authentification. Après quelques rapides tests d’overflow ou d'envoi de données mal formatées, il apparaissait que ce service ne semblait pas contenir de faille immédiate.
Le serveur HTTPS nécessitait également une authentification. Une analyse de ses réponses, révélait que ce service était en réalité un proxy SQUID.
Il était à ce niveau possible d’imaginer une première version de l’architecture du serveur : - Un service telnet, un service squid en reverse-proxy et un service web HTTP (sur le port 8080 comme le révèle un message d’erreur) accessible via le proxy.
Le serveur n’offrant que deux points d’entrées nécessitant une authentification, il semblait par conséquent difficile d’obtenir d’autres informations sur le système via ces services.
L’idée était d’effectuer un scan avec le port source à 20, pour tester une éventuelle mauvaise configuration du firewall.
Le serveur révélait alors trois nouveaux ports TCP en écoute : - le 53 utilisé notamment pour les transferts de zones DNS, le 3128 port standard de SQUID et enfin le 8080, serveur web qui avait été précédemment détecté.
Un transfert de zone avec le port source positionné à 20 permettait alors de récupérer la liste des noms DNS et de découvrir un second serveur sur un sous-réseau (10.199.0.2).
Il était possible, toujours en envoyant des requêtes avec le port source à 20, d’utiliser le service proxy accessible sur le port 3128 pour tenter d’accéder à un éventuel site web sur ce serveur ; test qui permettait d’obtenir un premier validateur.
En envoyant des requêtes (avec le port source à 20) sur le port 8080, on pouvait ensuite accéder au site web sans passer par l’authentification effectuée par le proxy. Le site web était essentiellement composé d’un simple CGI permettant d’afficher des fichiers de logs.
En utilisant quelques astuces, on pouvait rapidement afficher tous les fichiers sur le serveur. En analysant différents fichiers, on pouvait progressivement révéler également la structure de l’arborescence de fichier pour finalement récupérer la clé privée utilisée par le proxy SQUID afin d'effectuer le chiffrement.
Il fallait alors penser à utiliser cette clé pour déchiffrer la trace réseau d’origine avec par exemple l’outil « ssldump », afin d’obtenir l’identifiant et le mot de passe de l’utilisateur. Ces données devaient ensuite être utilisées pour se connecter sur le serveur telnet afin d'obtenir le second validateur.
Ce challenge est assez représentatif de l’esprit du concours cette année : une simple adresse IP en point d’entrée, un système relativement complexe qu’il fallait progressivement analyser pour comprendre sa structure grâce à la collecte des données récupérées à partir de différentes techniques (scan, analyse des messages d’erreurs, exploitations de failles applicatives, …).
La sécurité du serveur se désagrégeait ainsi peu à peu, le participant récupérant progressivement des informations jusqu'à l’obtention d’un compte valide sur le serveur.
Ce challenge souligne notamment comment un ensemble de petites négligences peuvent finalement amener à la compromission totale d’un serveur : - utilisation d’un algorithme de chiffrement peu robuste, configuration trop peu restrictive du firewall, faille dans un CGI, gestion des droits UNIX incorrecte.
La résolution d’une épreuve nécessitait souvent des compétences assez variées et de la méthode. Le Challenge ne comportait pas vraiment d’épreuves faciles ; ce qui explique probablement que seulement 350 participants aient un score positif à l’issu du concours, contre 800 l’an passé pour un nombre d'inscrits équivalent.
Nous avons eu globalement de nombreux retours positifs sur ce concept. Il est donc plus que probable qu'il inspire la prochaine édition.
Il serait par exemple intéressant de pousser un peu celui-ci en installant plusieurs services sur un serveur, dont un seul (ou plusieurs) comporterait des failles. On peut également imaginer la présence de machines "leurres" ne présentant aucune faille.
A suivre l’an prochain.
ndlr : Rappelons que Challenge-SecuriTech est organisé par le Mastère Spécialisé de l’Information et des Systèmes de l’ESIEA, formation BAC+6 accréditée la Conférence des Grandes Ecoles composée de 6 mois de formation académique et de 6 mois de stage. Les inscriptions pour la rentrée de septembre prochain sont déjà ouvertes. Pour obtenir des informations complémentaires, consulter le site web du mastère lien http externe url:
[click] ou envoyer un mail sur
moine-pelletier@esiea.fr | Mini-Tagwall des articles publiés sur SecuObs : | |
| |
sécurité, windows, exploit, réseau, vulnérabilité, système, attaque, microsoft, virus, audit, internet, données, fonction, présentation, outil, linux, bluetooth, vista, gestion, shell, trames, wishmaster, sysun, metasploit, engineering, paquets, téléphone, fonctions |
| Mini-Tagwall de l'annuaire video : | |
| |
virus, spyware, vmware, firmware, biometric, lockpicking, wimax, password, spammer, kernel, malware, windows, iphone, symantec, phish, knoppix, adware, security, botnet, linux, tutorial, cryptography, internet, attack, server, wireshark, virtual, metasploit, intel, protect, openbsd, hitbsecconf2006, jailbreak, rootkit, ubuntu, norton, exploit, hijackthis, ettercap, samsung, screen, fingerprint, vista, flash, desktop |
| Mini-Tagwall des articles de la revue de presse : | |
| |
security, microsoft, windows, vulnérabilité, network, google, vulnerability, hacker, attack, inject, remote, mobile, server, exploit, apple, internet, iphone, black, yahoo, sécurité, malware, vista, intel, patch, crypt, drive, access, protect, virtual, laptop, linux, source, biometric, research, ebook, business, virus, office, phish, adobe, chine, facebook, opera, flash, wireless |