Google Bot fait des attaques SQL Injection

Une chose que l'on sait quand on écrit des règles dans un pare-feu ou dans les fichiers .htaccess, c'est de ne pas bloquer les moteurs de recherche comme Google, Bing, Yahoo etc.

Parfois lors des possibles scénarios qu'on doit imaginer pour trouver d'où vient l'attaque, comment elle est arrivée, il faut éplucher les logs. Et en découvrant ce genre de scénario, on a de quoi se prendre la tête entre les mains et se dire "Dois-je le bloquer ? Pourquoi lui ?"

Les requêtes GET

Jusqu'à ces jours récents, ce scénario n'avait pas encore été trouvé, divulgué et c'est par hasard, en épluchant les logs qu'un consultant en sécurité (source) a découvert que Google faisait des attaques SQL sur le site de son client. Il a bien sûr bloqué l'adresse IP pensant que c'était une fausse adresse, mais finalement, il s'est rendu compte que non, il s'agit bien de la véritable adresse du bot du géant Google.

66.249.66.138 - - [05/Nov/2013:00:28:40 -0500] "GET /url.php?variable=")%20declare%20@q%
20varchar(8000(%20select%20@q%20=%200x527%20exec(@q)%20-- HTTP/1.1" 403 4439 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Il s'agit réellement du Google Bot et il a réellement aussi réalisé cette attaque SQL injection via une requête en GET.

Alors Google s'est-il fait pirater ? L'adresse IP a-t-elle été usurpée ? Est-ce un clone du bot créé par un hacker ? Non pas du tout ! Regardons de plus prêt l'IP :

$ host 66.249.66.138
138.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-138.googlebot.com.

NetRange:       66.249.64.0 - 66.249.95.255
CIDR:           66.249.64.0/19
OriginAS:       
NetName:        GOOGLE

Ca ne ment pas, c'est bien Google ça ...

Que se passe-t-il ?

Google n'a pas d'intérêt à lancer ces attaques sur les sites, par contre un pirate en a. Il va utiliser les bots pour dégrossir le travail d'attaque sans utiliser ses ressources serveurs, sans perdre le temps de le faire lui même, sans être vu, tracé par son adresse IP.

Dans ce scénario le bot crawlait le site A, celui du pirate. Ce site a un certain nombres de liens, certains pointent vers le site B, celui de la victime. Le pirate a simplement posé des liens contenant les tentatives d'exploit de la faille SQL injection, il compte alors sur les bots de Google pour visiter ces liens et donc, faire le sale travail pour lui ! Difficile de dire si c'est déjà arrivé auparavant, surement que oui mais qui a fait attention à ça.

Exemple de lien :

http://exemple.com/url.php?variable=")%20declare%20@q%20varchar(8000(%20select%20@q%20=%200x527%20exec(@q)%20--

Le responsable

On ne peut pas dire que Google soit le responsable de ses attaques, finalement il ne fait que son travail de crawler vos sites et visiter les liens. Le responsable reste la personne qui a mis en place le piège et non celui qui l'actionne par mégarde ou ignorance.

Comment protéger votre WordPress ?

Alors que faire contre ça, comment éviter de recevoir ces attaques de la part d'un site auquel on donne toute sa confiance. Je pense qu'il ne faut pas mettre une liste blanche de sites au premier niveau. Il faut d'abord vérifier que la requête ne contienne pas de mots clés étranges comme ici exec, ou d'autres comme UNION, base64 etc

Pour cela, il existe le plugin BBQ qui bloque ces requêtes considérées comme malicieuse. Je vous invite à le tester.

Share!

Commentaires

    • a écrit

      Hello,
      Ce n’est pas nouveau de voir passer un tas de connerie via google vu que leurs filtrages sont quasi inexistant.
      Par contre dans le cadre de ton filtrage de requête, via l’url je présume. Imaginons que j’ai un articles ayant pour url UNION, ta solution va-t-elle générer un bug ?
    • a écrit

      Hello
      Je vois ce que tu veux dire, ici l’exemple n’est pas bon car « UNION » est autorisé, mais si elle contient « request_uri_items » elle sera bloquée. Le plugin BBQ proposé contient des filtres WordPress pour mieux gérer ces cas où certains mots peuvent être utilisés sur le site de la personne. Mais, un filtre à poser, créer soit même ce n’est pas donné à tout le monde, il faut ici penser qu’une personne qui n’est pas codeur doit pouvoir se protéger facilement et rapidement à moindre frais.
      Je suis donc en train de refaire BBQ pour éviter de passer par des filtres.
      Sinon tu m’as dit sur twitter qu’un fonction php suffirait ? Dis nous en plus merci
  1. Dimitri a écrit

    C’est la première fois que j’entends parler d’un détournement des bots Google.
    Très ingénieuse comme technique en tous cas, il fallait y penser !

    Merci pour ces infos,

  2. a écrit

    Depuis peu, il existe un onglet « Problèmes de sécurité » dans Google Tools. Du coup, à la lecture du titre de l’article je me disais que Google faisait effectivement des injections pour vérifier la vulnérabilité. Ce n’est pourtant pas ce que tu développes. Est-ce que ce serait quand même possible ou s’agit-il de hackers ? en tout cas, je note l’idée. ^^
  3. a écrit

    Hello,

    Google ne fera jamais ça de lui-même. Il y a trop de risque de plaintes.
    Par si Google réalise effectivement ce genre de test de failles, croyez bien que vous ne verrez rien du tout dans vos logs !
    Enfin, je ne pense que les urls soient suivies par Google pour « attaquer » les sites. Les hackers usurpent le temps d’une attaque une IP et choisissent celle de Google. Bons nombres de chinois font la même chose en se faisant passer pour Baidu !

  4. a écrit

    Oula. Je peux savoir comment on fait pour :
    1) réaliser des tests de faille sans apparaître dans les logs
    2) « usurper » (spoofer) l’adresse IP de Google ?
    Ca m’intéresse :)
    • a écrit

      PS : à l’époque on utilisait des XSS (site de carrefour etc) pour faire indexer nos liens. Et quand Googlebot ne suivait pas les liens, on lui servait juste un lien raccourci « plus digeste » et on envoyait en 301 vers la cible.
      Bilan de l’opération : aucun impact sur le SEO :p
    • a écrit

      Un bon hacker fera disparaitre les logs ou supprimera les entrées le concernant ou les modifiera par d’autres choses. C’est complexe mais ça c’est déjà vu plusieurs fois. Reste à savoir si l’enjeu en vaut la peine. On apparait forcément dans les logs quand on sait ce que l’on cherche, c’est pas toujours évident de savoir si le contenu de la ligne de log est correcte ou pas., surtout si les trois quarts des informations sont usurpées.
    • a écrit

      Bonsoir, un hacker qui a pénétré un site efface ses traces, oui, mais ici, il ne peut pas effacer ses traces, il n’est pas entré ! C’est Google qui est utilisé en lieu et place de son IP.

Laisser un commentaire

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

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>