<?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>Bruno Valentin &#187; blog</title>
	<atom:link href="http://www.brunovalentin.com/tag/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunovalentin.com</link>
	<description>Linux, La sécurité informatique, Le Mac et l'investigation numérique</description>
	<lastBuildDate>Fri, 02 Jul 2010 13:33:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Protéger wordpress contre les attaques massives</title>
		<link>http://www.brunovalentin.com/securite-info/proteger-son-blog-wordpress/</link>
		<comments>http://www.brunovalentin.com/securite-info/proteger-son-blog-wordpress/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 17:02:47 +0000</pubDate>
		<dc:creator>Bruno Valentin</dc:creator>
				<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Sécurité info]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.brunovalentin.com/?p=372</guid>
		<description><![CDATA[Il existe beaucoup de solutions logicielles open-source clé en main qui permettent aux internautes de créer leur blog ou leur site personnel et de le mettre en ligne. (dotclear, wordpress, Joomla). La plupart de ces logiciels sont, de par leur popularité, vulnérables aux attaques massives par l'exploitation de failles. 

Cet article illustre une méthode de sécurisation de l'interface d'administration de Wordpress pour contrer ces piratages de masse et éviter les défacements. ]]></description>
			<content:encoded><![CDATA[<h2>Des solutions de blogs clé-en-main</h2>
<p>Il existe beaucoup de solutions logicielles open-source prêtes à l&#8217;emploi qui permettent aux internautes de créer leur blog ou leur site personnel et de le mettre en ligne. Parmi les plus connues, on peut citer <a href="http://fr.dotclear.org/">dotclear</a> et <a href="http://www.wordpress-fr.net/">wordpress</a>, mais il existe aussi des portails de gestion de contenu comme <a href="http://www.joomla.fr/">Joomla</a>.</p>
<p>Ces solutions clé en main sont pratiques, demandent peu, voire aucune compétence et matière de programmation et sont rapides à mettre en place. La majorité des internautes ayant plus envie de se consacrer au fond qu&#8217;à la forme, ils adoptent donc naturellement ces logiciels lorsqu&#8217;ils souhaitent publier un contenu en ligne.</p>
<h2>La problématique</h2>
<p>La revers de la médaille de ce type de solution, c&#8217;est l&#8217;exposition aux exploitations massives des vulnérabilités par les pirates. En effet, comme il s&#8217;agit d&#8217;une suite logicielle toute faite, les noms des fichiers et des répertoires le même pour toutes les installations de ces logiciels. Par exemple, un répertoire /images sur un site sera nommé de la même façon pour un autre site.</p>
<p>Cet état de fait permet à des internautes mal intentionnés, désireux de collecter des informations personnelles ou ayant simplement envie de faire parler d&#8217;eux de profiter d&#8217;une faille découverte dans ce logiciel pour s&#8217;introduire frauduleusement dans des dizaines, voire des centaines de sites web, et ceci d&#8217;une manière automatisée via l&#8217;utilisation de scripts.</p>
<p>Pour illustrer mon propos, prenons l&#8217;exemple de wordpress, qui est l&#8217;un des plus utilisés. Ce logiciel  est pourvu d&#8217;une interface d&#8217;administration permettant de publier les articles, de créer des utilisateurs ainsi de suite. Il suffit de télécharger wordpress et de regarder les fichiers qui composent cette suite logicielle.</p>
<p>Sur tout site (99,99%) utilisant Wordpress, on trouvera un répertoire <strong>/wp-admin</strong>, qui contient les fichiers de l&#8217;interface d&#8217;administration, et <strong>wp-login.php</strong> qui permet aux utilisateurs de s&#8217;authentifier et de se connecter sur le site. Si une faille est identifiée sur l&#8217;interface d&#8217;administration ou le fichier wp-login.php, il suffit à un script-kiddie de parcourir google pour regarder quels sites contiennent ces fichiers et donc utilisent wordpress : <a title="Recherche wp-login.php" href="http://www.google.fr/search?hl=fr&amp;q=wp-login.php&amp;btnG=Rechercher" target="_blank">http://www.google.fr/search?hl=fr&amp;q=wp-login.php&amp;btnG=Rechercher</a></p>
<p>Ensuite, en 2 minutes, il peut exploiter la faille en question sur chacun de ces sites pour arriver à ce résultat : <a title="strangeauction.com" href="http://www.strangeauction.com/wp-login.php" target="_blank">http://www.strangeauction.com/wp-login.php</a></p>
<h2>Des solutions simples à mettre en oeuvre</h2>
<p>Lutter contre ce fléau de l&#8217;exploitation massive n&#8217;est pourtant pas très compliqué. Il suffit de sortir de la norme et de personnaliser la solution. Je ne dis pas pour autant que le site ne contiendra plus aucune vulnérabilité, je dis juste qu&#8217;il sera moins vulnérable étant donné qu&#8217;il ne sera pas impacté par la majorité des attaques et qu&#8217;il devra faire l&#8217;objet d&#8217;une attaque ciblée et beaucoup plus longue à mettre en oeuvre pour le pirate.</p>
<h3>Restreindre la visibilité</h3>
<p>Par exemple, si on accède toujours à l&#8217;interface d&#8217;administration depuis une adresse IP fixe, on alors peut restreindre l&#8217;accès à l&#8217;interface en ajoutant simplement un fichier nommé<strong> .htaccess</strong> dans le répertoire <strong>wp-admin</strong>. Il contiendra une suite d&#8217;instructions qui indiqueront au serveur web le comportement à adopter en fonction de l&#8217;IP qui consulte ce répertoire.<br />
<code>AuthUserFile /dev/null<br />
AuthGroupFile /dev/null<br />
AuthName "Access Control"<br />
AuthType Basic<br />
order deny,allow<br />
deny from all<br />
allow from XXX.XXX.XXX.XXX # IP autorisée<br />
allow from XXX.XXX.XXX.XXX # 2eme IP autorisée</code></p>
<h3>Déplacer les fichiers sensibles</h3>
<p>Une autre solution qui peut être utilisée pourrait être de renommer les répertoires et fichiers « sensibles » qui doivent rester hors de portée des pirates. Le site serait protégé encore davantage étant donné que les pirates ignoreraient même jusqu&#8217;à l&#8217;URL pour accéder à l&#8217;interface</p>
<p>A titre d&#8217;exemple, j&#8217;ai développé un petit script pour déplacer l&#8217;interface d&#8217;administration et le fichier wp-login.php de Wordpress. Il suffit de créer ce fichier sur la machine en question (hors du répertoire de wordpress) et de paramétrer le nouveau nom du répertoire d&#8217;administration et le chemin complet vers le répertoire de wordpress. Ensuite, on peut exécuter le script qui s&#8217;occupera de modifier tous les fichiers qui pointent vers l&#8217;ancien répertoire.</p>
<p>Par exemple, si le nouveau nom que vous choisissez pour l&#8217;interface est « admwordpress », votre interface sera alors disponible sur http://www.votreurl.com/admwordpress ». Je doute fortement qu&#8217;un pirate ou un moteur de recherche puisse deviner cette URL par lui-même. Vous éviterez bien entendu tout lien web vers cette URL qui pourrait y conduire un moteur de recherche et donc indiquer de nouveau aux pirates l&#8217;existant d&#8217;une interface d&#8217;administration.</p>
<p>Bien entendu, je décline toute responsabilité sur les répercussions fâcheuses que pourrait avoir ce script sur votre wordpress. Je vous encourage à sauvegarder vos fichiers pour pouvoir les restaurer au cas où (le script est parfaitement fonctionnel chez moi).</p>
<p>Télécharger le script : <a href="http://www.brunovalentin.com/ul/wp_admin_renamesh.zip">wp_admin_rename</a></p>
<p><code>#!/bin/sh<br />
newname="<strong>admwordpress</strong>"<br />
wordpress_path="<strong>/var/www/wordpress</strong>"<br />
# remplace wp-admin dans les fichiers<br />
for i in `grep -Ri "wp-admin" $wordpress_path | cut -d":" -f 1 | sort | uniq`<br />
do<br />
sed -i 's/wp-admin/'$newname'/gi' $i<br />
done<br />
# remplace wp-login dans les fichiers<br />
for i in `grep -Ri "wp-login" $wordpress_path | cut -d":" -f 1 | sort | uniq`<br />
do<br />
sed -i 's/wp-login/'$newname-login'/gi' $i<br />
done<br />
# renomme le wp-admin.css<br />
mv $wordpress_path/wp-admin/wp-admin.css $wordpress_path/wp-admin/$newname.css<br />
# renomme le repertoire wp-admin<br />
mv $wordpress_path/wp-admin $wordpress_path/$newname<br />
# renomme le fichier wp-login.php<br />
mv $wordpress_path/wp-login.php $wordpress_path/$newname-login.php<br />
</code></p>
<p>Pour les webmasters qui ont un petit côté parano (comme je peux en avoir par moment), ces deux solutions peuvent être utilisées simultanément.</p>
<p>Ces méthodes sont adaptables à la plupart des solutions logicielles open-source disponibles, comme les wiki par exemple. Ce n&#8217;est qu&#8217;une première étape dans la sécurisation d&#8217;un site et bien d&#8217;autres précautions supplémentaires peuvent être envisagées si vous voulez dormir sur vos deux oreilles. <img src='http://www.brunovalentin.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunovalentin.com/securite-info/proteger-son-blog-wordpress/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
