Archives mensuelles : juillet 2012

Trouver la liste des passeports des résidents d’un hotel via un hotspot wifi…

En ce début d’année j’ai eu la chance d’être invité au 4mTunis qui avait lieu dans un bel hôtel de la capitale Tunisienne. L’organisation était parfaite à un détail près : le wifi de l’hôtel était saturé, et bien vite les accès réservés aux invités et conférenciers se sont retrouvés ne plus fonctionner. La direction de l’hôtel n’arrivant pas à trouver de solution, on a cherché et trouvé tout à fait autre chose…

Le système de hotspot était basé sur un logiciel open-source (ez-radius) modifié pour que la reconnaissance d’un utilisateur se fasse sur un couple numéro de passeport / numéro de chambre. En fonction de ces identifiants on pouvait commander du temps de surf et se le voir imputé sur la facture de la chambre.

Une fois connecté il fallait conserver une page ouverte décrivant le statut de la connexion (portail captif)… Et c’est sur cette page que nous avons pu jouer avec les amis de Telecomix TN, du Parti Pirate TN et du hackerspace de façon générale…

En utilisant un cookie mis en place par le portail et mal vérifié à sa ré-utilisation par l’application nous avons eu accès à la base de données…

Grâce à une (relativement) simple injection SQL nous avons donc pu mettre la main sur la liste des numéros de passeport de tous les gens résidant à l’hôtel à ce moment (parmi lesquels les fondateurs de Mediapart ou Rue89 invités aussi) et depuis la création du système… Avec le numéro de chambre et les dates de séjour correspondantes.

Pire encore : il est techniquement possible de relier ces informations  à l’historique de  navigation et de surveiller ainsi la totalité de l’activité dudit hôtel (et peut-être d’autres utilisant le même système dans cette chaîne ou des systèmes similaires dans d’autres) sur Internet.

Il va de soit que nous n’avons pas touché aux données et n’avons rien sauvegardé.

Petit conseil donc, lorsque vous êtes à l’hôtel, même en France, pensez à chiffrer tout votre trafic…

Photo par @eon01

De l’open source au programme d’écoles supérieures en informatique ?

OK, je l’ai encore fait, j’ai encore trollé… Samedi je disais sur Twitter que la porte de mes toilettes est décorée d’un panneau Epitech (c’est le cas, vous aurez une photo si vous êtes sages) et forcément dans la foulée j’ai reçu plusieurs mails me demandant pourquoi, ce que je reprochais à cette école et même un me demandant si il devait choisir une autre école finalement.

Alors je vous rassure : non je n’ai rien contre Epitech en soit, à vrai dire je m’en fiche…

Ce qui me gêne plus c’est le cursus général de l’informatique supérieure qui a tendance à former des bataillons de chefs de projet technico-fonctionnels (ce qui ne correspond pas au besoin du marché en passant hein !) et qui le fait par une pluie de connaissances dictées et normalisées par des années de recherches super intéressantes sur la théorie de la relativité du peut-être des besoins des entreprises pas représentatives du marché d’il y a 20 ans…

J’abuse : à la fin des études en général on met l’étudiant en stage pour qu’il voit comment ça se passe dans la vraie vie (qu’il réalise qu’il a payé 5 ans d’étude pour apprendre des conneries).

Gâchis extraordinaire s’il en est lorsque l’on sait qu’il y a un secteur du logiciel (au sens large) fondamental sur les interwebz et ailleurs qui manque toujours de ressources et qui est le plus formateur : l’open source.

Partant de là pourquoi ne pas ajouter un peu d’open source à ces études, pourquoi même ne pas calquer le déroulé pédagogique dessus ?

Coder pour les autres

L’un des intérêts principaux de cette proposition réside dans la rigueur et la qualité qui découle de projets voués à être diffusés de la sorte.

Il m’est arrivé de coder des trucs à l’arrache, sur le pouce, pour des besoins spécifiques personnels. A l’inverse lorsque j’ai fait des propositions de modification pour des fonctionnalités avancées de Prestashop (utilisé sur 100.000 boutiques à l’époque) j’ai pris plusieurs heures pour faire des vérifications dans tous les sens, des tests de régression, des vérifications sur l’environnement (mes modifications ne risquent-elles pas d’impacter des modules third-party ?)…

La qualité du code sortie est aussi beaucoup plus propre et on apprend à se servir d’outils assez formidables que jamais personne ne vous fera voir en école d’ingénieur actuellement (trouvez moi un cursus PHP avec du PHPCS, PHPMD, PHPUnit, …) pour valider son code de façon industrielle… Avouez que d’un coup ça donne une autre gueule aux TPs !

Travailler en équipe(s)

Puisque l’on parle d’outils justement, une des caractéristiques les plus intéressantes de l’open-source (vu sous cet angle de l’apprentissage) est sa capacité à réunir des dizaines de compétences autour d’un projet via des outils, des process, au delà souvent même de la barrière des langues. Ah oui parce que bon, les ingénieurs BAC+5 en informatique qui ne parlent pas anglais non plus ce n’est pas une réalité du marché…

J’ai vu des équipes en entreprise comme dans le monde de l’open-source essayer de trouver la meilleure suite d’outils pour communiquer, s’organiser, partager le code… A la sortie d’une école vous devriez maitriser les principaux et en connaitre quelques exotiques. Cette exhaustivité n’existe que dans le monde open-source. Dans le monde de l’entreprise (tu sais, ton stage de fin d’année) vous serez formé à une techno (SVN + Mantis + mail au hasard) et pas plus…

Toujours être à la pointe

Ah oui la veille… Bon on va pas se leurrer, si vous faites une école d’info normalement c’est pour être tranquille en émargeant à 50k€ en junior avec un CDI et des tickets resto…

Ou pas : normalement lorsque l’on arrive à ce niveau on est avant tout un passionné, quelqu’un qui veut chercher à connaitre plus que ce qu’il va utiliser potentiellement, chercher à comprendre comment fonctionne ce qu’il utilise au quotidien, découvrir de nouveaux outils lui permettant de travailler plus efficacement ou moins, …

Bref ça demande d’être capable de faire de la veille technologique, de savoir analyser un produit lorsqu’on le découvre et être capable de prendre une décision rapide sur son intérêt ou pas à l’intégrer dans tel ou tel projet.

Tout cela on peut savoir le faire de façon innée, on peut l’apprendre de façon théorique mais là encore il n’y a que dans l’open-source, avec ses collaborations de toutes part, que j’ai vu son efficacité atteindre son paroxysme. Il n’y a que dans l’open-source où j’ai vu des équipes s’organiser pour analyser l’existant concurrent, les autres produits éventuellement intégrables et prendre des décisions par rapport à tout ceci pour faire évoluer un produit sans pour autant s’astreindre à la durée d’un sprint scrum (private-troll !!!).

Contribuer à quelque chose (de grand)

Et pour finir, non sur le moins pire (last but not least quoi), le monde de l’open-source est très ouvert : vous pouvez demain contribuer à un projet qui a déjà des centaines de milliers d’utilisateurs. Sur le principe c’est génial pour tous les points évoqués plus haut et pour le produit et ses utilisateurs en eux-même à qui vous avez probablement rendu service en contribuant à la réussite dudit projet.

Mais il y a un autre point intéressant à cela : le CV. Un recruteur préférera (théoriquement hein, si vous postulez chez Crosoft ça marche plus… mais si c’est le cas quittez ce blog) voir des noms de gros et / ou beaux projets tout au long de votre cursus universitaire (voire avant et après dans l’idéal) que vos trois mois de stages à la DSI de Leclerc Bourgogne (comme pour Epitech, rien contre eux).