WEBlog de Félix Aimé

{ OpenSource Intelligence, Information Security, Information Warfare }

Category: Projets perso & Pro

CDAISI – S01E03

Résumé des épisodes : En ce moment en licence CDAISI, je réalise depuis le début d’année une série d’articles sur la formation afin de mettre un peu en avant ce qu’il s’y fait, de bien ou de mal, mes impressions etc.

Voir S02E02, S02E01, S01E03, S01E02, S01E01.

Ça y est, il fait froid : une vague de froid dans la France entière et le nord n’est pas épargné. La neige arrive, véritable plaie pour ceux qui, comme moi, ont décidé de ne pas posséder de voiture. Mains froides, joues crispées, l’heure de marche à pieds pour aller à la formation (aller-retour) se fait ressentir sur le moral chaque jour.

Première chose, j’ai décidé d’entreprendre un changement d’appartement qui s’est soldé par une démotivation totale/échec à la vue des appartements proposés dans cette ville. Pour vous faire un schéma, j’habite en ce moment un studio avec de multiples problèmes (bruits incessants, crispants, stressants, une peinture intérieure qui n’a rien à envier aux nouvelles prisons ou hôpitaux psychiatriques (si, si vous connaissez cette couleur, le bleu/vert -très- laid porté également par les chirurgiens), humidité, coupures de courant à répétition (environ 5 par jours.) suite à un compteur mal paramétré : le cauchemar total. Enfin, j’essaye de garder le moral, même s’il faut se l’avouer, il n’y est pas du tout.

La formation, elle, continue. Il y a de plus en plus de cours en sécurité même si j’ai l’impression que seule la base est vue dans certaines matières (notamment sur le volet pratique). De nouveaux cours ont fait leur entrée tels que l’anglais ou le Droit. Moi qui pensais être enfin dispensé de cours d’anglais ad-vitam aeternam eh bien je me suis trompé. Au programme, on revoit tout et cette fois : à vitesse accélérée. Au moins, ces cours d’anglais m’auront permis de comprendre pourquoi je n’ai jamais aimé l’anglais scolaire jusqu’en DUT.

Exercices incessants, aucune perspective de l’utilisation de ce que l’on apprend dans la vie réelle, le tout avec des règles de grammaire qu’il faut avoir digéré en quelques secondes pour laisser place aux exercices qui n’ont rien à envier – point de vue maturité – aux fameux manuels « Apple Pie ». (c’est vous dire si ces derniers m’ont terrorisé pendant ma scolarité). J’aime l’anglais, je mange de l’anglais tous les jours (papiers de recherches, livres, posts, actualités, films etc.) mais les cours d’anglais, (à part en DUT SRC) je m’y suis jamais fait.

Concernant le Droit, je dois dire que je suis impressionné de la qualité des cours. Il est très rare d’avoir des cours aussi clairs sur un sujet si vaste – même si nous voyons « uniquement » le droit relatif au Système d’Information et à Internet. J’ai vraiment découvert un nouveau domaine qui m’était – il faut bien le dire – assez inconnu (m’étant jusque-là concentré que sur les textes de loi et non sur leurs interprétations possibles et aux jurisprudences relatives à ce domaine).

Concernant les cours en sécurité, ils sont de plus en plus présents. Nous sommes en train de terminer la « mise à niveau » de la promotion en réseaux, développement et systèmes d’exploitation pour s’attaquer, il faut le dire, à des choses plus intéressantes. Nous avons fini les cours de fingerprinting qui se concluent actuellement par le fingerprinting distant des éléments « stratégiques » d’une université : sympa, même si j’ai la vague impression qu’une partie de la promo n’est pas très enthousiaste. D’autres cours – plus spécifiques – sont donnés, notamment sur la sécurité web. Malheureusement, je n’ai encore rien appris dans ces cours, seules les bases sont présentées et encore, je trouve que les cours relèvent plus d’un simple tutoriel que l’on peut voir un peu partout que de vrais cours (peut être dû à cette notion de « challenge »). C’est un avis strictement personnel.

Les autres cours donnés en sécurité sont plutôt sympas : certains profs abordent en partie la « culture » liée à la sécurité (confs, hackerspaces, zines, actualités etc.) ce qui est intéressant sur beaucoup de points, notamment pour les élèves découvrant cet univers. Cela change de la simple théorique/pratique que l’on peut voir par-ci par-là dans d’autres matières. Mais bon, j’ai l’impression qu’il existe encore un manque d’informations dans cette formation, principalement en ce qui concerne les débouchés liés à ce que l’on nous apprend. Aucun cours n’est fait sur sur la Guerre de l’Information, sur l’aspect social/stratégique/géopolitique de ce domaine et sur les débouchés professionnels autres qu’administrateur réseau ou pentester. Ceci est vraiment dérangeant, surtout que ce domaine est aujourd’hui en pleine explosion…

TinyRAT : Quelques nouvelles de notre projet

TinyRAT avance. Pour rappel, notre groupe, composé de Mathieu Bonnet, Guillaume Duchene, Anais Verdier et moi-même réalise un malware « simple » fonctionnant sur le modèle des SpyEye et autres Zeus : communication par HTTP, C&C présent sur un serveur web distant etc.

Bon, passons à la technique. Un premier draft fonctionne déjà relativement bien au niveau protocolaire (gestion des commandes etc.) et je suis assez impressionné de voir la vitesse de développement de ce projet (notamment pour le client développé en C). Le serveur de commandes, réalisé en PHP5/JS/HTML5/MySQL est pratiquement fini. Seules quelques optimisations d’ergonomie liées au front sont encore à prévoir. Le client est encore à un stade basique mais avance bien au niveau de l’injection dans les processus, persistance, furtivité etc. Pour ne rien vous cacher, je suis très content du travail que nous avons accompli à mi-projet. Peu importe la note finale, cela aura été une expérience enrichissante pour tout le groupe. Après avoir consulté le groupe, je vous montre quelques screenshots du C&C avec des explications complémentaires. Et c’est sur ces images que s’arrête ce troisième épisode ;)

Rats

Demande d’authentification

Rats

Liste des différents RATs enregistrés auprès du C&C

Gestionnaire de fichiers

Gestionnaire de fichier réalisé en jQuery/HTML5/PHP
avec envoi de fichiers en drag’n'drop.

Shell

Shell « augmenté » en jQuery/PHP. Ce dernier permet une interaction avec l’invite
de commande de Windows tout en ayant de nouvelles commandes
liées aux fonctionnalités du RAT.

Map

Carte présentant sur une planisphère la géolocalisation des RATs actifs et inactifs. (l’activité est symbolisée par des arcs de cercles reliants les RATs au C&C)

Si toi aussi, tu veux « Smatcher du stack » ou « péter de l’EIP » en 2o1o

Et, oui, les temps changent et les technologies évoluent. Ainsi, je me suis retrouvé face à un petit mur lorsque j’ai voulu me lancer dans l’étude des failles applicatives. Tout d’abord leur compréhension, mais surtout leur exploitation. Ceci est du principalement aux nouvelles technologies mises en place pour contrer certaines failles applicatives, notamment tout ce qui est de l’ordre des débordements de tampon. En 2010, il est donc beaucoup plus difficile d’exploiter de telles failles face aux nouvelles sécurités mises en place afin de mettre des bâtons dans les roues à certains auteurs d’exploits et autres curieux que nous sommes.

C’est donc dans le but de vous indiquer quelques pistes que j’ai eu l’idée de cet article, afin que vous ne vous retrouviez pas comme moi, un peu perdu comme Alice au pays des Merveilles. Personnellement, j’ai voulu apprendre ce type de vulnérabilités non pas pour être un chercheur de failles applicatives (j’ai une vie sociale), mais simplement pour comprendre leur fonctionnement, les protections actuelles et les techniques pour les contourner.

1. Les livres.

Tout d’abord, s’il y a un livre à vous procurer, c’est bien le « must have » de qui veut se lancer dedans : « The Art of Exploitation » édité également en français sous le petit nom de « Techniques de Hacking ». Ce livre, assez conséquent mais bien expliqué, permet d’avoir de bonnes bases dans ce domaine. J’ai également acheté « Reversing » afin d’avoir quelques connaissances en reverse engennering, principalement pour l’analyse de malwares ou de binaires quelconques. C’est surtout avec ce livre que j’ai eu mes quelques bases en asm x86.

2. Un gros problème.

Une fois ces livres feuilletés ou lus suivant le profil que vous avez. Vous allez vous rendre compte que vous avez pris le train en marche. Oui, une grande partie des techniques d’exploitation sont obsolètes face aux « nouveaux » systèmes d’exploitation. Afin de comprendre le nombre de wagons que vous avez raté (qui est, il faut le dire, conséquent), un petit livre blanc vraiment sympa a fait son apparition sur le web pendant les vacances d’été.

Intitulé « Smashing the stack in 2010″, ce dernier présente les évolutions depuis le mythique article d’AlephOne présentant les débordements de tampon dans l’ezine Phrack. En 70 pages, y trouve de tout : présentation des protections liées aux compilateurs, OS et techniques d’exploitation. Après cela, votre esprit sera beaucoup plus clair pour comprendre les enjeux actuels des failles applicatives.

3. L’3xP0it4t10n

Eh oui, c’est bien beau la théorie, mais la pratique, c’est sympa aussi. Première chose, apprendre avec les bases. Hop, on se met un live CD tel Damn Vulnerable Linux et on s’amuse un peu avec gdb, objdump etc. On suit quelques comptes Twitter (ex ici ou ) histoire de connaitre la publication de certains comptes rendus de challenges (les fameux « Write Up ») et tutoriaux pouvant être intéressants. En parlant de tutos, beaucoup se limitent à une exploitation basique des débordements de tampon. Pour aller plus loin, un mec vraiment sympa (Peter Van Eeckhoutte) a fait plusieurs tutoriaux permettant de progresser dans cet univers, et c’est là où l’on se dit « wahou, il y a du chemin à parcourir » le tout, commençant ici.

4. Semi-personnal conclusion

Perso, j’en suis au début de l’exploitation, après avoir fait le tour de tout ce qu’il fallait savoir pour évaluer la hauteur du mur à franchir. Je pense passer mon année sur l’étude des failles applicatives pour obtenir un assez bon niveau dans ce domaine. Reste à connaitre la variable temps_a_disposition pour y arriver, mais cela ne risque pas d’être un problème insurmontable. Si vous avez de bons articles, tutos, de différents niveaux à faire partager, n’hésitez pas.

CDAISI – Premières impressions

Résumé des épisodes : En ce moment en licence CDAISI, je réalise depuis le début d’année une série d’articles sur la formation afin de mettre un peu en avant ce qu’il s’y fait, de bien ou de mal, mes impressions etc.

Voir S02E02, S02E01, S01E03, S01E02, S01E01.

Je me suis demandé s’il valait le coup de réaliser un article sur la licence que je suis en train de suivre dans le nord de la France, qui selon la publicité, est la première licence traitant de sécurité informatique offensive. Et puis, je me suis rappelé que je n’avais pas eu les informations que je me posais sur cette licence lorsque j’ai voulu m’inscrire. Informations triviales, certes, mais des informations permettant une représentation assez globale de ce qu’il s’y fait.

Bref, cela fait maintenant quelques semaines que j’y suis donc, après l’appréhension des premiers jours, je peux fournir un premier aperçu de cette licence, sur plusieurs plans, tant techniques que pédagogiques.

CDAISI, cet acronyme barbare – ayant un affreux look serious business et devant être prononcé [sedezi] – est le petit nom de cette licence. Cette dernière est spécialisée dans ce qu’ils appellent le « Ethical Hacking » (sic.). Au programme, des choses intéressantes liées à la Sécurité des Systèmes d’Information (Développement, SE, vulnérabilités physiques, applicatives, web, réseaux etc.) le tout, appris sous un angle offensif. Je me demande encore comment l’on peut faire le tour de tout cela en un an… l’avenir me donnera la réponse.

Les cours à CDAISI

En quelques semaines, nous avons eu principalement des cours de « base » dans différents domaines principalement liés au développement, aux systèmes d’exploitation et aux réseaux. Des fois, il est important de revoir les bases, notamment pour quelqu’un -qui, comme moi – a appris une très grande partie de ses connaissances actuelles en autodidacte. Cela fait beaucoup de bien, comme je le dis souvent « c’est un peu moins Tetris après ».

La première partie de l’année (de septembre – à janvier, si j’ai bien compris) est donc dévouée à la révision des bases dans chaque domaine afin de mettre les élèves à un niveau minimum pour continuer. La deuxième partie, plus complexe – et plus « fun », est dédiée entièrement à l’étude des différents vecteurs d’exploitation et de sécurisation. Je me pose encore la question du niveau que l’on aura en sortant de cette formation. Par exemple sur les vulnérabilités applicatives, étudierons-nous les « nouvelles » techniques d’attaques et nouveaux tricks du style ROP ou même le très connu JIT-Spray afin de contourner certaines nouvelles protections (ALSR, DEP & autres trucs protégeant le stack). Pour ma part, je pense que non. Tout simplement car le périmètre technique de cette licence est extrêmement large, ainsi, les bases nous seront présentées et nous devront ensuite nous spécialiser en autodidacte.

Comme dans chaque licence, nous allons avoir une sorte de projet tuteuré pendant l’année (100h). Perso, j’ai eu plusieurs idées de projets mais toutes s’heurtent à une réelle complexité dans le développement. Mes « idées » allaient d’une extension Firefox malveillante ayant plusieurs « modules » (à la meterpreter) jusqu’à un patch noyau +et IPtables+ (reprenant le principe d’IP personnality) pour déjouer certaines prises d’empreintes. Enfin, nous verrons ceci le temps venu et je ne pense pas que certains ont les compétences en dev. pour tâter du noyau cette année – y compris moi.

Pour finir, il semble que l’on ait la possibilité à la fin de l’année de passer à prix réduit – ou gratuitement ? – la certification CEH qui est assez reconnue dans le domaine. Bref, on verra ce qu’il en est, car je n’ai pas plus d’informations sur cela aujourd’hui.

Les stages à CDAISI

Les stages dans cette licence sont pour moi, un point épineux, le revers de la médaille. Dès les premiers jours je me suis même demandé si je n’allais pas quitter la licence suite à ces derniers. Les stages à CDAISI sont donc réalisés à partir de janvier et ce, en alternance. C’est-à-dire, que nous sommes une semaine en cours et une autre semaine en entreprise. De plus, ces stages doivent être composés au minium de 30% de sécurité (je me demande comment ils font le pourcentage…). Pour ma part, j’ai choisi de la sécurité en « full », car si je suis dans une telle formation, ce n’est pas pour devenir administrateur réseaux ou développeur d’applications.

Premier problème : l’alternance. Cette dernière est au rythme une semaine sur deux de janvier à fin mai – puis l’ensemble du mois de juin en entreprise. Cela devient handicapant lorsqu’on veut réaliser un stage spécialisé en sécurité, car les entreprises spécialisées dans ce domaine aux alentours sont trop peu nombreuses. J’ai donc décidé de le réaliser à Paris pour un déficit calculé (pouvant varier suivant mon salaire) à 2070€. Ceci, lié à une double (col)location Paris/Maubeuge, au train, transports etc. (après, évidemment, c’est dans le pire de cas…)

Un autre problème lié à l’alternance est la continuation de certains projets dans l’entreprise. Je donne un peu le bâton pour me faire battre en publiant cela, mais je préfère être clair. Réaliser une semaine sur deux en entreprise est très difficile pour la continuation de projets, notamment dans le domaine de la veille ou chaque information doit être traitée en continuité. (et je ne parle pas des « gros » projets tels que l’installation d’infrastructures sécurisées etc.) *Note : ceci est un problème également pour être pris en stage, ce régime ne convenant pas à certaines entreprises et je les comprends.*

Un troisième problème se présente sous la forme des connaissances apprises avant le stage pour en faire un dans le domaine de la sécurité. Plusieurs camarades veulent faire un stage en sécurité mais n’ont, à ce jour, pratiquement aucune connaissance car les cours de sécurité débutent réellement en même temps que le stage. C’est pour cela que je me suis mis à faire des cours bénévolement, dans le but de procurer à certains des premières connaissances suivant le stage qu’ils cherchent (pentest, veille etc.).

Le cadre

La licence est située à Maubeuge. Une ville, qui, aux premiers regards peut-être représentée à l’aide de la chanson « Demain c’est trop tard » (petite référence à IAM) mais que l’on apprend à aimer. Son architecture, l’accent de ses habitants, son ciel gris et ses clubs de tuning reflètent le nord, évidemment, mais certains endroits sont vraiment bien (notamment pour les amateurs d’histoire).

En fait, la licence ne se situe pas sur un campus universitaire mais dans une antenne technique de l’Université de Valenciennes comptant 130 étudiants à vue d’oeil. Cette antenne est située à l’extérieur de Maubeuge (compter 40 minutes à pied pour y aller du centre ville) dans une zone industrielle. Le principal problème, ce n’est pas pour y aller (quoi que… des fois, on risque notre vie à pied) mais bien la gestion du self. Eh oui, il faut prévoir le jour où l’on va manger, une semaine à l’avance et se décider puis payer le self chaque lundi matin avant 10h (#WTF). Cette certaine incitation, pour les élèves, à aller manger ailleurs induit beaucoup de choses que je ne détaillerai pas ici.

Conclusion

Même si cette licence (comme toutes les autres formations) comporte des plus et des moins, je pense – et j’espère – qu’elle va me permettre de remettre à plat beaucoup de mes connaissances en SSI afin de continuer sur les bases saines dans ce domaine. J’espère avoir fait le tour de ces premières semaines avec mes impressions qui, je le rappelle, sont personnelles. J’espère également avoir répondu à certaines questions que certains futurs étudiants pourraient se poser, car il n’y a aucun véritable retour écrit sur le web concernant cette formation.

J’essayerai donc de continuer les retours tous les deux/trois mois, afin de suivre ma progression dans cette licence et les différents enseignements attachés.

Note : Je me marre de l’utilisation du mot « hacker » ou « hacking » à toutes les sauces, notamment commerciales. Après certains sont pas content, car les médias font une relation entre « hacking » et « pirates », et bien pour arrêter cela on n’a plus à utiliser le terme « hacking » à n’importe quelle sauce pour se faire mouiller.