Ein Honeypot für Angreifer aus dem Web und ein Verfahren für eine whitelist

Angriffen auf Webserver geht zumeist ein mehr oder weniger automatisiertes Herumprobieren voraus, mit welchem die Angreifer nach verwundbarer Software suchen. Das kann man nutzen um solche Angriffe abzuwehren.

Ich selbst benutze auf meinem Server ein kleines, selbst geschriebenes Skript und die Datei .htaccess um solche Angriffe zu erkennen und die Angreifer vorsorglich zu sperren. Um bestimmte Dienste auszunehmen arbeite ich dabei mit einer whitelist. Kommen solche vermeintlichen Angriffsvorberitungen von einer bestimmten Adresse, oder einem bestimmten Adressbereich, dann wird derjenige, der den Abruf tätigt (das kann auch ein Robot oder Bot sein) darauf hingewiesen,eine Sperrung erfolgt aber nicht.

Geschrieben ist dies in PHP für den Apache Webserver auf Linux. Bitte seien Sie vorsichtig, Sie könnten sich selbst aussperren, wenn Sie sich selbst nicht in die whitelist aufgenommen haben. Im Übrigen können Sie sich per E-Mail informieren lassen, wenn eine IP gesperrt wird.

1. Die Datei " ___honeypot.php":

Diese biete ich zum Download an.

Die Datei mit den "whitelist"-Einträgen:

Dies sind IP-Adressen in folgenden Formen:

192.168.10.10                   # Einzelne IP-Adresse
192.168.10.1 - 192.168.10.10    # Bereich von - bis
192.168.10.1/255.255.255.0      # IP-Adresse und Netzwerkmaske
192.168.10.1/24                 # IP-Adresse und Netzwerkmaske

2. Beispiel der Datei "___honeypot_whitlelist.txt"

# Dieser Server:
81.28.232.70
127.0.0.1

#Google:
66.249.64.1/19
216.239.32.0-216.239.63.255
64.68.80.0 - 64.68.87.255
66.102.0.0 - 66.102.15.255
64.233.160.0 - 64.233.191.255
66.249.64.0 - 66.249.95.255
72.14.192.0 - 72.14.255.255
209.85.128.0 - 209.85.255.255
198.108.100.192 - 198.108.100.207
173.194.0.0 - 173.194.255.255
216.33.229.144 - 216.33.229.151
216.33.229.160 - 216.33.229.167
209.185.108.128 - 209.185.108.255
70.32.128.0 - 70.32.159.255
216.109.75.80 - 216.109.75.95
64.68.88.0 - 64.68.95.255
64.68.64.64 - 64.68.64.127
64.41.221.192 - 64.41.221.207
74.125.0.0 - 74.125.255.255

Hinzu kommen Einträge in der Datei .htaccess oder der Serverkonfiguration, mit denen sichergestellt wird, dass bei einem Angriffsversuch auch das Skript (Programm) "___honeypot.php" ausgeführt wird:

3. Einträge in Datei ".htaccess"

###
# Rules for Honeypot
###

# Dirs
RewriteRule   ^admin/(.*)$         ./___honeypot.php [L]
RewriteRule   ^admin$              ./___honeypot.php [L]
RewriteRule   ^wp-admin/(.*)$      ./___honeypot.php [L]
RewriteRule   ^wp-admin$           ./___honeypot.php [L]
RewriteRule   ^noxdir/(.*)$        ./___honeypot.php [L]
RewriteRule   ^noxdir$             ./___honeypot.php [L]
RewriteRule   ^phpMyAdmin/(.*)$    ./___honeypot.php [L]
RewriteRule   ^phpMyAdmin$         ./___honeypot.php [L]
RewriteRule   ^phpmyadmin/(.*)$    ./___honeypot.php [L]
RewriteRule   ^phpmyadmin$         ./___honeypot.php [L]
RewriteRule   ^pma/(.*)$           ./___honeypot.php [L]
RewriteRule   ^pma$                ./___honeypot.php [L]
RewriteRule   ^PMA/(.*)$           ./___honeypot.php [L]
RewriteRule   ^PMA$                ./___honeypot.php [L]
RewriteRule   ^xampp/(.*)$         ./___honeypot.php [L]
RewriteRule   ^xampp$              ./___honeypot.php [L]
RewriteRule   ^vhcs2/(.*)$         ./___honeypot.php [L]
RewriteRule   ^vhcs$               ./___honeypot.php [L]
RewriteRule   ^mysql/(.*)$         ./___honeypot.php [L]
RewriteRule   ^mysql$              ./___honeypot.php [L]
RewriteRule   ^myadmin/(.*)$       ./___honeypot.php [L]
RewriteRule   ^myadmin$            ./___honeypot.php [L]
RewriteRule   ^mysqldumper/(.*)$   ./___honeypot.php [L]
RewriteRule   ^mysqldumper$        ./___honeypot.php [L]
RewriteRule   ^db/(.*)$            ./___honeypot.php [L]
RewriteRule   ^db$                 ./___honeypot.php [L]
RewriteRule   ^mysqldump/(.*)$     ./___honeypot.php [L]
RewriteRule   ^mysqldump$          ./___honeypot.php [L]
RewriteRule   ^msd/(.*)$           ./___honeypot.php [L]
RewriteRule   ^msd$                ./___honeypot.php [L]
RewriteRule   ^backup/(.*)$        ./___honeypot.php [L]
RewriteRule   ^backup$             ./___honeypot.php [L]
RewriteRule   ^dmpr/(.*)$          ./___honeypot.php [L]
RewriteRule   ^dmpr$               ./___honeypot.php [L]
RewriteRule   ^websql/(.*)$        ./___honeypot.php [L]
RewriteRule   ^websql$             ./___honeypot.php [L]
RewriteRule   ^sqlweb/(.*)$        ./___honeypot.php [L]
RewriteRule   ^sqlweb$             ./___honeypot.php [L]
RewriteRule   ^sqlmanager/(.*)$    ./___honeypot.php [L]
RewriteRule   ^sqlmanager$         ./___honeypot.php [L]
RewriteRule   ^mysqlmanager/(.*)$  ./___honeypot.php [L]
RewriteRule   ^mysqlmanager$       ./___honeypot.php [L]
RewriteRule   ^typo3/(.*)$         ./___honeypot.php [L]
RewriteRule   ^typo3$              ./___honeypot.php [L]
RewriteRule   ^horde/(.*)$         ./___honeypot.php [L]
RewriteRule   ^horde$              ./___honeypot.php [L]

#Files
RewriteRule   proxyheader.php(.*)$ ./___honeypot.php [L]
RewriteRule   judge.php(.*)$       ./___honeypot.php [L]
RewriteRule   ip.php(.*)$          ./___honeypot.php [L]
RewriteRule   proxy-1.php(.*)$     ./___honeypot.php [L]
RewriteRule   uploadify.php(.*)$   ./___honeypot.php [L]

Den Honeypot habe ich auf Grund meiner Erfahrungen mit ähnlichen Versuchen just eines großen und ziemlich unverschämt agierenden Mitbewerbers programmiert und eingerichtet. Natürlich muss womöglich Einiges an Ihre Gegebenheiten angepasst werden. Dabei helfe ich jedoch gern und günstig.


Weitere Informationen in diesem Bereich: