Le Google hacking (ou Google dorking) est une technique consistant à utiliser un moteur de recherche, généralement Google, en vue de chercher des vulnérabilités ou de récupérer des données sensibles. Cette technique s'appuie sur les résultats de l'exploration et de l'indexation des sites web par le robot Googlebot. Elle est généralement utilisée par les hackers ou les crackers. Ainsi, en entrant des requêtes adéquates, il est possible d'accéder à des pages qui ne sont pas une partie du site web normalement accessible au public. Certains sites web contiennent des informations sensibles telles que le nom d'utilisateur, mot de passe et autres données confidentielles. Une affaire connue de Google hacking est le cas des mots de passe et noms d'utilisateurs pour l'accès au réseau Wi-Fi qui ont été exposés par des utilisateurs malveillants sur Google. Ces informations ont ensuite été utilisées pour accéder aux réseaux sans fil et voler des données confidentielles.
Information leakage est une expression désignant une faille de sécurité mettant à disposition des informations qui devraient, par la nature de leur contenu, rester confidentielles.
Information leakage through search engines est une expression désignant une faille de sécurité permettant de retrouver, à partir d'un moteur de recherche, des informations qui ne devraient pas être disponibles.
Crawling est l'étape de traitement d'un moteur de recherche consistant à parcourir le World Wide Web en suivant des liens hypertextes à partir d'une page web.
Indexing est l'étape de traitement d'un moteur de recherche consistant à stocker les informations collectées lors de la phase de crawling et à les traiter pour que celles-ci soient retrouvées rapidement.
Robot est un programme informatique qui effectue automatiquement des tâches répétitives.
Googlebot est le robot d'exploration et d'indexation de Google.
Directory listing est une fonctionnalité d'un serveur web qui permet de lister le contenu d'un répertoire.
En insérant le code suivant dans la barre de recherche de Google :
allinurl:/etc/passwd intitle:"index of" passwd
Il est possible de trouver des adresses URL pointant vers des pages web contenant le fichier /etc/passwd, un fichier système sous Linux listant les comptes des utilisateurs.
Ce fichier contient généralement des informations sensibles, telles que les noms d'utilisateur et anciennement des données permettant de vérifier les mots de passe des comptes utilisateurs. Désormais, sur les systèmes modernes, les mots de passe sont hashés et stockés dans le fichier /etc/shadow,.
Pour que cette technique fonctionne, il faut que l'index du répertoire /etc soit accessible publiquement et que le site ne soit pas exclu de l'indexation par Google. Même si de nombreux sites internet possèdent encore ce type de vulnérabilités, elles sont devenues de plus en plus difficiles à exploiter en raison de l'amélioration des mesures de sécurité et des algorithmes d'indexation de Google.
Dans la pratique, le Google hacking se fait en entrant des requêtes spéciales dans le moteur de recherche, qui possède de nombreuses fonctionnalités souvent méconnues, parmi lesquelles :
Le Google hacking peut être utilisé à des fins malveillantes, telles que l'obtention d'informations confidentielles, l'accès à des données sensibles ou encore l'obtention de contrôle d'un système informatique.
Pour lutter contre le Google hacking, la simple dissimulation (sécurité par l'obscurité) est inefficace. Les administrateurs doivent s'assurer que les ressources sensibles ne sont jamais exposées aux robots d'exploration.
Il convient d'éviter d'exposer des informations sensibles dans les métadonnées, de ne pas afficher des messages d'erreur contenant des informations sensibles et de désactiver l'indexation de certaines pages par Google (notamment celles contenant des informations confidentielles) en ajoutant le tag META noindex. Il consiste à insérer dans le code source HTML de la page à ne pas indexer la balise META suivante :
<meta name="robots" content="noindex">
L'avantage du balisage META "noindex" est qu'il n'empêche pas le robot d'explorer le site, de détecter les liens et d'en suivre le contenu, ce qui est nécessaire pour l'indexation des pages. Ce balisage permet en effet de demander au robot de ne pas indexer la page, de ne pas suivre les liens contenus dans cette page et de ne pas afficher le contenu de cette page.
La première étape consiste à configurer le fichier robots.txt à la racine du serveur web. Ce fichier utilise le protocole d'exclusion des robots pour interdire le crawling de répertoires spécifiques :
User-agent: * Disallow: /admin/ Disallow: /config/
Le fichier robots.txt n'empêche pas l'indexation d'une URL si elle est liée depuis un autre site externe. Pour forcer la non-indexation, il faut utiliser des directives explicites :
Pour les pages HTML : insérer la balise META dans la section <head> du document source.
Cette directive indique formellement à Googlebot de ne pas ajouter la page à son index (noindex) et de ne pas utiliser cette page pour découvrir d'autres liens (nofollow).
Pour les fichiers non-HTML (PDF, Word, images) : les balises META ne pouvant être lues dans ces formats, le serveur web (Apache, Nginx) doit être configuré pour renvoyer l'en-tête HTTP suivant : X-Robots-Tag: noindex, nofollow
Aussi, il convient de vérifier régulièrement que les sites web ne contiennent pas d'informations sensibles. Pour cela, il est possible d'utiliser des outils comme par exemple :
Les auditeurs de sécurité utilisent des bases de données répertoriant les requêtes problématiques (les "dorks") pour vérifier proactivement l'exposition des systèmes :
Google Hacking Database Google Hacking Database (GHDB) : Initialement créée par Johnny Long, elle est aujourd'hui maintenue par la communauté de la sécurité au sein de l'Exploit Database (OffSec)(en) « Google Hacking Database (GHDB) », sur Exploit-DB (consulté le )..
Précédemment, il a été évoqué quelques requêtes spéciales du moteur Google, parmi lesquelles intitle, allintext, et allinurl. En réalité, celles-ci permettent non seulement de rechercher les pages d'un site web, mais aussi les fichiers et les données des périphériques de stockage connectée au réseau local et connectée à un compte Google Drive. Afin d'éviter que des données sensibles soient indexées et affichées dans les résultats de recherche de Google, il est possible de renommer ces fichiers et les dossiers en changeant l'extension du fichier et en modifiant leur nom (par exemple, en ajoutant des espaces ou des caractères spéciaux).
Autre technique qui permet d'éviter d'indexer des données sensibles est l'activation de la fonction de sauvegarde automatiques d'un compte de messagerie Gmail, qui s'effectue par l'ajout de la balise META suivante dans le code source HTML de la page web :
<meta name="robots" content="nofollow,noindex">
Cela permet de demander au robot de ne pas suivre les liens contenus dans la page web et de ne pas indexer cette page.
Cependant, il ne faut pas confondre le META noindex avec le META robot. La fonction robot possède différentes valeurs qui permettent de bloquer l'indexation, mais aussi de bloquer le suivi des liens, comme noarchive, nosnippet, nocache, noodp, noydir'".
Ces valeurs s'ajoutent à la balise META robot et sont codées sous la forme <meta name="robots" content="nonindex, nofollow"> pour indiquer les paramètres demandés.
<meta name="robots" content="noindex">
<meta name="robots" content="noindex, nofollow">
<meta name="robots" content="noindex, nofollow, noarchive, nosnippet, nocache, noodp, noydir">
Ces valeurs permettent de sécuriser les pages web. Cependant, il est important de vérifier les données sensibles et d'évaluer leur niveau de protection et de sécurité. En cas de doute, il est conseillé de demander l'avis d'un spécialiste en informatique ou d'un expert en sécurité informatique.