Aller au contenu principal

Repérer les fichiers modifiés après un piratage de boutique PrestaShop

Après l’alerte de sécurité publiée fin juillet par PrestaShop, beaucoup de marchands se demandent si leur boutique a été touchée. Première règle : ne rien effacer avant d’avoir fait une copie de l’état actuel, fichiers et base. Ensuite, trois approches complémentaires, du plus rapide au plus sûr.

Terminal
# 1. Fichiers de code modifiés depuis quinze jours, hors cache
find /var/www/boutique -type f \( -name '*.php' -o -name '*.js' -o -name '*.tpl' \) \
    -mtime -15 -not -path '*/var/cache/*' \
    -printf '%TY-%Tm-%Td %TH:%TM  %p\n' | sort

# 2. Motifs typiques de code injecté
grep -rlE "eval\(base64_decode|gzinflate\(|str_rot13\(|assert\(\\\$_" /var/www/boutique --include=*.php
grep -rlE "atob\(|String\.fromCharCode" /var/www/boutique/themes /var/www/boutique/modules --include=*.js

Les dates de modification peuvent être falsifiées par un attaquant soigneux : la comparaison avec l’archive officielle de la version exacte installée est la seule méthode fiable pour les fichiers du cœur. Le dossier d’administration renommé et le dossier d’installation supprimé apparaîtront comme des différences normales. Ce qui compte, ce sont les fichiers du cœur modifiés et les fichiers présents dans la boutique qui n’existent pas dans l’archive. Pour les modules, même méthode avec l’archive de chaque module.

Terminal
# 3. Comparaison avec l'archive officielle de la même version
mkdir -p /tmp/ps-officiel && cd /tmp/ps-officiel
wget https://github.com/PrestaShop/PrestaShop/releases/download/1.7.8.6/prestashop_1.7.8.6.zip
unzip -q prestashop_1.7.8.6.zip && unzip -q prestashop.zip -d source

diff -rq source /var/www/boutique \
  | grep -vE 'var/cache|/img/|/upload/|/download/|/translations/|app/config/parameters'

Sources

  1. PrestaShop, alerte de sécurité du 22 juillet 2022 build.prestashop-project.org
  2. PrestaShop, archives des versions publiées github.com