<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The short internship &#187; web</title>
	<atom:link href="http://stage.rbpi.devenet.eu/mot-clef/web/feed" rel="self" type="application/rss+xml" />
	<link>http://stage.rbpi.devenet.eu</link>
	<description>Tribulations d&#039;un stagiaire en service informatique</description>
	<lastBuildDate>Sun, 23 Mar 2014 14:16:49 +0000</lastBuildDate>
	<language>fr-FR</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8.1</generator>
	<item>
		<title>Jour 21 • Récupération de mot de passe</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html#comments</comments>
		<pubDate>Mon, 29 Jul 2013 19:00:31 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[faille]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=268</guid>
		<description><![CDATA[Ce matin en accédant à l&#8217;intranet1. Ce qui l&#8217;est plus c&#8217;est qu&#8217;aucune vérification du lien reçu n&#8217;est effectué : il m&#8217;a été possible de faire afficher un site internet extérieur. Il m&#8217;est alors venu de faire afficher une page d&#8217;authentification &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Ce matin en accédant à l&rsquo;intranet<sup id="rf1-268"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html#fn1-268"  title="Site web de la collectivit&eacute;, accessible uniquement en interne, pr&eacute;sentant les services internes, l&rsquo;annuaire, etc), je me suis aper&ccedil;u en affichant le webmail que l&rsquo;intranet incluait directement la page gr&acirc;ce &agrave; une URL fournie en param&egrave;tre. Le webail &eacute;tant h&eacute;berg&eacute; en local rien de tr&egrave;s choquant ((M&ecirc;me si la technologie utilis&eacute;e est obsol&egrave;te : le iFrame :(">1</a></sup>. Ce qui l&rsquo;est plus c&rsquo;est qu&rsquo;aucune vérification du lien reçu n&rsquo;est effectué : il m&rsquo;a été possible de faire afficher un site internet extérieur. <br /> 
Il m&rsquo;est alors venu de faire afficher une page d&rsquo;authentification pirate, me permettant ainsi de récupérer nom d&rsquo;utilisateurs et mots de passe&#8230; </p> 
 <p> Le navigateur par défaut pour accéder à l&rsquo;intranet étant Internet Explorer<sup id="rf2-268"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html#fn2-268"  title="Oui je sais&hellip;">2</a></sup>, j&rsquo;ai donc passé la matinée à fabriquer une réplique de la fenêtre de connexion Windows. <br /> 
Il faut jouer sur la naïveté de l&rsquo;utilisateur : pour certaines applications, l&rsquo;authentification utilisateur de l&rsquo;AD de sa machine Windows ne suffit pas pour se connecter. Normalement, une nouvelle fenêtre d&rsquo;identification ne devrait pas trop le surprendre. </p> 
 <p> Le fait d&rsquo;imiter la fenêtre de connexion ne suffit pas : il faut amener l&rsquo;utilisateur à se rendre sur l&rsquo;intranet sur une URL particulière, et le mieux, qu&rsquo;il ne se rende pas compte que ses identifiants ont été dérobés. Une faille en cours de résolution sur le réseau interne est que le serveur d&rsquo;envoi des mails ne vérifie pas vraiment l&rsquo;identité. Il est donc possible d&rsquo;envoyer un mail à plusieurs personnes en se faisant passer pour un autre. Il ne reste plus qu&rsquo;à susciter l’intérêt de l&rsquo;agent pour qu&rsquo;il clique sur le lien : un message concernant une intervention du maire, un fiche de recommandation sur je ne sais quel sujet, &#8230; </p> 
 <p> Pour mettre en place cette récupération d&rsquo;identifiants, je souhaitais que l&rsquo;URL incluse ressemble à quelque chose d&rsquo;officiel. J&rsquo;ai opté pour <code>auth.ville.local</code>, sachant que le suffixe DNS des connexions filaires est <code>ville.local</code>. De plus, il est existe réellement un serveur <code>auth.ville.fr</code>, mais seulement accessible depuis l&rsquo;extérieur. La ressemblance est relativement bonne, surtout pour un utilisateur naïf ! <br /> 
J&rsquo;ai donc mis en place une machine virtuelle sous Ubuntu serveur, en y configurant un serveur Web, ainsi que son nom &laquo;&nbsp;auth&nbsp;&raquo;, qui une fois sur le réseau, est devenue auth.ville.local. Parfait <span class="icon-emo-happy"/> </p> 
 <p> Cette démarche a mis en évidence un autre problème du réseau interne : toute machine se connectant en filaire sur le réseau à l&rsquo;intérieur de la DSIT<sup id="rf3-268"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html#fn3-268"  title="Il faut d&eacute;j&agrave; r&eacute;ussir &agrave; le faier, le b&acirc;timent r&eacute;gulant toutes les entr&eacute;es.">3</a></sup> obtient le suffixe DNS &laquo;&nbsp;ville.local&nbsp;&raquo;. Donc toute personne ayant renommée intelligemment sa machine peut tenter &laquo;&nbsp;d&rsquo;usurper&nbsp;&raquo; l’identité d&rsquo;une autre machine. C&rsquo;est ce que P. a fait : il a nommé sa machine sous Linux du même nom que celle de A., et oh magie, lorsque je tentais un <em>ping</em> vers le nom de machine de A., c&rsquo;est en fait la machine de P. qui répondait. <br /> 
P. aurait souhaité prendre le nom d&rsquo;un serveur, pour voir comment le réseau réagirait, mais cela ne lui a pas été possible<sup id="rf4-268"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html#fn4-268"  title="Et on comprend bien, il aurait fallu un r&eacute;seau test &agrave; c&ocirc;t&eacute; pour le faire.">4</a></sup>. </p> 
 <p> Le problème a été remonté mais n&rsquo;est pour l&rsquo;instant pas une priorité absolue. Il s&rsquo;agit du réseau interne, et n&rsquo;importe qui ne peut pas entré ni tombé sur une prise Ethernet active. L&rsquo;extérieur de réseau est lui mieux sécurisé, et c&rsquo;est là dessus que l&rsquo;on souhaite se concentrer pour l&rsquo;instant. </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-268"> <p> Site web de la collectivité, accessible uniquement en interne, présentant les services internes, l&rsquo;annuaire, etc), je me suis aperçu en affichant le <em>webmail</em> que l&rsquo;intranet incluait directement la page grâce à une URL fournie en paramètre. Le webail étant hébergé en local rien de très choquant ((Même si la technologie utilisée est obsolète : le iFrame :(&nbsp;<a href="#rf1-268" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li><li id="fn2-268"> <p> Oui je sais&#8230;&nbsp;<a href="#rf2-268" class="backlink" title="Jump back to footnote 2 in the text.">&#8617;</a> </p> </li><li id="fn3-268"> <p> Il faut déjà réussir à le faier, le bâtiment régulant toutes les entrées.&nbsp;<a href="#rf3-268" class="backlink" title="Jump back to footnote 3 in the text.">&#8617;</a> </p> </li><li id="fn4-268"> <p> Et on comprend bien, il aurait fallu un réseau test à côté pour le faire.&nbsp;<a href="#rf4-268" class="backlink" title="Jump back to footnote 4 in the text.">&#8617;</a> </p> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://stage.rbpi.devenet.eu/ma-journee/jour-21-recuperation-de-mot-de-passe.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jour 17 • Persévérance</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-17-perseverance.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-17-perseverance.html#comments</comments>
		<pubDate>Tue, 23 Jul 2013 17:14:02 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[recherche]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=221</guid>
		<description><![CDATA[Aujourd&#8217;hui encore il a fait chaud. Autant le matin, l&#8217;atmosphère était respirable, mais alors l&#8217;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 &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-17-perseverance.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Aujourd&rsquo;hui encore il a fait chaud. Autant le matin, l&rsquo;atmosphère était respirable, mais alors l&rsquo;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 ! </p> 
 <p> D&rsquo;autant plus que j&rsquo;ai continué à rechercher des solutions de scripts pour analyser du code PHP. J&rsquo;ai fait un rapide bilan écrit (un peu plus complet et détaillé que celui d&rsquo;hier, notamment avec des captures d&rsquo;écrans) des solutions trouvées jusqu&rsquo;à présent. <br /> 
Sans grande surprise, je n&rsquo;ai toujours pas trouvé les sources de Pixy. </p> 
 <p> Mais surtout, j&rsquo;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&rsquo;ai mal fait quelque chose dans les installations des différents plugins et applications nécessaires (voire j&rsquo;en ai oublié un :/), soit ce n&rsquo;était pas mon jour&#8230; Alors imaginez avec une chaleur pas possible. </p> 
 <p> Mon problème n&rsquo;était pas le serveur central SonarQube, sorte de &laquo;&nbsp;dashboard&nbsp;&raquo;. Ce qui m&rsquo;a d&rsquo;abord posé problème, c&rsquo;était le Sonar Runner qui permet de lancer des tests sans devoir passer par Maven ou Ant. Mais c&rsquo;était trop peu pour me faire peur. Car après quelques sueurs <del>froides</del> chaudes, c&rsquo;est l&rsquo;installation de PHP qui a flanché. Et là, j&rsquo;ai perdu tout espoir en Windows. </p> 
<p style="text-align: center;"><a style="font-style: normal; line-height: 24px; text-decoration: underline;" href="http://www.sonarqube.org/" target="_blank"><img class="aligncenter size-full wp-image-223" style="border-color: #bbbbbb; background-color: #fff;" alt="SonarQube" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/Sonarqube-48x200.png" width="200" height="48" /></a> </p> 
 <p> J&rsquo;ai donc opté pour une machine virtuelle sous Ubuntu (j&rsquo;ai d&rsquo;ailleurs trouvé un tutoriel qui semble bien expliqué pour auditer du code PHP), qui j&rsquo;espère sera prête d&rsquo;ici demain matin. Et normalement, merveille des merveilles, je découvrirais le rapport d&rsquo;audit de Sonar <span class="icon-emo-happy"/> </p> 
]]></content:encoded>
			<wfw:commentRss>http://stage.rbpi.devenet.eu/ma-journee/jour-17-perseverance.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jour 8 • Un peu de code source</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-8-un-peu-de-code-source.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-8-un-peu-de-code-source.html#comments</comments>
		<pubDate>Wed, 10 Jul 2013 21:13:56 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[faille]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[recherche]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=120</guid>
		<description><![CDATA[La journée a commencé avec deux voitures incendiées : en arrivant nous avons pu voir que deux voitures de fonction utilisées par la collectivité locale étaient en cendre. Une personne de la police scientifique était présente et s&#8217;adonnait à des &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-8-un-peu-de-code-source.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> La journée a commencé avec deux voitures incendiées : en arrivant nous avons pu voir que deux voitures de fonction utilisées par la collectivité locale étaient en cendre. Une personne de la police scientifique était présente et s&rsquo;adonnait à des prélèvements, photos, etc pour tenter de déterminer la cause. A priori, ce ne serait pas volontaire. </p> 
 <p> <img class="aligncenter size-full wp-image-132" alt="Voitures brûlées" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/voitures_brulees.jpg" width="500" height="188" /> </p> 
 <p> La suite du programme a été de tester une application web<sup id="rf1-120"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-8-un-peu-de-code-source.html#fn1-120"  title="Encore en d&eacute;veloppement, sur un serveur d&rsquo;int&eacute;gration">1</a></sup> permettant de gérer le recyclage de gros déchets. <br /> 
P. s&rsquo;est rapidement aperçu que les champs des formulaires n&rsquo;étaient aucunement contrôlés : bonjour les failles XSS. D&rsquo;autre part, l&rsquo;envoi de fichiers n&rsquo;était pas non plus sécurisé : nous avons pu envoyer un fichier PHP et l&rsquo;exécuter. Et enfin les commandes systèmes <code>exec</code>, <code>shell_exec</code> et <code>system</code> n&rsquo;étaient pas désactivées, ce qui nous a permis d&rsquo;avoir la main mise sur le serveur&#8230;<img class="aligncenter size-large wp-image-142" alt="Capture faille exploitée par script PHP" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/capture_faille_appli_dechets-500x592.png" width="500" height="592" />L&rsquo;après-midi a été consacré à la recherche des lignes problématiques dans le code source que B. a pu nous fournir. Les développeurs ont utilisés le <em>framework</em> Zend pour leur application. Le problème, c&rsquo;est que Zend n&rsquo;échappe les caractères par défaut lors de réception de données<sup id="rf2-120"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-8-un-peu-de-code-source.html#fn2-120"  title="Donn&eacute;es re&ccedil;ues en GET ou en POST">2</a></sup>. Il faut donc qu&rsquo;à chaque ligne où la méthode de Zend pour récupérer une requête est utilisée échapper les caractères avec la fonction <code>htmlspecialchars</code><sup id="rf3-120"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-8-un-peu-de-code-source.html#fn3-120"  title="L&rsquo;application est en effet cod&eacute;e en PHP">3</a></sup>. <br /> 
Sublime Text a su me fournir rapidement toutes les lignes à corriger. Reste maintenant à pouvoir modifier le code source du projet en intégration&#8230; </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-120"> <p> Encore en développement, sur un serveur d&rsquo;intégration&nbsp;<a href="#rf1-120" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li><li id="fn2-120"> <p> Données reçues en GET ou en POST&nbsp;<a href="#rf2-120" class="backlink" title="Jump back to footnote 2 in the text.">&#8617;</a> </p> </li><li id="fn3-120"> <p> L&rsquo;application est en effet codée en PHP&nbsp;<a href="#rf3-120" class="backlink" title="Jump back to footnote 3 in the text.">&#8617;</a> </p> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://stage.rbpi.devenet.eu/ma-journee/jour-8-un-peu-de-code-source.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jour 4 • Montée en charge</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-4-montee-en-charge.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-4-montee-en-charge.html#comments</comments>
		<pubDate>Thu, 04 Jul 2013 21:00:56 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[réunion]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=92</guid>
		<description><![CDATA[Suite à la demande de B. pour simuler une montée en charge sur les deux futurs sites Internet de la collectivité locale, nous avons commencé notre matinée par vérifier que l&#8217;outil choisi la veille marchait bien, et effectuait bien ce &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-4-montee-en-charge.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Suite à la demande de B. pour simuler une montée en charge sur les deux futurs sites Internet de la collectivité locale, nous avons commencé notre matinée par vérifier que l&rsquo;outil choisi la veille marchait bien, et effectuait bien ce que l&rsquo;on souhaitait. Il nous a en effet donné satisfactions suite à des tests en interne. Nous avons donc pu dès 10 heures et demi lancer le test de montée en charge. </p> 
 <p> Nous avons procédé par étapes pour vérifier la robustesse du serveur. Deux ordinateurs lançait conjointement la simulation, répétée jusqu&rsquo;à un arrêt manuel, chargeant les pages suivantes : p<span style="line-height: 15px;">age d&rsquo;accueil ; g</span>alerie photos ; galerie vidéos ; recherche du mot &laquo;&nbsp;marchés&nbsp;&raquo;. <br /> 
Les simulations étaient les suivantes : </p> 
<ol>
<li>Simulation de 10 utilisateurs faisant 4 requêtes<sup id="rf1-92"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-4-montee-en-charge.html#fn1-92"  title="Notons qu&rsquo;une requ&ecirc;te correspond au chargement de la page demand&eacute;e, en chargeant aussi tous les &eacute;l&eacute;ments (fichiers CSS, javascript, images, &hellip;), ce qui en r&eacute;alit&eacute; repr&eacute;sente plusieurs requ&ecirc;tes&hellip;">1</a></sup> à la seconde <br /> 
(10×4×2 = 80 requêtes à la seconde)</li>
<li>Simulation de 30 utilisateurs faisant 4 requêtes à la seconde <br /> 
(20×4×2 = 160 requêtes à la seconde)</li>
<li>Simulation de 50 utilisateurs faisant 4 requêtes à la seconde et de 20 utilisateurs faisant 2 requêtes à la seconde <br /> 
(50×4×2+20×2×2 = 480 requêtes à la seconde)</li>
</ol>
 <p> Le serveur a tenu la charge pour les deux premières simulations (lors de la deuxième simulation, le temps de réponse est monté jusqu&rsquo;à une quarantaine de secondes&#8230;). Par contre, la troisième simulation a fait tomber la base de données au bout d&rsquo;une dizaine de secondes. <br /> 
Relancer le service a suffit pour retrouver un site opérationnel (la simulation étant arrêtée). </p> 
 <p> Après une matinée bien chargée, l&rsquo;après-midi a été consacré au document de recommandations pour la sécurité des applications web. Je sais quels points je veux aborder, mais il reste maintenant à organiser ça et à rendre ça digeste pour tout développeur&#8230; </p> 
 <p> La fin de journée a été consacrée à la résolution d&rsquo;un petit problème pour D., stagiaire de B. migrant un ancien Joomla sur la dernière version. Il lui était impossible d&rsquo;accéder à l&rsquo;administration de Joomla, une requête SQL d&rsquo;un utilisateur et de son mot de passe<sup id="rf2-92"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-4-montee-en-charge.html#fn2-92"  title="Hash&eacute; dans la BDD, mais connu au pr&eacute;alable">2</a></sup> a permis de résoudre le problème. </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-92"> <p> Notons qu&rsquo;une requête correspond au chargement de la page demandée, en chargeant aussi tous les éléments (fichiers CSS, javascript, images, &#8230;), ce qui en réalité représente plusieurs requêtes&#8230;&nbsp;<a href="#rf1-92" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li><li id="fn2-92"> <p> Hashé dans la BDD, mais connu au préalable&nbsp;<a href="#rf2-92" class="backlink" title="Jump back to footnote 2 in the text.">&#8617;</a> </p> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://stage.rbpi.devenet.eu/ma-journee/jour-4-montee-en-charge.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jour 2 • Mise en route</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html#comments</comments>
		<pubDate>Tue, 02 Jul 2013 21:38:33 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[réunion]]></category>
		<category><![CDATA[synthèse]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=63</guid>
		<description><![CDATA[Ce matin, pour mon deuxième jour, j&#8217;ai commencé par le document de synthèse des bonnes pratiques et marche à suivre concernant la sécurité lors de développements (principalement d&#8217;application web), en suivant les différentes recommandations trouvées sur Internet, notamment les « Recommandations pour &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Ce matin, pour mon deuxième jour, j&rsquo;ai commencé par le document de synthèse des bonnes pratiques et marche à suivre concernant la sécurité lors de développements (principalement d&rsquo;application web), en suivant les différentes recommandations trouvées sur Internet, notamment les « <a href="http://www.ssi.gouv.fr/IMG/pdf/NP_Securite_Web_NoteTech.pdf" target="_blank">Recommandations pour la sécurisation des sites web</a> »<sup id="rf1-63"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html#fn1-63"  title="Vous remarquerez que le document a &eacute;t&eacute; &eacute;crit en LaTeX :) ">1</a></sup> de l&rsquo;ANSSI. <br /> 
Bonnes nouvelles : dans ma pratique personnelle et avec l&rsquo;expérience que j&rsquo;ai pu acquérir en développement web, je suivais déjà la plupart de ces recommandations. Il va falloir maintenant les formaliser par écrit pour les développeurs de la DSIT pour les rendre automatiques. Je pense ajouter une annexe au document, qui serait comme une feuille de route avec pour chaque élèment à vérifier une case à cocher<sup id="rf2-63"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html#fn2-63"  title="J&rsquo;y vois pour l&rsquo;instant les rubriques &laquo;&nbsp;pendant le d&eacute;veloppement&nbsp;&raquo; et &laquo;&nbsp;avant la mise en production&nbsp;&raquo;">2</a></sup>. </p> 
 <p> P. m&rsquo;a ensuite montré plus en détail les différents outils qu&rsquo;il a pu utilisé pour faire ses tests de vulnérabilité. J&rsquo;ai notamment été bufflé par deux outils : </p> 
<ol>
<li><a href="http://www.tenable.com/products/nessus" target="_blank">Nessus</a> qui permet de lancer une batterie de tests sur une IP et de générer un rapport très complet<sup id="rf3-63"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html#fn3-63"  title="J&rsquo;en ai profit&eacute; pour faire un test &nbsp;complet sur mon Raspberry Pi. J&rsquo;avais oubli&eacute; que Fail2Ban &eacute;tait install&eacute;, l&rsquo;IP attaquante a donc &eacute;t&eacute; vite bannie, ce qui m&rsquo;a permis de m&rsquo;en sortir de bons r&eacute;sultats !">3</a></sup>. On peut ainsi récupérer les ports ouverts, l&rsquo;OS de la machine, les différentes versions de logiciels utilisés, les failles connues à partir de ses éléments, la découverte du réseau, etc ;</li>
<li><a href="https://github.com/trustedsec/social-engineer-toolkit" target="_blank">Social-Engineer Toolkit</a> qui permet, entre autre, de copier une page web pour récupérer les identifiants envoyés par un utilisateur. L&rsquo;exemple que P. m&rsquo;a montré est assez puissant je trouve : en une petite commande, la page d&rsquo;accueil du site de Facebook était copiée au pixel près ! Le formulaire envoyait de manière transparente les données au serveur pirate, puis renvoyait vers le vrai site Facebook : un utilisateur lambda n&rsquo;y verrait que du feu, et aurait pourtant compromis son compte <span class="icon-emo-displeased"/>  J&rsquo;essayerais de reproduire l&rsquo;exemple ici.</li>
</ol>
 <p> J&rsquo;ai pu découvrir de nombreux autres outils, certains plus spécialisés que d&rsquo;autres. </p> 
 <p> Nous sommes ensuite allés manger ensemble dans un restaurant chinois pas très loin. Le buffet à volonté ne fut pas mauvais du tout ! </p> 
 <p> L&rsquo;après-midi a commencé par une réunion avec B. et sa stagiaire D. concernant les actions communes que nous pouvions mettre en place. B. s&rsquo;occupe du développement de nombreuses applications web, et sa stagiaire D. doit faire évoluer deux anciens sites existants sur de nouvelles plateformes. Il est à noter que D. a pour formation initiale une formation beaucoup plus réseau que développement web. <br /> 
J&rsquo;ai ainsi pu aider D. à configurer son logiciel Wamp pour faire fonctionner un des anciens sites qui était sous Joomla 1.5. Il a aussi fallu importer une base de données SQL par l&rsquo;intermédiaire de phpMyAdmin. Je crois que ces petites configurations lui ont rendu un grand service pour qu&rsquo;elle puisse continuer à avancer dans son projet. </p> 
 <p> En fin de journée, nous avons dû nous pencher activement sur une partie du futur site Internet de la ville — qui doit être mis en production en fin de semaine. En effet sur le site actuel, il est possible par l&rsquo;intermédiaire d&rsquo;un formulaire de demander des papiers officiels pour l&rsquo;état civil. Le nouveau site ne permettant pas cette fonctionnalité, il faut absolument qu&rsquo;elle y soit présente. Nous devons donc déterminer si la fonctionnalité développée précédemment présente des risques majeurs, car l&rsquo;idée serait de greffer ce formulaire sur le nouveau site<sup id="rf4-63"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html#fn4-63"  title="Le site doit &ecirc;tre op&eacute;rationnel en fin de semaine, et avec cette fonctionnalit&eacute;, et &agrave; quoi bon r&eacute;inventer la roue ?">4</a></sup>. Évidemment, autant en profiter pour vérifier que tout va bien ! </p> 
 <p> Voilà comment s&rsquo;achève cette deuxième journée, tout aussi intéressante que la première ! </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-63"> <p> Vous remarquerez que le document a été écrit en LaTeX <span class="icon-emo-happy"/> &nbsp;<a href="#rf1-63" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li><li id="fn2-63"> <p> J&rsquo;y vois pour l&rsquo;instant les rubriques &laquo;&nbsp;pendant le développement&nbsp;&raquo; et &laquo;&nbsp;avant la mise en production&nbsp;&raquo;&nbsp;<a href="#rf2-63" class="backlink" title="Jump back to footnote 2 in the text.">&#8617;</a> </p> </li><li id="fn3-63"> <p> J&rsquo;en ai profité pour faire un test  complet sur mon Raspberry Pi. J&rsquo;avais oublié que Fail2Ban était installé, l&rsquo;IP attaquante a donc été vite bannie, ce qui m&rsquo;a permis de m&rsquo;en sortir de bons résultats !&nbsp;<a href="#rf3-63" class="backlink" title="Jump back to footnote 3 in the text.">&#8617;</a> </p> </li><li id="fn4-63"> <p> Le site doit être opérationnel en fin de semaine, et avec cette fonctionnalité, et à quoi bon réinventer la roue ?&nbsp;<a href="#rf4-63" class="backlink" title="Jump back to footnote 4 in the text.">&#8617;</a> </p> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://stage.rbpi.devenet.eu/ma-journee/jour-2-mise-en-route.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
