Sécuriser et protéger son site web des attaques des pirates et hackers

Introduction

Comment éviter que votre site ne soit utilisé par un pirate pour qu’il envoie ses spams à partir de votre compte ? Comment éviter le « defacing », c’est-à-dire l’effacement de votre site web et son remplacement par un autre, ou une page avec un slogan anti-occidental ? Comment éviter certains trous de sécurité?

Les serveurs en mutualisé de votre hébergeur devraient être relativement sécurisés et disposer d’outils qui lui permettent de bloquer certains comportements suspects. Cette action a posteriori bloque votre compte. Il est donc préférable de prévenir ce type de piratage. En tant que client et utilisateur, nous devons éviter la suspension de notre compte si nous sommes la victime d’une attaque.

Voici donc quelques conseils. C’est l’accumulation de ces trucs et astuces qui sécurisera votre site, car il n’y a pas de solution unique; les pirates utilisent plusieurs moyens différents.

Qui sont les pirates? Les premiers sont des « skiddy », des jeunes (« kid » en anglais, « kiddy » pour petit jeune) qui utilisent des scripts prêts à l’emploi (le « s » de skiddy) qu’on trouve facilement sur le web pour exploiter les failles d’un CMS, blog, forum ou e-commerce, etc. Ils ne font qu’utiliser ces scripts comme on utilise un logiciel. Ce ne sont pas des « petits génies ». Ils se lancent des défis à celui qui effacera le plus de sites web. Les autres sont des pirates au service d’une mafia afin de transformer votre site web et une faille de votre CMS, blog, forum ou e-commerce en plateforme d’envoi de spams. Ceux-là créent leurs propres scripts qu’ils ne partagent pas avec une communauté. Ils font cela pour de l’argent; les mafieux les payent en fonction du nombre de sites web piratés et d’ordinateurs personnels dont ils ont pris le contrôle à l’insu du malheureux propriétaire (c’est-à-dire votre PC et chez vous en profitant de votre connexion à internet en programmant unmalware).

Pourquoi attaquent-ils votre site? Ni le skiddy, ni le mafieux ne vous visent personnellement. Les uns le font pour le jeu, les autres pour l’argent. Il est peu probable qu’on vous vise pour des raisons politiques. Certains skiddies effacent des sites et se cachent derrière des pseudo slogans anti-occidentaux, histoire de vous faire peur et de se prendre au sérieux. Il n’en est rien.

Comment savent-ils que mon site a une faille de sécurité? Réponse: Google ! Il cherche un fichier précis comme login.php, confip.php, ou autres, et, combiné avec quelques mots-clés, ils savent quel CMS, blog, forum ou e-commerce vous utilisez, et essaieront de lancer un script pour tester si l’attaque fonctionne. Il ne font pas ça manuellement, ils ont des logiciels qui le font automatiquement !! Leurs logiciels testent chaque URL listée par Google à la recherche de la faille. C’est aussi simple que ça. Ils vous trouvent par hasard.

Donc, nous allons essayer de nous prémunir contre ces attaques automatiques. Ces conseils ne concernent que les sites web utilisant un CMS, blog, forum ou e-commerce, etc. programmés par des informaticiens ou par vous.

CONSEIL NUMÉRO 1: votre CMS, blog, forum ou e-commerce doit être à jour. Vous suivrez les mises à jour de sécurité et les installerez sans attendre.

CONSEIL NUMÉRO 2: tout cela peut vous paraître bien compliqué, et ça l’est ! Je vous donne un secret: installez un script qui va faire tout ce travail pour vous. Il a été écrit par un développeur indépendant qui s’est s’inspiré des règles que j’ai mis en place pour automatiser la surveillance et simplifier l’installation. Téléchargez et installez CrawlProtect pour protéger votre site web du piratage et faîtes savoir que ça marche. Ou alors, lisez tous les conseils ci-dessous et apprenez comment faire.

LES RÈGLES LES PLUS IMPORTANTES:
Comme ce tutoriel est long, voici les règles qu’il faut appliquer en priorité. Vous pourrez inclure les autres plus tard.
1- Attribuer par FTP aux fichiers les droits chmod 404 et aux dossiers les droits chmod 505. Voir l’article ci-dessous.

2- Règles de filtrage par htaccess. Permet d’arrêter de nombreuses attaques avant de toucher votre site web. Voir l’article ici.

3- Règles de sauvegarde et de restauration de votre site web. D’abord, vérifiez quels fichiers le pirate a ajouté ou modifié en installant ce script . Ensuite, êtes-vous capable d’effacer complètement votre site web pour supprimer toutes les traces du pirate et de tout réactiver en 30 minutes? Voici comment. Lire l’article ici.

4- Si vous programmez en PHP, des règles simples de filtrages sont ici. Même chose pour l’injection SQL. Ne soyez pas irresponsable, pensez à filtrer tout ce qui entre dans votre script.

Les droits d’écriture, de lecture et d’exécution.

-= INDISPENSABLE =-

Plus d’infos ici: Description du CHMOD et de la signification des numéros.

Attention, ces règles peuvent fonctionner pour certains hébergeurs et pas chez d’autres. Faites un petit essai, cela en vaut vraiment la peine.

On a l’habitude de dire qu’on doit attribuer par FTP les droits 644 à un fichier et 755 à un dossier.
En fait, certains hébergeurs (mais pas tous) ne semblent pas utiliser degroupe. Donc, on pourrait très bien utiliser les droits 604 pour un fichier et 705 pour un dossier. Si un pirate pénètre le système avec un droit de groupe, il n’aura accès à rien, ni en lecture ni en écriture.

On peut aller plus loin. Protégeons les parties sensibles de votre CMS, blog, forum ou e-commerce, comme le fichier config.php et .htaccess en lui donnant les droits 404 (ou 444). Personne ne pourra le modifier, même pas vous (c’est faux dans l’absolu si votre site a un gros trou de sécurité, mais imparable contre une attaque automatique). Vous ne pourrez le faire que par FTP quand vous aurez vraiment besoin de le modifier.

Voilà comment je protège mon site:
– Tous les fichiers ont les droits 404 (ou 444)
– Tous les dossiers ont les droits 505 (ou 555).
– Si un fichier ou un dossier nécessitent des droits d’écriture par le serveur mettez 604 pour le fichier et 705 pour le dossier. Inutile de faire le fameux 777 (tous les droits à tout le monde) qui est un danger public, une provocation au piratage, car vous annoncez que votre maison est grande ouverte, sans porte ni fenêtre, tout le monde peut se servir.
– Les fichiers config et htaccess ont des droits 404 (ou 444)
– Le dossier « www » ou « public_html » doit être en chmod 705 ou 755 selon votre hébergeur, ne le changez jamais.

Avantage: personne ne peut modifier vos fichiers. Inconvénient: il faut changer les droits en écriture (644 et 755) si vous faites une mise à jour de votre CMS, blog, forum ou e-commerce et remettre les bons droits 404 (ou 444) et 505 (ou 555) après. Cela prend 10 min., mais ça vaut la peine.

Pourquoi est-ce si important: le pirate essaye d’installer un fichier sur votre site afin d’en prendre le contrôle (pour effacer le site, y placer un script qui envoie du spam, etc.). Il cherche des trous de sécurité pour pouvoir uploader son fichier de prise de contrôle. Si votre site a un trou de sécurité, le pirate l’exploitera, mais comme votre site web n’a que des dossiers et fichiers interdits en écriture, il ne pourra rien uploader. Son attaque ne marchera pas.

Il est possible d’accélérer le changement des droits par SSH en automatisant le changement des droits. Votre hébergeur doit vous donner accès à une connexion SSH.
Avec un script qui fait du pseudo-ssh en PHP, mettez le fichier dans le dossier « www » ou « public_html » et commencez le travail.
Changer tous les droits par FTP de tous les fichiers et dossiers peut être long et fastidieux avec le risque d’en oublier. J’utilise les lignes de commandes ci-dessous pour changer les droits rapidement par SSH.

Connectez-vous en SSH à votre compte, puis placez-vous dans le dossier « www » (ou « public_html ») en entrant la commande cd www , et entrez les commandes suivantes en une seule ligne (après avoir modifié les noms des fichiers et dossiers selon les besoins):
En mode SSH, mettez-vous dans le dossier « www » ou « public_html » avant de commencer.
On copie une ligne, on appuie sur la touche Entrée, et on copie une autre ligne, on appuie sur la touche Entrée, etc. après avoir modifié les noms des fichiers et dossiers selon les besoins.

Laisser un commentaire