Cosmicsting : Cyberattaque sur Adobe Commerce et Magento

Introduction :

 

Dans le domaine de la cybersÃĐcuritÃĐ en pleine mutation, une nouvelle menace sÃĐrieuse s’attaque aux boutiques Adobe Commerce. AppelÃĐe ÂŦ CosmicSting Âŧ, cette attaque sophistiquÃĐe prÃĐsente un danger considÃĐrable et pourrait toucher jusqu’à 75 % des boutiques Adobe Commerce. CosmicSting tire parti d’une faille critique dans les plateformes Adobe Commerce et Magento, permettant aux cybercriminels de lire des donnÃĐes  sensibles comme les mots de passe et d’injecter du code malveillant pour compromettre la sÃĐcuritÃĐ des donnÃĐes des clients. Ce blog vous propose de dÃĐcouvrir en dÃĐtail le fonctionnement de CosmicSting ainsi que les actions à mettre en place pour protÃĐger efficacement votre commerce.

CosmicSting (CVE-2024-34102) : Une cybermenace exploitant les failles critiques d’Adobe Commerce et Magento.

CVE-2024-34102 est une faille de sÃĐcuritÃĐ sÃĐvÃĻre rÃĐsultant d’une mauvaise gestion de la dÃĐsÃĐrialisation imbriquÃĐe dans Adobe Commerce et Magento. Cette vulnÃĐrabilitÃĐ permet aux attaquants d’exploiter les entitÃĐs externes XML (XXE) pendant le processus de dÃĐsÃĐrialisation, ce qui peut potentiellement conduire à l’exÃĐcution de code à distance. En rÃĐsumÃĐ, les attaquants peuvent crÃĐer des charges JSON malveillantes qui, lorsqu’elles sont dÃĐsÃĐrialisÃĐes par l’application, instancient des objets avec des propriÃĐtÃĐs ou des comportements inattendus, entraÃŪnant divers risques de sÃĐcuritÃĐ.

L’exploitation de cette vulnÃĐrabilitÃĐ permet aux attaquants d’obtenir un accÃĻs administratif non autorisÃĐ aux API REST, GraphQL ou SOAP, ce qui peut conduire à un vol de donnÃĐes, des perturbations de service et une compromission complÃĻte des systÃĻmes affectÃĐs. Cette vulnÃĐrabilitÃĐ pose un risque significatif en raison de sa capacitÃĐ Ã  exfiltrer des fichiers sensibles, tels que app/etc/env.php, contenant des clÃĐs cryptographiques utilisÃĐes pour l’authentification. Les attaquants peuvent exploiter cette faille pour forger des jetons administratifs et manipuler les API de Magento en tant qu’utilisateurs privilÃĐgiÃĐs.

 

De plus, la CVE-2024-34102 peut Être associÃĐe à d’autres vulnÃĐrabilitÃĐs, telles que l’exploitation des chaÃŪnes de filtres PHP (CVE-2024-2961), entraÃŪnant l’exÃĐcution de code à distance (RCE). Les implications plus larges des vulnÃĐrabilitÃĐs d’entitÃĐ externe XML (XXE) permettent aux attaquants de rÃĐcupÃĐrer et de manipuler des donnÃĐes provenant de sources externes, exacerbant ainsi l’impact potentiel sur les systÃĻmes compromis.

Impact

L’impact de la CVE-2024-34102 (CosmicSting) sur Adobe Commerce et Magento est sÃĐvÃĻre, affectant plus de 140 000 instances de Magento à l’ÃĐchelle mondiale fin 2023. De plus, selon Sansec, la vulnÃĐrabilitÃĐ pourrait toucher environ 75 % des boutiques Adobe Commerce.

Versions affectÃĐes

Plateformes :

  • Toutes les plateformes sont affectÃĐes pour Adobe Commerce et Magento Open Source.

  • Installation manuelle du plugin Webhooks pour Adobe Commerce.

  • Versions :

  • Adobe Commerce : versions antÃĐrieures à : 2.4.7 ; 2.4.6-p5 ; 2.4.5-p7 ; 2.4.4-p8 ; 2.4.3-ext-7 ; 2.4.2-ext-7

  • Magento Open Source : versions antÃĐrieures à : 2.4.7 ; 2.4.6-p5 ; 2.4.5-p7 ; 2.4.4-p8

  • Plugin Webhooks d’Adobe Commerce : versions de 1.2.0 à 1.4.0

Chronologie

DÃĐcembre 2023

  • 20 dÃĐcembre 2023 : Le rapport de vulnÃĐrabilitÃĐ est soumis à HackerOne par Sergey Temnikov.

Janvier 2024

  • 8 janvier 2024 : HackerOne soumet le rapport à Adobe.

Juin 2024

  • 11 juin : Avis d’Adobe concernant Adobe Commerce/Magento au sujet d’une vulnÃĐrabilitÃĐ sÃĐvÃĻre d’injection d’entitÃĐ XML prÃĐ-authentification (CVE-2024-34102), ÃĐvaluÃĐe par Adobe avec un score CVSS de 9.8. La CVE-2024-34102 est donc publiÃĐe.

  • 18 juin : Sansec note que 75 % des magasins n’ont toujours pas appliquÃĐ de correctifs et met en garde contre une exploitation massive de CosmicSting.

  • 23 juin : Sergey Temnikov (spacewasp), le dÃĐcouvreur du problÃĻme, alerte sur la gravitÃĐ de CosmicSting. Il souligne que des tiers peuvent obtenir un accÃĻs administrateur à l’API sans avoir besoin d’une version Linux vulnÃĐrable (liÃĐe au problÃĻme iconv). Il recommande un correctif d’urgence amÃĐliorÃĐ.

  • 23 juin : Sansec dÃĐcouvre les premiÃĻres attaques CosmicSting en cours (provenant de l’adresse IP 185.175.225.116).

  • 26 juin : Une analyse approfondie est publiÃĐe par AssetNote.

  • 26 juin : AssetNote publie des dÃĐtails sur les attaques et les premiers kits d’exploitation apparaissent sur GitHub.

  • 26 juin : Adobe augmente la note de sÃĐvÃĐritÃĐ de 3 à 2.

  • 27 juin : Adobe publie un correctif autonome officiel pour CosmicSting qui peut Être appliquÃĐ aux installations sans nÃĐcessiter une mise à niveau complÃĻte.

  • 27 juin : Hypernode rapporte avoir observÃĐ les premiÃĻres instances de scans et d’abus effectif de CosmicSting dans la nature. Ils incitent toutes les parties concernÃĐes à patcher immÃĐdiatement leurs systÃĻmes.

Juillet 2024

  • 8 juillet : Adobe augmente la note de sÃĐvÃĐritÃĐ de 2 à 1 (critique).

  • 12 juillet : Sansec observe des hacks massifs de magasins Adobe Commerce de haut profil. Des marques connues figurent parmi les victimes.

AoÃŧt 2024

  • 21 aoÃŧt : Adobe publie le correctif AC-12485 pour invalider les anciennes clÃĐs de cryptage. Cela est vital, car sinon, les attaquants continueront à modifier vos blocs CMS.

  • 27 aoÃŧt : Les attaquants combinent CosmicSting avec le bug CNEXT, leur permettant d’exÃĐcuter du code sur votre serveur (ÃĐgalement connu sous le nom d’exÃĐcution de code à distance). Il s’agit d’une escalade sÃĐrieuse, car les attaquants peuvent dÃĐsormais installer des portes dÃĐrobÃĐes pour dissimuler leur prÃĐsence et rester persistants sur vos serveurs.

Septembre 2024

  • 4 septembre : Le magasin Cisco est piratÃĐ Ã  l’aide de l’attaque CosmicSting.

Octobre 2024

  • 14 octobre : Le groupe Peschanki compromet plus de 2000 magasins en quelques heures, lors du plus grand piratage automatisÃĐ Ã  ce jour.

  • 21 octobre : Une nouvelle campagne de grande envergure est lancÃĐe par le groupe Laski, infectant plus de 1200 magasins.

Mesures Critiques pour SÃĐcuriser votre Installation Adobe Commerce

Pour protÃĐger votre systÃĻme contre les attaques potentielles, suivez ces ÃĐtapes essentielles :

ProtÃĐger votre ClÃĐ de Chiffrement

  • Mise à jour : Installez la derniÃĻre version d’Adobe Commerce pour empÊcher les attaquants de voler votre clÃĐ cryptographique (clÃĐ de chiffrement).

  • Rotation de ClÃĐ : ConsidÃĐrez que votre clÃĐ actuelle a dÃĐjà ÃĐtÃĐ compromise. GÃĐnÃĐrez une nouvelle clÃĐ et invalidez l’ancienne pour empÊcher tout usage abusif.

Recommandation : Mettre à jour vers la derniÃĻre version d’Adobe Commerce est la solution la plus efficace. Cependant, notez que cette mise à jour inclut des changements fonctionnels, comme l’application stricte d’une politique de sÃĐcuritÃĐ de contenu (CSP), ce qui pourrait affecter vos processus de commande.

Solution Alternative : Patch IsolÃĐ

  • Si la mise à jour n’est pas possible, appliquez le patch isolÃĐ fourni par Adobe pour rÃĐduire les vulnÃĐrabilitÃĐs.

Rotation de la ClÃĐ aprÃĻs la Mise à jour

  • AprÃĻs la mise à jour, effectuez une rotation de vos clÃĐs de chiffrement comme indiquÃĐ par Adobe. Notez que les donnÃĐes chiffrÃĐes avec l’ancienne clÃĐ ne sont pas automatiquement rechiffrÃĐes avec la nouvelle. Pour automatiser ce processus, utilisez le module de rotation de clÃĐ fourni par Luke Rodgers chez GENE Commerce — fortement recommandÃĐ.

  • Consultez ÃĐgalement votre documentation sur la rotation des clÃĐs pour des instructions spÃĐcifiques sur la maniÃĻre de mettre en œuvre cette rotation dans votre systÃĻme actuel. Cette ÃĐtape est cruciale pour assurer la sÃĐcuritÃĐ et minimiser les risques liÃĐs à une clÃĐ compromise.

Solution d'Urgence (à Court Terme)

Si des actions immÃĐdiates sont nÃĐcessaires, vous pouvez temporairement bloquer l’accÃĻs à l’API CMS Block :

Bloquer les RequÊtes à l’API CMS Block

Ajoutez le code suivant en haut de  app/bootstrap.php pour empÊcher l’accÃĻs à l’API :

if (preg_match(‘/\/rest\/.*\/cmsBlock/m’, $_SERVER[‘REQUEST_URI’])) {
    http_response_code(503);
    echo “Service Unavailable”;
    exit();
}

Attention : Cette mesure est provisoire et ne garantit pas une sÃĐcuritÃĐ totale pour votre systÃĻme. Les attaquants peuvent toujours :

  • AccÃĐder à d’autres fichiers sur votre serveur, et ainsi continuer d’obtenir vos nouvelles clÃĐs de chiffrement.

  • Exploiter d’autres points de terminaison REST pour extraire des donnÃĐes clients sensibles (par exemple, via l’endpoint des commandes).

  • Effectuer une exÃĐcution de code à distance en combinant cette vulnÃĐrabilitÃĐ avec d’autres failles.

Read More

CosmicSting stratÃĐgies et dÃĐfenses

Introduction

La montÃĐe en puissance des cybermenaces, comme l’attaque CosmicSting, souligne l’importance d’une gestion proactive de la sÃĐcuritÃĐ des systÃĻmes. Cette vulnÃĐrabilitÃĐ, qui cible principalement les boutiques Adobe Commerce et Magento, expose les donnÃĐes sensibles à des risques considÃĐrables. 

Pour contrer ces menaces, il est crucial d’adopter des mesures prÃĐventives, notamment la rotation rÃĐguliÃĻre des clÃĐs de chiffrement. Dans cet article, nous examinerons l’importance de cette pratique et vous fournirons des conseils sur la maniÃĻre de l’appliquer efficacement dans votre environnement. En vous engageant dans des stratÃĐgies de dÃĐfense robustes, vous pourrez mieux protÃĐger vos ressources et renforcer la rÃĐsilience de votre infrastructure face aux menaces ÃĐmergentes.

1.Mise à Jour Essentielle : Appliquer le Dernier Patch Adobe

Il est impÃĐratif de mettre à jour votre systÃĻme vers la derniÃĻre version du correctif fournie par Adobe  avant d’effectuer la rotation des clÃĐs. Cette ÃĐtape garantit que toutes les vulnÃĐrabilitÃĐs connues sont corrigÃĐes, offrant ainsi une base sÃĐcurisÃĐe pour la gestion de vos clÃĐs cryptographiques. Ne nÃĐgligez pas cette mise à jour cruciale, car elle joue un rÃīle essentiel dans la protection de vos donnÃĐes sensibles contre les menaces potentielles..

1.Pourquoi la Rotation de la ClÃĐ est Essentielle

MÊme si votre boutique est sÃĐcurisÃĐe, il existe toujours un risque qu’un jeton JWT (JSON Web Token) ait ÃĐtÃĐ ÃĐmis et demeure valide. Pour cette raison, il est fortement recommandÃĐ aux marchands de procÃĐder à une rotation de la clÃĐ de chiffrement pour renforcer la sÃĐcuritÃĐ. Cependant, il est important de noter que le processus de rotation de clÃĐ de Magento ne dÃĐsactive pas automatiquement l’ancienne clÃĐ, ce qui peut prÃĐsenter des vulnÃĐrabilitÃĐs rÃĐsiduelles. Le module gene encryption module peut simplifier cette procÃĐdure en invalidant efficacement les anciennes clÃĐs tout en rÃĐgÃĐnÃĐrant les valeurs chiffrÃĐes avec la nouvelle clÃĐ. Cela garantit une sÃĐcuritÃĐ complÃĻte pour votre boutique en ligne et protÃĻge les donnÃĐes sensibles des clients.

 

Voici les ÃĐtapes gÃĐnÃĐrales à suivre pour prÃĐvenir les attaques liÃĐes à CosmicSting. Lisez attentivement chaque ÃĐtape pour comprendre les fonctionnalitÃĐs de ce module ainsi que les points de vulnÃĐrabilitÃĐ potentiels.

1. Identification des Tables Utilisant la ClÃĐ de Chiffrement :

Commencez par effectuer une sauvegarde complÃĻte de la base de donnÃĐes, que nous utiliserons pour dÃĐterminer quelles tables contiennent des valeurs chiffrÃĐes. Si une sauvegarde de production n’est pas rÃĐalisable, vous pouvez recourir aux environnements de staging ou de QA. Une fois la sauvegarde effectuÃĐe, utilisez la commande suivante pour extraire les donnÃĐes :

 

mysqldump –databases nom_de_la_base > chemin/vers/backup.sql

 

Une fois la sauvegarde effectuÃĐe, vous pourrez repÃĐrer les tables contenant des valeurs chiffrÃĐes. Pour ce faire, utilisez grep pour rechercher les tables en analysant le fichier de sauvegarde :

 

grep -P “VALUES\s*\(.*\d:\d:…*'” chemin/vers/backup.sql | awk ‘{print $3}’ | sort | uniq -c

 

Cela vous fournira une liste des tables contenant des valeurs chiffrÃĐes, lesquelles devront Être rÃĐgÃĐnÃĐrÃĐes avec la nouvelle clÃĐ .

 

2.Installation De Module gene encryption:

installez le module Gene Encryption Key Manager disponible sur GitHub. Ce module offre des fonctionnalitÃĐs avancÃĐes pour gÃĐrer efficacement les clÃĐs de chiffrement.

Lien vers le module : Gene Encryption Key Manager sur GitHub 

 

composer require gene/module-encryption-key-manager
bin/magento setup:upgrade

3.GÃĐnÃĐrer une nouvelle clÃĐ et empÊcher l'utilisation des anciennes pour les JWT

C’est la prioritÃĐ absolue pour chaque marchand ! Installez ce module et gÃĐnÃĐrez une nouvelle clÃĐ en utilisant la commande suivante :

 

php bin/magento gene:encryption-key-manager:generate [–key=MA_NOUVELLE_CLE_DE_32_CARACTERES] [–skip-saved-credit-cards]  —force

 

Cette action forcera  le JWT factory  à utiliser la nouvelle clÃĐ. D’autres parties de l’application peuvent encore recourir aux anciennes clÃĐs, mais cette ÃĐtape est essentielle pour contrer les attaques de CosmicSting.

Utilisez l’option –key pour dÃĐfinir manuellement la nouvelle clÃĐ Ã  utiliser lors de la rÃĐinitialisation du chiffrement. Si aucune clÃĐ personnalisÃĐe n’est fournie, une nouvelle clÃĐ sera automatiquement gÃĐnÃĐrÃĐe.

 

L’option  –skip-saved-credit-cards permet de ne pas rÃĐ-encrypter les donnÃĐes de cc_number_enc dans la table sales_order_payment. Cette table peut Être volumineuse, et de nombreuses boutiques n’y conservent aucune donnÃĐe.

4.Correction des Valeurs de Configuration Manquantes:

Ces commandes s’exÃĐcutent en mode dry run par dÃĐfaut, ce qui vous permet d’effectuer un premier passage pour visualiser les modifications qui seront apportÃĐes. Une fois que vous Êtes satisfait des rÃĐsultats, vous pouvez exÃĐcuter la commande avec l’option –force  pour appliquer les changements.

Pour rÃĐsoudre les valeurs de configuration manquantes, exÃĐcutez la commande suivante :

php bin/magento gene:encryption-key-manager:reencrypt-unhandled-core-config-data 

 

Cela rÃĐencryptera les donnÃĐes de configuration principales qui n’ont pas ÃĐtÃĐ prises en charge. Une fois que cette opÃĐration est terminÃĐe, vous pouvez relancer la commande pour vÃĐrifier que tout a ÃĐtÃĐ correctement mis à jour :

 

php bin/magento gene:encryption-key-manager:reencrypt-unhandled-core-config-data

5.Correction des DonnÃĐes 2FA

Pour corriger les donnÃĐes liÃĐes à l’authentification à deux facteurs (2FA), exÃĐcutez la commande suivante :

php bin/magento gene:encryption-key-manager:reencrypt-tfa-data

 

AprÃĻs avoir effectuÃĐ cette opÃĐration, relancez la commande pour vÃĐrifier que tout a ÃĐtÃĐ correctement mis à jour :

 

php bin/magento gene:encryption-key-manager:reencrypt-tfa-data

6.Correction des Colonnes SupplÃĐmentaires IdentifiÃĐes

Il est ÃĐgalement important de rÃĐencrypter toutes les autres colonnes identifiÃĐes  avec la cmd Grep . Assurez-vous de vÃĐrifier chaque table et colonne. Soyez vigilant, en particulier avec les colonnes entity_id, row_id  et id.

Voici la commande à exÃĐcuter pour encrypter les colonnes supplÃĐmentaires  :

php bin/magento gene:encryption-key-manager:reencrypt-column entity_name entity_id column_name 

Exemples: 

php bin/magento gene:encryption-key-manager:reencrypt-column customer_entity entity_id rp_token

 

php bin/magento gene:encryption-key-manager:reencrypt-column oauth_token entity_id secret

 

php bin/magento gene:encryption-key-manager:reencrypt-column oauth_consumer entity_id secret

 

AprÃĻs chaque commande, assurez-vous de vÃĐrifier que les valeurs ont ÃĐtÃĐ correctement mises à jour dans la base de donnÃĐes. 

7.Vider le Cache

Pour vider le cache de votre installation Magento, exÃĐcutez la commande suivante :

php bin/magento cache:flush

 

À ce stade, toutes vos donnÃĐes devraient avoir ÃĐtÃĐ migrÃĐes vers votre nouvelle clÃĐ de chiffrement. Pour vous aider à vÃĐrifier cela, vous pouvez effectuer les opÃĐrations suivantes :

Configurer les ParamÃĻtres de Journalisation:

Activez la journalisation des dÃĐcryptages pour vÃĐrifier que rien n’utilise encore l’ancienne clÃĐ :

php bin/magento config:set –lock-env dev/debug/gene_encryption_manager_only_log_old_decrypts 1

 

php bin/magento config:set –lock-env dev/debug/gene_encryption_manager_enable_decrypt_logging 1

 

Surveillez vos journaux à la recherche de “gene encryption manager” pour vÃĐrifier que rien n’utilise encore l’ancienne clÃĐ.

8.Invalidation de l'Ancienne ClÃĐ

Une fois que vous Êtes satisfait des vÃĐrifications, vous pouvez invalider votre ancienne clÃĐ avec la commande suivante :

php bin/magento gene:encryption-key-manager:invalidate


Avant l’invalidation env.php

AprÃĻs l’invalidation : 

Note:

 

Notez que Magento\Catalog\Model\View\Asset\Image continuera à utiliser la clÃĐ Ã  l’index 0 dans la section crypt/invalidated_key.

9.Tests à Effectuer

Assurez-vous de bien tester les ÃĐlÃĐments suivants :

  • Toutes les intÃĐgrations qui utilisent les API de Magento.

  • Les mÃĐdias doivent toujours s’afficher avec le mÊme rÃĐpertoire de hachage. S’il se rÃĐgÃĐnÃĻre, cela pourrait occuper un espace disque considÃĐrable et augmenter le temps d’exÃĐcution.

  • Connexion/DÃĐconnexion des utilisateurs administrateurs.

  • Connexion/DÃĐconnexion des clients.

En effectuant ces tests, vous vous assurez que tout fonctionne correctement aprÃĻs la migration vers la nouvelle clÃĐ de chiffrement.

 

Read More