PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spam erkannt und dann?



golem
12.06.2006, 11:54
Hi,

auf meiner Webseite habe ich Probleme mit Spambots. Über eine Badwordliste und ein captcha werden die Bots zu 99% aufgefiltert. So weit so gut.

Aber was soll man mit dem Bot machen? einfach eine Fehler Meldung ausgeben, das Script ohne irgendeine Meldung abbrechen, weiterleiten an ???, 404 header, asusgabe verzögern?

golem

Pierre
12.06.2006, 11:58
Ich würde einen sinnvollen Fehler ausgeben. Es könnte ja passieren, daß ein Benutzer irgendwas falsch macht und vermeintlich als Bot erkannt wird.

Generell scheint es so zu sein, daß die Bots Daten per POST verschicken und dann weg sind.

exe
12.06.2006, 13:33
Aber was soll man mit dem Bot machen? einfach eine Fehler Meldung ausgeben, das Script ohne irgendeine Meldung abbrechen, weiterleiten an ???, 404 header, asusgabe verzögern?
Hi,

also ich würd ihn erstmal in eine Warteschleife hängen (bei PHP z. B. sleep(30) oder so). Das bremst mit etwas Glück den Tatendrang des Bots ein wenig. Ob du danach einen 404er präsentierst bleibt dir überlassen. Ich für meinen Teil gib 200 OK aus, denn Spammy soll IMHO nicht unbedingt merken, dass er bei mir seine Zeit vergeudet. :)

Pierre
12.06.2006, 13:48
Kann man denn sicher sagen, daß der Bot überhaupt die 30s wartet? Schneidet man sich so nicht ins eigene Fleisch, da der Server so stärker belastet wird?

golem
12.06.2006, 14:39
Ob der Bot 30 sek wartet weiß ich nicht, wäre in diesem fall recht interessant zu wissen. Wenn er nicht wartet auf irdendeine rückmeldung, dann würde er ja nie merken, wenn ich z.B. dem Script einen anderen Namen gebe, aber das hat nur knapp eine Woche gedauert, bis das geschehen ist. Ich vermute desshalb, das eine Auswertung der Rückmeldungen stattfindet, und dann ich das ausbremsen schon ok.
zu ausbramsen noch eine Idee, 2 Sekunden warten einige Zeichen senden wieder 2 Sek warten und so weiter. daganze so 20 mal wiederholen.

Oder einer Weiterleitung an eine ANTIPSAM Organisation. Nur welche?

Oder an die sendende IP ne Mail schicken. Mit der Bitte den Spam zu unterlassen (natürlich nur wenn mail angenommen werden).

golem

Pierre
12.06.2006, 14:51
Ich bin da momentan noch in der Auswertung. Bisher kann ich sagen, daß den Bots es egal ist, wenn sie eine Fehlermeldung bekommen; sie kommen immer wieder und versuchen es trotzdem.

Das mit der E-mail lässt Du mal lieber. Die Provider wird das sicher nicht kümmern. So wie es aussieht wird der Spam Dial-In-IPs aus allen möglichen Ländern; aber dennoch koordiniert verschickt. Das läßt darauf schließen, daß es sich um ein Netz zusammengeschalteter Windows-Rechner von Personen handelt, die es toll finden sich ständig Viren und trojanische Pferde zu installieren.

Weiterleitungen sind auch keine gute Idee. Das wird schnell zum DDOS, wenn das viele machen. (zumal ich als Bot einem Location:...-Header nicht folgen würde.)

exe
12.06.2006, 15:49
zu ausbramsen noch eine Idee, 2 Sekunden warten einige Zeichen senden wieder 2 Sek warten und so weiter. daganze so 20 mal wiederholen.
Nee der Bot wird höchstens auf den ersten Header warten (sprich 404 oder 200, ...) von daher wird es nichts nützen weil er die anderen Zeichen nicht abwarten wird. Der Sleep muß IMHO gleich nach dem erkannten Spamversuch stattfinden. Sobald der Apache den Header rausdrischt, weiß der Bot dass die Gegenseite reagiert hat und kann weitermachen.

Mir ist im Moment nicht bekannt, wie man per HTTP prüfen kann ob die Gegenseite noch da ist und wartet. Das müsste man vermutlich eine Ebene tiefer (sprich TCP) klären.

Meinungen Ideen?

Pierre
12.06.2006, 16:37
leicht OT: ich habe gerade festgestellt, daß die Bots beim POST wohl eine Variable "huy" mit dem Wert "hu" mitschicken; diese steht natürlich nicht im Formular. Kann das jemand bestätigen? Wozu machen die das?

Fidul
12.06.2006, 21:47
Weiterleitungen sind auch keine gute Idee. Das wird schnell zum DDOS, wenn das viele machen. (zumal ich als Bot einem Location:...-Header nicht folgen würde.)
Reagieren die Viecher auf 127.0.0.1? Wenn ja, könnte man ihn vielleicht mit sich selbst beschäftigen. Aber dazu müßte man wohl erst mal ein lebendiges Exemplar analysieren...

Pierre
12.06.2006, 22:13
die wenigsten werden auf localhost einen Webserver laufen haben. Ich werde noch die nächsten Tage alles mitloggen und dann mal analysieren, wie die Dinger arbeiten.

Momentan bekomme ich etwa 200 Spam-Postings im Forum pro Tag; zumindest wird es versucht. Da das mehr zu werden scheint, ist es vielleicht besser den Spam so schnell wie möglich abzuweisen, um den eigenen Server nicht mit langen HTTP-Sessions lahmzulegen.

Interessant wäre natürlich auch, ob es möglich ist, überhaupt keine Antwort zu senden, sprich einen "Timeout" des Spam-Bots zu provozieren.

exe
13.06.2006, 10:29
die wenigsten werden auf localhost einen Webserver laufen haben. Ich werde noch die nächsten Tage alles mitloggen und dann mal analysieren, wie die Dinger arbeiten.
Das würde mich auch interessieren, bin aber im Moment zu sehr mit anderen Dingen beschäftigt.


Momentan bekomme ich etwa 200 Spam-Postings im Forum pro Tag; zumindest wird es versucht. Da das mehr zu werden scheint, ist es vielleicht besser den Spam so schnell wie möglich abzuweisen, um den eigenen Server nicht mit langen HTTP-Sessions lahmzulegen.
Darin sehe ich jetzt kein so starkes Problem. Jeder Webserver der irgendwas taugt, steckt 200 zusätzliche Verbindungen am Tag locker wech. ;)


Interessant wäre natürlich auch, ob es möglich ist, überhaupt keine Antwort zu senden, sprich einen "Timeout" des Spam-Bots zu provozieren.
Dazu müsste man verhindern dass der Apache die TCP-Verbindung abbaut. Bei einem einfachen "exit;" in PHP fliegt sicher ein RST-Paket an den Bot raus. Da müsste man IMHO mit dem Paketfilter spielen?

Pierre
13.06.2006, 10:51
Klar, momentan ist die Belastung noch kein Thema. Wenn die dann aber 200 Postings pro Minute abschicken sieht es wieder anders aus.

Ich bin eh mal gespannt, ob die irgendwann aufgeben, wenn die merken, daß kein einziger Spam durchkommt.

Vielleicht werde ich Ende der Woche mal dazu kommen die Logs zu analysieren. Ich werde dann vielleicht eine kleine Zusammenfassung schreiben. Bisher scheint es, zumindest für die Bots, die mich besuchen, einige Schwachpunkte zu geben, an denen man diese nahezu eindeutig identifizieren kann.

golem
02.07.2006, 16:57
Aber dazu müßte man wohl erst mal ein lebendiges Exemplar analysieren...

Ja das wäre eine gute idee, aber wenn ich mir dafür einen Virus oder Trojaner einfangen muß, dann verzichte ich dankend darauf! Ist der Bot aber ein Script, dann sotte daas ja nicht so schwirig sein rauszufinden wie dei Arbeiten.

golem

--------------------------------------------------------------------
Spam Versuche im Monat Juni: 534 Tendenz steigend :mad:
--------------------------------------------------------------------

Ironwhistle
03.07.2006, 21:37
Bei mir "tarnen" sich die Bots als Firefox unter WinXP - die IP Nummern stammen jedoch meist aus dem 81. - 84. Bereich und als ISP taucht ziemlich oft t-offline auf...

Wenn es ein Programm ist, dann wird es nach <form> Tags suchen, seinen Mist eintragen und das ganze übertragen. Ich denke nicht das da abgewartet wird ob ein Formular erfolgreich versand wurde...

heinerle
03.07.2006, 21:45
Bei mir "tarnen" sich die Bots als Firefox unter WinXP - die IP Nummern stammen jedoch meist aus dem 81. - 84. Bereich und als ISP taucht ziemlich oft t-offline auf...

Die kann man teilweise mit Abfrage der Header entlarven, z.B.
if(empty($_SERVER['HTTP_ACCEPT']) || empty($_SERVER['HTTP_CONNECTION']) {
// Bot
}

golem
11.07.2006, 17:35
Also bei mir geben sich die Bots als alles mögliche aus, von Firefox bis Opera. In allen möglichen Versionen und Betriebsystemen, da ist so nichts zu Filtern.
Ich habe es im moment so gelöst, das auf der Seite ein Captcha ist was schon mal alle Bots am eintragen Hindert. Zusätzlich filter ich die Anfragen noch nach Wörtern wie Viagra, onlinecasino und son schei... . Wirg dann anhand des Filteras erkannt, das es sich mit größter warscheinlichkeit um einen Bot handelt, bricht das Script einfach ohne Meldung ab. Das Logging habe ich mittlerweile auch ausgeschaltest, weil es mir einfach zu viel wurde.

Frage, gibt es irgendwo eine Liste, in denen die URLs sind, die viele bots versuchen auf anderen Seiten unterzubringen?

exe
11.07.2006, 18:16
Frage, gibt es irgendwo eine Liste, in denen die URLs sind, die viele bots versuchen auf anderen Seiten unterzubringen?
Meinst du sowas?:
http://www.surbl.org/

Ich brüte zur Zeit über einer Lösung mit via CSS "versteckten" Feldern. Wird ein solches Feld mit Daten befüllt scheitert der Eintrag mit einem sleep(60). :)

golem
30.08.2006, 23:34
Meinst du sowas?:
http://www.surbl.org/

Ist schon nah dran. Gibt es davon noch mehr?



Ich brüte zur Zeit über einer Lösung mit via CSS "versteckten" Feldern. Wird ein solches Feld mit Daten befüllt scheitert der Eintrag mit einem sleep(60). :)
Das mit den Versteckten Feldern schein mir nicht immer zu funktionieren, da einige Spammer anscheinend noch von Hand kontrollieren, was in das Formular muß und dann erstst den Bot loslassen.
Ich habe in meine Seite ein Chapture eingebaut, was dann auch Gleichzeitig zum akteptieren der Nutzungsbedingungen gilt. Das hält 99% Spam ab. 1% sind wohl so Spammer die das von hand machen.

golem

exe
31.08.2006, 06:27
Das hält 99% Spam ab. 1% sind wohl so Spammer die das von hand machen.
Gegen die Patienten kann man nicht viel machen, außer das Ding auf moderiert schalten. :(

Wuschel_MUC
31.08.2006, 09:52
Variable "huy" mit dem Wert "hu"
...
Wozu machen die das?
Könnte es ein Dummy für irgendwas sein? "chui" heißt im Russischen "Schwanz" (Penis). Vielleicht will der Spammer irgendwas nachprüfen und hat dafür eine sonst nicht benötigte Variable auf diesen Namen eingeführt?

Wuschel

golem
04.09.2006, 17:59
Hi,

ich hab jetzt mal den page.restrictor von http://www.bot-trap.de im Einsatz. Schaut schon ganz gut aus, die Spambots die noch bis zu den Formularen vordringen sind deutlich weniger geworden, den rest erledigt mein Badwort filter und das Chapture.
Seit 4 Tagen 100% Spam Frei. Hoffentlich bleibt das so....

golem