<?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; outil</title>
	<atom:link href="http://stage.rbpi.devenet.eu/mot-clef/outil/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 19 • Maitrise</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-19-maitrise.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-19-maitrise.html#comments</comments>
		<pubDate>Thu, 25 Jul 2013 21:12:08 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[recherche]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=255</guid>
		<description><![CDATA[Aujourd&#8217;hui A. était en déplacement sur Paris pour le marché d&#8217;hébergements. Ce qui ne nous a pas empêche de travailler ! Après une installation réussie hier de l&#8217;outil SonarQube, j&#8217;ai pu tester différents sites avec différents types de configurations (tests &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-19-maitrise.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Aujourd&rsquo;hui A. était en déplacement sur Paris pour le marché d&rsquo;hébergements. Ce qui ne nous a pas empêche de travailler ! </p> 
 <p> Après une installation réussie hier de l&rsquo;outil SonarQube, j&rsquo;ai pu tester différents sites avec différents types de configurations (tests basiques, sur tels critères, etc). L&rsquo;outil est vraiment complet pour la qualité de code, mais absolument rien concernant la sécurité&#8230; 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&rsquo;intérêt que j&rsquo;ai pour cet outil, il ne convient malheureusement pas&#8230; <br /> 
Néanmoins, j&rsquo;ai appris à lancer ces différents tests, jongler avec cet outil parfois capricieux. J&rsquo;ai enfin pris ma revanche <span class="icon-emo-wink2"/> </p> 
 <p> J&rsquo;ai donc continué ma recherche, et je suis tombé sur un petit logiciel pour Windows capable de scanner du code statique, et aussi dynamiquement<sup id="rf1-255"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-19-maitrise.html#fn1-255"  title="Dans ce cas, un serveur web sur lequel le code est ex&eacute;cut&eacute; est n&eacute;cessaire">1</a></sup> : <a href="http://www.autosectools.com/PHP-Vulnerability-Scanner" target="_blank">PHP Vulnerability Hunter</a>. <br /> 
Je reste assez septique. Le logiciel n&rsquo;a trouvé qu&rsquo;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 ? </p> 
 <p> Demain matin, P. a demandé à A. s&rsquo;il pouvait l&rsquo;accompagner pour une réunion concernant le marché d&rsquo;hébergement pour voir comment ça se déroule. Je pense finir ma présentation des outils trouvés jusqu&rsquo;à présent, car après le barbecue, petite réunion de synthèse. </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-255"> <p> Dans ce cas, un serveur web sur lequel le code est exécuté est nécessaire&nbsp;<a href="#rf1-255" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://stage.rbpi.devenet.eu/ma-journee/jour-19-maitrise.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prise en main rapide de JMeter</title>
		<link>http://stage.rbpi.devenet.eu/documentation/prise-en-main-rapide-de-jmeter.html</link>
		<comments>http://stage.rbpi.devenet.eu/documentation/prise-en-main-rapide-de-jmeter.html#comments</comments>
		<pubDate>Thu, 25 Jul 2013 08:10:08 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=144</guid>
		<description><![CDATA[JMeter est un outil permettant d’effectuer des tests de performance d’applications et de serveurs. Il permet de simuler le comportement de plusieurs utilisateurs agissant de manière si-multanée sur une application web. Il mesure, entre autre, le temps de réponse de &#8230; <a href="http://stage.rbpi.devenet.eu/documentation/prise-en-main-rapide-de-jmeter.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> JMeter est un outil permettant d’effectuer des tests de performance d’applications et de serveurs. Il permet de simuler le comportement de plusieurs utilisateurs agissant de manière si-multanée sur une application web. Il mesure, entre autre, le temps de réponse de chaque re-quête et produit des statistiques de ces temps de réponse. <br /> 
Il permet aussi de simuler une montée en charge. </p> 
 <p> Il est développé en Java et est sous Licence Apache. </p> 
 <p> <img class="aligncenter size-full wp-image-83" alt="logo JMeter" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter.jpg" width="221" height="102" /> </p> 
 <p> <span id="more-144"></span> </p> 
 <p> Ce qui suit n&rsquo;est qu&rsquo;une copie du manuel écrit dans le cadre de mon stage. </p> 
<h2>Installation</h2>
<h3>Pré-requis</h3>
 <p> Une version récente et à jour de Java est requise. Si ce n’est pas le cas, il faut télécharger la dernière version à l’adresse suivante : <br /> 
<a href="http://www.java.com/fr/download/windows_xpi.jsp" target="_blank">http://www.java.com/fr/download/windows_xpi.jsp</a> </p> 
<h3>Téléchargement</h3>
 <p> Il suffit de télécharger les <em>binaries</em> de JMeter sur le site officiel à l’adresse : <br /> 
<a href="http://jmeter.apache.org/download_jmeter.cgi" target="_blank">http://jmeter.apache.org/download_jmeter.cgi</a> </p> 
<h3>Lancement</h3>
 <p> Une fois le dossier décompressé, il suffit de lancer le fichier &laquo;&nbsp;ApacheJMeter.java&nbsp;&raquo; présent dans le dossier &laquo;&nbsp;apache-jmeter-2.9\bin&nbsp;&raquo;. <br /> 
<a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter-screen-2-units-group.png" target="_blank"><img class="aligncenter size-large wp-image-149" alt="JMeter - Units grouop" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter-screen-2-units-group-500x427.png" width="500" height="427" /></a> </p> 
<h2>Préparation</h2>
 <p> Le but de ce scénario est de simuler une montée en charge sur différentes pages<sup id="rf1-144"><a href="http://stage.rbpi.devenet.eu/documentation/prise-en-main-rapide-de-jmeter.html#fn1-144"  title="La page d&rsquo;accueil ainsi qu&rsquo;une page de recherche seront test&eacute;es. Pour chaque page, une ressource (image) devra aussi &ecirc;tre charg&eacute;e.">1</a></sup> d’un site web, tout en chargeant automatiquement les ressources associées (feuilles de style, images, JavaScript, …). <br /> 
<strong>Note :</strong> JMeter n’est pas capable d’exécuter les scripts chargés ! </p> 
 <p> Le &laquo;&nbsp;plan de test&nbsp;&raquo; est l’emplacement à partir duquel on définit ce que l’on va tester alors que le &laquo;&nbsp;plan de travail&nbsp;&raquo; est un emplacement permettant de garder les composants de test non utilisés. </p> 
<h3>Création du scénario</h3>
 <p> Il faut commencer par créer un « Groupe d’unités ». <br /> 
Ce groupe d’unités peut être vu comme des clients. <br /> 
<a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter-screen-2-units-group.png" target="_blank"><img class="aligncenter size-large wp-image-149" alt="JMeter - Units group" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter-screen-2-units-group-500x427.png" width="500" height="427" /></a> </p> 
 <p> Il faut ensuite ajouter les différences pages à tester en ajoutant des &laquo;&nbsp;Requêtes HTTP&nbsp;&raquo;. <br /> 
<a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter-screen-3-http-request.png" target="_blank"><img class="aligncenter size-large wp-image-150" alt="JMeter - HTTP request" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter-screen-3-http-request-500x427.png" width="500" height="427" /></a> </p> 
 <p> Après avoir sélectionné la requête nouvellement créée, il faut la configurer. <br /> 
Les paramètres importants (à compléter ou vérifier) sont : </p> 
<ul>
<li>nom (facultatif) : nom court de la page testée</li>
<li>nom ou adresse IP du serveur web : nom du serveur à tester (sans slash)</li>
<li>protocole de la requête HTTP : http</li>
<li>chemin de la requête HTTP : arborescence jusqu’à la page à tester</li>
<li>connexion persistante : √ ou × (selon le protocole de test)</li>
<li>récupérer les ressources incluses : √ ou × (selon le protocole de test)</li>
</ul>
 <p> <a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jemter-screen-3-http-request-filled.png" target="_blank"><img class="aligncenter size-large wp-image-151" alt="JMeter - HTTP request filled" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jemter-screen-3-http-request-filled-500x427.png" width="500" height="427" /></a> </p> 
 <p> Pour la page de recherche, il faut aussi envoyer des paramètres en URL pour simuler la page : </p> 
<pre>http://localhost/dev/search.php?search=une+recherche</pre>
 <p> Il suffit d&rsquo;ajouter ces informations dans l&rsquo;onglet &laquo;&nbsp;Paramètres&nbsp;&raquo;. La colonne &laquo;&nbsp;nom&nbsp;&raquo; permet d&rsquo;inscrire le nom du paramètre, et la colonne &laquo;&nbsp;valeur&nbsp;&raquo; le paramètre. <br /> 
Notez qu&rsquo;il est possible d&rsquo;encoder automatiquement le paramètre en cochant l&rsquo;option &laquo;&nbsp;encodage&nbsp;&raquo;. </p> 
 <p> Une fois que le scénario est créé, il faut définir des récepteurs pour les résultats. </p> 
<h3>Rapports de résultats</h3>
 <p> Pour visualiser les résultats de la simulation, je vous propose d&rsquo;ajouter trois types de rapports : </p> 
<ol>
<li>Arbre de résultats</li>
<li>Graphique de résultats</li>
<li>Graphique évolution temps de réponses</li>
</ol>
 <p> Résumé du scénario et des rapports : </p> 
 <p> <a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-0-tree.png"><img class="aligncenter size-full wp-image-244" alt="JMeter - Tree" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-0-tree.png" width="215" height="156" /></a> </p> 
<h2> Simulation</h2>
 <p> Maintenant que le scénario de simulation est créé, et que les différents rapports voulus ont été ajoutés, la simulation va pouvoir être lancée. </p> 
<h3>Lancement de la simulation</h3>
 <p> Juste avant de lancer la simulation, il faut vérifier que les paramètres de simulation de montée en charge sont bien ceux définis par le protocole de tests. <br /> 
Il faut sélectionner &laquo;&nbsp;Groupe d&rsquo;unités&nbsp;&raquo; pour vérifier et ajuster les propriétés de la simulation. </p> 
 <p> <a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-2-units-group-filled.png"><img class="aligncenter size-large wp-image-242" alt="JMeter - Units group filled" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-2-units-group-filled-500x209.png" width="500" height="209" /></a> </p> 
 <p> Quand tout semble correct, il suffit de cliquer sur l&rsquo;icône &laquo;&nbsp;play&nbsp;&raquo; dans la barre d&rsquo;outils. </p> 
 <p> <a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-0-toolbar.png"><img class="aligncenter size-full wp-image-243" alt="JMeter - Partial toolbar" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-0-toolbar.png" width="409" height="38" /></a> </p> 
<h3>Analyse des résultats</h3>
<ul>
<li>Le rapport &laquo;&nbsp;Arbre de résultats&nbsp;&raquo; permet de visualiser tous les détails de la requête (envoi, comme réception). Il est aussi possible de vérifier que les ressources présentes sur la page ont bien été chargées.</li>
<li>Le &laquo;&nbsp;Graphique de résultat&nbsp;&raquo; permet de visualiser graphiquement les données envoyées et reçues.</li>
<li>Le &laquo;&nbsp;Graphique évolution temps de réponse&nbsp;&raquo; permet, comme son nom l’indique, de suivre l’évolution du temps de réponse durant la simulation.</li>
</ul>
<div id="attachment_245" style="width: 510px" class="wp-caption aligncenter"><a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-8-results-tree.png"><img class="size-large wp-image-245" alt="JMeter - Results tree" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-8-results-tree-500x592.png" width="500" height="592" /></a><p class="wp-caption-text">Arbre de résultats </p> </div>
<div id="attachment_246" style="width: 510px" class="wp-caption aligncenter"><a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-6-results-graphic.png"><img class="size-large wp-image-246" alt="JMeter - Results graphic" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-6-results-graphic-500x425.png" width="500" height="425" /></a><p class="wp-caption-text">Graphique de résultats </p> </div>
<div id="attachment_247" style="width: 510px" class="wp-caption aligncenter"><a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-7-results-response-time-graphic.png"><img class="size-large wp-image-247" alt="JMeter - Results response time graphic" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/screen-7-results-response-time-graphic-500x424.png" width="500" height="424" /></a><p class="wp-caption-text">Graphique évolution temps de réponses </p> </div>
 <p> Voilà, à vous les tests de sites web, notamment les montées en charge <span class="icon-emo-happy"/> </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-144"> <p> La page d’accueil ainsi qu’une page de recherche seront testées. Pour chaque page, une ressource (image) devra aussi être chargée.&nbsp;<a href="#rf1-144" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://stage.rbpi.devenet.eu/documentation/prise-en-main-rapide-de-jmeter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jour 18 • C&#8217;est qui le chef ?</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-18-cest-qui-le-chef.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-18-cest-qui-le-chef.html#comments</comments>
		<pubDate>Wed, 24 Jul 2013 18:49:38 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=231</guid>
		<description><![CDATA[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&#8217;ordinateur : la machine virtuelle d&#8217;Ubuntu a planté en &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-18-cest-qui-le-chef.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Quel bonheur de commencer la journée avec un peu de frais dans le bureau ! </p> 
 <p> Deuxième surprise : Windows a fait des mises à jour cette nuit<sup id="rf1-231"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-18-cest-qui-le-chef.html#fn1-231"  title="Habituellement, Microsoft sort ses patchs de s&eacute;curit&eacute; tous les deuxi&egrave;mes mardi de chaque mois.">1</a></sup>, et a donc redémarrer l&rsquo;ordinateur : la machine virtuelle d&rsquo;Ubuntu a planté en plein installation. <br /> 
Me voilà donc à recommencer l&rsquo;installation. Problème, après redémarrage problèmes graphiques empêchant le lancement de toute fenêtre. Bref, j&rsquo;étais bon pour refaire une installation. Et alors là, plantage en plein installation. Que du bonheur. J&rsquo;ai même tenté une installation &laquo;&nbsp;dual-boot&nbsp;&raquo; avec Wubi depuis Windows, là encore patatra&#8230; </p> 
 <p> Vint de l&rsquo;heure de se restaurer pendant que le téléchargement d&rsquo;Ubuntu serveur est en cours. Car j&rsquo;ai fondé mon espoir sur cette version sans interface graphique, et fort heureusement, je n&rsquo;ai pas été déçu. <br /> 
En suivant scrupuleusement l&rsquo;article de Dupot<sup id="rf2-231"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-18-cest-qui-le-chef.html#fn2-231"  title="http://dupot.org/post-10.html">2</a></sup> — après quelques configurations pour accéder au proxy ! —, SonarQube pour PHP et tous les dépendances nécessaires ont été installées <span class="icon-emo-happy"/> </p> 
 <p> <a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/example_sonar_qube_2.png"><img class="aligncenter size-large wp-image-234" alt="SonarQube résultat" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/example_sonar_qube_2-500x110.png" width="500" height="110" /></a> <br /> 
<a href="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/example_sonar_qube_1.png"><img class="aligncenter size-large wp-image-233" alt="SonarQube résultat" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/example_sonar_qube_1-500x509.png" width="500" height="509" /></a> </p> 
 <p> Et il faut dire, que l&rsquo;outil semble assez puissant. Je n&rsquo;ai pour l&rsquo;instant que fait un test sur un exemple proposé par SonarQube, l&rsquo;ensemble du code est passé en revu. Je n&rsquo;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). <br /> 
Je vais pouvoir demain passer l&rsquo;ensemble des projets à travers cet outil <span class="icon-emo-happy"/> </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-231"> <p> Habituellement, Microsoft sort ses patchs de sécurité tous les deuxièmes mardi de chaque mois.&nbsp;<a href="#rf1-231" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li><li id="fn2-231"> <p> <a href="http://dupot.org/post-10.html" target="_blank">http://dupot.org/post-10.html</a>&nbsp;<a href="#rf2-231" 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-18-cest-qui-le-chef.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jour 16 • À la recherche du lien perdu</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-16-a-la-recherche-du-lien-perdu.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-16-a-la-recherche-du-lien-perdu.html#comments</comments>
		<pubDate>Mon, 22 Jul 2013 19:41:06 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[recherche]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=200</guid>
		<description><![CDATA[Cette nouvelle semaine a commencé avec de nouveaux objectifs, qui tombaient à pic, car le document que j&#8217;avais rédigé sur les recommandations de sécurité pour le développement d&#8217;applications web est en train d&#8217;être relu par A., nous n&#8217;avons toujours pas &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-16-a-la-recherche-du-lien-perdu.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Cette nouvelle semaine a commencé avec de nouveaux objectifs, qui tombaient à pic, car le document que j&rsquo;avais rédigé sur les recommandations de sécurité pour le développement d&rsquo;applications web est en train d&rsquo;être relu par A., nous n&rsquo;avons toujours pas reçu de nouveaux codes sources pour y jeter un coup d&rsquo;œil&#8230; </p> 
 <p> Il s&rsquo;agit de faire des recherches pour trouver des logiciels ou scripts open-source permettant d&rsquo;analyser le code source d&rsquo;une application PHP. <br /> 
Parmi ceux trouvés<sup id="rf1-200"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-16-a-la-recherche-du-lien-perdu.html#fn1-200"  title="Certains gr&acirc;ce au site du d&eacute;partement s&eacute;curit&eacute; CERN, le m&ecirc;me qui m&rsquo;avait permis de d&eacute;couvrir l&rsquo;analogie mot de passe et brosse &agrave; dents.">1</a></sup>, il y en a un qui me résiste encore pour le télécharger : Pixy <span class="icon-emo-unhappy"/> <br /> 
Le script a été conçu par des membres d&rsquo;une université en Autriche, et l&rsquo;<a href="http://www.seclab.tuwien.ac.at/projects/pixy/" target="_blank">ancien site</a> du projet, facilement trouvable, renvoie vers le <a href="http://pixybox.seclab.tuwien.ac.at/pixy/" target="_blank">nouveau site</a>, qui lui est injoignable&#8230; </p> 
 <p> J&rsquo;ai tenté vainement jusqu&rsquo;à présent de trouver un autre site sur lequel trouver le script. Peut-être que j&rsquo;aurais plus de chance demain ! </p> 
 <p> Voici une courte liste de ce qui a retenu mon attention jusqu&rsquo;à présent : </p> 
<ul>
<li><a href="http://pixybox.seclab.tuwien.ac.at/" target="_blank">Pixy</a> : on va attendre de trouver un lien de téléchargement valide :/</li>
<li><a href="http://www.justanotherhacker.com/projects/graudit.html" target="_blank">Graudit</a><sup id="rf2-200"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-16-a-la-recherche-du-lien-perdu.html#fn2-200"  title="Contraction de grep et de Audit">2</a></sup> : tout en ligne de commande, mais a du mal avec les <em>framework</em>&#8230;</li>
<li><a href="http://rips-scanner.sourceforge.net/" target="_blank">Rips Scanner</a> : il suffit de copier les fichiers php dans un répertoire web, et on peu lancer les scans. Ne supporte pas pour l&rsquo;instant PHP orienté objet. C&rsquo;est bien dommage, car la solution s&rsquo;annonçait intéressante !</li>
<li><a href="http://www.sonarqube.org/downloads/" target="_blank">SonarQube</a> : ça l&rsquo;air d&rsquo;une grosse usine à gaz, et c&rsquo;est nativement plus pour Java.</li>
</ul>
 <p> Sinon, il fait chaud. Très chaud. Et même si le bâtiment est en général très frais, ça commence à ne plus devenir tenable&#8230; </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-200"> <p> Certains grâce au <a href="https://security.web.cern.ch/security/recommendations/fr/code_tools.shtml" target="_blank">site</a> du département sécurité CERN, le même qui m&rsquo;avait permis de découvrir l’analogie <a title="Jour 15 • Brosse à dents" href="http://stage.rbpi.devenet.eu/ma-journee/jour-15-brosse-a-dents">mot de passe et brosse à dents</a>.&nbsp;<a href="#rf1-200" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li><li id="fn2-200"> <p> Contraction de <em>grep</em> et de Audit&nbsp;<a href="#rf2-200" 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-16-a-la-recherche-du-lien-perdu.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 3 • C&#8217;est bien parti</title>
		<link>http://stage.rbpi.devenet.eu/ma-journee/jour-3-cest-bien-parti.html</link>
		<comments>http://stage.rbpi.devenet.eu/ma-journee/jour-3-cest-bien-parti.html#comments</comments>
		<pubDate>Wed, 03 Jul 2013 20:17:05 +0000</pubDate>
		<dc:creator><![CDATA[Nicolas]]></dc:creator>
				<category><![CDATA[Ma journée]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[recherche]]></category>
		<category><![CDATA[synthèse]]></category>

		<guid isPermaLink="false">http://stage.rbpi.devenet.eu/?p=78</guid>
		<description><![CDATA[Pourquoi perdre les bonnes habitudes ? La matinée a été calme, j&#8217;ai avancé dans la rédaction et la synthèse du document qui servira de référence concernant la sécurité pour le développement de nouvelles applications. Nous avons aussi eu la problématique &#8230; <a href="http://stage.rbpi.devenet.eu/ma-journee/jour-3-cest-bien-parti.html">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[ <p> Pourquoi perdre les bonnes habitudes ? La matinée a été calme, j&rsquo;ai avancé dans la rédaction et la synthèse du document qui servira de référence concernant la sécurité pour le développement de nouvelles applications. </p> 
 <p> Nous avons aussi eu la problématique d&rsquo;un prestataire qui demandait un compte administrateur sur l&rsquo;Active Directory pour son application. L&rsquo;Active Directory est une sorte de base de données centralisée sur un serveur de tous les utilisateurs d&rsquo;un domaine et de leur mot de passe. L&rsquo;utilité d&rsquo;un tel service est que chaque service nécessitant d&rsquo;authentifier un utilisateur le fera en interroger cet Active Directory. <br /> 
Or ce prestataire demandait un tel compte pour pouvoir importer l&rsquo;intégralité des utilisateurs et mots de passe<sup id="rf1-78"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-3-cest-bien-parti.html#fn1-78"  title="Les mots de passe sont stock&eacute;es de mani&egrave;re chiffr&eacute;e &agrave; sens unique, et sans la clef de cryptage, on voit mal &agrave; quoi cela servirait&hellip;">1</a></sup> pour authentifier les utilisateurs de l&rsquo;application. Nous avons donc demandé des détails pour mieux comprendre ce qu&rsquo;il souhaitait faire, car sa demande en l&rsquo;état aurait été refusée ! </p> 
 <p> L&rsquo;après-midi a été un peu plus mouvementé ! B., qui s&rsquo;occupe de mettre en ligne deux nouveaux sites institutionnels, nous a demandé de mettre en place un petit logiciel pour simuler une montée en charge sur ces deux nouveaux sites. <br /> 
Nous avons donc cherché sur Internet des outils permettant de simuler un certain nombre d&rsquo;utilisateurs se connectant aux sites et simulant des actions : aller sur la page d&rsquo;accueil, faire une recherche, etc </p> 
 <p> Je suis tombé sur l&rsquo;outil <a href="http://jmeter.apache.org/" target="_blank">JMeter</a> d&rsquo;Apache qui répond bien au cahier des charges. Nous avons donc mis en place un petit scénario, que nous exécuterons demain matin <span class="icon-emo-happy"/> </p> 
<p style="text-align: center;"><img class="size-full wp-image-83 aligncenter" alt="logo JMeter" src="http://stage.rbpi.devenet.eu/wp-content/uploads/2013/07/jmeter.jpg" width="221" height="102" /> </p> 
<p style="text-align: left;">JMeter pemet en effet de configurer un certain nombre de requêtes HTML<sup id="rf2-78"><a href="http://stage.rbpi.devenet.eu/ma-journee/jour-3-cest-bien-parti.html#fn2-78"  title="Mais il y a un nombre fou d&rsquo;autres possibilit&eacute;s">2</a></sup>, de spécifier les paramètres POST ou GET à envoyer, &#8230; Il permet aussi de générer différents types de rapport pour ensuite traiter les résultats de la simulation. <br /> 
Nous verrons donc demain si les serveurs tiennent la montée en charge. </p> 
<hr class="footnotes"><ol class="footnotes"><li id="fn1-78"> <p> Les mots de passe sont stockées de manière chiffrée à sens unique, et sans la clef de cryptage, on voit mal à quoi cela servirait&#8230;&nbsp;<a href="#rf1-78" class="backlink" title="Jump back to footnote 1 in the text.">&#8617;</a> </p> </li><li id="fn2-78"> <p> Mais il y a un nombre fou d&rsquo;autres possibilités&nbsp;<a href="#rf2-78" 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-3-cest-bien-parti.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>
