Alerte de connexion à l’administration de WordPressPour augmenter la sécurité de son site internet WordPress, nous avons choisi d’être averti en cas de logging d’un administrateur sur le backoffice de WordPress.
Recevoir une notification si un administrateur se connecte sur votre site WordPress vous permettra de réagir rapidement en cas d’attaque !
Alerte de connexion sur l’admin WordPress
Le plugin WordPress que nous utilisons s’appelle tout simplement “Email notification on admin login“. Il fonctionne à merveille, voir la capture d’écran en haut de l’article.
Vous n’avez qu’à l’installer et il fait tout tout seul !
Configurer le plugin d’alerte de connexion à l’administration de WordPress
Le plugin très simple comporte deux fichiers situés dans :
Désactiver WordPress REST API est la chose à faire pour éviter les problèmes de sécurité à venir sur WordPress > 4.6. En effet les dernières failles WordPress concernent cette API ouverte.
WordPress a choisi de mettre en ligne sa WP REST API et son protocole XML RPC depuis la version 3.5. Ils servent à des applications de communiquer avec votre site internet WordPress, le célèbre plugin JetPack s’en sert.
Certaines thèmes (récents) s’en servent aussi. Alors une fois l’API REST de WordPress désactivée, pensez à vérifiez que votre site est bien fonctionnel !
Pourquoi autoriser la WP REST API est dangereux ?
Dans les architecture logiciel actuelles (c’est la mode), les développeurs codent avec un côté front (ce que l’utilisateur voit) et un côté back (ce avec quoi l’utilisateur interagi (base de données, articles…)). Une API REST sert justement à cette architecture, on propose au front une interface pour communiquer avec le back.
Jus-qu’il y a quelques années on utilisait tout sur le même projet pour les projets web, cette nouvelle approche apporte une grande flexibilité, mais un peu moins de sécurité…
Désactiver WP REST API sur son site internet WordPress
Un simple plugin pour désactiver l’API WordPress
Si vous ne souhaitez désactiver que l’API REST de WordPress, cette option est toute trouvée pour vous.
Attention, car ce plugin ne désactive que le REST API WP pour les utilisateurs anonymes, si un bot s’est inscrit sur votre site internet les failles seront toujours exploitables.
Récupérer un site internet WordPress piraté est tout à fait possible mais pas toujours facile. Si votre site internet WordPress a été piraté, de deux choses l’une :
Vous pourrez sans doute le récupérer, avec plus ou moins d’effort.
Sautons l’étape 1 (il est déjà trop tard), et voyons directement comment récupérer un site internet WordPress piraté.
Nous avons déjà récupéré plusieurs sites internet WordPress piratés avec ce guide 100% fonctionnel. Mis à jour régulièrement, notre équipe continue de l’utiliser.
Nous avons décidés de le rendre public pour aider les victimes de piratage à restaurer un site internet WordPress piraté, cependant un minimum de connaissances est nécessaire, contactez-nous en cas de besoin.
Procédez étape par étape car le contenu de ce guide est assez exhaustif, (+ 1.100 mots) posez vos questions en commentaire !
Guide pour récupérer un site internet WordPress piraté
0 – Les précautions à prendre
Mettez votre site internet en mode maintenance. Pour ce faire, créez un fichier .Maintenance vide à la racine de votre site internet. Cependant le mieux est de complètement désactiver votre hébergement si votre hébergeur vous le permet (chez Cubis cette option se trouve dans votre panel de configuration).
Si vous utilisez le même mot de passe sur d’autres outils / comptes, changez lesdits mots de passe, car les pirates peuvent les récupérer. Avertissez également vos collaborateurs…
Sachez que votre mot de passe de connexion à la base de données MySQL est sûrement récupéré par les hackeurs… Alors changez-le.
Si vous utilisiez un mot de passe Root, votre base de données entière est peut-être piratée… Changez donc tous les mots de passe et pensez à faire des sauvegardes.
1 – Sauvegarder votre site internet
Si ce n’est pas déjà fait par vous ou votre hébergeur, sauvegardez immédiatement votre site internet (fichier & base de données).
Si vous avez accès à l’administration de WordPress, exportez le contenu de votre site depuis l’onglet Outils > Exporter.
(*) Renseignez-vous quand même auprès de votre hébergeur, car ce dernier effectue sûrement des sauvegardes.
Cette sauvegarde nous permettra d’avoir un point de départ et surtout d’éviter que la situation se détériore davantage.
2 - Déplacez le site internet sur un serveur local sans internet
Cette étape n’est pas obligatoire mais fortement recommandée.
Une fois la sauvegarde effectuée, vous allez devoir héberger localement votre site internet pour pouvoir constater l’étendu des dégâts.
En faisant cela, coupez votre accès à internet pour empêcher le vol d’informations.
La plupart du temps, les hackers modifient sur WordPress
Les fichiers du thème courant pour injecter leur code ;
Des articles / pages de votre site internet ;
Créent de nouveaux fichiers (infectés ou non).
2-1 Scanner toute votre sauvegarde WordPress à l’antivirus
Si vous disposez d’un antivirus sur votre machine, faites un clic-droit sur le dossier et votre antivirus devrait vous proposer des scanners le dossier.
Votre antivirus ne trouvera pas le hack, en revanche il pourrait trouver d’éventuels logiciels malveillants diffusés via votre site internet.
2-2 Récupérer les téléversements de vos médias
WordPress par défaut téléverse tous vos médias dans le dossier /wp-content/uploads.
Sous Linux, cette ligne de commande permet de lister récursivement tous les fichiers du répertoires uploads, sans compter les images, par ordre de modification.
Regardez ensuite dans cette liste si un fichier uploadé vous semble malveillant (vérifiez le contenu des .htaccess).
Ce dossier sera à réimporter sur votre nouvelle installation de WordPress, il contient tout ce que vous avez mis à travers la rubrique “Médias” de WordPress.
3 – Localiser le piratage sur son site internet WordPress
Je vous conseille pour commencer de créer une nouvelle installation de WordPress.
Vous pouvez connecter cette nouvelle instance à votre base de données actuelle. Si tout fonctionne normalement, alors on supposera que la base de données est intact.
Si votre base de données est corrompu, il vous faudra réimporter à la main votre une nouvelle instance de WordPress en créant une nouvelle base de données, ce qui est déjà plus compliqué.
3-0 Vérifier le piratage de son site internet WordPress
A chaque nouvelle étape, nous vous recommandons de vérifiez votre site internet en naviguant dessus.
Si tout semble correct et qu’aucun problème apparaît, continuez le tutoriel sur le dé-piratage de WordPress. Pour vérifier le contenu du site, une astuce de développeur consiste à charger l’onglet Network de Google Chrome (CTRL+ MAJ + I) (c’est un i majuscule) ou l’onglet Réseau de Mozilla Firefox (F12) et de regarder ce qui passe par le réseau.
Pensez à inspecter le réseau dans les prochaines étapes…
3-1 Dans l’administration de WordPress, vérifier le contenu suivant
Les Articles / Pages / Formulaires… : vérifiez que tout le contenu présent, vous l’avez créé vous-même ;
Les Réglages : Vérifiez que vos paramètres sont restés intacts.
Repérer le contenu malicieux dans les posts depuis la base de données
Les commandes suivantes permettent de détecter le contenu malveillant dans vos pages / articles WordPress.
SELECT * FROM `wp_posts` WHERE `post_content` LIKE '%<iframe%';
SELECT * FROM `wp_posts` WHERE `post_content` LIKE '%<noscript%';
SELECT * FROM `wp_posts` WHERE `post_content` LIKE '%<script%';
SELECT * FROM `wp_posts` WHERE `post_content` LIKE '%display:%';
SELECT * FROM `wp_posts` WHERE `post_content` LIKE '%base64%';
SELECT * FROM `wp_posts` WHERE `post_content` LIKE '%<?php%';
Ces commandes sont directement à taper dans phpMyAdmin : sur votre base de données dans le menu “SQL“.
Si vous constatez des réponses à ces commandes, vérifiez scrupuleusement le contenu de ces articles.
3-2 Importer votre thème dans le nouveau WordPress
Avant d’importer le thème dans le nouveau WordPress, vérifiez qu’il n’y a rien d’étrange dans les fichiers suivants (Comme du code sous la forme “d45e1de2z5dezdzedgjytjhg3re12fe…”, un lien vers un site inconnu… etc).
/.htaccess
/robots.txt (attention au ‘Disallow: /’ !)
/index.php
wp-config.php (attention à la base de données ; vous pouvez comparer ce fichier avec wp-config-sample.php)find -regex ‘\(.*jpeg\|.*png\|.*jpg\|.*bmp\)’
/wp-content/themes/votre-theme/index.php
/wp-content/themes/votre-theme/header.php
/wp-content/themes/votre-theme/footer.php
Les fichiers Javascripts de votre thèmes
Parcourez l’arborescence de votre site internet à la recherche de fichiers qui ne devraient pas être là.
Si malgré le nouvel import votre thème est toujours piraté, pensez à récupérer la feuille de style et d’en re-télécharger un nouveau (cela vous prendra moins de temps que de chercher le code malveillant).
3-3 Réinstallez vos plugins depuis votre nouvelle installation
Ne réimporter pas vos plugins car ils pourraient être corrompus, re-téléchargez-les, pour la plupart vous ne perdrez pas la configuration car elle sera en base de données.
Conclusion sur le piratage de votre site internet WordPress
Nous savons que ce que nous expliquons est assez compliqué et requière certaines compétences globales en administration de sites internet.
“Vérifiez que tout est correct”, “Recherchez du code étrange qui ne devrait pas être là”, ces phrases sont trop flous si vous ne nagez pas un minimum dans l’univers de WordPress… et nous en sommes désolés. Cependant difficile pour nous de mieux vous aider car Webmaster est un métier qui ne s’apprend pas en un article de blog.
Un certificat SSL certifié (ou reconnu) par une autorité de confiance permet d’éviter le message d’erreur ci-dessus, que l’on peut obtenir si on auto-signe son certificat. Le « mixed content » peut aussi être vecteur de messages d’erreur sur les pages complétées d’un certificat signé.
Pourquoi un certificat doit être reconnu par une autorité de confiance ?
Le rôle du certificat est de garantir que le nom de domaine (ici securite-info.com) est bien ledit site. Si un pirate détourne le nom de domaine (par exemple en spoofant l’adresse ip du site sur votre machine), vous serez redirigé vers son site internet, et non le nôtre.
Concrètement :
L’adresse ip du site est 91.121.49.59, le DNS redirige alors securite-info.com vers cette adresse ip. Si votre ordinateur est la cible d’une attaque par spoof, il dira : securite-info.com a comme adresse ip x.x.x.x (qui se révélera être la sienne). En vous connectant sur securite-info.com, vous tomberez alors sur le site pirate.
Mais comme le site est certifié par une autorité de confiance, il ne pourrait pas se faire passer pour nous !
Il pourrait imiter le certificat, mais ceci générerait une erreur comme nous l’avons vu plus haut. C’est là le but de la certification.
Qu’est-ce que le Mixed Content ?
Le « mixed content » ou contenu mixte est le fait de contenir dans une même page, du contenu sécurisé (https) et du contenu non sécurisé (http).
J’ai volontairement importé une image non sécurisée sur une page. Si on regarde dans la barre d’adresse, le navigateur nous informe que la page n’est pas totalement sécurisée : “connexion partiellement chiffrée“.
Certaines parties de la page que vous visionnez n’ont pas été chiffrées avant d’être transmises sur Internet.
Les informations envoyées sur Internet sans chiffrement peuvent être vues par d’autres personnes durant leur transit.
Pour la personne qui visite votre site, cela peut être dérangeant, surtout si vous vendez sur ce site : cela n’inspire pas confiance, quand bien même vous seriez de bonne foi et n’auriez pas fait attention au chiffrement des images.
Le mixed-content empêche d’avoir un cadenas HTTPS vert sur son site !
C’est le plus important et c’est pourquoi vous devez supprimer le contenu mixte de vos pages web. La personne qui arrive sur votre site internet doit pouvoir voir que le site internet est totalement sécurisé.
En cas de contenu mixte, le navigateur n’affiche pas d’erreur mais le https:// est grisé.
Détecter et supprimer le mixed content
Pour vous, webmaster, il est primordial de supprimer le contenu mixte de toutes vos pages. On parle ici des images, mais aussi des scripts utilisés dans vos pages.
La détection du contenu mixte est plutôt simple.
Clic-droit sur la page, examiner l’élément, puis rendez-vous dans la console
Ou CTRL+MAJ+k sous Mozilla Firefox
Ou CTRL+MAJ+j sous Chrome / Chromium
Rechargez la page, et des lignes rouges comme celles-ci devraient s’afficher. À vous de supprimer ou de remplacer le document en question.
Supprimer le mixed-content en une ligne de code SQL
On peut automatiser tout cela très simplement via la base de données, voici la commande à taper (sous WordPress), cependant vous trouverez sans doute les commandes correspondantes à votre CMS sur Google.
Supprimer le mixed-content sous WordPress avec MySQL
UPDATE `wp_posts` SET `post_content`= REPLACE(`post_content`, 'http://www.cubis-helios.com', 'https://www.cubis-helios.com');
Remplacera tout le contenu avec “http://www.cubis-helios.com” en “https://www.cubis-helios.com”.
« Je crois que mon pc a un virus », on entend très souvent cette phrase sortir de la bouche des clients chez les informaticiens, ou sur les forums informatiques. Le souci, c’est que l’on en voit que les symptômes, on suspecte, mais on ne sait pas, et on sait encore moins quoi faire :
ordinateur qui rame, fenêtre qui se « freeze » (ne peut plus être cliqué) ;