Het internet is een enorme oceaan van informatie die constant verandert en uitbreidt. Een cruciale rol in het verkennen en verzamelen van deze enorme hoeveelheid data wordt gespeeld door de web crawlers, vaak aangeduid als bots, die geautomatiseerde programma's zijn. Deze bots circuleren op het web, indexeren informatie, verzamelen gegevens en bieden diverse diensten aan, en vormen zo een belangrijk onderdeel van het web-ecosysteem. Echter, niet alle bots zijn voordelig voor het web. Soms zijn er schadelijke bots die websites kunnen beschadigen of misbruiken.

In dit artikel bekijken we de verschillende soorten bekende bots die vaak op het web worden aangetroffen, hun kenmerken, hoe we nuttige bots van schadelijke bots kunnen onderscheiden, en effectieve methoden om uw website te beschermen tegen schadelijke bots.


Bekende bots die vaak op het web verschijnen (Nuttige bots)

Het meeste webverkeer komt van bots, niet van mensen. De belangrijkste en nuttige bots zijn als volgt:

1. Zoekmachinebots (Search Engine Bots)

Dit zijn de meest voorkomende en belangrijke bots. Ze verkennen webpagina's, verzamelen content en voegen deze toe aan de zoekmachine-index, zodat gebruikers informatie kunnen vinden.

  • Googlebot (Google): De toonaangevende web crawler van Google. Het verkent bijna elke pagina op het web om zoekresultaten bij te werken en levert data aan Google-diensten (zoals kaarten en nieuws). Het is zichtbaar in de User-Agent als Googlebot of Mediapartners-Google.

  • Bingbot (Microsoft Bing): De crawler van Microsoft's Bing-zoekmachine. Het verschijnt als Bingbot in de User-Agent.

  • Baidu Spider (Baidu): De crawler van Baidu, de belangrijkste zoekmachine in China. Als je de Chinese markt wilt veroveren, is het belangrijk dat Baidu Spider je site bezoekt. Dit is zichtbaar in de User-Agent als Baiduspider.

  • Yandex Bot (Yandex): De crawler van Yandex, de belangrijkste zoekmachine in Rusland. Het is zichtbaar in de User-Agent als YandexBot.

  • Yeti (Naver): De prominente zoekmachine crawler van Naver in Zuid-Korea. Deze bot verzamelt zoekresultaten die specifiek zijn voor de Koreaanse markt, en het is zichtbaar in de User-Agent als Yeti.

2. Social Media Bots

Deze bots worden gebruikt voor het genereren van voorvertoningen (titels, beschrijvingen, afbeeldingen) van links wanneer ze worden gedeeld op sociale media.

  • Facebook External Hit (Facebook): Haalt pagina-informatie op wanneer een link op Facebook wordt gedeeld. Het verschijnt in de User-Agent als facebookexternalhit.

  • Twitterbot (Twitter/X): Genereert linkvoorvertoningen op Twitter. Het verschijnt in de User-Agent als Twitterbot.

  • Slackbot (Slack): Genereert voorvertoningen wanneer links op Slack worden gedeeld. Het verschijnt in de User-Agent als Slackbot.

3. Monitoring/Analyzing Bots

Deze bots worden gebruikt om de status, prestaties en beveiligingskwetsbaarheden van websites te monitoren of om verkeer te analyseren.

  • UptimeRobot, Pingdom: Monitoren de uptime van een website en sturen een waarschuwing wanneer deze uitvalt.

  • Site Crawlers (Screaming Frog, Ahrefsbot, SemrushBot, etc.): SEO-tools die websites analyseren voor SEO-verbeterpunten of concurrentieanalyse-gegevens verzamelen. De naam van het betreffende hulpmiddel is zichtbaar in de User-Agent.

  • Ahrefsbot (Ahrefs): Ahrefs is een van de krachtigste SEO-analysecrawlers en Ahrefsbot is de meest actieve commerciële crawler op het web. Het verzamelt enorme SEO-gegevens zoals backlinks, zoekwoordposities, organisch verkeer, etc., en stelt dit ter beschikking aan gebruikers van Ahrefs. Het crawlt bovendien op zeer grote schaal voor de opbouw van de backlink-database, waardoor het naar voren komt als een van de meest zichtbare bots in webserverlogs na Googlebot. Het verschijnt in de User-Agent als AhrefsBot.


Het Onderscheiden van Schadelijke Bots en Nuttige Bots

Vergelijking van goede bots vs slechte bots

De impact van botverkeer op uw website varieert sterk, afhankelijk van het doel en het gedrag van de bot. Schadelijke bots kunnen de middelen van uw website uitputten, gegevens stelen of beveiligingskwetsbaarheden misbruiken.

Kenmerken van Nuttige Bots

  • Respect voor robots.txt: De meeste nuttige bots respecteren het robots.txt bestand van de website en volgen de daarin gespecificeerde regels (toegestane/verboden gebieden voor crawlen, crawl-snelheid, etc.).

  • Normaal verzoekpatroon: Ze hebben een geschikte vertraging tussen verzoeken om de server niet te overbelasten.

  • Officiële User-Agent: Ze gebruiken een duidelijke en bekende User-Agent string, die vaak de eigenaar van de bot bevat (bijv. Googlebot/2.1 (+http://www.google.com/bot.html)).

  • Legitieme IP-adressen: Ze sturen verzoeken vanaf het werkelijke IP-bereik van de bot-eigenaar (bijv. Googlebot gebruikt het IP-bereik dat eigendom is van Google).

Kenmerken van Schadelijke Bots

  • Negeren van robots.txt: Ze negeren het robots.txt bestand en proberen ongeoorloofd toegang te krijgen tot gebieden die geen toegang verlenen.

  • Ongebruikelijke verzoekpatronen: Zij overbelasten de server met herhaalde verzoeken binnen korte tijd (bijv. pogingen tot DDoS-aanval), en crawlen met een onrealistisch hoge snelheid.

  • Vervalsing van User-Agent: Ze vervalsen de User-Agent van nuttige bots (bijv. Googlebot) om zich te verbergen, of gebruiken willekeurig gegenereerde User-Agent strings.

  • Onbekende IP-adressen: Ze verbergen hun IP-adressen of veranderen deze vaak door gebruik te maken van proxyservers, VPN's en zombie-PC's.

  • Kwaadaardige activiteiten:

    • Content Scraping: Ze kopiëren ongeoorloofd de inhoud van websites en publiceren of verkopen deze op andere websites.

    • Inventory Sniping: Ze houden snel de voorraad van producten op e-commerce sites in de gaten om deze uit te kopen.

    • Credential Stuffing: Ze proberen in te loggen met gestolen gebruikersaccountinformatie op andere websites.

    • Spam Registraties: Ze registreren automatisch spaminhoud op forums of in reactiesecties.

    • DDoS-aanvallen: Ze genereren massaal verkeer om de website plat te leggen.

    • Kwetsbaarheidsscanning: Ze scannen automatisch naar bekende beveiligingskwetsbaarheden op websites om aanvalspunten te vinden.


Effectief Schadelijke Bots Blokkeren

Kwaadaardige bots negeren regels zoals robots.txt en proberen zich voor te doen als echte gebruikers om toegang te krijgen tot de website. Daarom is het belangrijk om hun ongebruikelijke gedragspatronen te detecteren en alleen die verzoeken selectief te blokkeren met geavanceerde strategieën.

1. IP-adres en User-Agent gebaseerde blokkades (Beperkte initiële verdedigingslinie)

Als kwaadaardig verkeer aanhoudend afkomstig is van specifieke IP-adressen of -reeksen, of als ze duidelijk schadelijke User-Agent strings gebruiken, kan deze methode tijdelijk effectief zijn.

  • Webserverinstellingen (Apache, Nginx):

    • Specifieke IP-adressen blokkeren:
# Nginx Voorbeeld
deny 192.168.1.100;
deny 10.0.0.0/8;
- **Kwaadaardige `User-Agent` blokkeren:**
# Apache .htaccess Voorbeeld
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "BadBotString|AnotherBadBot" [NC]
RewriteRule .* - [F,L] # 403 Forbidden retourneren

Limitaties: IP-adressen zijn dynamisch of kunnen gemakkelijk worden omzeild via proxy's, VPN of Tor-netwerken. Kwaadaardige bots kunnen hun IP-adressen bijna oneindig veranderen, waardoor IP-gebaseerde blokkades alleen maar de beheerslast verhogen zonder een duurzame oplossing te bieden. User-Agent kan ook eenvoudig worden vervalst, zodat deze methode vaak niet voldoende is om verfijnde kwaadaardige bots te blokkeren.

2. Verzoek snelheid beperking (Rate Limiting)

Deze techniek beperkt of blokkeert verzoeken wanneer het aantal aanvragen vanuit een specifiek IP-adres, User-Agent of bepaalde URL in korte tijd onrealistisch stijgt. Dit is effectief bij het voorkomen van DDoS-aanvallen of overmatige scraping-pogingen.

  • Webserverinstellingen (Nginx Voorbeeld):
# Binnen http-blok van Nginx
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;

# Binnen server of locatie blok
location / {
    limit_req zone=mylimit burst=10 nodelay; # Sta 5 verzoeken per seconde toe, tot 10 in burst
    # ...
}

Moeilijkheid en risico: Rate limiting is zeer nuttig, maar de juiste drempelinstellingen kunnen zeer moeilijk zijn. Te strikte instellingen kunnen de toegang tot de dienst belemmeren voor normale gebruikers of nuttige zoekmachinebots. Aan de andere kant kunnen te losse instellingen schadelijke bots de kans geven om hun doel te bereiken. Het vereist een diep begrip van de specifieke kenmerken van de dienst en reguliere verkeerspatronen, evenals voortdurende monitoring en afstemming.

3. Gedragsmatige detectie en op maat gemaakte defensieve systemen (de meest effectieve strategie)

Dit is de meest verfijnde en effectieve methode. Kwaadaardige bots kunnen hun IP of User-Agent verbergen, maar hun gedragspatronen op de website zijn vaak behoorlijk afwijkend. Het is essentieel om deze abnormale gedragingen te analyseren, schadelijke bots te identificeren en een defensief systeem op basis van deze patronen te bouwen.

  • Het belang van verkeersmonitoring en loganalyse:

    Webserverlogs (Access Log) zijn een van de belangrijkste databronnen voor het begrijpen van het gedrag van bots. Het is essentieel om regelmatig (minstens één keer per dag) logs te beoordelen en te analyseren. Door loganalyse kunnen abnormaliteiten in het gedrag van schadelijke bots worden ontdekt.

    • Abnormale verkenningspaden: Volgorde van pagina's die mensen normaal niet zouden bezoeken, onrealistische snelle pagina-overgangen, of herhaalde toegang tot specifieke pagina's.

    • Herhaalde specifieke pogingen: Herhaalde mislukte inlogpogingen, inloggen met niet-bestaande accounts, eindeloze indieningen van specifieke formulieren, en het reserveren van plaatsen met macros op reserveringssystemen.

    • Verdachte URL-verzoeken: Herhaalde pogingen om toegang te krijgen tot bekende kwetsbaarheidspaden op de website die niet bestaan (bijv. /wp-admin/, /phpmyadmin/, .env bestanden, enz.).

    • HTTP-headeranalyse: Abnormale combinaties of volgordes van HTTP-headers, ontbrekende headers, enz.

  • Voorbeelden van het patroon van kwaadaardig botgedrag:

    De specifieke gedragingen van schadelijke bots zoals ze in de logs worden ontdekt, moeten worden vastgesteld en op basis daarvan defensielogica worden geïmplementeerd.

    • GET /cgi-bin/luci/;stok=.../shell?cmd=RCE

      • Omschrijving: Dit is een poging tot aanval die gericht is op een kwetsbaarheid voor Remote Code Execution (RCE) in het OpenWrt beheerderspaneel. Het gaat om kwetsbaarheden binnen Linux-gebaseerde systemen die voornamelijk op routers en embedded apparaten worden gebruikt.
    • POST /wp-login.php (herhaalde inlogpogingen)

      • Omschrijving: Dit is een brute-force aanval op de WordPress beheerderspagina of een poging tot credential stuffing.
    • GET /HNAP1/

      • Omschrijving: Dit is een scan- en aanvalspoging gericht op de HNAP1 (Home Network Administration Protocol) kwetsbaarheid die in D-Link-routers werd ontdekt.
    • GET /boaform/admin/formLogin

      • Omschrijving: Dit is een poging om het beheerdersinlogpaneel van de Boa webserver die op verouderde routers of webcams wordt gebruikt, binnen te dringen.
    • GET /.env of GET /.git/config

      • Omschrijving: Dit is een poging om gevoelige informatie te stelen via toegang tot de .env (omgevingsvariabelen) of .git directories.

    Bij het detecteren van dergelijke patronen kunnen verzoeken worden geblokkeerd of kan het IP tijdelijk op de zwarte lijst worden geplaatst. Dit kan gebeuren via server-side middleware (bijv. Django middleware) of via webserverinstellingen (Nginx map module, Apache mod_rewrite, enz.).

  • Controle van JavaScript-uitvoering:

    De meeste kwaadaardige bots voeren JavaScript niet perfect uit zoals echte browsers. Methoden zoals het controleren van verborgen JavaScript code (bijv. het aanzetten tot klikken op een specifiek DOM-element), canvas fingerprinting of het aanroepen van browser-API's kunnen helpen bij het identificeren van bots en clients blokkeren die falen in het uitvoeren van JavaScript.

4. Gebruik van Honeypot

Honeypot is een opzettelijke 'val' om kwaadaardige bots te lokken en te identificeren. Het bevat elementen op de webpagina die onzichtbaar zijn voor normale gebruikers, maar zijn ontworpen om door geautomatiseerde bots te worden ontdekt of ermee te interageren.

  • Werking:

    1. Verborgen links/velden: Door gebruik te maken van CSS (display: none;, visibility: hidden;, height: 0;, enz.) of door JavaScript om ze dynamisch te maken en buiten beeld te plaatsen, genereer je links of formulier velden die voor de gebruiker volstrekt onzichtbaar zijn.

    2. Gedrag van de bot aanmoedigen: Mensen die normale webbrowsers gebruiken, kunnen deze elementen niet zien en kunnen er niet mee interageren. Maar kwaadaardige bots die mechanisch alle links of formulieren van de webpagina parseren, kunnen deze verborgen elementen tegenkomen en proberen ermee te interageren (bijv. waarden invoeren in verborgen formulier velden of klikken op verborgen links).

    3. Identificeren van kwaadaardige bots: Wanneer waarden in verborgen velden worden ingevoerd of wanneer aanvragen naar verborgen links plaatsvinden, kunnen deze als duidelijke tekenen van bots worden beschouwd.

    4. Automatische blokkering: IP-adressen of sessies waar deze gedragingen zijn gedetecteerd, kunnen onmiddellijk op de zwarte lijst worden gezet of geblokkeerd worden.

  • Voorbeeld van implementatie:

<form action="/submit" method="post">
    <label for="username">Gebruikersnaam:</label>
    <input type="text" id="username" name="username">

    <div style="position: absolute; left: -9999px;">
        <label for="email_hp">Laat dit veld leeg:</label>
        <input type="text" id="email_hp" name="email_hp">
    </div>

    <label for="password">Wachtwoord:</label>
    <input type="password" id="password" name="password">
    <button type="submit">Inloggen</button>
</form>
De server beschouwt een verzoek met een waarde in het `email_hp` veld als een bot en blokkeert het.
  • Voordelen: Effectief identificeert kwaadaardige bots zonder de gebruikerservaring te verstoren. Relatief eenvoudig te implementeren en moeilijk te vervalsen.

5. Web Application Firewalls (WAF) en Professionele Bot Management Oplossingen

Als u een grote website of gevoelige diensten beheert, is het het meest effectief om professionele WAF-oplossingen (Cloudflare, AWS WAF, Sucuri, enz.) of botmanagementoplossingen (Cloudflare Bot Management, Akamai Bot Manager, PerimeterX, enz.) te gebruiken. Dergelijke oplossingen bieden:

  • Geavanceerde gedragsanalyse: Analyseert realtime verkeer op basis van machine learning om subtiele gedragsverschillen tussen mensen en bots te detecteren.

  • Threat Intelligence: Maakt gebruik van wereldwijde aanvalspatronen en IP-blacklist-databases om uitgebreide bedreigingen te identificeren.

  • Minimaliseren van valse positieven: Minimaliseert valse positieven voor nuttige bots en normale gebruikers terwijl het alleen schadelijke bots filtert met behulp van geavanceerde algoritmes.

  • Automatische respons: Neemt automatisch maatregelen zoals blokkeren of het verstrekken van een uitdaging voor gedetecteerde kwaadaardige bots.


Conclusie: Actieve en Meervoudige Bot Verdedigingsstrategie

Kwaadaardige bots evolueren voortdurend en proberen websites aan te vallen. robots.txt is slechts een gids voor eerlijke bots, en kan geen bescherming bieden tegen indringers. Daarom is het essentieel om een actieve en meervoudige defensieve strategie te hanteren die botgedrag analyseert en schadelijke bots selectief blokkeert.

Door abnormale gedragingen te identificeren via loganalyse, het fijn afstemmen van request rate limiting, het implementeren van honeypots, en indien nodig het inroepen van professionele botmanagementoplossingen of WAF, kan de beveiliging van uw website worden versterkt. Tegelijkertijd zorgt dit ervoor dat u soepel interactie blijft hebben met nuttige bots en hoogwaardige diensten blijven bieden aan gebruikers. Tegen welke botdreigingen is uw website het meest kwetsbaar? Dit is het moment om na te denken over de geschikte verdedigingsstrategie.