Que faire quand son site est piraté ?

de | 11 janvier 2016

Vous vous levez le matin et le couperet tombe. Votre site a été hacké, ou piraté, avec les conséquences habituelles. Nous allons voir dans cet article comment réagir et s’assurer que cela n’arrive plus.

Les différents type de piratage

Il existe différents profils de pirate du web. Tous les piratages n’ont pas les mêmes méthodes, les mêmes buts ni les mêmes conséquences. En premier lieu il est important de savoir à quel type de piratage vous avez à faire.

Le vol de donnée

Surement le type de piratage le plus connu puisque le plus médiatisé (Sony en fait régulièrement les frais). Dans ce cas précis, le but du pirate sera de récupérer des informations confidentielles. La plupart du temps, les données de vos utilisateurs (mails, compte bancaires…). Son but sera ensuite de les offrir aux plus offrants ou de vous faire chanter. Si votre site est un simple blog ou ne contient que peu de données utilisateurs,  vous avez peu de chance d’avoir affaire à ce type de piratage qui touche avant tout les gros comptes.

Le défacement

Le défacement est une modification d’une partie de votre site, en général la page d’accueil, pour afficher autre chose à la place. En général il s’agit d’un message politique, ce type de piratage touche donc avant tout des institutions (mairie, sites gouvernementaux…), mais il peut également s’agir de ce qu’on appelle un script kiddie. Un script kiddie (littéralement « Gamin à script ») est un débutant en matière de piratage. Il n’a pas spécialement de compétence dans ce domaine et utilise des programmes (script) tout fait pour  chercher des failles automatiquement sur un site. Puis il affiche un message lambda (« Ce site s’est fait hacké par <son pseudo> »). Ce type de piratage n’est pas très dangereux puisque peu de fichiers sont touchés et les données ne sont pas volées, néanmoins ils révèlent une faille de sécurité qu’il faut alors combler.

L’insertion de scripts

Ce type de piratage est très fréquent. Le but est de pirater votre serveur pour s’en servir soit comme d’un serveur de spam, soit pour utiliser une partie de votre trafic.

Le but du pirate sera d’insérer sur votre serveur des scripts (programmes) le plus discrètement possible qui utiliseront les ressources de votre serveur et votre audience aux fins du pirate. L’exemple type est l’envoi de millions de spam aux 4 coins de la planète. Le spam étant interdit (en plus d’être non toléré par les hébergeurs et les boites mails) le pirate peut avec plusieurs serveurs sous son contrôle inonder le monde de mail sans prendre le moindre risque.

Un autre but de ce type de piratage peut être l’insertion du script affichant sur vos pages une publicité non désirée, ou une redirection vers un site de vente ou de phishing (hameçonnage pour tromper les utilisateurs et leur faire entrer des informations privées, comme des identifiants bancaires). Le but est alors d’utiliser votre trafic. Google et d’autres moteurs de recherche détectent très rapidement ce genre de scripts, et peut blacklister temporairement votre site de son moteur, avec la perte d’audience qui va avec. De plus les navigateurs afficheront un message d’avertissement qui feront fuir vos visiteurs à toute vitesse.

Google_Safe_Browsing_alerte_Phishing

 

Que faire suite au piratage ?

Plusieurs actions sont nécessaires, en premier lieu il faut identifier les fichiers touchés, ensuite il faut combler la faille. Enfin il faut renforcer la sécurité.

Dans le cas d’un défacement ou d’un vol de donnée, le nettoyage est rapide, puisque le pirate n’a pas vocation à revenir sur votre site régulièrement, il n’a donc probablement pas installé de backdoor. En revanche, dans le cas de l’insertion d’un script malveillant, le nettoyage sera beaucoup plus compliqué.

Restaurer une sauvegarde

L’action qui semble la plus évidente sera de restaurer une sauvegarde de son site (si on en a une). Malheureusement cela risque de ne pas être aussi simple que ça en a l’air. En effet le but du pirate est de pirater votre site sur le long terme et donc de vous compliquer la vie le plus possible pour vous empêcher de supprimer ses scripts installés un peu partout sur votre serveur. Pour cela il va utiliser la technique de la backdoor.

Une backdoor est comme une petite porte très discrète que seul le pirate connait, et qui lui permettra d’entrer quand il le souhaite avec un simple requête http contenant des instructions. Cette backdoor est en général placée sur un ou plusieurs fichiers php. Sur un cms contenant des milliers de fichiers, la recherche peut vite devenir fastidieuse. De plus il suffit d’un oubli pour devoir tout recommencer (les scripts supprimés seront de nouveaux insérés).

Pourquoi une restauration n’est pas suffisante ? Parce que le pirate va insérer sa backdoor longtemps avant de l’exploiter. Parfois 1 mois, parfois plus. Vous aurez ainsi fait de multiples sauvegardes entre temps, et toutes contiendront la backdoor, que le pirate pourra utiliser par la suite.

Quelles sont les solutions ?

La première est de répertorier tous les fichiers modifiés récemment. Les fichiers modifiés sont la plupart du temps des fichiers php ou des fichiers js. Les fichiers js servent en général à l’insertion d’iframe (pour insérer de la publicité non désirée) ou des scripts de redirection (phishing etc…). les fichiers php servent habituellement à générer du spam (parfois lancer des attaques DDOS).

Si vous avez un CMS (WordPress, Joomla etc.) il est conseillé de sauvegarder vos fichiers, puis de repartir des fichiers du CMS originaux, donc retélécharger le CMS en dernière version et remettre les fichiers à neuf (en ayant pris soin de tout supprimer avant, il ne faut pas uniquement écraser les fichiers).

Il est conseillé de faire de même avec les plugins / modules / composants. Vous ne perdrez pas votre configuration si vous ne touchez pas à la base de donnée. Si ça devait arriver, vous avez votre sauvegarde, dans laquelle vous pourrez récupérer le fichier de conf (après l’avoir examiné pour voir si il n’est pas corrompu).

Pour le template, soit il s’agit d’un template de base auquel cas il suffit de le réinstaller, soit il s’agit d’un template modifié (template child), et il sera nécessaire de réinstaller celui de la sauvegarde, en ayant bien sur pris soin de le nettoyer avant (fichier php et js).

Pour les plugins etc. custom il faudra faire de même.

Comment nettoyer un fichier ?

Il existe plusieurs façon de nettoyer un fichier : A la main et via un logiciel de scan. Sur WordPress Wordence et Anti-Malware sont efficaces même en version gratuite. Il faut par contre bien les configurer pour scanner l’ensemble du site (en incluant les plugin, template etc…).

Le scan vous indiquera les fichiers touchés, il est cependant recommandé de refaire une vérification derrière, manuellement. Un fichier infecté contient en général des mots-clés comme « eval », « iframe », et du code incompréhensible (le but étant de ne pas être repéré par les logiciels de scan).

Attention, le code dans le fichier peut être placé de façon subtile, hors de la fenêtre de votre IDE / logiciel de texte.

Fichier piraté ?

Fichier pas impacté ? Tout semble correcte à première vu

 

Fichier piraté

En regardant plus attentivement à droite, il est bien piraté

 

Le fichier contient un « eval« , la fonction caractéristique d’un piratage (attention tous les fichiers contenant des evals ne sont pas des fichiers piratés). La fonction eval permet d’évaluer du code php et de l’exécuter. Il suffit donc au pirate d’insérer une variable GET ou POST avec une fonction eval sur cette variable. Il appellera ensuite tranquillement la page php avec en variable du code php à exécuter (changer les droits, envoyer des mails, insérer d’autres backdoor etc…).

Si vous n’arrivez pas à vous débarrasser d’un piratage, regardez attentivement les logs de votre serveur. La plupart des hébergeurs les proposent quasi en temps réel. Vous verrez que des pages php qui ne sont pas même pas sensé être appelées en HTTP sont appelées en POST ou GET (souvent en POST car moins détectable dans les logs). Cette page a de grande chance de contenir une backdoor.

Et pour finir

Vous vous êtes débarrassé de votre pirate, ouf. Maintenant il est indispensable de sécuriser le site. En premier lieu, tout doit être à jour, avec si possible mise à jour automatique. WordPress propose les mises à jour automatiques pour les mises à jour mineures (4.1.1 à 4.1.2 par exemple). Comme la mise à jour est mineure, vous n’avez que peu de chance que votre site soit incompatible avec la celle ci. En revanche vous aurez tous les correctifs liés à la sécurité (qui sont toujours en mise à jour mineure). Il est conseillé de le faire également avec les plugins qui le proposent.

Il est ensuite impératif d’installer un plugin de sécurité, Wordfence par exemple. Ce plugin va bannir temporairement toutes les IP qui tentent de se connecter trop souvent (tentative de brute force) en admin, ou les bots qui fouillent votre site à la recherche de faille (les bots google etc… ne sont bien sur pas bloqués). Ils peuvent également surveiller les droits de vos répertoires et fichiers.

 

Avec tout ça vous êtes parés. Mais n’oubliez pas que le risque zéro n’existe pas. Un plugin peut avoir des failles (surtout ceux qui sont abandonnés par les dev), et même le core du CMS peut en avoir (bien qu’elles soient résolues très rapidement, d’où la mise à jour automatique indispensable !).

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.