In letzter Zeit haben vermehrt Bad Bots, ( zu deutsch: bösartige Roboter ) bei einem unserer Kunden automatisierte Massen Cyberangriffe gestartet. Natürlich gibt es unter den Bad Bots auch vorgesehene Testangriffe, allerdings das Ausmaß dieses Massen Angriffs, hat die üblichen Grenzwerte deutlich überschritten…

Die Anzahl der Bad Bots scheint stetig zu wachsen. Ich habe mich zuerst für die Standard Admin Vorgehensweise entschieden, wie das aussperren der Bots mittels nginx. Jedoch können Sie sich nicht vorstellen, wie viele tausende Bad Bots das waren. Daher habe ich mich zusätzlich entschlossen einen Honeypot zu installieren, auf den die bösartigen Roboter dann hereinfallen werden.

Quellcode Honeypot

Eintrag in der robots.txt:

User-agent: *
Disallow: /honeypot.php

Sie müssen eine PHP Datei entwickeln. Diese PHP Datei Datei Ihnen automatisiert eine Email senden, wenn ein neuer Roboter in Ihren Honeypot getappt ist. Es könnte sein das Sie tausende eMails bekommen, wenn Sie von vielen Bots Angegriffen werden. Daher können Sie an dieser Stelle auch eine eMail Adresse eintragen, die für Sie nicht relevant ist.

<?php

/* honeypot.php */
$email = 'Ihr Mail @domain.de';
$subject = 'Neuer Bot im Honeypot';
$mailContent = 'Datum: '.date('d.m.Y, H:i:s')."\r\n".
'IP-Adresse: '.$_SERVER['REMOTE_ADDR']."\r\n".
'Host: '.$_SERVER['REMOTE_HOST']."\r\n".
'User-Agent: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
mail($email, $subject, $mailContent);

?>

In den Honigtopf gelaufene Bad Bots aussperren

ordre allow,deny 
deny from 209.237.238.230
deny from 38.118.25.59
allow from all
Reengineering On
 RewriteCond %{HTTP_USER_AGENT} ^Bot Eintragen [OR]
 RewriteCond %{HTTP_USER_AGENT} ^Bot Eintragen
 RewriteRule ^.* - [F,L]

Der Honeypot für automatisiere Cyberattacken und böse Bots ist nun bereit.

Laden Sie die Dateien auf Ihren Server. Sie dürfen dieses Bad Bot Honeypot Script weiterverwenden. Ich habe das Script Open Source auf Github zum Download zu Verfügung gestellt.

 

Weitere Standard Admin Maßnahmen:

(Hinweis: Diese Maßnahmen reichen alleine nicht aus )

Bad Bots mit nginx.conf blockieren

Mit einem NGINX-Server sperren Sie Bad Bots  in der Konfigurationsdatei – meist /usr/local/nginx/conf/nginx.conf.

if ($http_user_agent ~ (AhrefsBot|Uptimebot|Cliqzbot|Wget|Catall Spider|AcoiRobot) ) {
    return 403;
}

Zugriffe mit User Agent Strings blockieren

In der .htaccess Datei:

BrowserMatchNoCase "NAMEN DES BOTS EINTRAGEN" bots


Order Allow,Deny
Allow from ALL
Deny from env=bots




Login-Versuche und manipulierte User Agent Strings

Gefährlich sind Bad Bots, wenn Sie Automatisiert Sicherheitslücken suchen, daher sollten regelmäßig Log Dateien kontrolliert werden. Genau bei dieser Standard Prozessdur, sind uns vermehrt Automatisierte Cyberangriffe aufgefallen.

Eigentlich zeigt der User Agent String – die Kennung des Browsers –, ob hier tatsächlich ein Besucher oder ein Bot die Seite besucht. Aber der User Agent String lässt sich ohne großen Aufwand ändern, um das wirkliche Anliegen zu verschleiern. Der einsame Hacker ist längst ausgestorben. Stattdessen sitzen hinter den Angriffsversuchen Botnetze mit Hunderten und Tausenden von unterschiedlichen IP-Adressen.

24.50.217.60 - - [08/Nov/2017:05:34:54 +0000] "GET /login HTTP/1.1" 403 162 "-" 
                 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
…
89.205.125.170 - - [08/Nov/2017:16:19:31 +0000] "GET /login HTTP/1.1" 403 162 "-" 
                 "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/40.1"

 

Mit einem SSH-Zugang listet und sortiert der Aufruf von cat die User Agent Strings nach der Zahl der Treffer.

cat test.log | awk -F\" '{print $6}' | sort | uniq -c | sort -n