Jour 22 • Le souci du détail

Ce matin, j’ai continué à me pencher sur la copie de la fenêtre de connexion Windows. Mon poste de travail étant sous Windows 7 et la majorité du parc informatique aussi, je me suis dit que c’était la bonne version de l’OS à choisir. De même la majorité des utilisateurs utilisent Internet Explorer1 qui utilise la fenêtre habituelle de connexion Windows.
La fenêtre a donc été « optimisée » pour être la plus ressemblante à celle de Windows 7 ouverte depuis IE. Au final, voici un petit comparatif.

Windows weblogin comparaison

Pour rendre la fenêtre encore plus réaliste, j’ai ajouté un peu de JavaScript pour rendre la fenêtre déplaçable. Seul bémol, la fenêtre ne peut pas sortir du cadre d’Internet Explorer, alors que la vraie fenêtre oui. La copie n’est qu’une image, mais les champs ainsi que les boutons sont codés en HTML.

La fin de matinée a été consacrée à une réunion de synthèse avec X.2 sur le travail effectué depuis le début du mois de juillet. A., P. et moi étions présents.
Il a été donc rappelé tout le travail par chacun, et pour a part j’ai pu refaire une synthèse de ce que j’ai pu voir et faire au sein du stage :

  • Recherche et mise en place d’un outil de test de montée de charge (avec rédactions de documents)
  • Analyse du code source d’un application web vulnérable avec explications des solutions et corrections à mettre en place
  • Recherche d’un outil d’analyse de code source « statique » pour répérer dès le développement certaines failles
  • Rédaction d’un document de recommandations des bonnes pratiques de codage lors de développement d’applications web
  • Recherche d’utilisation de la vulnérabilité de l’intranet pour daire du hameçonnage3

Le midi, malgré le temps peu accueillant, nous avons pu nous régaler avec un barbecue

L’après-midi a été un peu plus calme, j’ai pu terminer la fausse fenêtre d’authentification, que je ai mise en ligne.
N’oubliez pas qu’elle est destinée à être ouverte dans une iFrame sur l’intranet de la collectivité, dans un environnement Windows 7 avec Internet Explorer, et qui s’appuie sur la naïveté des utilisateurs

Je vais tout de même lister les petits détails qui devraient mettre la puce à oreille aux utilisateurs :

  • Normalement, la session Windows de l’utilisateur connecté l’identifie par défaut sur l’intranet.
  • L’URL incluse est auth.ville.local, alors que le serveur est auth.ville.fr4
  • La fenêtre n’est pas déplaçable en dehors du navigateur, seul la barre de titre permet en réalité de la déplacer
  • Lorsqu’un champ est sélectionné, la bordure est bleue et ne reste pas grise
  • La touche « échap » ne permet pas de quitter la fenêtre, chose possible sur la vraie fenêtre
  • Le fond bleu change de couleur lors du survol des deux champs, et non pas de la fenêtre

  1. Version 9 tout de même ! 

  2. Responsable de notre branche, directeur-adjoint de la DSIT… 

  3. Ou Phishing en anglais. 

  4. d’ailleurs les champs grisés affichaient auth.ville.fr et VILLE 

Jour 20 • Bilan

Dernière journée de cette semaine. Quelle surprise quand en se levant il pleuvait et tonnait ! Une bonne grosse averse et des orages à partir de quatre heures du matin, qui ont duré au moins jusque 10 heures.
Conséquence : barbecue annulé et reporté à mardi de la semaine prochaine. En espérant qu’il fasse beau.

La matinée a achevé mes recherches sur des outils pour auditer du code source d’applications web. J’ai préparé un joli PowerPoint de présentation et de comparatif des solutions trouvées durant la semaine.
Les outils qui ont vraiment retenus mon attentions sont RIPS, Graudit et SonarQube1. Pour le reste, soit je n’ai pu pu les tester2, soit les résultats étaient plus que médiocres, soit encore les applications ne répondaient pas au problème…

Le barbecue annulé nous a permis de faire une petite session de Left4Dead à quatre. Après cette longue pause, nous avons présenté notre travail à A. Et pris dans les discussions, il était déjà l’heure du weekend

Sinon j’ai compté, il ne me reste plus que 13 jours ouvrés de stage…


  1. Même si SonarQube est un outil de mesure de qualité de code, il permet de trouver des variables non utilisées et des portions de code dupliquées. 

  2. Impossibilité des les télécharger ou impossibilité de les exécuter, malgré tout le mal que je me suis donné :/ 

Jour 19 • Maitrise

Aujourd’hui A. était en déplacement sur Paris pour le marché d’hébergements. Ce qui ne nous a pas empêche de travailler !

Après une installation réussie hier de l’outil SonarQube, j’ai pu tester différents sites avec différents types de configurations (tests basiques, sur tels critères, etc). L’outil est vraiment complet pour la qualité de code, mais absolument rien concernant la sécurité… Or le but de mes recherches est de trouver des applications capables de déceler dans le code source des vulnérabilités. Donc malgré l’intérêt que j’ai pour cet outil, il ne convient malheureusement pas…
Néanmoins, j’ai appris à lancer ces différents tests, jongler avec cet outil parfois capricieux. J’ai enfin pris ma revanche

J’ai donc continué ma recherche, et je suis tombé sur un petit logiciel pour Windows capable de scanner du code statique, et aussi dynamiquement1 : PHP Vulnerability Hunter.
Je reste assez septique. Le logiciel n’a trouvé qu’une seule petite faille mineur sur le code testé, et dont un essai sur deux de scan se solde par une sorte de plantage. Peut-être faut-il un nombre restreint de fichiers à tester ?

Demain matin, P. a demandé à A. s’il pouvait l’accompagner pour une réunion concernant le marché d’hébergement pour voir comment ça se déroule. Je pense finir ma présentation des outils trouvés jusqu’à présent, car après le barbecue, petite réunion de synthèse.


  1. Dans ce cas, un serveur web sur lequel le code est exécuté est nécessaire 

Jour 18 • C’est qui le chef ?

Quel bonheur de commencer la journée avec un peu de frais dans le bureau !

Deuxième surprise : Windows a fait des mises à jour cette nuit1, et a donc redémarrer l’ordinateur : la machine virtuelle d’Ubuntu a planté en plein installation.
Me voilà donc à recommencer l’installation. Problème, après redémarrage problèmes graphiques empêchant le lancement de toute fenêtre. Bref, j’étais bon pour refaire une installation. Et alors là, plantage en plein installation. Que du bonheur. J’ai même tenté une installation « dual-boot » avec Wubi depuis Windows, là encore patatra…

Vint de l’heure de se restaurer pendant que le téléchargement d’Ubuntu serveur est en cours. Car j’ai fondé mon espoir sur cette version sans interface graphique, et fort heureusement, je n’ai pas été déçu.
En suivant scrupuleusement l’article de Dupot2 — après quelques configurations pour accéder au proxy ! —, SonarQube pour PHP et tous les dépendances nécessaires ont été installées

SonarQube résultat
SonarQube résultat

Et il faut dire, que l’outil semble assez puissant. Je n’ai pour l’instant que fait un test sur un exemple proposé par SonarQube, l’ensemble du code est passé en revu. Je n’ai encore pu voir si cela avait un intérêt concernant la sécurité, car la majorité des alertes se font sur la qualité du code (nombre classes, méthodes, fonctions, complexité, etc).
Je vais pouvoir demain passer l’ensemble des projets à travers cet outil


  1. Habituellement, Microsoft sort ses patchs de sécurité tous les deuxièmes mardi de chaque mois. 

  2. http://dupot.org/post-10.html 

Jour 17 • Persévérance

Aujourd’hui encore il a fait chaud. Autant le matin, l’atmosphère était respirable, mais alors l’après-midi, je me serai cru dans une fournaise. Je suis content que le journée se finisse, car je commençais à avoir un peu mal à la tête !

D’autant plus que j’ai continué à rechercher des solutions de scripts pour analyser du code PHP. J’ai fait un rapide bilan écrit (un peu plus complet et détaillé que celui d’hier, notamment avec des captures d’écrans) des solutions trouvées jusqu’à présent.
Sans grande surprise, je n’ai toujours pas trouvé les sources de Pixy.

Mais surtout, j’ai tenté de faire fonctionner SonarQube. Sur Windows évidemment. Alors après quelques cafouillages, des configurations bancales qui ont tout de même le mérite de ne pas tout faire planter, impossible de faire des tests pour PHP. Soit j’ai mal fait quelque chose dans les installations des différents plugins et applications nécessaires (voire j’en ai oublié un :/), soit ce n’était pas mon jour… Alors imaginez avec une chaleur pas possible.

Mon problème n’était pas le serveur central SonarQube, sorte de « dashboard ». Ce qui m’a d’abord posé problème, c’était le Sonar Runner qui permet de lancer des tests sans devoir passer par Maven ou Ant. Mais c’était trop peu pour me faire peur. Car après quelques sueurs froides chaudes, c’est l’installation de PHP qui a flanché. Et là, j’ai perdu tout espoir en Windows.

SonarQube

J’ai donc opté pour une machine virtuelle sous Ubuntu (j’ai d’ailleurs trouvé un tutoriel qui semble bien expliqué pour auditer du code PHP), qui j’espère sera prête d’ici demain matin. Et normalement, merveille des merveilles, je découvrirais le rapport d’audit de Sonar