SECURITY ADVISORY VULNERABILITE SUR LES DONNEES CLIENTS MAGENTO



Documents pareils
Le stockage local de données en HTML5

Faille PayPal sous Magento ou comment faire ses achats (presque) gratuitement

KASPERSKY SECURITY FOR BUSINESS

Analyse statique de code dans un cycle de développement Web Retour d'expérience

1. Installation du Module

CONNECTEUR PRESTASHOP VTIGER CRM

données à caractère personnel (ci-après "la LVP"), en particulier l'article 30 ;

Faille dans Internet Explorer 7

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Les menaces informatiques

Panorama des solutions Ecommerce

Texte de l'arrêté "Site e-business"

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

Module pour la solution e-commerce Magento

NORME INTERNATIONALE D AUDIT 260 COMMUNICATION DES QUESTIONS SOULEVÉES À L OCCASION DE L AUDIT AUX PERSONNES CONSTITUANT LE GOUVERNEMENT D'ENTREPRISE

MV Consulting. ITIL & IS02700x. Club Toulouse Sébastien Rabaud Michel Viala. Michel Viala

Nos webmasters, web designers et ingénieurs de développement vous accompagnent dans vos projets afin de vous apporter entière satisfaction.

Centre de formation digital et communication : www. Komelya.fr

Conditions générales.

Tutoriel sur Retina Network Security Scanner

Maintenance de son PC

Intégration e-commerce. Version 0.5

Mettre à jour PrestaShop

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

TP JAVASCRIPT OMI4 TP5 SRC

Demagis Interactive, la nouvelle société hybride

CHARTE D UTILISATION DE GÉOANJOU : PLATEFORME MUTUALISEE POUR LE PARTAGE

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Vtiger CRM - Prestashop Connector

Guide pratique sur l'encadrement de la recherche biomédicale. La protection des droits de la personne

Graphisme et Design. L'interface client respectera votre charte graphique et sera adaptée selon vos recommandations.

Table des matières. Date : Version : 29/06/ Objet : OpenVas 6.0

Découvrir le CMS. et l utiliser dans une approche pro!

Contrats et immatériel

Hébergement PHP. Comprendre pour bien choisir son hébergement

Convention Beobank Online et Beobank Mobile

PrestaShop 1.5 Créer un site de e-commerce

Cursus 2013 Déployer un Content Management System

Une fois votre tableau excel complet, cliquer sur fichier enregistrer sous type de fichier (menu déroulant) csv (séparateur : point virgule).

L'intégration de Moodle à l'université Rennes 2 Haute Bretagne

CONDITIONS PARTICULIÈRES SERVICE CDN WEBSITE Version en date du 10/10/2013

N SIRET : N

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Contractualiser la sécurité du cloud computing

Auguria_PCM Product & Combination Manager

Réaliser une recherche avec le logiciel documentaire PMB

McAfee Security-as-a-Service

COMMISSION DE VALIDATION DES DONNEES POUR L'INFORMATION SPATIALISEE

Messagerie & accès Internet

Chapitre 2 Créer son site et ses pages avec Google Site

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

La société... au capital de..., ayant son siège social

Conditions Générales de vente - Service AUDIT MY APPS (les «CGV»)

Internet. e-commerce

Guide de l'utilisateur

Dans l'article précédent, vous avez appris

DEMANDE DE BOURSE DÉPARTEMENTALE. Enseignement supérieur

Sommaire. 1. Présentation de WordPress. 2. Hébergement et installation. 3. Prise en main, ajouter des contenus

GUIDE DE DÉMARRAGE RAPIDE

Panda Managed Office Protection. Guide d'installation pour les clients de WebAdmin

Formation Magento Utilisateur/Administrateur

LES VOITURES DE TOURISME AVEC CHAUFFEUR

En savoir plus pour bâtir le Système d'information de votre Entreprise

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Formation Magento Intégrateur / Designer

multi process 25 RUE Benoît Malon ROANNE

Formation en Sécurité Informatique

Dell PowerVault MD Storage Array Management Pack Suite version 6.0 pour Microsoft System Center Operations Manager Guide d'installation

TeamLab. Premières étapes

Les clauses sécurité dans un contrat de cloud

Quelles sont les informations légales à faire figurer sur un site Internet?

«Les nouvelles technologies & les compétences numériques»

Découvrez Kaspersky. Small Office Security TPE PME GUIDE DE LA SÉCURITÉ INFORMATIQUE

FAQ. NERIM VoIP QUESTIONS TECHNIQUES GENERALES

PLAN 1. A PROPOS 2. EXPERTISE 3. NOS RÉFÉRENCES 4. TECHNOLOGIES 5. CONTACT

Magento. Un framework de E-Commerce

Ref : Résolution problème d'accès aux supports de cours

Modules ICI relais & EXAPAQ Predict v4.0

les fakes logiciels et rogue AV

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Xi Ingénierie. La performance technologique au service de votre e-commerce. Comment exploiter les cookies sur vos applications web en toute légalité?

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

Panorama général des normes et outils d audit. François VERGEZ AFAI

Marquage CE des enrobés bitumineux à chaud QUESTIONS - REPONSES SUR LE MARQUAGE CE DES ENROBES BITUMINEUX A CHAUD

Web & Libre. Outils pour être présent sur le net librement

Vendre produits en 11 langues avec Magento

TNT Express. Magento

Il n'existe pas de contrat "type", mais des types de contrat. Nous pouvons instruire ensemble ces différents types de contrat.

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Vous rappelez-vous des premiers sites Internet auxquels vous avez accédé?

Editer un script de configuration automatique du proxy

Version en date du 01 avril 2010

Découvrir Drupal au travers d un cas client

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Transcription:

SECURITY ADVISORY VULNERABILITE SUR LES DONNEES CLIENTS MAGENTO Date : le 25 avril 2012 Versions affectées : Enterprise 1.6 et Community jusqu'à 1.3.3.0 (incluse) Niveau de sécurité : critique Mode d'exploitation : à distance Vulnérabilité : divulgation de données clients personnelles Reportée par : Gabriel Bouhatous @ The e-commerce Academy

FAILLE CLIENTS SOUS MAGENTO, OU COMMENT TÉLÉCHARGER LA BASE CLIENT D'UN SITE MAGENTO LIBREMENT 1. LA FAILLE... 3 1.1 Quelle est la faille, quel est le risque?... 3 1.2 Quelles sont les versions de Magento affectées?... 3 1.3 Pourquoi publier un Advisory sur cette faille?... 3 1.4 La faille est-elle corrigée dans les versions récentes?... 4 1.5 Comment la faille peut-t-elle être exploitée?... 4 Etape 1 : créer un panier... 4 Etape 2 : se rendre sur le checkout (non obligatoire)... 5 Etape 3 : exploiter la faille et récupérer les informations clients... 5 2. LE PATCH... 8 2.1 Localisation de la faille dans le code... 8 2.2 Fichier correctif... 9 2.3 Faut-il mettre à jour Magento?... 9 3. QUESTIONS/RÉPONSES... 10 3.1 Cette faille touche-t-elle un grand nombre de sites?... 10 3.2 Y'a-t-il vraiment des sites Magento basés sur d'anciennes versions?... 10 3.3 Quels sont les risques encourus par les sites affectés par la faille?... 10 3.4 Comment une telle faille peut-t-elle arriver dans Magento?... 10 3.5 Le fait que le code de Magento soit lisible (open-source) est-il un risque?... 11 3.6 La communauté contribue-t-elle à la sécurité de la solution?... 11 3.7 Par rapport à d'autres solutions, quel est le niveau de sécurité de Magento? 11 4. PROCHAINES ÉTAPES... 11 2

1. LA FAILLE 1.1 QUELLE EST LA FAILLE, QUEL EST LE RISQUE? Une faille de sécurité affecte le processus de commande de certaines versions de Magento Community et Enterprise. L'exploitation de la faille permet la récupération des adresses clients enregistrées sur le site, c'est à dire: identité : prénom, nom, civilité société, téléphone, fax adresse complète : rue, code postal, ville, région, pays date de création et de mise à jour de l'adresse client Exemple de données brutes récupérées librement : {"entity_id":"1","entity_type_id":"2","attribute_set_id":"0","increment_id" :"","parent_id":"2","created_at":"2012-04-22 20:13:28","updated_at":"2012-04-22 20:13:28","is_active":"1","firstname":"Gabriel","lastname":"Bouhatous","com pany":"the e-commerce Academy","city":"Paris","region":"257","postcode":"75008","country_id":"FR","telephone":"068977xxxx","fax":"","region_id":"257","street":"140 Boulevard Haussmann","street1":"140 Boulevard Haussmann"} 1.2 QUELLES SONT LES VERSIONS DE MAGENTO AFFECTÉES? La faille concerne : toutes les versions de Magento Community jusqu'à 1.3.3.0 (incluse) Magento Enterprise 1.6 Bien que les versions affectées soient relativement anciennes, un certain nombre de sites en production sont toujours basés sur celles-ci. Un test réalisé sur un échantillon de 1.300 sites révèle que 30 à 40% des sites Magento pourraient être concernés par la faille. Les sites basés sur Magento Community >= 1.4.0.0 ou Magento Enterprise >= 1.7.0.0 ne sont pas affectés. 1.3 POURQUOI PUBLIER UN ADVISORY SUR CETTE FAILLE? Lors d'un récent audit sur un site Magento, une analyse de logs serveurs nous a permis de constater que des tentatives d'exploitation de la faille avaient été effectuées. Certaines personnes a priori mal intentionnées ont donc connaissance de la vulnérabilité, alors même que les victimes potentielles ignorent tout du risque. D'autre part, s'il corrige les failles qui lui sont signalées, l'éditeur ne communique pas pour autant sur le sujet. Nous n'avons pu trouver aucune communication concernant cette faille. Nous n'avons pas non plus pu trouver d'informations non-officielles via les sites communautaires. Enfin, même lorsque l'éditeur corrige les failles, il ne fournit pas pour autant de patch, ce qui laisse potentiellement un grand nombre de sites Magento vulnérables sans solution facilement applicable. 3

1.4 LA FAILLE EST-ELLE CORRIGÉE DANS LES VERSIONS RÉCENTES? Oui, dans les versions récentes de Magento, la faille est bien corrigée. Plus précisément, la vulnérabilité est corrigée : à partir de Magento Community 1.4.0.0 à partir de Magento Enterprise 1.7.0.0 Pour information : La version 1.5.0.0 de Magento C.E. et la version 1.10 de Magento E.E./P.E. étaient affectées par une faille de sécurité majeure, les modifications appropriées ont été effectuées et ont donné lieu à Magento C.E. 1.5.0.1 et Magento E.E. 1.10.0.1 ; les versions affectées étant retirée du téléchargement. Bien que la faille clients est corrigée dans les versions récentes, la version 1.3.3.0 n'a pas fait l'objet d'un patch et n'a pas été retirée du téléchargement. 1.5 COMMENT LA FAILLE PEUT-T-ELLE ÊTRE EXPLOITÉE? ETAPE 1 : CRÉER UN PANIER La première étape consiste à créer un panier sur un site Magento concerné par la faille. Il n'est pas nécessaire d'être logué en tant que client, la faille est exploitable en tant que simple visiteur. 4

ETAPE 2 : SE RENDRE SUR LE CHECKOUT (NON OBLIGATOIRE) On peut alors se rendre sur la première page du processus de commande. Notez que cette étape n'est pas obligatoire. L'url de la page est alors la suivante. http://{{base_url}}/checkout/onepage/ ETAPE 3 : EXPLOITER LA FAILLE ET RÉCUPÉRER LES INFORMATIONS CLIENTS Afin d'exploiter la faille, il suffit de changer l'url de la manière suivante. http://{{base_url}}/checkout/onepage/getaddress/address/id id : un chiffre qui correspondra à un numéro d'adresse client dans la base Magento, par exemple 1, 2, 3 ou 999 (incrémental de pas 1). 5

Magento nous proposera de télécharger un fichier au format JSON. Dans le cadre de ce test sur un Demo Store, on obtiendra un fichier contenant les informations suivantes. 6

{"entity_id":"1","entity_type_id":"2","attribute_set_id":"0","increment_id" :"","parent_id":"2","created_at":"2012-04-22 20:13:28","updated_at":"2012-04-22 20:13:28","is_active":"1","firstname":"Gabriel","lastname":"Bouhatous","com pany":"the e-commerce Academy","city":"Paris","region":"257","postcode":"75008","country_id":"FR","telephone":"068977xxxx","fax":"","region_id":"257","street":"140 Boulevard Haussmann","street1":"140 Boulevard Haussmann"} Un script permettrait d'automatiser l'extraction et la mise en forme des données par un appel successif aux urls suivantes : http://{{base_url}}/checkout/onepage/getaddress/address/1 http://{{base_url}}/checkout/onepage/getaddress/address/2 http://{{base_url}}/checkout/onepage/getaddress/address/3 etc. 7

2. LE PATCH 2.1 LOCALISATION DE LA FAILLE DANS LE CODE Le fichier responsable de la faille est : app/code/core/mage/checkout/controllers/onepagecontroller.php S'il n'a pas été modifié, le fichier contient à la ligne 223 le code suivant : /** * Address JSON */ public function getaddressaction() { $this->_expireajax(); $addressid = $this->getrequest()->getparam('address', false); if ($addressid) { $address = $this->getonepage()->getaddress($addressid); $this->getresponse()->setheader('content-type', 'application/xjson'); $this->getresponse()->setbody($address->tojson()); } } Cette méthode prend en paramètre un ID d'adresse, par exemple 1, 2, 3 ou 999. C'est cet ID d'adresse qui est passé en paramètre dans l'url http://{{base_url}}/checkout/onepage/getaddress/address/id qui permet l'exploitation de la faille. Comment son nom l'indique, une adresse client est associée à un client. Dans cette méthode, aucune vérification sur le droit de récupération de l'adresse n'est effectuée. Concrètement, peu importe qui demande l'adresse, Magento retournera toujours l'information, à la seule condition qu'un id d'adresse lui soit fourni. Afin de corriger la faille, il suffit de remplacer la méthode originale par le code suivant : /** * Address JSON */ public function getaddressaction() { $this->_expireajax(); $addressid = $this->getrequest()->getparam('address', false); if ($addressid) { $address = $this->getonepage()->getaddress($addressid); if(mage::getsingleton('customer/session')->getcustomer()- >getid() == $address->getcustomerid()) { $this->getresponse()->setheader('content-type', 'application/x-json'); $this->getresponse()->setbody($address->tojson()); } else { $this->getresponse()->setheader('http/1.1','403 Forbidden'); } } } 8

Ce code est tout simplement issu de Magento 1.4.0.0. Dans ce code, la méthode vérifie si l'adresse demandée appartient bien au client qui en fait la demande. Si ce n'est pas le cas, une notification d'interdiction d'accès est retournée. 2.2 FICHIER CORRECTIF Si vous ne souhaitez pas appliquer manuellement le correctif proposé ci-dessus, et si vous avez l'assurance que le fichier incriminé n'a pas été modifié, vous pouvez le remplacer par le fichier disponible à l'adresse suivante : http://blog.academy-ecommerce.com/?attachment_id=315 Rappel : le fichier incriminé est : app/code/core/mage/checkout/controllers/onepagecontroller.php 2.3 FAUT-IL METTRE À JOUR MAGENTO? Comme le correctif proposé est issu des versions récentes de Magento, on peut l'implémenter directement dans le coeur. Une fois le correctif implémenté, aucune autre action n'est nécessaire. Il est recommandé de mettre à jour son site Magento régulièrement, ne serait-ce que pour bénéficier de potentielles corrections de bugs techniques ou failles. 9

3. QUESTIONS/RÉPONSES 3.1 CETTE FAILLE TOUCHE-T-ELLE UN GRAND NOMBRE DE SITES? Il est très probable que la quasi-totalité des sites Magento réalisés ces derniers mois mettent en oeuvre une version de Magento non concernée par la faille. Cependant, d'après des estimations préliminaires, qui pourront être affinées, 30 à 40% des sites Magento en production seraient toujours sur une version antérieure ou égale à la 1.3.3.0. S'il y a environ 100.000 sites Magento dans le monde, cela représente entre 30.000 et 40.000 sites dont la base clients serait librement récupérable. 3.2 Y'A-T-IL VRAIMENT DES SITES MAGENTO BASÉS SUR D'ANCIENNES VERSIONS? Un certain nombre de très gros projets Magento ont commencé sur la version Community de Magento, à l'époque ou la version Enterprise n'existait pas : de gros sites sont donc concernés par la vulnérabilité. Malheureusement, et nous avons pu le vérifier, cela signifie que des sites parmi les principales références mondiales de Magento sont concernés. La migration d'un site Magento d'une version à l'autre peut demander un travail important, a fortiori quand le développement n'a pas été fait dans les règles de l'art. Ceci est d'autant plus vrai que les changements entre Magento 1.3 et Magento 1.4 ne sont pas anodins. 3.3 QUELS SONT LES RISQUES ENCOURUS PAR LES SITES AFFECTÉS PAR LA FAILLE? L'exploitation de la faille permet de télécharger une base clients Magento quasicomplète, hors emails. Cela pose deux problèmes principaux évidents : la base clients a une valeur financière voire stratégique, celle-ci peut être récupérée dans un but d'exploitation ou de revente et potentiellement exploitée par un concurrent la plupart des juridictions prévoient que les sites e-commerce ont l'obligation de protéger les informations personnelles des clients En France l'article 226-17 du code pénal indique que "Tout responsable de traitement informatique de données personnelles doit adopter des mesures de sécurité physiques (sécurité des locaux), logiques (sécurité des systèmes d information) et adaptées à la nature des données et aux risques présentés par le traitement. Le non-respect de l obligation de sécurité est sanctionné de 5 ans d'emprisonnement et de 300 000 d'amende." 3.4 COMMENT UNE TELLE FAILLE PEUT-T-ELLE ARRIVER DANS MAGENTO? Le socle technique de Magento est solide, le framework de développement (Zend) et les méthodes de programmation mises en oeuvre assurent un très bon niveau de sécurité, par rapport à d'autres solutions e-commerce open source développées en 10

PHP. La solution Magento est donc "nativement protégée" d'un certain nombre de failles de sécurité parmi les plus courantes. Cependant, le socle technique ne protège pas des erreurs de conception, et la faille qui permet ici de télécharger les informations clients est liée à une erreur humaine. 3.5 LE FAIT QUE LE CODE DE MAGENTO SOIT LISIBLE (OPEN-SOURCE) EST-IL UN RISQUE? La faille a été signalée à l'éditeur par le biais du bug-tracker par un membre de la communauté, puis corrigée à partir de Magento C.E. 1.4 et Magento E.E. 1.7. Il semble que le membre de la communauté en question a pu trouver la faille en lisant le code. Si le code responsable de la faille n'avait pas été lisible, il est peu probable que la faille ait été découverte. Seule l'éditeur aurait alors pû se charger d'un correctif et d'une éventuelle communication autour de celui-ci, ce qui reste à son entière discrétion. 3.6 LA COMMUNAUTÉ CONTRIBUE-T-ELLE À LA SÉCURITÉ DE LA SOLUTION? C'est en tout cas la communauté qui fournit aujourd'hui cet Advisory :-). Membres de la communauté, nous vous encourageons à relayer ces informations. 3.7 PAR RAPPORT À D'AUTRES SOLUTIONS, QUEL EST LE NIVEAU DE SÉCURITÉ DE MAGENTO? Il est clair que cette faille est particulièrement critique, mais Magento se place parmi les solutions les plus sécurisées. D'autres solutions e-commerce, open-source et en PHP, ont également été affectées par des failles de sécurité majeures et le sont certainement toujours. Il s'agit juste de trouver, corriger et communiquer autour de celles-ci pour prévenir leur exploitation. - PrestaShop : plusieurs failles, importantes, ont été révélée dans le passé. En août 2011, une faille majeure affectant le backoffice a été constatée suite au hack du site officiel de la solution. L'éditeur a très largement communiqué autour du problème, ce qui est un très bon point. L'erreur est humaine... mais corrigeable! - Drupal Commerce : le framework e-commerce se basant sur Drupal, il bénéficie de ses avantages comme de ses inconvénients. Ceci comprend les failles de sécurité de Drupal. La dernière faille de sécurité majeure pour Drupal remonte au 29 juin 2011. Une faille classée "modérément critique" a été révélée le 1er février 2012. Une communication sérieuse est réalisée autour de ces failles via une page spéciale, des annonces publiques et un fil twitter dédié. Puisse Magento s'en inspirer! 4. PROCHAINES ÉTAPES Si vous avez besoin d'aide pour appliquer le correctif, si vous souhaitez échanger sur la faille ou pour toute autre remarque, n'hésitez pas à vous rendre sur : le sujet dédié sur Fragento : http://fragento.org/bugs/58351-securite- Vulnerabilite-majeure-sur-les-informations-clients-dans-Magento.html l'article original sur le blog de l'e-commerce Academy : http://blog.academy-ecommerce.com Nous espérons que cet Advisory vous aura été utile et restons disponibles :-). 11