Pour la réponse spécifique à votre question, voir /magento//a/72700/361
Contexte
Premièrement, il n'y a pas d'exploit spécifique - il y a actuellement une série d'articles faisant le tour qui ont mal lu et mal compris l'article source.
L' article original disait simplement (et je paraphrase),
Si un pirate était en mesure d'obtenir l' accès à vos fichiers Magento, ils peuvent capturer des informations de votre client
L'essentiel étant que le pirate informatique ait réellement besoin d'accéder à votre serveur et de modifier des fichiers.
Pas de panique ... ce n'est rien de spécifique à Magento
En termes de capture d'informations, il n'y a rien de spécifique à Magento que tout autre site / plateforme. Si un pirate a accès à vos fichiers, le jeu est effectivement terminé - il serait capable de capturer toutes les informations qu'il voulait.
Le mieux que vous puissiez faire (et, finalement, le minimum que vous devriez faire) est de maintenir une bonne politique de sécurité qui adhère aux normes de sécurité PCI de l'industrie du traitement des paiements, vous pouvez trouver la liste ici, https://www.pcisecuritystandards.org /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf
Durcissez votre magasin
Vous pouvez vraiment verrouiller les facettes de votre magasin qui réduisent considérablement la zone d'attaque de surface pour un pirate, ou au moins, ralentissent leur progression s'ils parviennent à entrer /
Verrouiller les autorisations
Vous pouvez restreindre les autorisations sur la racine du document pour autoriser uniquement l'écriture dans les répertoires essentiels ( /var
et /media
)
C'est ce que nous faisons par défaut sur MageStack ,
echo -n "Fixing ownership"
chown -R $SSH_USER:$WEB_GROUP $INSTALL_PATH && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH="/path/to/public_html"
chmod 750 $INSTALL_PATH
find $INSTALL_PATH -type d ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing file permissions"
find $INSTALL_PATH -type f ! -perm 740 -exec chmod 740 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing cron permissions"
find $INSTALL_PATH/*/cron.sh -type f ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var file permissions"
chmod -R 760 $INSTALL_PATH/*/media $INSTALL_PATH/*/var && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var directory permissions"
find $INSTALL_PATH/*/media $INSTALL_PATH/*/var -type d ! -perm 770 -exec chmod 770 {} \; && echo " ... OK" || echo " ... ERROR"
Ajustez INSTALL_PATH,SSH_USER,WEB_GROUP
en fonction. Ce qui est important, c'est que vous SSH_USER
n'êtes pas le même utilisateur que PHP utilise pour le processus de serveur Web, sinon, vous fourniriez essentiellement un accès complet en écriture au serveur Web (atténuant les avantages).
Verrouillez votre accès administrateur / téléchargeur
Sur MageStack, vous définiriez cela dans ___general/x.conf
set $magestack_protect_admin true;
set $magestack_protect_downloader true;
Sur Nginx, vous pouvez utiliser ceci,
location ~* ^/(index.php/)?admin{
satisfy any;
allow x.x.x.x;
auth_basic "Login";
auth_basic_user_file /microcloud/data/domains/x/domains/x/___general/.htpasswd;
deny all;
location ~* \.(php) {
include fastcgi_params;
}
try_files $uri $uri/ /admin/index.php ;
}
Il y a un peu plus de documentation sur la façon de préparer un .htpasswd
fichier ici
Envelopper le cron.sh
processus
J'ai rencontré d'autres fournisseurs d'hébergement utilisant des machines dédiées pour une utilisation cron / admin - ce qui signifie que la modification du cron.sh
fichier permettrait l'exécution de code à distance sur cron / admin sans jamais avoir besoin d'y accéder. Envelopper le processus avec le bon utilisateur dans une fakechroot peut aller un peu plus loin pour verrouiller le processus.
Il y a beaucoup trop de code pour moi, mais il y a un script ici . Il est spécifique à MageStack, mais pourrait être ajusté pour une utilisation sur des configurations de serveur moins élégantes :)
Audit, audit, audit
Linux est fantastique en termes de connexion et d'exploitation qui vous donnera un aperçu complet de ce que fait votre serveur.
Une fonctionnalité fantastique sur MageStack est l' outil d'audit qui enregistre tous les types d'accès et même les modifications de fichiers sur une base quotidienne. Vous pouvez trouver les journaux ici,
/microcloud/logs_ro
|-dh[0-9]+
|---access-YYYY-MM-DD.log.gz
|---backup-YYYY-MM-DD.log.gz
|---magescan-YYYY-MM-DD.log.gz
|---php-differential-YYYY-MM-DD.log.gz
|-acc[0-9]+
|---access-YYYY-MM-DD.log.gz
Si vous n'utilisez pas MageStack, vous pouvez répliquer une partie de cela avec votre propre fournisseur d'hébergement, ce qui rsync
est l'outil le plus simple pour le faire.
Par exemple. Si vos sauvegardes sont disponibles localement, vous pouvez procéder comme suit. Cela va exécuter à sec comparer deux répertoires et produire une liste de correctifs diff.
rsync -na /path/to/public_html/ /path/to/backup/public_html/ > change.log
grep -E '\.php$' change.log | while read FILE; do
diff -wp /path/to/public_html/$FILE /path/to/backup/public_html/$FILE >> php-differential.log
done
Les modifications PHP sont si peu fréquentes que vous pouvez planifier leur exécution quotidiennement (ou plusieurs fois par jour) et vous informer par e-mail en cas de changement de fichier PHP.
En résumé
- Utilisez le contrôle de version, il est plus facile de suivre les modifications
- Le simple fait d'avoir un certificat SSL ne suffit pas pour sécuriser votre site
- N'attendez pas d'être piraté pour considérer la sécurité
- Tout simplement parce que vous redirigez vers votre fournisseur de passerelle de paiement (par rapport à la capture d'informations) - cela ne signifie pas que vous pouvez éviter la conformité PCI, vous devez toujours vous conformer
- Soyez proactif, sûr et approfondi - vérifiez le code du module avant de l'installer, vérifiez les fichiers PHP quotidiennement, consultez les journaux, vérifiez l'accès FTP / SSH, changez régulièrement les mots de passe
Vos clients vous font une énorme confiance lorsqu'ils transmettent toutes leurs informations privées - et si vous trahissez cette confiance en n'exploitant pas une entreprise sécurisée, vous perdrez leur coutume et toute future coutume.
Les enquêtes médico-légales PCI sont incroyablement coûteuses, prennent beaucoup de temps et risquent en fin de compte de ne plus pouvoir reprendre les paiements par carte. Ne vous laissez jamais mettre dans cette position!
Obtenez patché
Récemment, une série de correctifs publiés par Magento ont corrigé des trous, y compris certains qui permettaient l'exécution de code à distance. Vous pouvez les récupérer ici, https://www.magentocommerce.com/products/downloads/magento/
Mais ces nouveaux articles ne font pas référence à un nouvel exploit, ils indiquent simplement comment les pirates exploitent les exploits historiques (ou tout autre vecteur d'attaque) pour pouvoir capturer les informations du titulaire de la carte.
Sources