Lab créa

Sécuriser son site web en cinq étapes clés

 

L’affaire des Panama papers fait couler beaucoup d’encre… et de nombreuses sociétés écrans. Mais rien n’aurait été possible sans les nombreuses failles de sécurité décelées sur certains sites réalisés sous les deux CMS les plus populaires du marché : WordPress et Drupal. Nombre de documents confidentiels auraient été dérobés par des hackers via des backdoors – ces accès détournés au serveur – bien connus des experts en sécurité. L’occasion pour nous de revenir sur les points essentiels afin d’assurer une sécurité optimale de son site web, même si le risque zéro reste une utopie.

1. Toujours mettre à jour son CMS

Au vu du grand nombre d’utilisateurs, lorsqu’une faille de sécurité est révélée, beaucoup de sites web se retrouvent vulnérables. Résultat : ce ne sont pas moins de plusieurs dizaines de gigaoctets de données qui se retrouvent sans protection. Les éditeurs de logiciels de gestion de contenu (ou Content Management System) proposent alors, sous quelques jours, des patchs ou mises à jour afin de sécurité. Mais attention, rien ne sert de se jeter le premier sur la mise à jour ou la version alpha proposée. C’est à ce moment-là que la sécurité est la plus faible ! Attendez plutôt les premiers retours, pour vous assurer qu’aucune backdoor n’est restée ouverte.

Par exemple, lors du passage à la version 4.2 de WordPress, en avril 2015, une faille s’était glissée  dans la fonction commentaire. Elle permettait d’injecter du code javascript et donc de créer une porte dérobée afin d’accéder au site.

2. Ne pas installer n’importe quel plugin

La plupart des CMS sont open source : tout le monde peut ainsi développer des plugins et les proposer au public. Or, certains développeurs ne prennent pas en compte les risques de sécurité et offrent des backdoors que les hackers se font un malin plaisir d’exploiter. Il est donc préférable de ne pas installer des plugins non mis à jour depuis moins d’un an ou très peu installés.

Pour exemple, dans l’affaire des Panama papers, le plugin pointé du doigt était Revolution slider,une extension de carrousel bien connue des développeurs WordPress. Une faille de sécurité sur ce plugin, corrigée par de nouvelles mises à jour, permettait d’uploader des fichiers sur le serveur sans être connecté au backoffice. Les hackers pouvaient ainsi exécuter des requêtes, à partir des fichiers uploadés, pour ouvrir de nouveaux accès aux serveurs sans aucune limite.

3. Utiliser des plugins de monitoring

Les plugins de monitoring permettent de garder un œil sur l’activité du CMS (connexion au back office, mise à jour d’articles…). Utiles, ils détectent rapidement une activité suspecte ou une faille. Plus tôt un acteur malveillant ou un problème est identifié, plus simple il sera à corriger ou bloquer. Les plugins de monitoring fournissent également des logs d’accès avec des adresses IP : indispensables pour tracer la provenance d’une attaque.

L’extension la plus utilisée de WordPress en matière de monitoring est Sucuri Security. Elle scanne et identifie les malwares présents sur le serveur, renforce la sécurité du CMS, bloque les spams et propose d’autres fonctionnalités très pratiques pour mieux protéger son site web – et par extension son serveur.

4. Protéger aussi son serveur

Au-delà de la mise à jour des plugins et du CMS, il convient de se doter d’une sécurisation plus avancée du serveur. Le premier niveau se gère dans le fichier htaccess qui doit être placé à la racine du serveur. Suivant la configuration de ce dernier, il est possible de bloquer l’accès du site à certaines adresses IP, d’interdire certains types de fichiers dangereux ou de bloquer des requêtes.

Exemple de code pour bloquer les attaques XSS (Cross-Site Scripting) :

p.1

Cette directive essentielle doit être détaillée car non exploitable dans sa forme simple. Il est nécessaire d’autoriser les paramètres de domaine en fonction des types de ressources. Vous trouverez dans l’article suivant http://content-security-policy.com/ toutes les informations pour détailler et appliquer correctement la directive.

Il est possible d’aller plus loin encore dans le détail de la directive en ajoutant :

  • Pour se protéger des failles XSS :

p.2

  • Pour empêcher le navigateur d’ouvrir une page web dans une iframe :

p.3

  • Pour faciliter la prévention des attaques basées sur la confusion du type MIME :
p.4

Une attaque de type XSS (Cross-Site scripting) a pour objectif d’injecter un contenu sur la page. Une fois ce contenu implanté, il est alors facile d’y intégrer une backdoor.

Si une IP essaye en continu d’accéder au serveur, sans y être autorisée, il est possible de la bloquer via le htaccess ou dans le httpdconf du serveur :

p.5

On bloque aussi toute les requêtes suspectes sur le site, par exemple, les requêtes de scripts ou toutes celles intégrant du SQL :

p.6

5. Réaliser des audits de sécurité

Si malgré tout, le serveur reste sujet aux attaques et aux failles de sécurité, une seule solution : l’audit de sécurité des infrastructures réseaux/serveur. De nombreuses entreprises sont spécialisées dans ce domaine et fourniront les meilleurs indications afin de se préserver des pirates informatiques !