Umgang mit HTTP-w00tw00t-Angriffen

82

Ich habe einen Server mit Apache und ich habe vor kurzem mod_security2 installiert, weil ich von diesem oft angegriffen werde:

Meine Apache-Version ist Apache v2.2.3 und ich verwende mod_security2.c

Dies waren die Einträge aus dem Fehlerprotokoll:

[Wed Mar 24 02:35:41 2010] [error] 
[client 88.191.109.38] client sent HTTP/1.1 request without hostname 
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

[Wed Mar 24 02:47:31 2010] [error] 
[client 202.75.211.90] client sent HTTP/1.1 request without hostname 
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

[Wed Mar 24 02:47:49 2010] [error]
[client 95.228.153.177] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

[Wed Mar 24 02:48:03 2010] [error] 
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

Hier sind die Fehler aus dem access_log:

202.75.211.90 - - 
[29/Mar/2010:10:43:15 +0200] 
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - - 
[29/Mar/2010:11:40:41 +0200] 
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - - 
[29/Mar/2010:12:37:19 +0200] 
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-" 

Ich habe versucht, mod_security2 folgendermaßen zu konfigurieren:

SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecFilterSelective REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"

Die Sache in mod_security2 ist, dass SecFilterSelective nicht verwendet werden kann, es gibt mir Fehler. Stattdessen verwende ich eine Regel wie diese:

SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecRule REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"

Auch das geht nicht. Ich weiß nicht mehr, was ich tun soll. Hat jemand einen Rat?

Update 1

Ich sehe, dass niemand dieses Problem mit mod_security lösen kann. Bisher scheint die Verwendung von IP-Tabellen die beste Option zu sein, aber ich denke, die Datei wird extrem groß, da sich die IP-Adresse mehrmals am Tag ändert.

Ich habe mir 2 andere Lösungen ausgedacht, kann sich jemand dazu äußern, ob man gut ist oder nicht.

  1. Die erste Lösung, die mir in den Sinn kommt, ist das Ausschließen dieser Angriffe aus meinen Apache-Fehlerprotokollen. Dadurch kann ich andere dringende Fehler leichter erkennen, wenn sie auftreten, und muss kein langes Protokoll durchspucken.

  2. Die zweite Option ist meiner Meinung nach besser und blockiert Hosts, die nicht in der richtigen Weise gesendet werden. In diesem Beispiel wird der w00tw00t-Angriff ohne Hostnamen gesendet, sodass ich denke, dass ich die Hosts blockieren kann, die nicht in der richtigen Form vorliegen.

Update 2

Nachdem ich die Antworten durchgesehen hatte, kam ich zu den folgenden Schlussfolgerungen.

  1. Benutzerdefinierte Protokollierung für Apache zu haben, wird einige unnötige Ressourcen in Anspruch nehmen, und wenn es wirklich ein Problem gibt, möchten Sie wahrscheinlich das vollständige Protokoll anzeigen, ohne dass etwas fehlt.

  2. Es ist besser, die Treffer einfach zu ignorieren und sich auf eine bessere Analyse Ihrer Fehlerprotokolle zu konzentrieren. Verwenden Sie dazu Filter für Ihre Protokolle.

Letzte Gedanken zum Thema

Der oben erwähnte Angriff wird Ihren Computer nicht erreichen, wenn Sie zumindest ein aktuelles System haben, sodass Sie sich im Grunde keine Sorgen machen müssen.

Es kann schwierig sein, alle falschen Angriffe nach einer Weile aus den echten herauszufiltern, da sowohl die Fehlerprotokolle als auch die Zugriffsprotokolle extrem umfangreich werden.

Wenn Sie verhindern, dass dies in irgendeiner Weise geschieht, werden Sie Ressourcen kosten, und es wird empfohlen, Ihre Ressourcen nicht für unwichtige Dinge zu verschwenden.

Die Lösung, die ich jetzt benutze, ist Linux Logwatch . Es sendet mir Zusammenfassungen der Protokolle, die gefiltert und gruppiert werden. Auf diese Weise können Sie das Wichtige leicht vom Unwichtigen trennen.

Vielen Dank für die Hilfe, und ich hoffe, dieser Beitrag kann auch jemand anderem weiterhelfen.

Saif Bechan
quelle

Antworten:

34

Aus Ihrem Fehlerprotokoll senden sie eine HTTP / 1.1-Anforderung ohne den Host: -Teil der Anforderung. Nach allem, was ich gelesen habe, antwortet Apache mit einem Fehler von 400 (ungültige Anforderung) auf diese Anforderung, bevor es an mod_security übergibt. Es sieht also nicht so aus, als würden Ihre Regeln verarbeitet. (Apache, der sich damit befasst, bevor er an mod_security übergeben muss)

Versuchen Sie es selbst:

Telnet-Hostname 80
GET /blahblahblah.html HTTP / 1.1 (Enter)
(eingeben)

Sie sollten den 400-Fehler erhalten und denselben Fehler in Ihren Protokollen sehen. Dies ist eine schlechte Anfrage und Apache gibt die richtige Antwort.

Die richtige Anfrage sollte so aussehen:

GET /blahblahblah.html HTTP / 1.1
Host: blah.com

Ein Workaround für dieses Problem könnte darin bestehen, mod_uniqueid zu patchen und eine eindeutige ID auch für eine fehlgeschlagene Anforderung zu generieren, damit Apache die Anforderung an seine Anforderungshandler weiterleitet. Die folgende URL enthält eine Diskussion zu dieser Problemumgehung und einen Patch für mod_uniqueid, den Sie verwenden können: http://marc.info/?l=mod-security-users&m=123300133603876&w=2

Konnte keine andere Lösung dafür finden und frage mich, ob tatsächlich eine Lösung erforderlich ist.

Imo
quelle
Ich sehe das Problem jetzt. Empfehlen Sie die im Artikel bereitgestellte Lösung, oder ist es Ihrer Meinung nach besser, sie so zu belassen, wie sie ist? Es ist ein Scanner für alle Hintertüren im System. Wenn ich es einfach scannen lasse, könnte ich eines Tages angegriffen werden.
Saif Bechan
1
Hallo Saif, ich denke, solange Sie Ihre Apache-Installation mit Ihren Distributions- (oder manuellen) Sicherheitspatches auf dem neuesten Stand halten, sollte alles in Ordnung sein. Eine schlecht strukturierte HTTP / 1.1-Anfrage (wie Sie gesehen haben) sollte nichts anderes als einen 400-Fehler von Apache zurückgeben. Es sieht aus wie es kann bei D - Link - Router konzentriert irgendeine Art von Verletzlichkeit Scan gewesen sein. (Nach einigen anderen Quellen)
Imo
Gibt es zumindest eine Möglichkeit, diese Felder aus meinem Apache-error_log zu entfernen
Saif Bechan
Sie vielleicht können sie über mod_log :: to do httpd.apache.org/docs/2.2/mod/mod_log_config.html#customlog
Imo
Mein zusätzlicher Hinweis wäre: Konfigurieren Sie Ihren Standard- Virtualhost neben den tatsächlich verwendeten. Die oben genannten Versuche landen in den Protokollen für den Standard- Virtualhost.
Koos van den Hout
16

IPs zu filtern ist keine gute Idee, imho. Warum filtern Sie nicht die Zeichenfolge, die Sie kennen?

Ich meine:

iptables -I INPUT -p tcp --dport 80 -m string --to 60 --algo bm --string 'GET /w00tw00t' -j DROP
Des
quelle
spamcleaner.org/en/misc/w00tw00t.html ähnliche Lösung, aber etwas detaillierter.
Isaac
Ein Problem beim Filtern von Zeichenfolgen in der Firewall ist, dass sie "ziemlich langsam" ist.
Alexis Wilke
@AlexisWilke Gibt es Hinweise darauf, dass die Iptables-String-Filterung langsamer ist als die Filterung auf Apache-Ebene?
Jrwren
@jrwren Tatsächlich kann es ziemlich langsam sein, wenn Sie den Paket-Offset nicht übergeben, um die Suche zu beenden, dh "--to 60" hier. Standardmäßig wird das gesamte Paket durchsucht, wobei das maximale Limit auf 65.535 Byte und die maximale IP-Paketlänge festgelegt ist: blog.nintechnet.com/… Im Handbuch wird deutlich "Wenn nicht bestanden, ist die Standardgröße des Pakets" angegeben.
Gouessej
das ist eine theoretische max. Eine realistischere maximale Länge über das Internet beträgt ~ 1500.
Jrwren
11

Ich habe auch begonnen, diese Arten von Nachrichten in meinen Protokolldateien zu sehen. Eine Möglichkeit, diese Art von Angriffen zu verhindern, besteht darin, fail2ban ( http://www.fail2ban.org/ ) einzurichten und bestimmte Filter einzurichten, um diese IP-Adresse in Ihren iptables-Regeln aufzulisten.

Hier ist ein Beispiel für einen Filter, der die mit der Erstellung dieser Nachrichten verbundene IP-Adresse blockiert

[Di Aug 16 02:35:23 2011] [Fehler] [Client] Datei existiert nicht: /var/www/skraps/w00tw00t.at.blackhats.romanian.anti-sec :) === apache w00t w00t messages jail - Regex und Filter === Gefängnis

 [apache-wootwoot]
 enabled  = true
 filter   = apache-wootwoot
 action   = iptables[name=HTTP, port="80,443", protocol=tcp]
 logpath  = /var/log/apache2/error.log
 maxretry = 1
 bantime  = 864000
 findtime = 3600

Filter

 # Fail2Ban configuration file
 #
 # Author: Jackie Craig Sparks
 #
 # $Revision: 728 $
 #
 [Definition]
 #Woot woot messages
 failregex = ^\[\w{1,3} \w{1,3} \d{1,2} \d{1,2}:\d{1,2}:\d{1,2} \d{1,4}] \[error] \[client 195.140.144.30] File does not exist: \/.{1,20}\/(w00tw00t|wootwoot|WootWoot|WooTWooT).{1,250}
 ignoreregex =
Jackie Craig Sparks
quelle
2
Es ist wahr, dass Sie sie blockieren können, dies ist jedoch nicht erforderlich, da es sich nur um schlechte Anfragen handelt. Es ist besser, sie einfach zu ignorieren, Ihre Arbeit zu retten und einige Ressourcen freizugeben.
Saif Bechan
Richtig @Saif Bechan, wenn jemand befürchtet, dass das Testen von Angriffen erfolgreich sein könnte, sollte er / sie die eigene Anwendung besser reparieren, anstatt Zeit zu verschwenden, um einen Weg zu finden, dies zu blockieren.
Thomas Berger
Hat dir +1 gegeben, danke für die Antwort.
Saif Bechan
4
@ SaifBechan, ich bin anderer Meinung. w00tw00t ist ein Schwachstellenscanner, und einem Computer, der solche Anforderungen ausgibt, kann nicht vertraut werden, wenn er andere Arten von Anforderungen ausführt. Wenn ich also ein Systemadministrator bin und zwei Minuten benötige, um solche Clients tagelang zu sperren, muss ich würde so tun. Ich würde meine gesamte Sicherheitsimplementierung jedoch nicht auf einen solchen Ansatz stützen.
Isaac
3

w00tw00t.at.blackhats.romanian.anti-sec ist ein Hacking-Versuch und verwendet gefälschte IPs, so dass Suchanfragen wie VisualRoute China, Polen, Dänemark usw. gemäß der zu diesem Zeitpunkt abgeordneten IP melden. Das Einrichten einer Verweigern-IP oder eines auflösbaren Hostnamens ist nahezu unmöglich, da sich dieser Wert innerhalb einer Stunde ändert.

PRW
quelle
Diese Schwachstellen-Scans verwenden keine gefälschten IP-Adressen. Andernfalls würde der TCP-3-Wege-Handshake nicht abgeschlossen und Apache würde die Anforderung nicht protokollieren. Vorsichtsmaßnahmen (Rogue ISP, Router-Betreiber usw.) finden Sie unter security.stackexchange.com/q/37481/53422
Anthony Geoghegan,
2

Ich habe persönlich ein Python-Skript geschrieben, um IPtables-Regeln automatisch hinzuzufügen.

Hier ist eine leicht abgekürzte Version ohne Protokollierung und anderen Müll:

#!/usr/bin/python
from subprocess import *
import re
import shlex
import sys

def find_dscan():
        p1 = Popen(['tail', '-n', '5000', '/usr/local/apache/logs/error_log'], stdout=PIPE)
        p2 = Popen(['grep', 'w00t'], stdin=p1.stdout, stdout=PIPE)

        output = p2.communicate()[0].split('\n')

        ip_list = []

        for i in output:
                result = re.findall(r"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", i)
                if len(result):
                        ip_list.append(result[0])

        return set(ip_list)

for ip in find_dscan():
        input = "iptables -A INPUT -s " + ip + " -j DROP"
        output = "iptables -A OUTPUT -d " + ip + " -j DROP"
        Popen(shlex.split(input))
        Popen(shlex.split(output))

sys.exit(0)
Xorlev
quelle
Ist dies, um den W00TW00T-Angriff zu verhindern
Saif Bechan
Ja, ich habe die Apache-Fehlerprotokolle auf "w00tw00t" -IPs überprüft und hinzugefügt, wenn sie nicht vorhanden sind. Der Einfachheit halber habe ich die Prüfung auf Duplikate jedoch nicht hinzugefügt.
Xorlev
Dieses Skript sollte wahrscheinlich eine Tabelle verwenden, da das Hinzufügen zahlreicher zusätzlicher Regeln zu den iptables-Ketten die Verarbeitung erheblich verlangsamen wird.
Eric
Es benutzt eine Tabelle. Ich habe jedoch vieles vereinfacht, da es auf mein System zugeschnitten war.
Xorlev
Glauben Sie, dies ist eine bessere Lösung, um mod_security zu verwenden
Saif Bechan
2

Ich glaube, der Grund, warum mod_security für Sie nicht funktioniert, ist, dass Apache die Anforderungen selbst nicht analysieren konnte, da sie nicht den Spezifikationen entsprechen. Ich bin nicht sicher, ob Sie hier ein Problem haben - Apache protokolliert seltsame Scheiße, die im Internet passiert. Wenn es sie nicht protokolliert, werden Sie nicht wissen, dass es überhaupt passiert. Die zum Protokollieren der Anforderungen erforderlichen Ressourcen sind wahrscheinlich minimal. Ich verstehe, dass es frustrierend ist, dass jemand Ihre Protokolle füllt - aber es wird frustrierender sein, wenn Sie die Protokollierung deaktivieren, nur um festzustellen, dass Sie sie wirklich benötigen. Als ob jemand in Ihren Webserver eingebrochen wäre und Sie die Protokolle benötigen, um zu zeigen, wie er eingebrochen ist.

Eine Lösung besteht darin, ErrorLogging über syslog einzurichten und dann mithilfe von rsyslog oder syslog-ng diese RFC-Verstöße in Bezug auf w00tw00t gezielt zu filtern und zu verwerfen. Alternativ können Sie sie auch in eine separate Protokolldatei filtern, damit Ihr Hauptfehlerprotokoll leicht lesbar ist. Rsyslog ist in dieser Hinsicht unglaublich leistungsfähig und flexibel.

In httpd.conf könnten Sie also Folgendes tun:

ErrorLog syslog:user 

dann in rsyslog.conf haben Sie vielleicht:

:msg, contains, "w00tw00t.at.ISC.SANS.DFind" /var/log/httpd/w00tw00t_attacks.log

Beachten Sie, dass dieser Ansatz tatsächlich ein Vielfaches der Ressourcen beansprucht, die ursprünglich für die direkte Protokollierung in einer Datei verwendet wurden. Wenn Ihr Webserver sehr ausgelastet ist, kann dies zu einem Problem werden.

Es wird empfohlen, alle Protokolle sowieso so schnell wie möglich an einen Remote-Protokollierungsserver zu senden. Dies kommt Ihnen zugute, falls Sie jemals in das Protokoll einbrechen sollten, da es sehr viel schwieriger ist, den Audit-Trail zu löschen, der durchgeführt wurde.

Das Blockieren von IPTables ist eine Idee, aber es kann vorkommen, dass Sie eine sehr große iptables-Blockierungsliste haben, die Auswirkungen auf die Leistung haben kann. Enthält die IP-Adresse ein Muster oder stammt es von einem großen verteilten Botnetz? Es müssen X% der Duplikate vorhanden sein, bevor Sie von iptables profitieren können.

hellomynameisjoel
quelle
Schöne Antwort, ich mag die verschiedenen Ansätze. Wenn Sie darüber nachdenken, führt eine benutzerdefinierte Protokollierung zu einer stärkeren Nutzung der Zugriffsrechte, da zunächst alles überprüft werden muss. Ich denke, diese Option fällt auch weg. Ich habe jetzt Logwatch aktiviert. Dadurch erhalte ich zweimal täglich einen Bericht mit Zusammenfassungen aller Systeme. Die Apache-Protokolle werden ebenfalls überprüft und es werden nur 300 Mal w00tw00t-Versuche angezeigt. Ich denke, ich werde das Setup vorerst so lassen, wie es ist.
Saif Bechan
1

Sie sagen in Update 2:

Problem, das immer noch besteht Das Problem, das immer noch besteht, lautet wie folgt. Diese Angriffe stammen von Bots, die auf Ihrem Server nach bestimmten Dateien suchen. Dieser spezielle Scanner sucht nach der Datei /w00tw00t.at.ISC.SANS.DFind :).

Jetzt können Sie es einfach ignorieren, was am meisten empfohlen wird. Das Problem bleibt, dass Sie Probleme haben, wenn Sie diese Datei eines Tages auf Ihrem Server haben.

Aus meiner vorherigen Antwort ging hervor, dass Apache aufgrund einer schlecht geformten HTML 1.1-Abfrage eine Fehlermeldung zurückgibt. Alle Webserver, die HTTP / 1.1 unterstützen, sollten wahrscheinlich einen Fehler zurückgeben, wenn sie diese Nachricht erhalten (ich habe den RFC nicht doppelt überprüft - vielleicht teilt uns RFC2616 dies mit).

Wenn Sie w00tw00t.at.ISC.SANS.DFind haben: Auf Ihrem Server bedeutet dies nicht unbedingt "Sie sind in Schwierigkeiten" ... Wenn Sie die Datei w00tw00t.at.ISC.SANS.DFind erstellen: in Ihrem DocumentRoot oder sogar DefaultDocumentRoot spielt keine Rolle ... der Scanner sendet eine fehlerhafte HTTP / 1.1-Anfrage und Apache sagt "Nein, das ist eine schlechte Anfrage ... auf Wiedersehen". Die Daten in der Datei w00tw00t.at.ISC.SANS.DFind: werden nicht geliefert.

Die Verwendung von mod_security für diesen Fall ist nicht erforderlich, es sei denn, Sie möchten wirklich (kein Punkt?). In diesem Fall können Sie das Patchen manuell überprüfen (Link in anderer Antwort).

Eine andere Sache, die Sie möglicherweise mit ansehen könnten, ist die RBL-Funktion in mod_security. Möglicherweise ist eine RBL online, die w00tw00t-IPs (oder andere bekannte bösartige IPs) bereitstellt. Dies würde jedoch bedeuten, dass mod_security für jede Anforderung eine DNS-Suche durchführt.

Imo
quelle
Ich glaube nicht, dass Apache sie ablehnt. Es löst nur den Fehler aus, aber die Suche ist weiterhin erfolgreich. Ich habe das gleiche w00tw00t.at.ISC.SANS.DFind im Zugriffsprotokoll. Es macht ein GET. Damit ist die Suche abgeschlossen und wenn Sie die Datei auf Ihrem Computer haben, wird sie ausgeführt. Ich kann die Zugriffsprotokolleinträge posten, aber sie sehen genauso aus wie das Fehlerprotokoll, nur mit einem GET vor ihnen. Apache löst den Fehler aus, aber die Anfrage ist erfolgreich. Deshalb habe ich gefragt, ob es eine gute Idee wäre, diese Anfrage ohne Hostnamen zu blockieren. Aber ich möchte normale Benutzer nicht ausschließen.
Saif Bechan
1
Sicher, Sie erhalten den gleichen Eintrag im Zugriffsprotokoll, sehen sich jedoch den Fehlercode an ... 400. Er wird nicht verarbeitet. HTTP / 1.1 (Hostname) teilt Apache mit, an welchen virtuellen Host die Anforderung gesendet werden soll ... ohne den Hostnamen-Teil der HTTP / 1.1-Anforderung. Apache weiß nicht, wohin die Anforderung gesendet werden soll, und gibt den Fehler "400 bad request" zurück zurück zum Kunden.
Imo
Probieren Sie es aus ... erstellen Sie sich eine HTML-Seite auf Ihrem Webserver und versuchen Sie, mit "telnet hostname 80" manuell darauf zuzugreifen ... die anderen Schritte sind in meiner ersten Antwort. Ich würde es mit einer großen Prämie belohnen, dass Sie die HTML-Datei nicht mit HTTP / 1.1 ohne den Hostnamen anzeigen lassen können.
Imo
Ah ja ja das, um mich darauf hinzuweisen. Ich dachte immer, dass das access_log Einträge sind, die durch das Fehlerprotokoll geleitet wurden und tatsächlich in Ihren Computer eingingen. Vielen Dank, dass Sie mich darauf hingewiesen haben, und ich werde meinen Beitrag bearbeiten. Ich schätze deine Hilfe sehr.
Saif Bechan
Hallo Saif, keine Probleme, bin froh geholfen zu haben. Grüße, Imo
Imo
1

Wie wäre es, wenn Sie der ModSecurity eine Regel hinzufügen? Etwas wie das:

   SecRule REQUEST_URI "@rx (?i)\/(php-?My-?Admin[^\/]*|mysqlmanager
   |myadmin|pma2005|pma\/scripts|w00tw00t[^\/]+)\/"
   "severity:alert,id:'0000013',deny,log,status:400,
   msg:'Unacceptable folder.',severity:'2'"
Kreker
quelle
1

Ich sehe, dass die meisten Lösungen bereits oben behandelt wurden. Ich möchte jedoch darauf hinweisen, dass nicht alle vom Client gesendeten HTTP / 1.1-Anfragen ohne Hostnamenangriffe direkt auf Ihren Server gerichtet sind. Es gibt viele verschiedene Versuche, das Netzwerksystem vor Ihrem Server mit einem Fingerabdruck zu versehen und / oder auszunutzen:

client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /tmUnblock.cgi

So ist es manchmal hilfreich, Ihren Fokus zu erweitern und Ihre Verteidigungsbemühungen auf alle Systeme mit gleichem Anteil aufzuteilen, z. B .: Routerregeln implementieren, Firewallregeln implementieren (hoffentlich hat Ihr Netzwerk eine), Server-Firewall / IP-Tabelle implementieren Regeln und verwandte Dienste, zB mod_security, fail2ban und so weiter.

Mailand
quelle
1

Wie wäre es damit ?

iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.DFind' -j DROP
iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.DFind' -j LOG --log-level 4 --log-prefix Hacktool.DFind:DROP:

funktioniert gut für mich.

Urbach-Webhosting
quelle
Ich empfahl die OWASP_CRS / 2.2.5 oder Reibe Regelsatz für mod_security
Urbach-Webhosting
Das ist wirklich keine gute Idee. Sie werden am Ende viele hängende Verbindungen haben. Wenn auf Ihrer Website eine Diskussion über diese Anforderungen stattfindet, kann dies zu Fehlalarmen führen.
Kasperd
0

Wenn Sie einen hiawathaWebserver verwenden, werden reverse proxydiese Scans automatisch als Papierkorb und gesperrt gelöscht client. Es filtert XSSund CSRFnutzt auch.

Stuart Cardall
quelle