Pourquoi chaque boutique Magento réalisant plus de 1M£ a besoin de meilleurs journaux d'audit
Magento Open Source est livré avec un journal d'audit administratif minimal. Adobe Commerce ajoute davantage (journal des actions administratives, événements clients) mais reste en deçà de ce qu'une boutique réalisant plus de 1M£ de revenus annuels a réellement besoin. Parmi les plus de 500 boutiques que nous avons soutenues depuis 2019, des journaux d'audit faibles ont causé de réels dommages à trois reprises. Cet article est le plan de jeu que nous recommandons désormais à chaque client du marché intermédiaire.
Ce que Magento propose par défaut contre ce qui est nécessaire
Le journal administratif par défaut de Magento Open Source enregistre exactement deux choses : qui est connecté, et un journal d'activité de base si vous avez activé le paramètre obscur admin/security/use_activity_log. Aucun des deux ne capture les données nécessaires pour enquêter sur un incident après coup.
Adobe Commerce ajoute un journal des actions administratives qui enregistre quel utilisateur administrateur a cliqué sur quel bouton. Mieux. Il manque toujours les valeurs de données avant et après qui transforment une entrée de journal en informations judiciaires exploitables.
Une infrastructure d'audit fonctionnelle pour une boutique Magento réalisant plus de 1M£ enregistre, au minimum :
- Qui a effectué l'action (ID utilisateur admin, adresse IP, ID de session)
- Quelle action a été réalisée (type d'entité, ID d'entité, type d'opération)
- L'état avant le changement (valeurs complètes des champs modifiés)
- L'état après le changement (nouvelles valeurs complètes)
- L'horodatage (précision à la milliseconde pour que les événements soient reconstructibles dans l'ordre)
- Le contexte (URL admin où le changement a eu lieu, point de terminaison API si applicable)
Magento enregistre les deux premières. Une infrastructure d'audit fonctionnelle enregistre les six.
Trois scénarios réels où cela a compté
Anonymisés mais spécifiques. Chacun est un engagement réel que nous avons réalisé.
Scénario 1 : Changement de prix sans possibilité de retour en arrière. Un détaillant B2C britannique réalisant 4M£ par an a eu un administrateur junior qui a accidentellement appliqué une remise de 50 % à une catégorie de produits pendant la nuit. La catégorie comptait 800 SKU. Les commandes ont afflué. Au matin, la boutique avait pris 12 000 £ de commandes au mauvais prix. Le journal administratif par défaut de Magento leur a dit quel utilisateur admin s'était connecté, mais pas quels SKU avaient été modifiés ni quels étaient les prix précédents. Nous avons reconstruit l'état des prix à partir d'une sauvegarde de la base de données. L'enquête a coûté plus que les 12 000 £ de commandes.
Scénario 2 : Fuite de données clients d'un ancien employé. Une boutique B2B Magento a découvert après coup qu'un employé récemment parti avait exporté des listes de clients pendant deux mois avant de partir. Le journal administratif par défaut de Magento n'avait aucun enregistrement des exportations de listes de clients qui avaient été effectuées, par qui, ou combien d'enregistrements chaque exportation incluait. La boutique n'avait aucune trace de preuve pour la notification de violation du RGPD qu'elle a ensuite dû déposer. Des journaux d'audit fonctionnels auraient montré chaque événement d'exportation de clients, y compris le nombre de lignes et l'adresse IP.
Scénario 3 : Changement mystérieux de taux de taxe causant un échec d'audit. Le comptable d'un détaillant a signalé que la TVA avait été sous-facturée sur 800 commandes sur une période de trois mois. L'enquête a montré que le taux de TVA avait été modifié dans l'administration de 20 % à 18 % à un moment donné au cours du trimestre précédent. Le journal administratif par défaut de Magento n'avait aucun enregistrement de quand, par qui, ou pourquoi. La boutique a dû corriger manuellement 800 factures et re-déposer une déclaration trimestrielle de TVA. Avec un journal d'audit approprié, le changement aurait été visible en quelques heures.
La liste de contrôle des fonctionnalités du journal d'audit
Pour toute boutique Magento réalisant plus de 1M£ de revenus annuels, l'infrastructure du journal d'audit devrait prendre en charge :
- Différences au niveau de l'entité. Pas seulement "le produit X a été mis à jour" mais "le prix du produit X est passé de 49,00 £ à 24,50 £".
- Recherche et filtrage. Par utilisateur, par type d'entité, par plage de dates, par adresse IP. Les journaux qui ne peuvent pas être recherchés sont la preuve que vous n'avez rien collecté.
- Conservation configurable par type d'entité. Les exportations de données clients conservées pendant sept ans (enregistrements RGPD de traitement). Les modifications de commandes conservées pendant la durée de la fenêtre de remboursement de protection des consommateurs plus les exigences comptables. Les modifications d'attributs de produit conservées pendant au moins 90 jours.
- Résistance à la falsification. Les journaux ne peuvent pas être supprimés par les utilisateurs administrateurs, seulement par les super-utilisateurs, et les événements de suppression de journaux de super-utilisateurs sont eux-mêmes enregistrés.
- Export vers des systèmes externes. SIEM, surveillance des événements de sécurité, ou même simplement des buckets S3 pour le stockage à froid. Les journaux qui ne vivent que dans la base de données Magento sont vulnérables aux mêmes pannes et intrusions que les journaux aideraient à enquêter.
Le par défaut de Magento ne propose aucun de ces éléments. Adobe Commerce en propose deux.
Options de construction contre achat
Trois voies, selon la taille de la boutique et la capacité d'ingénierie.
Achat d'extension. Plusieurs fournisseurs d'extensions Magento proposent des modules de journal d'audit. Amasty, Aitoc et d'autres ont des offres allant de 200 £ à 800 £ à vie ou par abonnement. La couverture varie. Les plus solides d'entre eux gèrent les différences au niveau de l'entité et la recherche. Aucun que nous avons évalué ne gère proprement l'exportation SIEM externe.
Intégration SaaS. Datadog, Splunk et plusieurs services de surveillance de la sécurité ont des intégrations Magento qui capturent les événements administratifs vers un stockage externe. Le côté Magento est généralement un module d'observateur léger transférant des événements. Le coût d'abonnement SaaS est généralement de 100 £ à 600 £ par mois selon le volume d'événements.
Construction sur mesure. Un module de journal d'audit personnalisé représente environ deux semaines de travail d'ingénierie pour une boutique de marché intermédiaire. Couvre les différences au niveau de l'entité, la recherche, la conservation configurable, et un webhook pour l'exportation SIEM externe. Nous avons expédié ce modèle quatre fois. Le coût d'ingénierie était de 6k £ à 15k £ selon la complexité de la boutique. N'entraîne aucun frais récurrents.
Pour la plupart des boutiques, nous recommandons la construction sur mesure. Le coût est comparable à deux ans d'abonnement SaaS, et le code résultant est à vous d'évoluer à mesure que vos exigences d'audit changent avec la croissance.
Le plan DIY
Si vous construisez le journal d'audit en interne, l'architecture minimale est :
- Une table de base de données
etechflow_audit_logavec des colonnes pour (event_id, timestamp, user_id, user_ip, entity_type, entity_id, action, prior_state JSONB, new_state JSONB, context). - Une couche d'observateur ou de plugin qui se connecte aux événements de sauvegarde de Magento pour les types d'entités qui vous intéressent (produits, clients, commandes, taux de taxe, configuration de la boutique).
- Un sérialiseur qui capture l'état de l'entité avant et après le changement, les diffère, et écrit la ligne d'audit.
- Un travailleur d'arrière-plan de conservation qui élimine les lignes d'audit plus anciennes que la conservation configurée par type d'entité.
- Un fanout webhook optionnel qui transfère les nouveaux événements d'audit vers votre SIEM ou votre stockage de journaux externe en temps réel.
- Une interface utilisateur admin pour rechercher et examiner les journaux, avec des permissions régulant qui peut voir quoi.
Prévoyez deux semaines d'ingénierie. Testez soigneusement la surcharge de l'observateur ; des observateurs d'audit mal écrits peuvent ajouter 50 à 200 millisecondes aux opérations de sauvegarde administratives.
Quand commencer
Si votre boutique Magento dépasse 500K £ de revenus annuels, installez le journal d'audit ce trimestre. Si vous dépassez 1M £, vous auriez déjà dû l'expédier. Le coût de l'erreur n'est pas théorique. Les trois scénarios ci-dessus se sont tous produits dans des boutiques qui pensaient que leur journalisation par défaut de Magento était suffisante.
Liens connexes
- Guide des coûts de développement Magento couvre le coût du travail d'ingénierie personnalisé Magento comme celui-ci.
- Politique de sécurité eTechFlow couvre notre propre position sur l'audit et la journalisation pour le marché lui-même.