2. Qu’est-ce qu’un bot ?
● “Robot” parcourant le Web
● Plusieurs buts :
○ Indexer/Scraper le web (GoogleBot)
○ Attaque distribuée (Botnet)
○ Spammer (Spambot)
○ Autres (Site de rencontre, triche, etc.)
3. Détecter un scraper
● But du bot : récupérer du contenu de
façon plus ou moins légale
● Méthode du bot : parcourir toutes les
pages du site web
● Repérer un bot :
○ Headers (UA, Accept-Language)
○ Charge les fichiers externes ?
○ Navigateur (JS ? Lang ? Screen ?)
○ Comportement ?
4. Se débarrasser d’un scraper
●
●
●
●
Pas d’UA ? Ou UA étrange ?
Il ne charge pas l’image “test_bot.png” ?
JS non activé ? Langue non française ?
Il parcourt plus de 10 pages par minutes
? Il charge les pages dans un ordre
étrange ?
-> Vous le bannissez (iptables, coté serveur,
trou noir, etc.)
5. Détecter un DDoS
● But du bot : faire tomber un site via un
DDoS (Distributed Denial-of-Service)
● Méthode du bot : charger une page
lourde de très nombreuses fois
● Repérer un bot :
○ La même IP charge la même page
plusieurs fois
○ Les IPs sont russes ou chinoises
○ Les connections restent ouvertes
6. Se débarrasser d’un DDoS
● Luter contre le pic de trafic :
○ Redirection vers un trou noir
○ Mettre en place un CDN
● Luter contre la charge serveur :
○ Vérifier son code (!)
○ Installer et configurer Iptables
○ Limiter les connections SYN et UDP
7. Détecter un spammer
● But du bot : publier des messages sur
votre site/forum/blog
● Méthode du bot : remplit les formulaires
de publication et les soumets
● Repérer un bot :
○ Les messages contiennent des
urls et des mots clés étranges
○ Il n’a pas de referrer
8. Se débarrasser d’un spammer
● Mettre en place un CAPTCHA intelligent
○ Qui ne puisse pas être envoyé sur les
decaptcher (deathbycaptcha.com)
○ En français, afin que les boites
offshores ne puisse pas le décoder
● Mettre tous ces liens en nofollow
● Utiliser un service externe qui filtre pour
vous (Akismet, Mollom, Defensio)
9. Autres solutions diverses
● Comportement du bot :
○ 0 seconde par page
○ Pas de referrer
○ 1 connexion par jour depuis 30 jours..
● Vérifier l’IP (get_hostname)
● Vérifier tous les points par subnet
● Project HoneyPot