En bref
- Un attaquant qui entre dans une boutique se crée souvent un accès pour revenir : un compte administrateur, une intégration ou un jeton d’API.
- Faites régulièrement le tour de quatre écrans : tous les utilisateurs, les rôles, les intégrations et, côté serveur, les jetons d’API.
- Face à un compte suspect, désactivez-le plutôt que de le supprimer : vous gardez la trace de ce qu’il était.
- Changez ensuite les mots de passe et activez l’authentification à deux facteurs : prévue par défaut depuis Magento 2.4.0, elle est souvent désactivée.
Sommaire
Pourquoi un compte administrateur suspect est un signe d’intrusion
Une faille ou un mot de passe volé ouvre la porte une fois. Pour revenir quand il veut, même après une mise à jour, l’attaquant se fabrique sa propre clé : un compte administrateur à lui, ou un accès à l’API de la boutique.
Les intégrations sont la clé la plus discrète. Magento leur donne un jeton d’accès qui ne s’expire pas tout seul : il reste valable jusqu’à ce qu’on le révoque. Adobe le dit lui-même : un tel jeton, s’il est volé, donne un accès permanent et invisible à la boutique. C’est pourquoi Magento n’accepte plus par défaut ce jeton seul, sans signature.
Ce n’est pas un hasard si la page d’Adobe sur la réponse à un incident commence par : auditer tous les accès des comptes administrateurs.
Où regarder dans l’administration de Magento 2
Les chemins ci-dessous sont ceux d’une administration en français ; les libellés peuvent varier légèrement selon le pack de langue installé.
Les comptes administrateurs
Système > Permissions > Tous les utilisateurs. La liste montre pour chaque compte l’identifiant, le nom, l’e-mail, la dernière connexion (Last Logged in), le rôle et l’état. Ouvrez un compte pour voir son détail et, dans le menu de gauche, son rôle (Rôle de l’utilisateur).
Les comptes bloqués après trop d’essais de mot de passe sont dans Système > Permissions > Utilisateurs verrouillés. Par défaut, Magento bloque un compte après six échecs.
Les rôles
Système > Permissions > Rôles utilisateurs. Ouvrez chaque rôle, puis Ressources du rôle : si Accès aux ressources vaut Tous, le rôle donne tous les droits. Le menu Utilisateurs ayant ce rôle liste les comptes qui l’ont reçu.
Les intégrations
Système > Extensions > Intégrations. Chaque intégration est un accès à l’API donné à un outil externe : ERP, logiciel de caisse, comparateur, transporteur. La liste montre son nom et son état (Actif ou Inactif).
Les jetons d’API
Ils ne sont pas listés dans l’administration. Les jetons des intégrations restent valables jusqu’à leur révocation. Ceux des comptes administrateurs durent quatre heures par défaut. Depuis Magento 2.4.4, ces derniers ne sont plus enregistrés dans la base : personne ne peut les lister. La personne qui gère le serveur peut lister ceux des intégrations (voir plus bas).
Les signes d’un compte administrateur suspect sur Magento
Un seul signe ne prouve rien. Plusieurs ensemble méritent une vérification.
- Un compte que personne ne revendique, ou un nom générique (« support », « dev », « admin2 ») que personne n’a créé.
- Une adresse e-mail inconnue, sur un domaine qui n’est ni le vôtre ni celui de votre agence.
- Une date de création que personne n’explique, la nuit ou un week-end.
- Un rôle à tous les droits donné à un compte qui n’en a pas besoin, ou un rôle limité passé à Tous.
- Une intégration récente que personne n’a demandée, surtout si elle a accès à toutes les ressources.
- Un compte réactivé, ou un compte d’ancien salarié ou d’ancienne agence toujours actif. Ce n’est pas forcément une intrusion, mais c’est une porte ouverte.
- Une dernière connexion à une heure inhabituelle, pour un compte qui ne sert plus.
Compte administrateur suspect : que faire
- Notez tout avant de toucher au compte : identifiant, nom, e-mail, rôle, date de création, dernière connexion. Une capture d’écran suffit.
- Désactivez le compte plutôt que de le supprimer. Ouvrez-le, réglez Ce compte est sur Inactif, puis confirmez avec votre propre mot de passe (Votre mot de passe). Un compte supprimé efface la trace de ce qu’il était. Vous le supprimerez une fois l’enquête terminée, comme le recommande Adobe.
- Pour une intégration inconnue, notez son nom, son e-mail et ses ressources, puis supprimez-la. La suppression retire aussi ses clés et ses jetons. Pour une intégration légitime dont les clés ont pu fuiter, supprimez-la et recréez-la, puis mettez les nouvelles clés dans l’outil concerné.
- Demandez à votre agence et à vos prestataires s’ils ont créé ce compte. Souvent, la réponse est oui, et l’affaire est close.
- S’ils ne l’ont pas créé, c’est une intrusion. Changez les mots de passe de tous les administrateurs depuis un ordinateur sain, faites chercher par où l’attaquant est entré et suivez notre marche à suivre : Magento 2 piraté : les signes et la marche à suivre. Un attaquant qui a pu créer un compte a pu faire bien plus.
Bonjour,
Nous avons trouvé dans l’administration de notre boutique Magento un compte que nous ne connaissons pas : [identifiant, e-mail, date de création, rôle].
Est-ce vous qui l’avez créé ? Si oui, pouvez-vous nous dire pourquoi et s’il sert encore ?
Si non, nous l’avons désactivé sans le supprimer. Pouvez-vous, en urgence, conserver les logs du serveur et de Magento et chercher comment il a été créé ?
Merci.
Vous gérez le serveur : lister comptes, rôles, intégrations et jetons d’API Magento
Ces requêtes ne modifient rien. Lancez-les dans le client MySQL ou MariaDB, connecté à la base de Magento (les accès sont dans app/etc/env.php). Si la base utilise un préfixe de tables, ajoutez-le aux noms.
-
Les comptes administrateurs, du plus récent au plus ancien, avec leur rôle et leur dernière connexion (
logdate) :Requête SQL · Comptes administrateurs et rôlesSELECT u.user_id, u.username, u.email, u.is_active, u.created, u.logdate, r.role_nameFROM admin_user uLEFT JOIN authorization_role ur ON ur.user_id = u.user_id AND ur.role_type = 'U'LEFT JOIN authorization_role r ON r.role_id = ur.parent_idORDER BY u.created DESC; -
Les rôles qui donnent tous les droits (ressource
Magento_Backend::all) :Requête SQL · Rôles à tous les droitsSELECT r.role_id, r.role_nameFROM authorization_role rJOIN authorization_rule ru ON ru.role_id = r.role_idWHERE r.role_type = 'G'AND ru.resource_id = 'Magento_Backend::all'AND ru.permission = 'allow'; -
Les sessions récentes de l’administration, avec leur adresse IP. Magento efface chaque nuit les sessions de plus d’un jour : exportez le résultat tout de suite.
Requête SQL · Sessions de l'administrationSELECT u.username, s.ip, s.created_at, s.updated_atFROM admin_user_session sJOIN admin_user u ON u.user_id = s.user_idORDER BY s.created_at DESC; -
Les intégrations, puis leurs jetons d’accès (
user_type = 1désigne une intégration) :Requête SQL · Intégrations et jetons d'accèsSELECT integration_id, name, email, status, setup_type, created_at, updated_atFROM integrationORDER BY created_at DESC;SELECT t.entity_id, i.name, t.revoked, t.created_atFROM oauth_token tLEFT JOIN integration i ON i.consumer_id = t.consumer_idWHERE t.type = 'access' AND t.user_type = 1ORDER BY t.created_at DESC;statusvaut 1 pour une intégration active. Un jeton sans nom d’intégration appartient à un accès qui n’existe plus dans la liste : à regarder de près. -
L’authentification à deux facteurs, depuis le dossier de Magento :
Terminalbin/magento module:status Magento_TwoFactorAuthLe module doit être activé. S’il ne l’est pas, réactivez-le avec
bin/magento module:enable Magento_TwoFactorAuth, puis suivez votre procédure de déploiement habituelle (setup:upgradeet, en mode production, la compilation et le contenu statique). Cherchez aussi danscomposer.jsonetapp/codeune extension dont le nom parle de désactiver la 2FA (« DisableTwoFactorAuth » et apparentés) : retirez-la en production.
Prévenir les accès suspects à l’administration Magento
- Activez l’authentification à deux facteurs, et vérifiez qu’elle l’est vraiment. Avec elle, un mot de passe volé ne suffit plus pour entrer dans l’administration. Elle est prévue par défaut depuis Magento 2.4.0, et Adobe déconseille fortement de la désactiver. Pourtant, elle est souvent coupée, le temps d’un développement ou d’une migration, puis oubliée : le module
Magento_TwoFactorAuthest désactivé, ou une extension la contourne. Si aucun code n’est demandé à la connexion, elle ne fonctionne pas. Les méthodes se choisissent dans Magasins > Paramètres > Configuration > Sécurité > 2FA. - Un compte par personne, avec le rôle le plus limité possible. Réservez les rôles à tous les droits à une ou deux personnes.
- Interdisez le partage de compte : Magasins > Paramètres > Configuration > Avancé > Administration > Sécurité, réglage Partage de Compte admin sur Non. Dans la même section, réglez le blocage après échecs et la durée de vie des mots de passe.
- Donnez une date d’expiration aux comptes des prestataires. Dans Système > Permissions > Tous les utilisateurs, ouvrez le compte : le champ Date d’expiration se trouve dans Informations du compte, sur l’onglet Infos de l’utilisateur. Il existe aussi en édition Open Source (module
Magento_Security). Une fois la date passée, une tâche planifiée de Magento passe le compte en Inactif : le cron doit donc tourner. - Changez l’adresse de l’administration et, si vous le pouvez, limitez son accès à certaines adresses IP ou à un VPN, comme le recommande Adobe.
- Laissez désactivé l’usage des jetons d’intégration comme jetons simples (Magasins > Paramètres > Configuration > Services > OAuth > Paramètres d’utilisateur). Adobe ne le recommande pas.
- Faites le tour des comptes chaque mois, et après chaque fin de contrat avec une agence ou un salarié. Pour aller plus loin : notre audit de sécurité Magento 2 et notre guide pour sécuriser Magento 2.
Tocsin24 vous dit ce qui a changé sur vos comptes, et quand
Tocsin24 relève les comptes administrateurs, les intégrations et leurs jetons d’accès de votre boutique Magento, toutes les heures par défaut, sans jamais lire un mot de passe ni la valeur d’un jeton. Vous validez une fois les accès légitimes. Ensuite, tout nouveau compte administrateur et toute nouvelle intégration ouvrent un incident critique. Un jeton d’accès émis pour une intégration que vous n’avez pas validée aussi.
Pour un compte modifié, la fiche de l’incident montre chaque champ changé, valeur avant, valeur après, à l’heure du relevé : e-mail, identifiant, rôle, état. Le mot de passe apparaît seulement comme « changé ». Un compte qui passe au rôle Administrators (marqué « rôle à privilèges »), une intégration qui gagne des ressources, ou plusieurs comptes supprimés d’un coup, sont signalés aussi. Tocsin24 dit ce qui a changé et quand il l’a vu ; il ne dit pas encore qui a fait le changement.
Critique Ouvert #245
Modifié — compte administrateur : cdurand
Sécurité · détecté le 22 octobre 2026 à 03:14 · 1 occurrence
Traiter l'incident
Compte concerné Relevé du 22 octobre 2026 à 03:14
Ce qui a changé sur le compte depuis l'ouverture de l'incident, valeur avant → valeur après, à l'heure du relevé.
- Compte
- Camille Durand (cdurand)
Mot de passe et adresse e-mail changés coup sur coup : séquence typique d'une prise de contrôle du compte.
| Information | Avant après | Relevé |
|---|---|---|
| Rôlerôle à privilèges | Service clientAdministrators | 22 oct. 03:14 |
| cdurand@example.comsupport-boutique@example.net | 22 oct. 03:14 | |
| Mot de passe | changé | 22 oct. 03:14 |
Chaque relevé et son diff : « Historique et preuves ».
Référentiel
Ce qui est connu et validé sur l'instance : domaines, comptes, intégrations, contenus, fichiers. Tout écart est à valider.
- Domaines 2
- Comptes administrateur 3
- Intégrations 2 1
- Tokens API 3
- Blocs CMS 18
- Pages CMS 9
- Configuration HTML 4
- Fichiers inattendus dans media 0
- Fichiers de code 68412
Intégrations
Dernier rapprochement : 23 octobre 2026 à 09:00. Cochez les éléments que vous reconnaissez comme légitimes. Tout élément « à valider » est un écart ; un acquittement est daté et signé, et peut être révoqué.
-
À valider
Export catalogue
- name
- Export catalogue
- contact@example.net
- status
- active
- endpoint
- identity_link_url
- setup_type
- manual
- resources
- ["Magento_Customer::manage","Magento_Sales::actions_view"]
Légitime Non légitime
-
Légitime
Connecteur ERP
Écrans de l’application avec des valeurs d’exemple.
Questions fréquentes
Comment voir les administrateurs d’une boutique Magento 2 ?
Dans l’administration, Système > Permissions > Tous les utilisateurs. La liste montre chaque compte, son e-mail, sa dernière connexion, son rôle et son état. Les rôles et leurs droits sont dans Système > Permissions > Rôles utilisateurs.
Faut-il supprimer ou désactiver un compte administrateur inconnu ?
Désactivez-le d’abord. Le compte ne peut plus servir, mais vous gardez sa trace : e-mail, rôle, date de création, dernière connexion. Supprimez-le une fois l’enquête terminée, comme le recommande Adobe.
Qu’est-ce qu’une intégration Magento ?
C’est un accès à l’API de la boutique donné à un outil externe, par exemple un ERP ou un logiciel de caisse. Elle a ses propres droits et des jetons d’accès qui restent valables jusqu’à leur révocation. Une intégration inconnue est aussi grave qu’un administrateur inconnu.
Un jeton d’API Magento expire-t-il ?
Cela dépend de son type. Un jeton d’intégration reste valable jusqu’à ce qu’il soit révoqué. Un jeton d’administrateur dure quatre heures par défaut, un jeton de client une heure.
Comment activer l’authentification à deux facteurs sur Magento 2 ?
Elle est prévue par défaut depuis Magento 2.4.0 : chaque administrateur la configure à sa première connexion. Si aucun code n’est demandé à la connexion, elle a été désactivée : demandez à la personne qui gère le serveur de réactiver le module Magento_TwoFactorAuth (bin/magento module:enable Magento_TwoFactorAuth, puis le déploiement habituel) et de retirer toute extension qui la contourne. Les méthodes se choisissent dans Magasins > Paramètres > Configuration > Sécurité > 2FA (Google Authenticator, Duo, Authy, clé U2F).
Sources
- Adobe : All Users (comptes administrateurs)
- Adobe : User Roles
- Adobe : Integrations
- Adobe : authentification par jeton de l'API
- Magento 2.4.4 : jetons émis en JWT (module JwtUserToken, di.xml et db_schema.xml)
- Adobe : sécurité de l'administration
- Adobe : authentification à deux facteurs
- Adobe : notes de version de Magento Open Source 2.4.0
- Adobe Commerce : Action Logs Report
- Adobe : Best practices to respond to a security incident
- Code source de Magento : schéma des tables User, Authorization, Security et Integration