Apache2: w00tw00t.at.ISC.SANS.DFind Server-/Portscan

Es lässt sich immer häufiger beobachten, dass in den Apache-Logfiles Seitenaufrufe von Clients stammen, die veruschen eine Url mit “w00tw00t.at.ISC.SANS.DFind” oder ähnlichen Strukturen aufzurufen.

Der Grund ist der, dass im Netz infizierte Systeme oder auch ausländische Server, sogenannte Portscans auf den externen Webserver ansetzen. Die Portscans geben auskunft über die offenen Ports auf einem Webserver. Diese Ports können unter anderem der Port 80 oder 443 (SSL) für den Apache2 sein oder auch der Port 22 für SSH-Zugriffe. Als Serveradministrator sieht man die Anfragen sehr ungern. Am Samstag schickte ein PC oder Server eine HTTP/1.1-Anfrage ohne Hostname, aber mit einem Fingerprint, an meinen Webserver. Die übermittelten IP konnte ich nachverfolgen. Die Anfrage stammte aus: Russian Federation, Moscow, Digital Networks Cjsc.

[Sat Nov 24 01:42:12 2012] [error]
[client xxx.xxx.xxx.xxx] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

Die oben erwähnte Anfrage ist ein Fingerprint von DFind. Eine Software (Haacktool.DFind), die Schwachstellen von Webservern ausfindig macht. Von der Firma Symantec wurde die Software als Hacker-Tool eingestuft, denn der Vulnerability Scanner (Portscanner) sucht nach offenen Server-Ports und auch nach Diensten. Die Software selbst nutzt scheinbar noch keine Schwachstelle aus, dafür liefert es einen Report über die gefundenen Anwendungen und sofern ermittelbar, ihre Versionsnummer und mögliche Schwachstellen an den Hacker.

Mögliche HTTP/1.1 Anfragen mit Fingerprints:
/w00tw00t.at.ISC.SANS.DFind
/w00tw00t.at.ISC.SANS.MSlog
/w00tw00t.at.ISC.SANS.test0

Welche Lösungsansätze gibt es?
Ein Serveradministrator versucht natürlich diese Anfragen sofern möglich zu verhindern, jedoch ist das gerade bei einem Portscan eher schwierig.

Apache mod_security
Es lassen sich für das Apache “mod_security”-Modul zahlreiche Regeln erstellen, die eine derartige Anfrage blocken. Der Nachteil bei dieser Variante ist jedoch, dass der Apache jede Anfrage versucht zu filtern. Das Filtern geht auf die Rechenleistung und die Auslieferungsrate des Apache-Prozesses.

Fail2Ban
Fail2Ban ist ein sehr einfach eingerichtetes und ergiebiges Sicherheits-Tool für jeden Server., Es verarbeitet in regemäßigen Abständen die Log-Files und erstellt mit dieser Grundlage über die iptables Regeln, die den Zugriff für die aus dem Log-File stammenden IP-Adressen blockiert. Problematisch ist nur, dass die iptable-Regeln erst greifen, wenn die IP-Adresse bereits ihre w00tw00t-Anfrage an den Server gestellt hat.

Iptables (Linux-Firewall)
Die “Iptables” ist ein Netfilter-Modul. Es ist eine Art Software Firewall für Linux-Distributionen und soll Zugriffe (input/output) weiterleiten, blocken, verwerfen oder akzeptieren.
Mit dem unten genannten Befehl können wir, ohne schwerwiegende Performanceeinbrüche, den Zugriff für solche w00tw00t-Anfragen im Voraus blockieren.

In diesem Beispiel blocken wir die w00tw00t-Anfragen für den Port 80 (HTTP) und 443 (SSL) auf TCP-Basis. Eingetragen werden können die Regeln in der “/etc/rc.local”-Datei oder in eurer “/etc/iptables.rules”-Datei.

# drop w00tw00t attacks
iptables -I INPUT -p tcp --dport 80 -m string --to 60 --algo bm --string 'GET /w00tw00t' -j DROP
iptables -I INPUT -p tcp --dport 443 -m string --to 60 --algo bm --string 'GET /w00tw00t' -j DROP

Das Sperren der w00tw00t-Anfragen kann aber auch zahlreiche User von dem Internetauftritt aussperren, sofern sie bereits von solch einem Trojaner oder einer Software infiziert wurden.

Tags: , , , , , , , , ,

Hinterlasse eine Nachricht