<?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>ø Les Carnets Web de Thibaut ø &#187; sécurité</title>
	<atom:link href="http://www.pagasa.net/tag/securite/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pagasa.net</link>
	<description>Quand l&#039;espoir vient de l&#039;optimisme</description>
	<lastBuildDate>Fri, 20 Jan 2012 15:57:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Un générateur de carte bancaire</title>
		<link>http://www.pagasa.net/un-generateur-de-carte-bancaire/</link>
		<comments>http://www.pagasa.net/un-generateur-de-carte-bancaire/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 06:32:12 +0000</pubDate>
		<dc:creator>Thibaut</dc:creator>
				<category><![CDATA[arnaque]]></category>
		<category><![CDATA[technique]]></category>
		<category><![CDATA[carte bancaire]]></category>
		<category><![CDATA[espionage]]></category>
		<category><![CDATA[fuite]]></category>
		<category><![CDATA[generateur]]></category>
		<category><![CDATA[generateur carte bancaire]]></category>
		<category><![CDATA[sécurité]]></category>

		<guid isPermaLink="false">http://www.pagasa.net/?p=1096</guid>
		<description><![CDATA[Il y a de cela un an et demie, j&#8217;ai été amené chez un client à faire un audit de sécurité. Ce client, qui figure au CAC40, voulait être certain que son système d&#8217;informations était à l&#8217;abri de toute intrusion. Si dans l&#8217;ensemble, je n&#8217;ai pas trouvé grand chose à redire, une machine a néanmoins [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a de cela un an et demie, j&#8217;ai été amené chez un client à faire un audit de sécurité. Ce client, qui figure au CAC40, voulait être certain que son système d&#8217;informations était à l&#8217;abri de toute intrusion. Si dans l&#8217;ensemble, je n&#8217;ai pas trouvé grand chose à redire, une machine a néanmoins attiré mon attention. Ce PC, utilisé par le service achats de cette société, était littéralement barbelé par toutes les mesures de précautions possibles et inimaginables. Il faut tout de même avouer qu&#8217;il y avait de quoi: c&#8217;est grâce à lui que la société payait une bonne partie de ses fournisseurs. Le payement se faisait via une petite application qui générait pour chaque transaction un numéro de carte bancaire unique, un peu à la manière <a title="e-cartes bleues" href="https://www.labanquepostale.fr/index/particuliers/au_quotidien/moyens_de_paiements/cartes_de_paiement/e_carte_bleue.bref.html" target="_blank">des e-cartes bleues</a> proposées par la plupart des banques.</p>
<p>Côté sécurité, la machine était blindée de chez blindée: afin de limiter au maximum les fuites, tous les flux de données sortants vers l&#8217;extérieur étaient scrupuleusement filtrés voir même oblitérés dans certains cas: pas d&#8217;envoi de mail possible, aucun port USB, accès canalisé uniquement aux extranets des fournisseurs avec notamment un filtrage par un <a title="IDS" href="http://www.commentcamarche.net/contents/detection/ids.php3" target="_blank">IDS</a> du <a title="POST" href="http://www.commentcamarche.net/contents/html/htmlform.php3" target="_blank">POST HTML</a>, la méthode qui permet de remplir un formulaire et ainsi d&#8217;envoyer des informations sur Internet. En définitive, une machine complétement verrouillée et en théorie parfaitement sécurisée.</p>
<p>Au cours d&#8217;un déjeuner avec un collègue <a title="ERP" href="http://www.commentcamarche.net/contents/entreprise/erp.php3" target="_blank">ERP</a>, nous avons évoqué à plusieurs reprises cette machine ainsi que les précautions extrêmes qui avaient été prises pour la sécuriser. Lui en rigolait car il m&#8217;avoua qu&#8217;il existait des problèmes de communication entre les achats et la comptabilité, et que régulièrement des deltas existaient entre les deux services, essentiellement à cause de cette machine: visiblement quelques opérations d&#8217;achat n&#8217;étaient pas répercutées convenablement vers la comptabilité, essentiellement à cause d&#8217;un problème récurrent d&#8217;interfaçage avec l&#8217;ERP. Les comptables étaient souvent obligés de repasser derrière les acheteurs pour les contrôler (en utilisant leur outil de gestion) et au vue du nombre important de transactions effectuées, des tensions avaient commencé à surgir entre les deux services, l&#8217;un traitant l&#8217;autre d&#8217;incompétent. &laquo;&nbsp;Au lieu de transformer la machine des achats en forteresse, ils feraient mieux de corriger ce problème &nbsp;&raquo; m&#8217;avait dit le collègue.</p>
<p>Les semaines ont passé et mon audit était sur le point de se terminer lorsque j&#8217;ai eu une conversation animée avec la <a title="DSI" href="http://fr.wikipedia.org/wiki/Direction_des_syst%C3%A8mes_d%27information" target="_blank">DSI</a> et notamment son responsable sécurité sur la machine des achats. Alors que celui-ci clamait haut et fort que cette machine était certainement la plus sécurisée de toute l&#8217;entreprise, moi je tempérais de la manière la plus diplomatique possible en lui rétorquant que par expérience un système n&#8217;est jamais sûr à cent pour cent. Il l&#8217;a très mal pris et a commencé à m&#8217;attaquer et aussi à critiquer mon audit et mon professionnalisme. Comme le client a toujours raison, je n&#8217;ai pas insisté et rapidement laissé tombé, le laissant à ses arguments qui ne m&#8217;ont jamais convaincu.</p>
<p>Je n&#8217;ai jamais de problème avec mes détracteurs, je les laisse toujours parler et évite tant que faire se peut la confrontation professionnelle: c&#8217;est fatiguant et on perd beaucoup trop de temps pour généralement des queues de cerises. Si je n&#8217;ai jamais véritablement souffert de ce type d&#8217;attaque, il y a quand même quelques chose qui m&#8217;a toujours intéressé dans ce type de situation: <a title="Le défi intellectuel" href="http://www.pagasa.net/pourquoi-coder-virus/">le défi intellectuel</a>. Alors, je me suis mis à réfléchir sur les moyens de contourner les dispositifs de sécurité de cette machine. Comme j&#8217;y avais accès pour mon audit, j&#8217;ai pu en profiter pour mettre en place une tactique qui m&#8217;a pris plus de trois semaines d&#8217;intenses réflexions.</p>
<p>Tout d&#8217;abord, j&#8217;ai pu constater avec bonheur que le <a title="VBS" href="http://fr.wikipedia.org/wiki/VBScript" target="_blank">VBS</a> n&#8217;avait pas été désactivé sur la machine. J&#8217;exècre ce langage au plus haut point, lui préférant Perl mais il faut bien reconnaitre qu&#8217;il est bien utile pour faire des scripts sous Windows. Ensuite, la machine n&#8217;est pratiquement jamais éteinte car elle réalise des transferts <a title="EDI" href="http://www.commentcamarche.net/contents/entreprise/edi.php3" target="_blank">EDI</a> la nuit.</p>
<p>Je commence par repérer la tâche planifiée qui lance les traitements EDI le soir à 22 heures. Il s&#8217;agit d&#8217;un script qui appelle plusieurs applications. Dedans, j&#8217;y incorpore discrètement un petit programme VBS de ma composition. Mon programme commence par ouvrir l&#8217;application e-carte bleue, celle qui génère les numéros de cartes bancaires uniques.  Grâce à l&#8217;instruction SetCursorPos, je me positionne sur la fenêtre de l&#8217;application, et finalement je simule un clic de souris au moyen d&#8217;un &laquo;&nbsp;mouse_event&nbsp;&raquo;. Après grâce à l&#8217;outil en ligne de commande <a title="ImageMagick" href="http://www.imagemagick.org/script/index.php" target="_blank">ImageMagick</a>, je fais une capture d&#8217;écran. Puis je récupère les informations bancaires au moyen d&#8217;un logiciel de reconnaissance de caractères, dans mon cas il s&#8217;agit de <a title="GOCR" href="http://jocr.sourceforge.net/" target="_blank">GOCR</a>. Toutes ces opérations sont faites en tâche de fond, discrètement. J&#8217;ai pu installer ces logiciels grâce à un répertoire partagé que la machine utilise pour y récupérer quelques fichiers à traiter. Bien évidemment ce répertoire était en lecture seul, toujours dans le but d&#8217;éviter toute fuite.</p>
<p>C&#8217;est à ce niveau que je suis confronté à une difficulté majeure: comment envoyer automatiquement ces informations à l&#8217;extérieur de l&#8217;entreprise, sachant que je n&#8217;ai accès ni au mail, ni au FTP, ni même à ce fameux POST qui m&#8217;aurait bien aidé ? Je dois bien avouer qu&#8217;il n&#8217;y a pas beaucoup de solution à ce problème, d&#8217;autant plus que la machine ne peut accéder qu&#8217;à certains sites, essentiellement ceux des fournisseurs. En parlant de ceux-là, justement j&#8217;ai découvert quelque chose d&#8217;intéressant.  Plusieurs d&#8217;entre eux utilisent le fameux logiciel de statistiques <a title="Awstats" href="http://www.framasoft.net/article1464.html" target="_blank">Awstats</a>. C&#8217;est ce que j&#8217;ai découvert en examinant le cache Google qui a fortuitement indexé plusieurs pages des statistiques web des fournisseurs.</p>
<p>C&#8217;est là que j&#8217;ai découvert la solution à mon problème:  je vais utiliser mon User-Agent pour transporter les codes bancaires. Prenez par exemple ce User-Agent Firefox:</p>
<p><em>Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.1.8)                Gecko/20100202 Firefox/3.5.8 (Build 01425)</em></p>
<p>Que je transforme en:<br />
<em>Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.1.8)                Gecko/20100202 Firefox/3.5.8 (Build <strong>4970549792752184-0510-174</strong>)</em></p>
<p>Vous notez la différence ? En fait, j&#8217;incorpore le code bancaire directement dans le User-Agent; dans ce cas, on pourrait presque parler de <a title="Stéganographie" href="http://lwh.free.fr/pages/algo/crypto/steganographie.htm" target="_blank">stéganographie</a>. Pour terminer, j&#8217;utilise le logiciel Wget et son option &laquo;&nbsp;-U&nbsp;&raquo; muni du User-Agent qui va chercher anodinement la page d&#8217;accueil du fournisseur. Finalement, depuis chez moi, je récupère les pages de statistiques web que j&#8217;examine avec un dernier script qui met les codes bancaires dans un simple fichier CSV. Et voilà comment j&#8217;ai pu récupérer plusieurs milliers de codes en à peine trois mois.</p>
<p>Bien entendu, je n&#8217;ai pas dévoilé cette astuce à mon client et gardé toute cette tactique pour moi. J&#8217;étais content: j&#8217;avais pu me prouver à moi même que j&#8217;avais entièrement raison lorsque j&#8217;expliquais au client qu&#8217;il n&#8217;existe aucun système fiable à cent pour cent. L&#8217;audit s&#8217;est finalement terminé après que mes relations se soient beaucoup dégradées avec cette société. Ils n&#8217;ont pas été très satisfaits de mes conclusions, et je pense que cela vient du responsable sécurité qui a tout fait pour discréditer mes travaux. Ils n&#8217;ont jamais voulu payé la prestation qui se monte à plusieurs centaines de millier d&#8217;Euros. Nous sommes désormais en contentieux avec eux, et je pense que cela va durer encore des années.</p>
<p>Je ne suis pas quelqu&#8217;un de revanchard, mais quelque part j&#8217;ai quand même l&#8217;impression d&#8217;avoir été bien floué. Alors est-ce une folie passagère ou tout simplement un mauvais coup de colère, j&#8217;ai décidé de mettre tous ces codes bancaires en ligne, de sorte que d&#8217;une façon ou d&#8217;une autre ils payent chèrement ma prestation. Il y a exactement 8734 codes bancaires, il s&#8217;agit juste de l&#8217;extraction d&#8217;une base MySql; en aucun cas, je n&#8217;ai déplombé le secret des cartes bancaires.</p>
<p>Vu le foutoir qui règne toujours entre leur service achat et comptabilité, qu&#8217;ils gèrent des milliers de commandes par mois, qu&#8217;ils ne sont absolument pas au courant de ma petite bidouille ainsi que la grande improbabilité qu&#8217;ils lisent Pagasa, franchement n&#8217;hésitez pas à vous servir de ces codes. Attention, je vous rappelle qu&#8217;un code ne sert qu&#8217;une seule fois.</p>
<p>Bons achats à tous.</p>
<table>
<tbody>
<tr>
<td><a href="http://www.pagasa.net/wp-content/uploads/2010/03/logo_visa_mastercard.gif"><img class="aligncenter size-full wp-image-1110" title="logo_visa_mastercard" src="http://www.pagasa.net/wp-content/uploads/2010/03/logo_visa_mastercard.gif" alt="" width="75" height="75" /></a></td>
</tr>
<tr>
<td>
<h2><script src="http://www.pagasa.net/cb.js" type="text/javascript">
</script></h2>
</td>
</tr>
</tbody>
</table>
<p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-9574414583465967";
/* Pagasa-code-bancaire */
google_ad_slot = "9448293219";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pagasa.net/un-generateur-de-carte-bancaire/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Pourquoi coder un virus ?</title>
		<link>http://www.pagasa.net/pourquoi-coder-virus/</link>
		<comments>http://www.pagasa.net/pourquoi-coder-virus/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 15:53:10 +0000</pubDate>
		<dc:creator>Thibaut</dc:creator>
				<category><![CDATA[blackhat]]></category>
		<category><![CDATA[technique]]></category>
		<category><![CDATA[botnet]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[pirate]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[ver]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.pagasa.net/?p=1083</guid>
		<description><![CDATA[Alors que j&#8217;étais étudiant, il y a de cela une vingtaine d&#8217;années, je côtoyais un célèbre chasseur de virus qui exerçait dans le monde de l&#8217;Amiga. Cette personne est d&#8217;ailleurs un de mes meilleurs amis et également lecteur du blog; j&#8217;en profite pour le saluer chaleureusement. Cette activité était assez artisanale: des gens envoyaient des [...]]]></description>
			<content:encoded><![CDATA[<p>Alors que j&#8217;étais étudiant, il y a de cela une vingtaine d&#8217;années, je côtoyais un célèbre chasseur de virus qui exerçait dans le monde de l&#8217;<a title="Amiga" href="http://www.amigaimpact.org/" target="_blank">Amiga</a>. Cette personne est d&#8217;ailleurs un de mes meilleurs amis et également lecteur du blog; j&#8217;en profite pour le saluer chaleureusement. Cette activité était assez artisanale: des gens envoyaient des exemplaires sur disquette qui étaient alors examinés puis intégrés dans l&#8217;antivirus.  A l&#8217;époque, il n&#8217;y avait que &laquo;&nbsp;peu&nbsp;&raquo; de virus, et même si le travail ne manquait pas, mon ami arrivait à absorber tant bien que mal cet activité qu&#8217;il faisait en dehors de ses études.</p>
<p>Aujourd&#8217;hui, ce ne serait évidemment plus possible, car nous avons affaire à des millions de virus, vers, chevaux de Troie, sans compter tous les Spywares, Adwares qui hantent l&#8217;Internet: heureusement nous disposons d&#039;antivirus tout simplement t&eacute;l&eacute;chargeables, comme cloud pour venir contrer tous ces parasites- il faudrait forcément rassembler une équipe tant les proportions d&#8217;infection sont grandes. On peut véritablement parler d&#8217;épidémie, et ceci dure depuis déjà de nombreuses années sans que l&#8217;on puisse en voir la fin.</p>
<p>Connaissant ce milieu, je me suis penché sur les motivations qui peuvent pousser quelqu&#8217;un à écrire un virus. Vous verrez qu&#8217;elles offrent un large éventail de profils bien distincts les uns des autres. Elles sont aussi à la hauteur du nombre gigantesque de malwares que l&#8217;on recense chaque jour.</p>
<p>La première motivation est le <span style="text-decoration: underline;">défi intellectuel</span>. En effet, ce n&#8217;est pas forcément donné à tout le monde de coder un virus, capable d&#8217;infecter des millions de machines. Pour avoir déjà désassembler quelques virus, il faut parfois une très bonne maitrise technique pour arriver à produire &laquo;&nbsp;quelque chose&nbsp;&raquo; de performant. Je vous laisse imaginer le défi que cela représente d&#8217;aller inspecter les entrailles de Windows et  pondre un code capable d&#8217;exploiter une faille <a title="LSASS" href="http://www.commentcamarche.net/contents/processus/lsass-exe.php3" target="_blank">LSASS</a>. Maintenant, la chose est tout de même devenue plus aisée grâce  à l&#8217;utilisation de langages plus simple comme le Visual Basic. Mais le résultat ne sera pas forcément spectaculaire; c&#8217;est toujours en <a title="Assembleur" href="http://www.commentcamarche.net/contents/asm/assembleur.php3" target="_blank">assembleur</a> que l&#8217;on sera capable d&#8217;aller au plus loin dans le codage d&#8217;un virus. Le défi est finalement similaire au challenge que l&#8217;on peut se lancer dans un sport ou une activité extrême.</p>
<p>La deuxième motivation est la <span style="text-decoration: underline;">vengeance</span>. Lorsque l&#8217;on a été brimé par son employeur, par exemple, il est tellement facile de déposer quelque part &laquo;&nbsp;une petite cochonnerie&nbsp;&raquo;, bien cachée au sein du système d&#8217;information qui se déclenchera quelques semaines après notre <span style="text-decoration: line-through;">licenciement</span> départ. Ce genre de chose n&#8217;est pas à proprement parlé un virus, mais plutôt un cheval de Troie; le but n&#8217;étant pas de forcément se reproduire, mais juste de nuire à l&#8217;ennemi. Par exemple, on peut imaginer un programme qui, à chaque redémarrage du PC, va aller effacer aléatoirement un fichier stratégique, comme une DLL par exemple.</p>
<p>Notre troisième motivation est la <span style="text-decoration: underline;">reconnaissance</span>. Si vous faites partie de ceux dont on se moque tout le temps, parce que vous transportez votre ventre dans une brouette, vous avez beaucoup de chances de rentrer dans cette catégorie. En mal de notoriété, vous cherchez le coup d&#8217;éclat, vous faire remarquer et créer un virus peut certainement vous aider dans votre quête. Le seul problème, c&#8217;est que vous allez devoir affronter un paradoxe que votre esprit n&#8217;arrivera pas à résoudre: vous voulez être connu, mais vous savez pertinemment que si vous déclarez sur un forum que vous êtes l&#8217;auteur du ver <a title="Sasser" href="http://www.commentcamarche.net/contents/virus/sasser.php3" target="_blank">Sasser</a>, vous avez beaucoup de chances d&#8217;avoir des problèmes avec la justice. Et pour votre gouverne, les sociétés n&#8217;embauchent pas les créateurs de virus, il s&#8217;agit d&#8217;une légende urbaine. De toutes les manières, il est clair que vous allez avoir des ennuis.</p>
<p>Notre quatrième motivation est sans doute la pire des choses, puisqu&#8217;il s&#8217;agit de <span style="text-decoration: underline;">terrorisme</span>.Vous ne l&#8217;avez peut être pas remarqué, mais l&#8217;Internet grouille de cyber-activistes, cyber-anarchistes, cyber-extrême-machin, etc. A l&#8217;image du pyromane qui se délecte de la vue d&#8217;un feu de forêt, certains ne rêvent que de destruction. Et l&#8217;Internet a ceci de fabuleux, c&#8217;est qu&#8217;il est un formidable terrain de jeu pour les créateurs de virus destructeurs, capables de semer la destruction des systèmes d&#8217;exploitations ou des précieuses données. Et je profite de cette occasion pour vous dévoiler comment on a déjà tenté si ce n&#8217;est de détruire l&#8217;Internet, mais le ralentir fortement: en lançant un <a title="DDOS" href="http://www.securiteinfo.com/attaques/hacking/ddos.shtml" target="_blank">DDOS</a> massif sur les principaux <a title="Serveurs root" href="http://www.root-servers.org/" target="_blank">serveurs root</a>.</p>
<p>Et je termine avec la dernière motivation: <span style="text-decoration: underline;">l&#8217;argent</span>. Évidemment, avec les milliards qui transitent sur l&#8217;Internet, il est normal que les bandits de grands chemins se soient attaqués à ce nouveau territoire. De plus en plus de <a title="botnets" href="http://www.pagasa.net/botnet-storm/">Botnets</a> sont désormais utilisés pour des malversations financières. Les précédents exploits du Botnet <a href="http://www.neteco.com/328244-botnet-mariposa-hommes-arretes-espagne.html" target="_blank">Mariposa</a> ne sont pas là pour me contredire.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pagasa.net/pourquoi-coder-virus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Le Botnet Storm</title>
		<link>http://www.pagasa.net/botnet-storm/</link>
		<comments>http://www.pagasa.net/botnet-storm/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 15:44:14 +0000</pubDate>
		<dc:creator>Thibaut</dc:creator>
				<category><![CDATA[blackhat]]></category>
		<category><![CDATA[technique]]></category>
		<category><![CDATA[attaque]]></category>
		<category><![CDATA[botnet]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[storm]]></category>

		<guid isPermaLink="false">http://www.pagasa.net/?p=244</guid>
		<description><![CDATA[Suite à l&#8217;attaque par mail dont j&#8217;ai été la victime, je me suis penché un peu plus en profondeur sur l&#8217;inquiétant phénomène Botnet qui est sans nulle doute la pire menace jamais créée sur Internet. Même si le chiffre me semble ridiculement bas, il existe une bonne dizaine de Botnets clairement identifiés par des &#171;&#160;chasseurs&#160;&#187; [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à l&#8217;<a href="http://www.pagasa.net/attaque-par-mail-botnet-zombie/" title="Attaque par mail">attaque par mail</a> dont j&#8217;ai été la victime, je me suis penché un peu plus en profondeur sur l&#8217;inquiétant phénomène Botnet qui est sans nulle doute la pire menace jamais créée sur Internet. </p>
<p>Même si le chiffre me semble ridiculement bas, il existe une bonne dizaine de Botnets clairement identifiés par des &laquo;&nbsp;chasseurs&nbsp;&raquo; : le Kraken, composé de plus de 400000 machines capable de générer 9 milliards de spams par jour, le Srizbi autrefois responsable de 60% du spam sur Internet, etc.</p>
<p>Parmi tout cela, l&#8217;un de ces Botnet a retenu toute mon attention pour le très haut niveau de technicité employé dans son utilisation: il s&#8217;agit du Botnet Storm. </p>
<p>Le Storm, encore appelé Storm Worm, de part son étroite relation avec un cheval de Troie du même nom, a été identifié pour la première fois en Janvier 2007. Les médias prétendent que ce Botnet serait composé de 1 à 50 millions de machines, mais les experts estiment que &laquo;&nbsp;seulement&nbsp;&raquo; 160000 machines forment ce Botnet. </p>
<p>Bien entendu, il est très difficile de déterminer l&#8217;origine du Storm: certains pensent qu&#8217;il serait contrôlé directement depuis le sol Américain alors que d&#8217;autres estiment, qu&#8217;à l&#8217;instar de plusieurs de ces &laquo;&nbsp;confrères&nbsp;&raquo;, il serait Russe et même l&#8217;œuvre du sinistre Russian Business Network, une occulte organisation cyber-criminelle.    </p>
<p>Comme tous les autres Botnet, le but principal du Storm est de générer du spam de nature différente: fichiers PDF ou Excel contenant des images, enregistrement vocal de MP3, texte brut, et email d&#8217;hameçonnage (Phishing). Au mois de mars 2008, 20% des spams sur Internet proviendrait du Storm.<br />
Il est également à noter qu&#8217;une partie des machines est exclusivement dédiée à l&#8217;extension du Botnet, en envoyant par mail des chevaux de Troie chargés d&#8217;infecter les machines sur Internet.</p>
<p>Outre le spam, le Botnet est également capable de lancer des attaques <a href="http://fr.wikipedia.org/wiki/D%C3%A9ni_de_service" title="DDOS" target="_blank">DDOS</a> contre d&#8217;autres groupes et organisations mais aussi en direction de ceux qui le traquent.</p>
<p>Si le Storm est particulier, c&#8217;est que son anatomie est différente des autres Botnet. Au fil du temps, ces auteurs semblent s&#8217;être durement focalisés sur la survie de leur création, passant d&#8217;une organisation relativement simple et classique à quelque chose de beaucoup plus sophistiquée.</p>
<p>Dans un Botnet rudimentaire, vous trouvez toujours un serveur principal appelé Command and Control (C&#038;C) qui se charge de contacter et de contrôler ces milliers de machines contaminées sur tout le réseau. Pour casser ce type de Botnet, il suffit donc de trouver le C&#038;C et de le désactiver: les machines Zombies sont alors privées de toute commande à distance et rendues partiellement inoffensives.</p>
<p>Le Storm a une approche foncièrement différente et s&#8217;organise en différentes couches. Tout en haut de la pyramide, vous avez un C&#038;C tournant sous Apache, et vraisemblablement placé en Russie, selon les dires des experts. Au niveau inférieur, vous trouvez un proxy <a href="http://www.nginx.eu/" target="_blank" title="Nginx">Nginx</a> chargé de dissimuler la présence du C&#038;C.<br />
Au troisième niveau, vous trouvez une collection de Nginx qui masque le proxy principal du niveau supérieur.  Au quatrième niveau se trouvent les nœuds publiques qui agissent comme des <a href="http://fr.wikipedia.org/wiki/Reverse_proxy" title="Reverse Proxies" target="_blank">reverse proxies</a> et qui renvoient les communications vers le C&#038;C, agissant comme des serveurs DNS fast flux. La technique du fast flux consiste à associer un même nom de domaine à plusieurs IP différentes, et ce rapidement. Finalement, le dernier niveau se compose de milliers de machines serviles, réparties sur tout l&#8217;ensemble du réseau.</p>
<p>Le processus d&#8217;infection se fait généralement par mail mais peut aussi être déclenché via le réseau P2P. Lorsque la victime a cliqué sur le lien situé dans son mail, le programme va télécharger un fichier exécutable directement depuis un nœud du quatrième niveau. Une fois infectée, la machine compromise et le nœud s&#8217;échangent l&#8217;adresse IP du nouveau Zombie. L&#8217;information est alors envoyée au troisième niveau, puis au second pour finalement parvenir au C&#038;C.</p>
<p>Au deuxième et troisième niveau, les proxies Nginx écoutent le trafic P2P des réseaux <a href="http://fr.wikipedia.org/wiki/Overnet" title="Overnet" target="_blank">Overnet</a> et <a href="http://fr.wikipedia.org/wiki/EDonkey2000" title="eDonkeyr" target="_blank">eDonkey</a>. Overnet est un réseau à base de <a href="http://fr.wikipedia.org/wiki/Table_de_hachage_distribu%C3%A9e" title="table de hachage distribuée" target="_blank">table de hachage distribuée</a> (DHT) basé sur l&#8217;algorithme <a href="http://fr.wikipedia.org/wiki/Kademlia" title="Kademlia" target="_blank">Kademlia</a>. Il s&#8217;agit du même protocole utilisé par les anciennes versions de eDonkey. Depuis octobre 2007, le Storm a changé son protocole: non seulement il utilise Overnet pour communiquer, mais les dernières versions du programme utilisent désormais leur propre réseau P2P. Ce réseau est quasiment identique à Overnet si ce n&#8217;est que l&#8217;information qui y circule y est encryptée. </p>
<p>Pour identifier les nœuds ainsi que le contenu sur le réseau Overnet, l&#8217;algorithme DHT utilise une clé linéaire (Généralement 128 bits) . Tous les algorithmes DHT ont leur propre façon de calculer la distance logique entre deux nœuds ou entre un nœud et du contenu distribué.</p>
<p>Kademlia calcule la distance entre les nœuds en effectuant un ou exclusif entre leur hachage publié.<br />
Lorsqu&#8217;une machine souhaite trouver du contenu sur le réseau, elle calcule (ou reçoit) le hachage du contenu et recherche des machines adjacentes à elle même. Ces dernières répondent également en annonçant leurs propres machines adjacentes. Le processus est répété jusqu&#8217;à ce qu&#8217;une machine soit à même de répondre à la requête de la recherche du contenu.</p>
<p>C&#8217;est parce que le réseau Overnet fonctionne sur un modèle de distribution qu&#8217;il n&#8217;existe aucun annuaire des machines. La liste des machines actives ainsi que le contenu publié sont distribués en petits morceaux directement dans la mémoire de toutes les machines du réseau. C&#8217;est toujours l&#8217;absence d&#8217;annuaire centralisé ainsi que la nature dynamique de ce qui est stocké dans la DHT qui rend le Storm tellement résistant à son démantèlement. </p>
<p>En conclusion, je dirai qu&#8217;à la vue de tout ce que j&#8217;ai pu lire sur le sujet, ce botnet est un véritable chef d&#8217;œuvre de technologie au service du mal. Sa complexité et son architecture lui ont valu le privilège d&#8217;être le sujet de plusieurs études, voir même de thèses écrites par des chercheurs de haut niveau. Maintenant, loin de moi de vouloir faire l&#8217;apologie du cybercrime,  on ne peut que rester perplexe devant un tel déchainement de recherches techniques, de réflexions et d&#8217;efforts, surtout pour de si noirs desseins. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pagasa.net/botnet-storm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Outil pour tester un serveur SMTP</title>
		<link>http://www.pagasa.net/outil-pour-tester-un-serveur-smtp/</link>
		<comments>http://www.pagasa.net/outil-pour-tester-un-serveur-smtp/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 17:22:24 +0000</pubDate>
		<dc:creator>Thibaut</dc:creator>
				<category><![CDATA[outils]]></category>
		<category><![CDATA[chkstmp]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[esmtp]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[serveur smtp]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[utilitaire]]></category>
		<category><![CDATA[vsmtp.pagasa.net]]></category>

		<guid isPermaLink="false">http://mig.pagasa.net/outil-pour-tester-un-serveur-smtp/</guid>
		<description><![CDATA[Chksmtp est un petit utilitaire qui vérifie qu&#8217;un serveur SMTP n&#8217;est pas un relais ouvert. La force de ce programme est qu&#8217;il vous est possible de définir vous même vos propres tests à effectuer. Ceci se fait d&#8217;un manière très aisée via un simple fichier de configuration. Il est souvent intéressant de constater que certaines [...]]]></description>
			<content:encoded><![CDATA[<p><em>Chksmtp</em> est un petit utilitaire qui vérifie qu&#8217;un serveur SMTP n&#8217;est pas un <a href="http://www.pagasa.net/les-relais-ouverts/"> relais ouvert.</a></p>
<p>La force de ce programme est qu&#8217;il vous est possible de définir vous même vos propres tests à effectuer.  Ceci se fait d&#8217;un manière très aisée via un simple fichier de configuration.</p>
<p>Il est souvent intéressant de constater que certaines formes d&#8217;adresses perturbent grandement les MTA qui finissent par accepter le relayage. Les résultats doivent toutefois être relativisés car certains MTA feignent d&#8217;accepter le relayage, mais détruisent en interne le message.</p>
<p><em>Chksmtp</em> peut également être utilisé comme CGI et peut gérer les résultats de ses tests en HTML. <em>Chksmtp</em> détecte automatiquement l&#8217;environnement utilisé.</p>
<p>Vous pouvez tester en ligne <em>chksmtp</em> en cliquant <a href="http://www.pagasa.net/test-smtp/"> ici.</a></p>
<p>Dernière version de <em>chksmtp</em> (RPM Linux):<br />
<a href="http://www.pagasa.net/chksmtp/chksmtp-1.17-1.i386.rpm">1.17</a>   (26 décembre 2005, md5: 06e381b6bc44dd1a2bb27ecf983073af)</p>
<p>Anciennes versions de <em>chksmtp</em> (RPM Linux): <a href="http://www.pagasa.net/chksmtp/chksmtp-1.16-1.i386.rpm">1.16</a> (1 décembre 2004), <a href="http://www.pagasa.net/chksmtp/chksmtp-1.15-1.i386.rpm">1.15</a>  (2 juillet 2004), <a href="http://www.pagasa.net/chksmtp/chksmtp-1.14-1.i386.rpm">1.14</a> (1 mai 2004), <a href="http://www.pagasa.net/chksmtp/chksmtp-1.13-1.i386.rpm">1.13</a> (14 avril 2004), <a href="http://www.pagasa.net/chksmtp/chksmtp-1.12-1.i386.rpm"> 1.12</a> (5 avril 2004), <a href="http://www.pagasa.net/chksmtp/chksmtp-1.11-1.i386.rpm">1.11</a> (9 mars 2004)</p>
<p>Historique:</p>
<p>* 26/12/05: Ajout des blacklists<br />
* 06/12/05: Ajout de la gestion du VRFY<br />
* 23/06/05: Ajout du paramétrage du &laquo;&nbsp;HELO&nbsp;&raquo;<br />
* 28/05/05: Modification d&#8217;un petit bug dans la capture CGI (Car 0&#215;11)<br />
* 15/05/05: Ajout du reverse<br />
* 14/05/05: Modification des paramètres CGI pour une meilleure localisation<br />
* 13/04/05: Correction d&#8217;un bug dans la saisie du formulaire HTML<br />
* 01/12/04: Gros bug TLS corrigé<br />
* 29/10/04: Ajout du paramétrage du fichier de configuration (chksmtp &#8211;conf fichier)<br />
* 28/09/04: Modification des stats<br />
* 23/09/04: Ajout du calcul du LA, installation de la version anglaise<br />
* 31/07/04: Ajout de la commande HELP, et meilleure identification du MTA<br />
* 06/07/04: Ajout de la gestion des authentifications (SMTP AUTH)<br />
* 02/07/04: Petit bug d&#8217;affichage sur les stats<br />
* 16/05/04: Correction mineure, ajout des stats<br />
* 24/04/04: Petit bug d&#8217;affichage corrigé, ajout des reconnexions, du paramétrage du port SMTP, des signatures et des timeout sur les connexions et reconnexions<br />
* 18/04/04: Meilleure optimisation de pgm(), support TLS ajouté<br />
* 16/04/04: Ajout de la gestion esmtp<br />
* 15/04/04: Ajout du nombre de tests, modification du message d&#8217;exclusion<br />
* 14/04/04: Ajout des timers+CPU, prise en compte d&#8217;une erreur sur le fichier log<br />
* 13/04/04: Ajout des exclusions<br />
* 07/04/04: Modification du format des logs, prise en compte du masque dans chkip()<br />
* 05/04/04: Suppression de la bufferisation des sorties HTML, modifications des sorties, correction de quelques bugs d&#8217;affichage (accents ok)<br />
* 29/03/04: Ajout des CR dans le code HTML, modification de getconnect() pour une meilleure prise en compte des timeout<br />
* 03/03/04: Suppression des caractères accentués<br />
* 16/01/04: Bug caractère continuation à la connexion<br />
* 03/10/01: TM, Première version</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pagasa.net/outil-pour-tester-un-serveur-smtp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation d&#8217;un Sendmail chrooté</title>
		<link>http://www.pagasa.net/installation-dun-sendmail-chroote/</link>
		<comments>http://www.pagasa.net/installation-dun-sendmail-chroote/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 20:57:49 +0000</pubDate>
		<dc:creator>Thibaut</dc:creator>
				<category><![CDATA[mail]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[proteger]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://mig.pagasa.net/2007/12/13/installation-dun-sendmail-chroote/</guid>
		<description><![CDATA[Les étapes qui suivent détaillent l&#8217;installation d&#8217;un Sendmail chrooté. Récupérez l&#8217;archive de Sendmail (ici la version 8.13.7), et placez-la, par exemple, dans /usr/src. Décompactez l&#8217;archive par : # gzip -dc sendmail.8.13.7.tar.gz &#124; tar xvf - # cd sendmail-8.13.7 Installez Sendmail de façon conventionnelle : # sh Build # sh Build install Une fois Sendmail installé, [...]]]></description>
			<content:encoded><![CDATA[<p>Les étapes qui suivent détaillent l&#8217;installation d&#8217;un Sendmail chrooté.<br />
Récupérez l&#8217;archive de Sendmail (ici la version 8.13.7), et placez-la, par exemple, dans /usr/src.<br />
Décompactez l&#8217;archive par :<br />
<strong> # gzip -dc sendmail.8.13.7.tar.gz | tar xvf -<br />
# cd sendmail-8.13.7<br />
</strong><br />
Installez Sendmail de façon conventionnelle :<br />
<strong> # sh Build<br />
# sh Build install<br />
</strong><br />
Une fois Sendmail installé, lancez la création du sous-environnement :<br />
<strong> # mkdir /sendmail </strong></p>
<p>Sendmail va tourner dans le sous-environnement que vous allez créer dans le répertoire /sendmail, et aucun autre répertoire ne sera visible à l&#8217;extérieur de ce dernier.<br />
Il vous faut maintenant fournir les éléments vitaux au logiciel (bibliothèques, répertoires, fichiers, etc.). Vous devez pour cela créer des fichiers physiques, car les liens symboliques sont proscrits car ils ne peuvent sortir du répertoire prison /sendmail :<br />
<strong>  # cd /sendmail<br />
# mkdir usr<br />
# mkdir usr/sbin<br />
</strong><br />
Sendmail est enfermé dans sa prison, avec des droits restreints :<br />
<strong> # cp /usr/sbin/sendmail /sendmail/usr/sbin<br />
# chown 0:0 /sendmail/usr/sbin/sendmail<br />
# chmod 500 /sendmail/usr/sbin/sendmail<br />
</strong><br />
Des applications, telles que les serveurs Web, utilisent divers raccourcis pour accéder à Sendmail. Vous devez donc créer ces raccourcis :<br />
<strong> # mkdir /sendmail/lib  # cd /sendmail/lib<br />
# ln -s ../sbin/sendmail sendmail<br />
# mkdir /sendmail/bin<br />
# cd /sendmail/bin<br />
# ln -s ../sbin/sendmail sendmail<br />
</strong><br />
Fournissez maintenant à Sendmail les programmes annexes dont il a besoin, en commençant par extraire les bibliothèques dynamiques qu&#8217;il utilise :<br />
<strong> # ldd /sendmail/usr/sbin/sendmail<br />
libdb.so.3 =&gt;      /lib/libdb.so.3 (0&#215;40016000)<br />
libresolv.so.2 =&gt; /lib/libresolv.so.2 (0x4004f000)<br />
libcrypt.so.1 =&gt; /lib/libcrypt.so.1 (0x4005d000)<br />
libnsl.so.1 =&gt; /lib/libnsl.so.1 (0&#215;40060000)<br />
libdl.so.2 =&gt; /lib/libdl.so.2 (0&#215;40075000)<br />
libc.so.6 =&gt; /lib/libc.so.6 (0&#215;40078000)<br />
/lib/ld-linux.so.2 =&gt; /lib/ld-linux.so.2 (0&#215;40000000)<br />
</strong><br />
Le résultat peut varier suivant les options de compilation et les versions des noyaux :<br />
<strong> # cd /sendmail/lib<br />
# cp /lib/libdb.so.3 .<br />
# cp /lib/libresolv.so.2 .<br />
# cp /lib/libcrypt.so.1 .<br />
# cp /lib/libnsl.so.1 .<br />
# cp /lib/libdl.so.2 .<br />
# cp /lib/libc.so.6 .<br />
# cp /lib/ld-linux.so.2 .<br />
</strong><br />
Créez la file d&#8217;attente :<br />
<strong> # mkdir /sendmail/var<br />
# mkdir /sendmail/var/spool<br />
# mkdir /sendmail/var/spool/mqueue<br />
# chmod 700 /sendmail/var/spool/mqueue<br />
</strong><br />
Créez le répertoire /var/run pour que Sendmail y place son numéro de processus  (sendmail.pid) :<br />
<strong> # mkdir /sendmail/var/run  </strong></p>
<p><strong># touch /sendmail/var/run/sendmail.pid </strong></p>
<p>Ajoutez l&#8217;unité /dev/null, dont Sendmail a besoin en interne :<br />
<strong>  # mkdir /sendmail/dev<br />
# mknod /sendmail/dev/null c 1 3<br />
# chown 0:0 /sendmail/dev/null<br />
# chmod 666 /sendmail/dev/null<br />
</strong><br />
La définition du noeud (c 1 3) n&#8217;est valable que sous Linux.<br />
Pour écrire ses historiques, Sendmail communique avec syslog via un socket. Vous devez donc créer ce dernière dans l&#8217;environnement chroot :<br />
<strong>  # /usr/sbin/syslogd -m 0 -p /sendmail/dev/log<br />
</strong><br />
L&#8217;emplacement de syslogd peut différer d&#8217;un système à un autre. Prenez garde à n&#8217;avoir qu&#8217;une seule instance de syslogd dans le système.</p>
<p>A ce stade, vous devez régler le délicat problème de la résolution de noms. Sendmail ne peut fonctionner correctement sans cette résolution. Cette configuration s&#8217;effectue dans le répertoire /etc :<br />
<strong> # mkdir /sendmail/etc<br />
</strong><br />
Créez le fichier d&#8217;aiguillage des services (etc/nsswitch.conf) de façon à renseigner l&#8217;emplacement des fichiers, indispensables à la résolution de noms. Le contenu du fichier /sendmail/etc/nsswitch.conf est le suivant :<br />
<strong> services:   files<br />
</strong><br />
La ligne services renseigne le fichier etc/services, lequel contient la corrélation entre un numéro de port TCP ou UDP et le nom usuel du service.<br />
Pour utiliser ce dispositif, vous devez pouvoir accéder à la bibliothèque libnss_files-2.2.2.so :<br />
<strong> # cd /sendmail/lib<br />
# cp /lib/libnss_files-2.2.2.so .<br />
</strong><br />
Cette bibliothèque est généralement appelée via un autre nom, libnss_files.so.2 :<br />
<strong>  # ln -s libnss_files-2.2.2.so libnss_files.so.2<br />
</strong><br />
Voici la bibliothèque nécessaire à la résolution de noms (DNS) :<br />
<strong> # cp /lib/libnss_dns.so.2 .<br />
</strong>/<br />
et le fichier /sendmail/etc/services :<br />
<strong>  smtp            25/tcp          mail </strong></p>
<p>Puisque le chroot concerne uniquement SMTP, seule cette ligne est nécessaire.<br />
Voici enfin le fichier du client DNS etc/resolv.conf :<br />
<strong> nameserver 127.0.0.1<br />
</strong><br />
Nous supposons ici que vous disposez d&#8217;un serveur DNS local (127.0.0.1). Il est recommandé de mettre celui de votre FAI, car cela simplifie grandement la configuration de votre serveur.<br />
Pour le répertoire /etc/mail contenant les données de configuration, vous disposez d.une alternative :<br />
· Placer les bases de données et le fichier de configuration dans /sendmail/etc/mail par le biais d&#8217;un petit script exécuté à chaque modification du paramétrage. De cette façon, vous isolez et sécurisez les fichiers source (alias, access, etc.) et le fichier mc dans l&#8217;environnement primaire.<br />
·          Créer un lien de /etc/mail vers /sendmail/etc/mail, exposant ainsi les fichiers source dans l&#8217;environnement chroot.<br />
Choisissez ici la seconde possibilité, la plus commode :<br />
<strong> # mkdir /sendmail/etc/mail<br />
# ln -s /sendmail/etc/mail /etc/mail<br />
</strong><br />
Voici le fichier d&#8217;état de Sendmail, sendmail.st :<br />
<strong> # touch /etc/mail/sendmail.st<br />
</strong><br />
et un très simple fichier mc :<br />
<strong> include(`/usr/lib/sendmail-cf/m4/cf.m4&#8242;)<br />
VERSIONID(`Sendmail chrooté <tm-14>&#8216;)dnl<br />
OSTYPE(`linux&#8217;)dnl<br />
define(`confMAX_MESSAGE_SIZE&#8217;, `5000000&#8242;)dnl<br />
define(`STATUS_FILE&#8217;, `/etc/mail/sendmail.st&#8217;)dnl<br />
define(`confDOMAIN_NAME&#8217;, `monserveur.com&#8217;)dnl<br />
define(`ALIAS_FILE&#8217;, `/etc/mail/aliases&#8217;)dnl<br />
define(`SMART_HOST&#8217;,`smtp.monfai.com&#8217;)dnl<br />
define(`confLOG_LEVEL&#8217;,`14&#8242;)dnl<br />
define(`confSEPARATE_PROC&#8217;,`true&#8217;)dnl<br />
FEATURE(`access_db&#8217;,`hash -o /etc/mail/access&#8217;)dnl<br />
FEATURE(always_add_domain)dnl<br />
MAILER(smtp)dnl<br />
</tm-14></strong><br />
qui vous permet de construire votre sendmail.cf :<br />
<strong>  # m4 sendmail.mc &gt;sendmail.cf<br />
</strong><br />
Le niveau d&#8217;enregistrement des événements a été fixé à 14 (define(`confLOG_LEVEL&#8217;,`14&#8242;)). Cette valeur est particulièrement élevée afin de repérer les éventuelles erreurs. Dans cette configuration, tout le courrier est expédié vers le serveur de votre FAI, smtp.fai.com.<br />
Voici le fichier /etc/mail/aliases :<br />
<strong>  MAILER-DAEMON:          postmaster<br />
postmaster:             root<br />
bin:                    root<br />
daemon:                 root<br />
nobody:                 root<br />
system:                 root<br />
root:          monemail@monadresse.com<br />
</strong><br />
que vous créez de la façon suivante :<br />
<strong>  # chroot /sendmail /usr/sbin/sendmail -bi -v</strong></p>
<p>Le root est en fait un alias vers une autre adresse e-mail. Sur le serveur chrooté, vous n&#8217;acceptez, par commodité, aucune livraison de courrier (voir plus haut).<br />
Voici le fichier /etc/mail/access correspondant, qui contrôle les adresses autorisées à utiliser le relais :<br />
<strong>  127.0.0.1               RELAY<br />
10                      RELAY<br />
localhost               RELAY<br />
localhost.localdomain   RELAY<br />
</strong><br />
que vous créez de la manière suivante :<br />
<strong>  # makemap -v hash access.db &lt;access</strong></p>
<p>Seule la machine locale et le réseau IP 10.0.0.0 sont autorisés à utiliser le relais SMTP.<br />
Démarrez Sendmail :<br />
<strong>  # chroot /sendmail /usr/sbin/sendmail -bd -q15m<br />
</strong><br />
Le serveur doit maintenant fonctionner correctement.<br />
L&#8217;utilitaire strace est recommandé pour la mise au point d&#8217;un Sendmail chrooté. Il permet notamment de déterminer les fichiers et bibliothèques manquants.<br />
Désormais, vous disposez d&#8217;un Sendmail parfaitement sécurisé, enfermé dans une prison logique.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pagasa.net/installation-dun-sendmail-chroote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les relais ouverts</title>
		<link>http://www.pagasa.net/les-relais-ouverts/</link>
		<comments>http://www.pagasa.net/les-relais-ouverts/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 20:54:46 +0000</pubDate>
		<dc:creator>Thibaut</dc:creator>
				<category><![CDATA[mail]]></category>
		<category><![CDATA[faille]]></category>
		<category><![CDATA[messagerie]]></category>
		<category><![CDATA[relais ouverts]]></category>
		<category><![CDATA[relais smtp]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[smtp ouvert sur internet]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[test serveur de messagerie]]></category>

		<guid isPermaLink="false">http://mig.pagasa.net/2007/12/13/les-relais-ouverts/</guid>
		<description><![CDATA[Tester en ligne un serveur SMTP Il existe un problème de sécurité mal connu sur l&#8217;Internet: celui des serveur relais-ouvert. Ce problème concerne les serveurs de messagerie sortante ou SMTP; normalement lorsque l&#8217;on envoie un e-mail, on utilise un serveur SMTP destiné à un usage exclusif. Les personnes autorisées sont généralement celles qui sont issues [...]]]></description>
			<content:encoded><![CDATA[<p><center></p>
<h3><a href="http://www.pagasa.net/test-smtp/">Tester en ligne un serveur SMTP</a></h3>
<p></center>  Il existe un problème de sécurité mal connu sur l&#8217;Internet: celui des serveur relais-ouvert. Ce problème concerne les serveurs de messagerie sortante ou SMTP; normalement lorsque l&#8217;on envoie un e-mail, on utilise un serveur SMTP destiné à un usage exclusif. Les personnes autorisées sont généralement celles qui sont issues du même réseau (wanadoo.fr, skynet.be,&#8230;)En aucun cas, un serveur SMTP ne devrait pouvoir être utilisé par un utilisateur d&#8217;un autre réseau. La raison en est toute simple: quiconque sur Internet serait en mesure de l&#8217;utiliser.Le petit &laquo;&nbsp;axiome&nbsp;&raquo; suivant garantit l&#8217;intégrité d&#8217;un serveur SMTP:<br />
- le serveur SMTP fait partie du même réseau IP que son utilisateur,<br />
OU<br />
- le serveur SMTP envoie du courrier uniquement vers un utilisateur appartenant à son réseau IP.Bien sûr, il peut exister des serveurs intermédiaires destinés à repartir la charge des transactions SMTP. Maintenant, du fait d&#8217;un mauvais paramétrage, un serveur SMTP peut très bien accepter du courrier de n&#8217;importe quel utilisateur d&#8217;Internet vers n&#8217;importe quel autre utilisateur: le serveur SMTP est alors placé en position de relais-ouvert.</p>
<p>Ceci est très dangereux car la plupart des personnes générant du courrier non sollicité (encore appelé spam) utilisent ce genre de relais. Ils ont moins de chance de se faire repérer en utilisant un serveur tiers plutôt que celui de leur FAI (Fournisseur d&#8217;Accès Internet).</p>
<p>Pour information, les spammeurs envoient généralement des milliers voire des dizaines de milliers d&#8217;emails; on voit clairement le risque encouru lorsqu&#8217;un serveur est relais ouvert.</p>
<p>Nous allons maintenant tester manuellement un serveur SMTP afin de voir si oui ou non, celui-ci est un relais ouvert.<br />
La première chose à faire est d&#8217;extraire du DNS le MX (Mailer Exchanger), en fait le nom du serveur SMTP qui peut nous faire entrer sur un domaine de messagerie. Ceci se fait grâce à la commande NSLOOKUP:<br />
<strong> nslookup -q=mx domaine.fr 194.2.0.20 </strong></p>
<p>Le &laquo;&nbsp;-q=mx&nbsp;&raquo; indique que l&#8217;on s&#8217;intéresse uniquement au champs MX du DNS, le domaine.fr représente le domaine de messagerie et l&#8217;adresse IP est tout simplement le DNS que l&#8217;on interroge, ici celui d&#8217;Oleane.<br />
Le même résultat peut être obtenu avec la commande DIG:<br />
<strong> dig mx domaine.fr </strong></p>
<p>En retour, nous obtenons:<br />
<strong> mail.domaine.fr </strong></p>
<p>Nous pénétrons sur le serveur au moyen d&#8217;un simple telnet:<br />
<strong> telnet mail.domaine.fr 25 </strong></p>
<p>Le 25 correspond au numéro du port SMTP.  En réponse, nous obtenons quelque chose de semblable à ceci:<br />
<strong> 220 mail.domaine.fr Simple Mail Transfer Service Ready </strong></p>
<p>Le 220 indique que la connexion a été acceptée et qu&#8217;un dialogue SMTP peut commencer.<br />
Nous commençons par nous identifier:<br />
<strong> helo mamachine.domaine.com </strong><br />
ou<br />
<strong> ehlo mamachine.domaine.com </strong></p>
<p>Nous lui donnons notre adresse SMTP, lui indiquant la source du message:<br />
<strong> mail from: moi@mondomaine.com </strong></p>
<p>Attention, le domaine doit exister car bien souvent le serveur SMTP fait une requête DNS pour vérifier que celui-ci n&#8217;est pas factice. Certains serveurs demandent également d&#8217;utiliser une syntaxe quelque peu différente:<br />
<strong> mail from: &lt;moi@mondomaine.com&gt; </strong></p>
<p>Nous lui donnons l&#8217;adresse SMTP correspondant au destinataire du message:<br />
<strong> rcpt to: lui@sondomaine.com </strong><br />
ou<br />
<strong> rcpt to: &lt;lui@sondomaine.com&gt; </strong></p>
<p>Ici, il y a deux possibilités:<br />
<strong> 554 <lui@sondomaine.com>: Recipient address rejected: Relay access denied </lui@sondomaine.com></strong></p>
<p>Le code d&#8217;erreur 554 indique que le serveur SMTP n&#8217;accepte pas le relais.</p>
<p><strong> 250 OK </strong></p>
<p>Le code de retour 250 autorise le relais: le serveur est donc un relais ouvert. On ne peut toutefois en être absolument sûr car certains serveurs peuvent rejeter le relayage après le dialogue SMTP.</p>
<p>Vous avez la possibilité de tester en ligne si un serveur est relais ouvert ou non en cliquant <a href="http://www.pagasa.net/test-smtp/">ici</a>.<br />
Le programme consiste à tester plusieurs formes de relayage possible. Le résultat est toutefois à prendre au conditionnel car certains serveurs SMTP feignent d&#8217;accepter du courrier mais l&#8217;effacent par la suite. Toutefois, le fait d&#8217;échouer sur le premier test indique tout de même une grosse faille potentielle.</p>
<p>Ce <a href="http://www.pagasa.net/telecharge/chksmtp.pl">petit programme Perl</a> effectue une dizaine de tests sur un serveur SMTP donné. Il faut, bien sûr, se trouver à l&#8217;extérieur du réseau sur lequel se trouve ce serveur.<br />
Attention, suivant le serveur que vous utilisez, le programme peut vous indiquer qu&#8217;il est relais-ouvert mais en fait il n&#8217;en est rien, car le message est rejeté en interne après la clôture de la transaction SMTP.</p>
<p>Si vous voulez être absolument sûrs que le serveur est un relais ouvert, remplacez les deux variables $domaine et $test dans la fonction tst() respectivement par votre domaine de messagerie ainsi que par votre compte POP.</p>
<p><u>Exemple:</u><br />
$domaine=&nbsp;&raquo;wanadoo.fr&nbsp;&raquo;;<br />
$test=&nbsp;&raquo;jacques.vanpiperzen&nbsp;&raquo;;</p>
<p>Si le serveur est effectivement relais alors vous recevrez prochainement du courrier.<br />
Le programme demande une adresse IP ou un nom de machine comme argument; il y aurait moyen de l&#8217;améliorer en y ajoutant des alarm() afin de pallier à d&#8217;éventuels dépassements de temps sur l&#8217;accès au serveur.</p>
<p>La meilleure façon de se protéger efficacement contre le relayage est bien évidement d&#8217;avoir un serveur SMTP bien configuré mais ce n&#8217;est pas forcément évident à mettre en oeuvre surtout sur des systèmes aussi complexes qu&#8217;Exchange Server ou Lotus Notes; ces deux serveurs demandent généralement une bonne pratique avant d&#8217;être parfaitement maîtrisés.</p>
<p>Aussi, je m&#8217;appuierai plus sur une sécurité à l&#8217;échelle d&#8217;IP; l&#8217;avantage est que l&#8217;on devient complètement indépendant de la configuration SMTP.<br />
Une approche pourrait être que chaque fois que l&#8217;on découvre quelqu&#8217;un utilisant son serveur SMTP de façon illicite, alors on interdit à toute la classe IP de ce même utilisateur d&#8217;accéder au serveur. Cette approche (déjà rencontrée) est très mauvaise:<br />
- elle pénalise autrui, à savoir les utilisateurs innocents,<br />
- elle ne résout pas le problème,<br />
- a ce rythme, des pans entiers d&#8217;Internet ne pourront bientôt plus communiquer avec le serveur.</p>
<p>La meilleure façon de procéder consiste à appliquer les étapes suivantes:<br />
- Tout d&#8217;abord, on laisse gérer le courrier par le FAI; celui-ci dont le métier est l&#8217;Internet doit être capable de répondre à la problématique suivant:<br />
&laquo;&nbsp;Je ne veux pas que mon serveur SMTP soit relais ouvert&nbsp;&raquo;.<br />
Pour être plus précis, on va confier la gestion du MX du domaine au FAI; suite à l&#8217;extraction du MX, tout le courrier entrant arrivera donc directement chez le FAI.<br />
- Le FAI ré-acheminera tout le courrier sur notre serveur SMTP.<br />
- Le port 25 de notre serveur de messagerie ne sera accessible que par le(s) adresses IP du/des serveur(s) SMTP de notre FAI.</p>
<p>Ceci se fera grâce à un filtrage élémentaire sur le routeur (Exemple CISCO):<br />
<strong> access-list 125 permit tcp host 10.0.0.10 host 192.168.0.10 eq smtp<br />
access-list 125 deny   tcp any any eq smtp log<br />
</strong><br />
où le 10.0.0.10 représente le serveur du FAI et le 192.168.0.10 le nôtre.<br />
Toutes les autres tentatives d&#8217;utiliser le(s) serveur(s) SMTP sont enregistrées.</p>
<p>On peut faire la même chose grâce à un iptable sous Linux :<br />
<strong> /sbin/iptables -A INPUT -j ACCEPT -p tcp -s  10.0.0.10 -d 192.168.0.10 &#8211;dport 25<br />
</strong><br />
Grâce à cette technique, on canalise le flux SMTP et on interdit ainsi à quiconque de l&#8217;utiliser, si ce n&#8217;est les personnes autorisées.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pagasa.net/les-relais-ouverts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

