BLOG X2i

L'actualité Magento et e-commerce vue par X2i

Protégez votre installation Magento contre les tentatives d’identification de mots de passe

7 avril 2016 - Publié par Bertrand - Magento 1, Magento 2

Protégez votre installation Magento contre les tentatives d’identification de mots de passe !
L’équipe Magento a récemment pris conscience de la force des attaques consistant à deviner les mots de passe des installations Magento dans le monde entier. Dans certains cas, ces attaques ont permis un accès non autorisé au panneau administrateur.

C’est pourquoi aujourd’hui, nous nous appuyons sur cet article officiel de Magento, pour vous recommander vivement de prendre les mesures suivantes afin de protéger votre site e-commerce contre de telles attaques.




Tout d’abord, il faut que vous reteniez que sur une installation Magento 1 typique (par exemple Magento Enterprise Edition 1.14.2), les emplacements /admin (ou le nom personnalisé que vous avez choisi pour admin) et /downloader doivent être protégés. Dans le cas de Magento 2, seul l’emplacement du panneau administrateur (emplacement généré automatiquement lors de l’installation) doit être protégé.


Avant d’effectuer n’importe quel changement, veuillez prendre les mesures suivantes:

  • Passez en revue tous les utilisateurs admin dans System->Permissions->Users. Supprimez toutes les entrées inutilisées ou les entrées que vous ne reconnaissez pas. Cela devrait être fait au moins une fois par mois et/ou à chaque fois qu’un employé quitte l’entreprise.
  • Assurez-vous que votre mot de passe et celui de tout autre employé utilisant le panneau administrateur est sécurisé. Rappelez-vous que plus les mots de passe sont complexes, plus ils sont difficiles à deviner. Si vous souhaitez des exemples sur la meilleure manière de créer un mot de passe sécurisé, vous pouvez consulter cette page .
  • Retenez également que votre mot de passe doit être renouvelé tous les trois mois.
  • Pensez à changer le nom d’utilisateur pour quelque chose de moins commun – n’utilisez pas admin ou administrateur.
  • Assurez-vous que vous avez tous les patchs d’installés : ils sont disponibles en téléchargement sur « MY ACCOUNT » pour les clients Enterprise Edition et sur la page « COMMUNITY EDITION DOWNLOAD PAGE » pour les clients Community Edition.

Une « liste blanche » d’IP

La meilleure manière de protéger l’accès aux emplacements /admin et /downloader est de n’autoriser l’accès qu’aux utilisateurs provenant d’une adresse IP ou d’un réseau spécifique. Cette méthode fonctionne mieux si vous vous connectez au backend à partir du même endroit et du/des même(s) ordinateurs. Pour trouver votre adresse IP, vous pouvez utiliser Google via ce lien. Cela devrait vous donner une adresse comme 111.222.333.444.

Cette solution ne fonctionnera pas correctement si vous utilisez des adresses IP dynamiques ou si vous souhaitez accéder au backend via un terminal mobile. Si votre entreprise dispose d’une main-d’œuvre travaillant à distance, il est important d’ajouter également leurs adresses IP et de veiller à ce qu’ils aient accès au réseau.

« Liste blanche » d’IP : protection pour /DOWNLOADER

Si vous utilisez Apache Web Server :

Modifiez le fichier .htaccess existant dans /downloader. Ajouter ce qui suit à la fin:

order deny,allow
deny from all
allow from x.x.x.x


Vous pouvez utiliser plusieurs « allow statements » pour autoriser l’accès à plusieurs machines ou à plusieurs localisations.


Si vous utilisez Nginx Web Server

Vous aurez besoin de travailler avec votre fournisseur d’hébergement pour bloquer les emplacements /admin, /downloader et /RSS.
Si vous avez libre accès à votre serveur, vous pouvez modifier la configuration Nginx vous-même, en suivant les instructions postées sur cette page.

« Liste blanche » d’IP : le panneau administrateur et les flux RSS.

Le panneau administrateur est accessible via les URL /admin et /index.php/admin (ou par les chemins d’accès personnalisés que vous pouvez définir), mais ce n’est pas un vrai répertoire sur le serveur et il doit donc être protégé différemment. La même chose vaut pour les flux RSS admin, tels que les avertissements lorsque les stocks sont presque vides ou les mises à jour du statut des commandes.

La meilleure manière de protéger le panneau administrateur et les flux RSS est de rediriger les requêtes provenant d’adresses IP inconnues vers la page principale. Cela peut être fait en éditant le fichier .htaccess dans le dossier racine Magento et en ajoutant la règle ci-dessous juste après les règles de réécriture pour les mobile user agents, qui se trouvent juste avant une section appelée «always send 404 on missing files in these folders ».

RewriteCond %{REQUEST_URI} ^.*/ADMIN_PANEL_LOCATION [OR,NC]

RewriteCond %{REQUEST_URI} ^.*/DOWNLOADER [OR,NC]

RewriteCond %{REQUEST_URI} ^.*/RSS/CATALOG [OR,NC]

RewriteCond %{REQUEST_URI} ^.*/RSS/ORDER [NC]

RewriteCond %{REMOTE_ADDR} !^1.2.3.4

RewriteCond %{REMOTE_ADDR} !^5.6.7.8

RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [R=302,L]



Si vous utilisez Nginx Web Server

Vous aurez besoin de travailler avec votre fournisseur d’hébergement pour bloquer les emplacements /admin, /downloader et /RSS.
Si vous avez libre accès à votre serveur, vous pouvez modifier la configuration Nginx vous-même, en suivant les instructions postées sur cette page !

Fail2Ban : filtrage adaptatif

Remarque: cette section est basée sur des informations provenant de cette page support, créée par les auteurs de magereport.com.

Si vous avez libre accès à votre serveur, vous pouvez installer le logiciel fail2ban qui peut limiter ou arrêter les attaques supposées. Un exemple de configuration pour Nginx est illustré ci-dessous.

Remarque: cette configuration ne bloque pas l’accès aux flux RSS. Veillez à travailler avec votre administrateur système ou votre fournisseur d’hébergement pour implémenter fail2ban correctement.

Code à ajouter à /etc/fail2ban/jail.local :

[hn-nginx-retry-ban]

# Only ban after multiple retries.
# Use this for « soft » bad behaviour.
port = http,https
filter = hn-nginx-retry-ban
logpath = /var/log/nginx/access.log
bantime = 7200
maxretry = 10


Code à ajouter à /etc/fail2ban/filter.d/hn-nginx-retry-ban.conf :

[Definition]

# Use this for « soft » bad behaviour, as the source will only be banned after multiple retries.
failregex = ^ .+ »POST
\S+(/downloader/|/downloader/index.php\?A=loggedin|/admin/index/|/admin/)\s
ignoreregex =


Dans le listing des emplacements, vous pouvez ajouter votre chemin d’accès admin personnalisé avec |/custompath/.

Modifier l’emplacement du panneau administrateur et Magento Connect Manager

Les attaques et tentatives d’identification de mots de passe supposent que le panneau administrateur soit situé dans un emplacement typique comme /admin, /backend, /manage, /control, ou dans l’emplacement par défaut de Magento Connect Manager: /downloader.

Modifier l’emplacement du panneau administrateur et de downloader peut réduire la probabilité d’être la cible d’une attaque générique. Cependant, cela ne protège pas contre les attaques ciblées puisque ces attaques pourraient essayer de deviner en amont l’emplacement en effectuant de multiples demandes.

Remarque 1 : certains fournisseurs d’hébergement Magento ont des règles de sécurité particulières qui s’appliquent aux emplacements par défaut. Veillez à demander à votre fournisseur d’hébergement s’il recommande de changer l’emplacement avant de faire cette mise à jour.

Remarque 2 : si vous ne prévoyez pas d’installer des extensions de Magento Connect, vous pouvez supprimer ou bloquer complètement l’accès au répertoire /downloader.

Modifier le nom du Panneau Administrateur (Magento 1 uniquement)

Changer le nom du panneau administrateur peut également aider à le protéger contre les attaques. Pour modifier son nom, connectez-vous d’abord dans le panneau d’administration et accédez à System -> Cache Management.
Ensuite, vous devrez modifier le fichier app/etc/local.xml dans votre installation Magento et changer le nom dans la section admin -> routers -> adminhml -> args -> frontName.
Après cette modification, il vous faut effacer tous les caches, puis vous déconnecter et vous reconnecter en utilisant la nouvelle URL.

Changer le nom de Magento Connect Manager (/Downloader) (Magento 1 uniquement)

Une autre approche consiste à modifier le nom du gestionnaire Magento Connect (Magento Connect Manager). Une fois que vous aurez fait ce changement, il ne sera plus possible d’ouvrir le gestionnaire Magento Connect à partir du panneau administrateur Magento. Il faudra y accéder directement en utilisant la nouvelle URL.
Pour changer le nom du gestionnaire Magento Connect, il suffit de remplacer le nom du dossier depuis /downloader par un nouveau nom unique.




En résumé, plusieurs méthodes sont possibles pour vous aider à protéger votre e-commerce des tentatives d’identification de mots de passe. Nous vous conseillons d’étudier rapidement ces recommandations avec votre intégrateur Magento et vos partenaires d’hébergement afin de mettre en place celles qui sont le mieux adaptées à votre situation spécifique.

Si vous avez besoin d’aide pour sécuriser au mieux votre e-commerce Magento, n’hésitez pas à nous contacter : nos offres d’audits Magento pourront identifier les points bloquants sur votre e-commerce et les solutions appropriées pour les résoudre. Et pour d’autres conseils techniques, nous vous incitons à consulter régulièrement le blog officiel Magento, dont nous avons tiré cet article.

Et vous, avez-vous des bonnes pratiques à partager pour sécuriser votre plateforme Magento ?

A lire aussi

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Actualité

NEWSLETTER X2i

Recevez en exclusivité notre actualité par e-mail :
conseils, nouveautés Magento, événements e-commerce, livres blancs...