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
J'ajoute une autre réponse juste parce que mon autre n'a pas réellement répondu à la question - et elle n'a certainement pas besoin d'être plus longue!
Comment puis-je vérifier si une image contient des informations CC
En fin de compte, vous ne pouvez pas. Il y a parfois des indicateurs qui le distinguent,
Par exemple.
Mais il peut être particulièrement difficile de digérer le contenu des fichiers binaires pour déterminer le contenu si le contenu n'est pas simplement en texte brut.
L'exploit le plus courant que j'ai vu n'implique pas d'écrire des données en texte brut dans un fichier avec une
.jpg|png|gif|etc
extension, ils impliquent généralement une sorte de codage / cryptage pour obscurcir les données (par exemple.base64
Oumcrypt
etc.). Ce qui signifie qu'un simple grep ne fonctionnera pas.Vous pourriez (et ce n'est en aucun cas exhaustif) ...
Rechercher des fichiers anormalement volumineux
Rechercher les fichiers correspondant à l'expression régulière CC
Vérifiez si les fichiers image sont valides
Ou
Comment puis-je vérifier les fichiers PHP dans mon installation pour voir s'ils ont été modifiés
La façon la plus simple de comparer vos fichiers d'installation serait de comparer le noyau à une copie propre. Cela ne tiendra pas compte de vos fichiers de thème, mais contribuera grandement à vérifier quelques milliers de fichiers dans votre installation.
Le processus est vraiment simple,
Par exemple. Pour Magento version 1.7.0.2
Gardez à l'esprit que les anciennes versions de Magento ne sont pas (ennuyeusement) corrigées, donc faire une différence de base entraînera des modifications. Pour éviter cela, appliquez les correctifs à la source propre fraîchement téléchargée, puis différez à nouveau après.
la source
Excellent article, mais malheureusement, toutes les choses ne sont pas égales.
Autorisations de fichiers
Lorsque l'hébergement mutualisé est devenu populaire, il a été jugé plus important que les gens ne soient pas autorisés à afficher le contenu des autres sur le même serveur. Jusqu'à l'avènement des prisons FreeBSD, cela signifiait:
Cela a permis la modification des fichiers HTML (alors) par le propriétaire du compte alors qu'en même temps, le processus du serveur Web et le propriétaire du compte n'avaient pas accès à d'autres sur la même machine.
Cela n'a pas beaucoup changé et les progiciels adaptés à l'hébergement partagé (CPanel, DirectAdmin, Plex) utilisent tous ces principes. Cela signifie que le point d'entrée principal (serveur Web et / ou interpréteur de script) peut écrire dans n'importe quel fichier du compte, rendant les autorisations de fichier inutiles.
Pas de CC à voler si vous ne l'avez pas
Informez votre fournisseur de paiement CC si les données CC sont réellement envoyées à votre serveur et si oui, si elles sont envoyées non cryptées non cryptées. JavaScript est assez puissant de nos jours et il existe des fournisseurs de services de paiement qui utilisent le moteur JavScript de votre client pour crypter les informations sensibles avant leur transmission au serveur. Bien qu'il soit possible pour ce rassembleur d'informations d'obtenir la clé de session ainsi que les données chiffrées (et donc de pouvoir les déchiffrer), cela est moins intéressant pour le rassembleur car les données collectées sont plus grandes et l'IA du bot beaucoup plus complexe .
Détection de modification
Plus de 15 ans d'Unix et ça me fait toujours un sourire nostalgique quand je vois des réincarnations de TripWire . Git c'est un bon outil pour cela aussi. En comparaison avec une bonne version connue, un peu moins, car elle ne prend pas en compte les ajouts et encore une fois un bon outil ici, car les modifications locales sont plus fréquentes que les installations vierges.
Le téléchargeur
Il est tout aussi facile de déplacer le téléchargeur en dehors de la racine du document que d'installer une forme d'authentification HTTP. Ensuite, ne le remettez que lorsque vous l'utilisez. Si ce n'est pas pratique, je préfère le verrouiller en fonction de l'adresse distante plutôt que d'une autre couche utilisateur / mot de passe, en particulier ceux qui envoient des mots de passe en texte brut.
WAF et alternatives
Un pare-feu d'application Web peut éviter de nombreux problèmes, déjà au stade de l'analyse d'une attaque. Malheureusement, ce sont des boîtes noires coûteuses, mais certaines alternatives existent:
Je pense que nous avons couvert beaucoup de choses, mais permettez-moi de terminer avec mon petpeeve:
Cesser d'utiliser FTP
Là. Je l'ai dit. Et c'est parti: https://wiki.filezilla-project.org/Howto
la source
Ce nouveau hack n'a rien de certain, Ben Marks a posté hier qu'il enquêtait sur le problème et il y a aussi cet article.
La meilleure approche que vous pouvez essayer est de vous connecter via SSH et d'effectuer une recherche dans tous les fichiers que vous avez pour une certaine chaîne, quelque chose comme
à partir de votre dossier racine Magento et si vous obtenez une correspondance, vérifiez manuellement le fichier pour voir ce qui se passe. Pareil avec d'autres chaînes comme "END PUBLIC KEY" par exemple.
la source