Failles et vulnérabilités du Web

Google Bot fait des attaques SQL Injection

Blog Failles et vulnérabilités du Web Google Bot fait des attaques SQL Injection
0 commentaire

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=%200×527%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.

0 commentaire