Mise à jour du 07/12/2015 : Installation du patch de sécurité Magento SUPEE-6788 + Activer les fonctionnalités du patch de sécurité
Mise à jour du 28/10/2015 : Téléchargez le patch de sécurité SUPEE-6788
Mise à jour du 22/10/2015 : Comment mettre à jour vos modules avant le patch de la semaine prochaine ?

Téléchargement du patch SUPEE-6788

téléchargement

Le patch de sécurité est dès à présent disponible. Sachez que les dernières versions de Magento Community (1.9.2.2) et de Magento Enterprise (1.14.2.2) possèdent déjà le patch (et aussi les patchs précédents). A vous de choisir entre l’upgrade de Magento (qui peut prendre beaucoup plus de temps), ou l’installation du patch uniquement. Pour télécharger le patch vous avez les choix suivants :
– Edition Community : rendez-vous sur la page des téléchargements et recherchez après le patch SUPEE-6788
– Edition Enterprise : connectez-vous à votre compte et choisissez l’onglet « Downloads ». Rendez-vous à la page « Magento Enterprise Edition > Support Patches » et cherchez le dossier « Security Patches – October 2015 ».
– Magento Partners : rendez-vous sur le portail des partenaires et choisissez « Technical Ressources ». Ensuite, choisissez « Download » dans le panneau Enterprise Edition. Naviguez sur la page « Magento Enterprise Edition > Patches & Support » et recherchez le dossier « Security Patches – October 2015 ».

N’oubliez pas d’appliquer les modifications expliquées ci-dessous avant d’activer le patch de sécurité !

Votre boutique est-elle infectée ?

Depuis quelques jours, des hackers attaquent massivement des boutiques Magento à l’aide de scripts. Cette attaque nommée GuruIncsite Infection est à prendre au sérieux et voici les étapes à suivre pour sécuriser votre boutique Magento.

– Rechercher si une attaque est decelée en BDD, si oui modifier les pages CMS en conséquence. Généralement le malware est injecté dans la table ‘core_config_data’ dans l’entrée ‘design/footer/absolute_footer’. N’hésitez pas à analyser toute votre BDD sur les termes de recherche suivants : “function LCWEHH(XHFER1){XHFER1=XHFER1” et “guruincsite”
Infos : http://support.hypernode.com/knowledgebase/how-to-fix-guruinc-infection

– Analyser la sécurité de votre boutique Magento sur MageReport. Ce n’est pas un outil officiel de Magento, mais il est reconnu et réputé par ses utilisateurs. Vous pouvez donc y aller sans risque et corriger de potentielles failles.
Infos : https://www.magereport.com

– Analyser les utilisateurs de l’admin pour vérifier qu’aucun compte suspect n’aie été créé (Systeme > Autorisations > Utilisateurs)

– S’assurer d’avoir appliqué les patchs de sécurité Magento sur vos boutiques
Infos : https://magento.com/security/patches

Installation du patch de sécurité Magento SUPEE-6788

Téléchargez la version qui vous intéresse, pour ma part ca sera le fichier PATCH_SUPEE-6788_EE_1.14.0.1_v1-2015-10-27-02-29-23.sh

Mettez-le à la racine de votre Magento. Et lancer la commande :

sudo chmod +x ./<NOM DU FICHIER>.sh
./<NOM DU FICHIER>.sh

Si comme moi vous avez un soucis avec le fichier .htaccess, vous aurez le message

checking file .htaccess
Hunk #1 FAILED at 207.

Pour pallier à ce problème, j’ai retiré le fichier .htaccess du patch (zone selectionnée dans le screen ci-dessous)

Capture du 2015-12-07 17:35:27

Une fois ceci effectué, le patch s’est lancé jusqu’au bout et j’ai eu droit au message :

Patch was applied/reverted successfully.

Notez que des fichiers ont été modifiés, mais il y’a aussi des fichiers qui ont été ajoutés. N’oubliez donc pas de les versionner lors de votre prochain commit dans votre gestionnaire de sources favori !

N’oublions pas d’appliquer la modification sur le htaccess que nous avons retirée !
Pour ma part j’ai ouvert mon htaccess et ajouté ceci à la fin de fichier :

###########################################
## Deny access to cron.php
    <Files cron.php>

############################################
## uncomment next lines to enable cron access with base HTTP authorization
## http://httpd.apache.org/docs/2.2/howto/auth.html
##
## Warning: .htpasswd file should be placed somewhere not accessible from the web.
## This is so that folks cannot download the password file.
## For example, if your documents are served out of /usr/local/apache/htdocs
## you might want to put the password file(s) in /usr/local/apache/.

        #AuthName "Cron auth"
        #AuthUserFile ../.htpasswd
        #AuthType basic
        #Require valid-user

############################################

        Order allow,deny
        Deny from all

    </Files>

Ensuite, accédez à votre site (après avoir vidé les caches si besoin), pour lancer les installers qui ont été ajoutés par le patch.

Préparez votre boutique au patch de sécurité SUPEE-6788

La mise à jour qui est fournie par Magento est désactivée par defaut. Cela veut dire que le correctif est présent, mais désactivé lors de l’installation. Il faudra l’activer une fois vos modifications terminées. Voici comment procéder pour se préparer à ce patch :

  • Si un module à des fonctionnalité de l’admin sous une URL qui n’est pas de l’admin, il faut le modifier (http://domain.com/cool_module deviendra http://domain.com/admin/cool_module)
  • Vous devez changer la déclaration des routeurs admin de vos modules :
    <admin>
    	<routers>
    		<custom_module>
    			<use>admin</use>
    			<args>
    				<module>custom_module</module>
    				<frontName>custom_module</frontName>
    			</args>
    		</custom_module>
    	</routers>
    </admin>

    Doit être modifié en

    <admin>
    	<routers>
    		<adminhtml>
    			<args>
    				<modules>
    					<Custom_Module after="Mage_Adminhtml">Custom_Module_Adminhtml</Custom_Module>
    				</modules>
    			</args>
    		</adminhtml>
    	</routers>
    </admin>

    Si vous avez modifié votre config.xml, vérifiez aussi votre adminhtml.xml :

    <action>MODULE/adminhtml_CONTROLLER/ACTION</action>

    Devient :

    <action>adminhtml/CONTROLLER/ACTION</action>

    Le nom du module est retiré de l’URL, donc si vous avez un nom de controller qui est utilisé dans un autre module, il faudra le renommer. Par exemple si j’ai un fichier « IndexController.php » ou « CategoryController.php » je vous recommande de le renommer. Attention à bien recetter cette partie et répercuter le changement de nom dans vos appels à ce controller.

    Parfois j’ai du changer des informations dans les layout admin de mes modules :

    <MODULE_adminhtml_CONTROLLER_ACTION>
    <...>
    </MODULE_adminhtml_CONTROLLER_ACTION>

    Devient :

    <adminhtml_CONTROLLER_ACTION>
    <...>
    </adminhtml_CONTROLLER_ACTION>
  • La méthode addFieldToFilter doit être utilisée autrement si elle utilise des expressions SQL, ou des caractères d’échappement.
    $collection->addFieldToFilter('`field`', array('eq' => 3));

    Doit être modifié en

    $collection->addFieldToFilter('field', array('eq' => 3));

    Et concernant les expressions SQL :

    $collection->addFieldToFilter('(field1 – field2)', array('eq' => 3))

    Doit être modifié en :

    $expression = '(field1 – field2)';
    $condition = $this->_getConditionSql($expression, array('eq' => 3));
    $this->_select->where($condition);
  • Tous les appels du type {{config path=”web/unsecure/base_url”}} ou {{block type=rss/order_new}} utilisés dans les pages CMS ou les emails doivent être listés. Vous pouvez rechercher les termes « {{config path= » et « {{block type= » dans les fichiers de votre projet, et aussi dans les tables ‘cms_block’, ‘cms_page’ et ‘core_email_template’. Magento fournit une liste blanche des appels autorisés. Ca sera à vous de compléter les entrées supplémentaires. Voici la liste de base :
    Variables:
    web/unsecure/base_url
    web/secure/base_url
    trans_email/ident_general/name
    trans_email/ident_sales/name
    trans_email/ident_sales/email
    trans_email/ident_custom1/name
    trans_email/ident_custom1/email
    trans_email/ident_custom2/name
    trans_email/ident_custom2/email
    general/store_information/name
    general/store_information/phone
    general/store_information/address
    
    Blocks:
    core/template
    catalog/product_new

    Si vous en listez d’autres dans vos pages CMS et vos emails, il faudra mettre à jour cette liste après installation du patch. Les tables à mettre a jour seront ‘permission_variable’ et ‘permission_block’

  • Il ne sera plus possible d’utiliser les options personnalisées des produits pour enregistrer des données comme un objet PHP
  • Si vous avez surchargé les templates customer/form/register.phtml et persistent/customer/form/register.phtml vous devez ajouter un form_key à votre formulaire
    <input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
  • Si vous avez surchargé le fichier layout/customer.xml l’action a changé. On passe de « customer_account_resetpassword » à « customer_account_changeforgotten ». Le template template/customer/form/resetforgottenpassword.phtml change également :
    <form action="<?php echo $this->getUrl('*/*/resetpasswordpost', array('_query' => array('id' => $this->getCustomerId(), 'token' => $this->getResetPasswordLinkToken()))); ?>" method="post" id="form-validate">

    Devient :

    <form action="<?php echo $this->getUrl('*/*/resetpasswordpost'); ?>" method="post" id="form-validate">
    

Les étapes pour installer et appliquer les modifications, sur un environnement de test ou de préproduction, peuvent-être les suivantes :

  • Installer le patch (qui ne sera pas actif)
  • Mettre en place les modifications citées ci-dessus
  • Activer le patch
  • Tester votre site
  • Publier en production le patch et les modifications

Activer les fonctionnalités du patch de sécurité

Pour activer la protection des routers de l’admin, il faut vous rendre dans :

Système > Configuration > Avancé > Administration > Sécurité

Vous trouverez le champ « Admin routing compatibility mode for extensions », mettez le à « Désactiver ».

Concernant les blocks et variables autorisés, vous les trouverez dans

Système > Autorisations > Blocks
Système > Autorisations > Variables

Informations officielles de Magento

Retrouvez ces informations dans le document PDF officiel de Magento

Ci dessous, le mail de Magento envoyé à tous les partenaires :

Updated Patch Will Be Available Next Week
Dear Magento Partner,

The security patch we intended to release today, SUPEE-6788, includes changes to admin routing for extensions and customizations. These changes provide protection from an important security risk, but they can also make an extension or customization inaccessible from the admin panel if it is not using proper routing.

Given this potential risk and the fact that the vulnerabilities addressed by the patch are not being actively exploited at this time, we have decided to postpone the security patch release until early next week and modify the patch so that the admin routing changes are turned off by default. This means that the patch will include the fix, but that it will be disabled when installed. The new release date and changes to the patch will give extension developers time to make updates to their code and will give merchants flexibility to turn on this part of the patch once their extensions and customizations have been updated to work with it.

You can learn more about how the security patch breaks backward compatibility and potential changes you may need to make to your code in this document. Once the patch is released, we recommend that you first test the code in a non-production environment with the admin routing changes turned on. If it works, deploy the fully-enabled patch to production.

If you discover issues with accessing extensions or customizations from the admin panel, deploy the patch with admin routing changes disabled. Then update your customizations and contact your extension providers to determine when new code will be available. We urge you to turn on the admin routing changes as soon as possible to help protect your clients from automated attacks, like the malware issue we recently experienced.

Thank you for your attention and support regarding this issue.

Best regards,
The Magento Team

Alerte hacker Magento (GuruIncsite Infection – Installation du Patch SUPEE-6788)
Share on FacebookTweet about this on TwitterShare on Google+Email this to someone
Taggé sur :                    

Laisser un commentaire

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

Nous utilisons des cookies afin de nous assurer de vous proposer la meilleure expérience sur ce site.
Ok