Blog

Bonnes pratiques contre le piratage

Vendredi 20 février 2009

De nos jours, la majorité des sites Web sont construits autour d’applications afin de fournir de bons services à leurs utilisateurs. En particulier, elles sont largement utilisées pour créer, modifier et administrer du contenu. En raison de la nature interactive de ces systèmes, où la contribution des utilisateurs est fondamentale, il est important de penser à la sécurité afin d’éviter les failles exploitées par des tiers malveillants et de garantir la meilleure expérience utilisateur.

Bonnes pratiques contre le piratage

Quelques types de tentatives de piratage et comment les prévenir

Il existe de nombreux types d’attaques que les pirates peuvent mener pour prendre le contrôle partiel ou total d’un site Web. En général, les plus courantes et les plus dangereuses sont l’injection SQL et le cross-site scripting (XSS).

L’injection SQL est une technique permettant d’injecter un morceau de code malveillant dans une application Web, en exploitant une vulnérabilité de sécurité au niveau de la base de données pour modifier son comportement. C’est une technique extrêmement puissante, étant donné qu’elle peut manipuler des URL (chaînes de requête) ou n’importe quel formulaire (recherche, connexion, inscription par e-mail) pour injecter du code malveillant. Vous pouvez trouver des exemples d’injection SQL sur le site du
Web Application Security Consortium.

Il existe certainement des précautions à prendre pour éviter ce type d’attaque. Par exemple, il est recommandé d’ajouter une couche entre un formulaire sur le front-end et la base de données sur le back-end. En PHP, l’extension
PDO
est souvent utilisée pour travailler avec des paramètres (parfois appelés espaces réservés ou variables liées) au lieu d’intégrer les entrées utilisateur directement dans la requête. Une autre technique très simple est l’échappement de caractères, où tous les caractères dangereux susceptibles d’avoir un effet direct sur la structure de la base de données sont échappés. Par exemple, chaque occurrence d’une apostrophe (“,”) dans un paramètre doit être remplacée par deux apostrophes (“,”) pour former un littéral de chaîne SQL valide. Ce ne sont là que deux des mesures les plus courantes que vous pouvez prendre pour améliorer la sécurité d’un site et éviter les injections SQL. En ligne, vous trouverez de nombreuses autres ressources spécifiques adaptées à vos besoins (langages de programmation, applications Web spécifiques…).'L’autre technique que nous allons présenter ici est le cross-site scripting (XSS). Le XSS est une technique utilisée pour injecter du code malveillant dans une page Web en exploitant les vulnérabilités de sécurité des applications Web. Ce type d’attaque est possible lorsque l’application Web traite des données obtenues par le biais d’entrées utilisateur sans aucun contrôle ou validation supplémentaire avant de les renvoyer à l’utilisateur final. Vous pouvez trouver des exemples de cross-site scripting sur le site du''Web Application Security Consortium

Bonnes pratiques contre le piratage — 2

Il existe de nombreuses façons de sécuriser une application Web contre cette technique. Parmi les actions simples à mettre en place, on trouve :
Le nettoyage des entrées pouvant être insérées dans un formulaire (voir par exemple la fonction.

strip tags

Pour donner quelques exemples, quatre des plus grandes communautés de systèmes de gestion de contenu Open Source — Joomla, WordPress, PHP-Nuke et Drupal — proposent des directives utiles sur la sécurité sur leurs sites Web et hébergent de grands forums axés sur la communauté où les utilisateurs peuvent signaler des problèmes et demander de l’aide. Par exemple, dans la section

Hardening WordPress

de son site Web, WordPress propose une documentation complète sur la manière de renforcer la sécurité de son CMS. Joomla propose de nombreuses ressources concernant la sécurité, en particulier une
Security Checklist
comprenant une liste complète des actions que les webmasters devraient entreprendre pour améliorer la sécurité d’un site Web basé sur Joomla. Sur le site de Drupal, vous pouvez accéder à des informations sur les problèmes de sécurité en vous rendant dans leur
Security section
.
Vous pouvez également vous abonner à leur liste de diffusion sur la sécurité pour être constamment informé des problèmes en cours. PHP-Nuke propose une documentation sur la
Securityau chapitre 23 de sa section “How to”, dédiée à la gestion système de cette plateforme CMS. Ils disposent également d’une section intitulée
Hacked – Now what?
qui propose des lignes directrices pour résoudre les problèmes liés au piratage.
Quelques moyens d’identifier le piratage de votre site
Comme mentionné ci-dessus, il existe de nombreux types d’attaques que les pirates peuvent mener sur un site, et différentes méthodes pour exploiter un site innocent. Lorsque les pirates parviennent à prendre le contrôle complet d’un site, ils peuvent le défigurer (en modifiant la page d’accueil), effacer tout le contenu (en supprimant les tables de votre base de données) ou insérer des logiciels malveillants ou des voleurs de cookies. Ils peuvent également exploiter un site pour y insérer du spam, par exemple en masquant des liens pointant vers des ressources de spam ou en créant des pages qui redirigent vers des sites malveillants. Lorsque ces modifications dans votre application sont évidentes (comme le défacement), vous pouvez facilement repérer l’activité de piratage ; mais pour d’autres types d’exploits, en particulier ceux à intention de spam, ce ne sera pas si évident. Google, à travers certains de ses produits, offre aux webmasters des moyens de détecter si un site a été piraté ou modifié par un tiers sans autorisation. Par exemple, en utilisant Google Search, vous pouvez repérer les mots-clés typiques ajoutés par les pirates à votre site Web et identifier les pages qui ont été compromises. Ouvrez simplement

google.com

et lancez une requête de recherche
site: sur votre site Web, en recherchant des mots-clés commerciaux que les pirates utilisent couramment à des fins de spam (tels que viagra, porn, mp3, gambling, etc.) : site:example.com viagra
.
Si vous n’êtes pas encore familiarisé avec l’opérateur de recherche site:, il s’agit d’un moyen d’interroger Google en restreignant votre recherche à un site spécifique. Par exemple, la recherche site:googleblog.blogspot.com ne renverra que des résultats provenant de l’
Official Google Blog
. Lorsque vous ajoutez des mots-clés de spam à ce type de requête, Google renvoie toutes les pages indexées de votre site Web qui contiennent ces mots-clés de spam et qui ont une forte probabilité d’avoir été piratées. Pour vérifier ces pages suspectes, ouvrez simplement la version en cache proposée par Google et vous pourrez repérer le comportement piraté, le cas échéant. Vous pourrez ensuite nettoyer vos pages compromises et vérifier également s’il y a des anomalies dans les fichiers de configuration de votre serveur (par exemple sur les serveurs Web Apache :
.htaccesset
httpd.conf Si votre site n’apparaît plus dans les résultats de recherche de Google, cela pourrait signifier que Google a déjà repéré de mauvaises pratiques sur votre site à la suite du piratage et qu’il a pu le supprimer temporairement de notre index, en raison d’une violation de nos webmaster quality guidelines).

Pour garder un œil constant sur la présence de mots-clés suspects sur votre site Web, vous pouvez également utiliser
Google Alerts.

pour surveiller des requêtes telles que
site:example.com viagra OR casino OR porn OR ringtones
. Vous recevrez une alerte par e-mail chaque fois que ces mots-clés seront trouvés dans le contenu de votre site. Vous pouvez également utiliser lesWebmaster Tools

de Google pour repérer toute activité de piratage sur votre site. Les Webmaster Tools fournissent des statistiques sur les principales requêtes de recherche pour votre site. Ces données vous aideront à surveiller si votre site se positionne sur des mots-clés de spam suspects et non pertinents. Les données « Ce que voit Googlebot » sont également utiles, car vous verrez si Google détecte des mots-clés inhabituels sur votre site, que vous vous positionniez ou non sur ceux-ci.
Si vous possédez un compte Webmaster Tools et que Google estime que votre site a été piraté, vous recevrez souvent une notification en fonction du type d’exploit présent sur votre site :
Si un tiers malveillant utilise votre site à des fins de spam (comme masquer des liens ou créer des pages de spam) et que cela a été détecté par notre robot d’exploration, vous serez souvent averti dans le Centre de messages avec des informations détaillées (un échantillon d’URL piratées ou le texte d’ancrage des liens cachés) ;

Si votre site est exploité pour y placer des logiciels malveillants (malware), vous verrez un avertissement de logiciel malveillant sur la page « Aperçu » de votre compte Webmaster Tools.

  • Comportement piraté supprimé, et maintenant ?
  • Votre site a été piraté ou diffuse des logiciels malveillants ? Nettoyez d’abord le désordre causé par les logiciels malveillants, puis effectuez l’une des actions suivantes :

Si votre site a été piraté à des fins de spam, veuillez visiter notre page

reconsideration request

.
Merci !
Publié par Paolo Petrolini et Iris Mariano, Équipe Qualité de la RechercheBest practices against hacking | Alien Road

Alien Road

Comment nous l'appliquons

We archive Search Central announcements because client questions often trace back to a change that was announced years ago. Reading the original is faster than reconstructing it from second-hand summaries.

Services associés

Partager