Spammer und Spambots bekämpfen/verhindern

  • Unter SPAM und Internetspeicherplatz hatte ich dazu schon einige Tipps gegeben.


    In diesem Thema möchte ich es einmal verallgemeinern.


    Hintergrundinformation über die Entstehung:
    Das Hauptziel vieler Spammer ist es, Verweise/Links zu anderen Internetseiten zu setzen.
    Am Anfang kopierte man einen vorbereiteten Text und setzte ihn als beitrag in jede mögliche Seite.
    Je größer das Internet wurde, desto mehr war "Tempo" gefragt.
    Man schrieb also Skripte, die automatisch die Arbeit erledigten. Diese Skripte werden heutzutage "Spam-Bot" genannt:
    Eine automatische Funktion, die versucht, überall die vorbereiteten Texte zu verbreiten.



    Wie kann man Spam-Bots verhindern ?


    Bekannte Spambots
    Die Basis der Gegenmaßnahmen ist, dass Spambots immer wieder von den gleichen Servern abgesendet werden und/oder ähnliche Kennungen tragen. Auf dieser Basis gibt es "Anti-Spammer-Listen", die man in sein System integrieren lassen kann.
    Diese Systemfunktion vergleicht dann jedes neue Mitglied udn jeden neuen Beitrag mit der entsprechenden Liste.
    Findet sich eine der Listenmerkmale bei einem Beitrag/Mitglied, wird er abgelehnt oder eine andere Maßnahme wird eingeleitet.


    Unbekannte Spambots
    Ihnen kann das Leben durch ein sogenanntes "Captcha" erschwert werden.
    So ein "Captcha" ist ein Bild, das man sozusagen "abschreiben" muss. Leider werden die Spambots immer "intelligenter" = der Code wird immer wieder so aktualisiert, dass die üblichen Sperren irgendwann wirkungslos werden.
    Heute ist es schon fast für einen Menschen schwerer, ein Captcha zu lesen als für einen Spambot.
    Es stellt keine wirkungsvolle Hürde mehr dar.

    Die neuere Version ist: Man lässt eine kleine Rechenaufgabe lösen. Das Ergebnis ist das gesuchte Eingabewort.

    Neuere Spambots sind aber auch längst in der Lage, diese Aufgaben zu erkennen und zu lösen. Je mehr diese "Sicherung" verbreitet ist, desto wirkungsloser wird es.


    Textbasiertes Eingabewort
    Man stellt einen längeren Text zum Lesen zur Verfügung. Um es einem Skript schwerer zu machen, lässt man diesen als Bild anzeigen.


    Die Aufgabe lautet jetzt aber zum Beispiel:

    Zitat

    Schreibe Wort Nummer 12 aus Zeile 5 in das Eingabefeld.


    oder

    Zitat

    Schreibe das farbige Wort in das Eingabefeld


    Jetzt wird es für einen Spambot schwer. Er kann nicht denken und wirklich lesen, sondern nur einen Befehl abarbeiten.
    Er wird also die Anforderung überhaupt nicht verstehen können.


    Der Spambot-Coder wird aber auch darauf vorbereitet sein:
    Er wird seinen Bot einfach jedes erreichbare Wort eingeben lassen wollen


    Aber das wollen wir ja nicht.
    Also sind wir "schlauer als der Spambot".

    Wir lassen mit jedem neuen Versuch einen anderen Text anzeigen. Der Spambot wird jetzt mit seinen "typischen Routinen auflaufen".


    Er wird immer wieder erneut anfangen müssen. Der Spambot wird deshalb also keinen Beitrag absetzen können.
    Natürlich darf sich das gesuchte Wort weder immer an der gleichen Stelle befinden, noch darf man eine feste Farbe im Aufforderungstext vorgeben. Das wäre nun doch schnell erkennbar.


    Die Textbilder sollten auch erst dann erreichbar werden, wenn sie angezeigt werden sollen = nicht irgendwo im erreichbaren Bereich der Seite aufbewahren, sondern hinter einer ".htaccess-Mauer" verbergen .
    In einer kleinen Datenbank kann man dann die korrekten Eingabewörter einzeln auflisten und mit dem jeweiligen Bild verknüpfen.
    Nur wenn Bild+Eingabewort ind er Datenbank überein stimmen, wird die Eingabe akzeptiert.
    Hierzu gibt es aber auch schon viele kleine Skripte, die dabei weiter helfen.


    Wie kann man "echte Spammer" verhindern ?

    Wenn ein Spammer immer mit der gleichen IP auftritt

    Entweder helfen hier schon die gleichen Systemwerkzeuge, die auch gegen Spambots wirken: Dann wird er automatisch abgewehrt.
    Ansonsten kann man die IP auch in eine eigene Sperr-Liste aufnehmen (IP-BAN, IP-Sperre).
    Wennd as geschehen ist, kommt er nicht mehr hinein. Die Seite wehrt ihn schom beim Öffnen ab.

    Spammer mit wechselnden IPs

    Sperrlisten wirken hier nicht mehr. Aussperren und Bannen wird wirkungslos.
    Einen menschlichen Spammer halten die Maßnahmen gegen Spambots auch nicht ab. Er kann lesen, denken, verstehen.


    1) Eine Mail enthält einen Bestätigungslink
    Der Spammer muss also erst abwarten, bis er eine Mail erhalten hat, die einen Bestätigungslink enthält. Diesen muss er benutzen, um den Account zu aktivieren. Erst dann kann er loslegen.
    Das ist aber nur wirkungsvoll gegen "eilige Spammer". Der Profi wird einfach massenhaft Accounts anmelden und dann seine Mails abrufen und alle in Folge aktivieren (lassen)
    Hierzu kann er sich auch wieder Skripten bedienen. Es stellt also keine wirkliche Hürde gegen Spammer dar .... nur gegen "arbeitsfaule" Spammer und die, die nur Wegwerf-Mailadressen benutzen.


    2) Wegwerf-Mailadressen verhindern
    Die jeweiligen Hoster sorgen natürlich dafür, dass sich der Domainname der Mailadresse immer wieder ändert.. damit ihr Dienst weiterhin einen Sinn hat. Aussperren der Adressen ist deshalb nur Zeitverschwendung.
    Etwas wirkungsvoller ist es, wenn man die Mails mit dem Aktivierungslink nicht sofort absenden lässt, sondern erst nach einer gewissen Zeit.
    Es git sogenannte 10-Minuten-Adresssen ... sie sind nur 10 Minuten kang gültig und werden danach gelöscht, wenn sie der Benutzer nicht immer wieder verlängert.


    Geht die Mail also erst nach 21 Minuten raus, müsste der Benutzer sie schon 2x verlängert haben, damit er sie noch erhält und den Link benutzen kann. Er musste dann schon 20 Minuten lang geduldig auf eine Rückmail warten. Ist es ein Spammer, wird er diese Zeit eventuell nicht investieren.


    Mittlerweile gibt es aber auch schon "intelligentere" Adressen bei der man in Voraus einstellen kann, wie lange sie gültig sein sollen.
    Hier nutzt der "verspätet senden" Trick nicht mehr viel.
    Aber auch hierzu gibt es eine Gegenmittel, das darauf basiert, dass ein "ambitionierter Spammer" seinen Mailaccount nicht dauernd unter Beobachtung hält:
    Der Aktivierungslink ist nur einige Minuten lang gültig. Danach wird der Account automatisch gelöscht.


    Kombiniert man beide Maßnahmen miteinander, wird man viele Spammer los, bevor sie ihren Spam absenden können.



    Der Spammer ist registriert
    Ab jetzt ist er zunächst kein Spammer mehr, sondern ein normaler User. Aber auch als solcher soll er nicht unbemerkt spammen können.


    1) Beiträge werden moderiert
    Hier ist es nötig, dass der Beitrag erst durch einen Moderator gelesen und freigeschaltet wird. Spam wird damit durch einen Menschen erkannt. Erst wenn der Beitrag diese Kontrolle "überstanden" hat, wird er öffentlich sichtbar.
    Man kann die moderierte zeit in der regel selbst festlegen = erst wenn der neue User als "Nicht-Spammer" eingeschätzt wird, wird die Sperre entfernt.
    Eine Alternative ist, dass man den neuen User automatisch nach einer gewissen Anzahl an Beiträgen freischalten lässt und sich damit die Arbeit des dauernden Kontrollierens erspart. Trotzdem sollte man aber immer wieder nachschauen, ob sich das Verhalten nicht plötzlich ändert.


    Vorsicht: Es handelt sich um "denkende Menschen". Veröffentlicht deshalb NIE wie viele beiträge zum "unmoderierten Schreiben" nötig sind. Ein potentieller Spammr köntne das bei seinem Verhalten berücksichtligen



    2) Profil anschauen

    - Der "typische Spammer" hat keine Lust, das Profil auszufüllen.
    Das kostet nur unnötige Zeit und "bringt ihm nichts".


    - Der "intelligente Spammer" wird sein Profil dazu benutzen, um dort Spamlinks unterzubringen.
    Sein Ziel ist erreicht, wenn das Profil ausgefüllt ist und er wird deshalb keine Beiträge schreiben. So kann er die Moderation umgehen.


    - Der "vorplanende Spammer" wird sein Profil ausfüllen und keine Backlinks setzen.
    Er nimmt sich aber nicht die Zeit, wirklich auf die Seite einzugehen, sondern kopiert dort auch nur etweas hinein, was er schon vorbereitet hatte. Schließlich will er auch nicht unnötig Zeit verschwenden.
    "Irgendwann einmal" wird er dann eventuell mit dem Spammen beginnen.


    Diese Spammer kann man oft auch in den Suchmaschinen finden. Sie sind nämlich oft so bequem, dass sie immer die gleiche Mailadresse und/oder User-Namen benutzen.
    Taucht also ein ähnliches Profil massenhaft auf, sollte man sich mal anschauen, was er dort auf den anderen Seiten geschrieben hat.
    Daran kann man oft erkennen, ob es ein engagierter User ist oder es sich um einen Spammer handelt.

    3) Unsernamen "unter die Lupe nehmen"

    Spammer benutzen oft Namen, die keine sind, sondern nur eine sinnlose Aneinanderreihung von Buchstaben. Sie haben eben keine Lust, sich immer wieder einen anderen Namen auszudenken.


    fremdsprachliche Spammer
    Bei ihnen wirken diese Maßnahmen leider alle nicht wirklich. Sie "sind drin" und können spammen, ohne dass man es mitbekommt.
    Man sollte deshalb nur Texte in Sprachen zulassen, die man selbst auch lesen kann.


    Natürlich kann man sich auch diverser Übersetzungsdienste bedienen, um die Texte zu kontrolieren. Das geht aber oft nur unter erheblichen Zeitaufwand. Irgendwann wird man es aufgeben.. und damit ist wieder "Bahn frei für Spammer"


    Hier kann man mit den Zensurfunktionen der verschiedenen Seitensystemen arbeiten.
    Dort gibt man die typischen Worte anderer Sprachen ein, die man nicht zulassen will. Das lohnt sich aber nur dann, wenn sich viele User eine bestimmten Fremdsprache auf der Seite befinden. Völlig nutzlos wird es, wenn man die Zensurfunktion durch andere Wörter umgehen kann.
    Für mich persönlich deshalb keine wirksame Maßnahme.

    Die "ultimative Maßnahmen" um Fremdsprachen-Spam zu unterbinden


    1) Das gewählte Seitensystem komplet neu installieren
    UTF-8 lässt alle Zeichen zu. Viele Spammer benutzen slawische Sprachen (Russisch, Polnisch, Lettisch usw.) Auch asiatische Schriftzeichen werden gerne benutzt.


    Wählt man jetzt nur den Zeichensatz einer bestimmten Sprachregion wählt, hat man diesen Spam (mit ausländischen Schriftzeichen) automatisch ausgeklammert.
    Wenn überhaupt noch etwas erscheint, sind es Sonderzeichen mit denen keiner mehr etwas anfangen kann = Es ist zwar Spam, der aber nicht den gedachten Zweck erfülen kann.
    Der Zeichensatz für Westeuropa/Deutschland ist z.B. ISO 8859-1


    Zusätzlich kann man dann noch die Sprachen der Seite noch weiter begrenzen. Wenn man z.B. Englsich nicht zulassen wird, wird die Seite auch nie in dieser Sprache angezeigt = Ein Spammer, der kin Deutsch beherrscht, wird schon Probleme haben, sich auf der Seite zurecht zu finden, um seinen Spam loswerden zu können.



    Der Mensch übernimmt die volle Kontrolle
    Es kann natürlich viele Gründe gegen die oben genannten "Abwehrmaßnahmen" geben.
    Jetzt muss der Mensch die "Anti-Spam-Kontrolle" übernehmen


    1 ) Mailadressen werden kontrolliert
    Firmen-Mailadressen werden als Spam erkannt. Firmen haben es in der Regel nicht nötig, sich bei einer Seite zu registrieren und/oder dort Beiträge zu schreiben. Man kann auch davon ausgehen, dass persönliche Firmen-Mailadressen nicht für private Zwecke benutzt werden dürfen.
    (Diese Maßnahme gilt nur für private Seiten. Für Firmenseiten mit Firmenkunden nicht sinnvoll)


    2 ) Bestätigungs- und Altivierungsmails werden manuell gesendet
    Von einem normalen Mailaccount aus, werden die Mails gesendet. Durch das eigene Mailsystem bekommt man sofort eine Rückmeldung, wenn es eine Mailadressse nicht gibt. Spammer erkannt.


    3) Ein mehrsprachiges Team aus Moderatoren wird gebildet
    Sie sind in der Lage, alle Sprachen zu lesen und zu verstehen. Ihre Aufgabe ist es ab jetzt, dass die Seite 24/7 unter Beobachtung steht.
    Entweder sie schalten JEDEN Beitrag einzeln frei oder sie müssen immer anwesend sein um Spam sofort zu erkennen und sofort zu handeln.


    Diese Maßnahme können sich private Betreiber in der Regel aber nicht leisten und selbst kommerzielle Betreiber investieren nicht das dafür nötige Geld... denn: Sowas erfordert in der Regel "bezahlte Kräfte"
    Üblicherweise versucht man, eine Kombination aus allen vorgeschlagenen Möglichkeiten zu finden: Automatiken kombiniert mit menschlicher Kontrolle.


    Dieses Thema sollte Möglichkeiten aufzeigen, wie man Spammer verhindern oder erkennen kann.
    Durch die Beschreibung der Gegenmaßnahmen kann es natürlich auch möglich sein, dass auch Spammer davon profitieren.
    Je mehr sich eine bestimmte Schutzmaßnahme verbreitet, desto eher stellen sich Spammer und Spambotbetreiber darauf ein.. erst dann lohnt es sich für sie wirklich.
    Hat man eine "Nische gefunden", die nicht oft benutzt wird und/oder kombiniert man verschiedene Maßnahmen miteinander, erhält man trotzdem ein "Spammer-sicheres-Sysrtem".


    Manchmal muss man einfach nur etwas Fantasie benutzen um wieder auf eine neue wirksame Gegenmaßnahme zu kommen.
    Man sollte sie aber nicht öffentlich exakt beschreiben und selbstverständlich nicht veröffentlichen, wie man selbst die Spammer effektiv abwehrt. Schließlich soll der Spammer ja keine "Arbeitshilfe" bekommen.. oder ? *lach* ;)

  • Nachdem die Spammer-Industrie auf "menschliche Captcha-Löser setzt, wird es Zeit, mit den entsprechenden Gegenmaßnahmen zu beginnen.


    In Erweiterung des Themas führen wir hie nun weitere Beispiele auf


    "Sinn-Captcha" bzw. "Wissens-Captcha"


    Was ist darunter zu verstehen ?


    Sinn-Cpatcha
    Der Captcha-Löser muss einen beigefügten Text lesen und verstehen , um das Captcha zu lösen.



    Hier musste also nur der beigefügte Text durchgezählt werden, um die Lösung zu finden. Kinderleicht, wenn man die Frage lesen und verstehen kann. Ein Hindernis für alle, die unter sehr großem Zeitdruck stehen oder nicht in der Lage sind, die Frage zu verstehen.




    Eine kleine Variation: Die Texteinfärbung in der Aufgabe verwirrt absichtlich. Wer es sehr eilig hat (und die Aufgabe nicht versteht), wird wahrscheinlich zuerst als Lösung "gelb" schreiben, weil es in der Aufgabe die gleiche Farbe hat.


    Wissens-Captcha


    Der Löser muss eine Aufgabe verstehen und, ohne weitere Vorgaben, lösen.


    Beispiel:


    Zitat

    Aufgabe:
    1 + 1 = ???
    Bitte schreiben Sie die Lösung in Englisch.


    Captcha:
    two


    Im Normalfall wird ein Captcha-Löser einfach nur die Ziffer "2" einsetzen wollen. Die Aufgabe verlangt aber ein Wort in Englisch.
    Da Englischgrundlagen schon in der Grundschule gelöst werden, stellen solche Aufgaben kein großes Hindernis für einen Menschen dar .. wenn er sie liest und versteht.
    Für Menschen, die kein Englisch sprechen, aber ansonsten eine gute Allgemeinbildung haben, kann man auch eine andere Variation benutzen.


    Zitat

    Aufgabe:
    Leonardo da Vinci hat das berühmteste Bild der Welt gemalt. Wie heißt es ?
    (2 Wörter, Sprache: Deutsch)


    Captcha:
    Mona Lisa


    Der Sprachhinweis diente als Hinweis , dass der italienische Begriff "La Gioconda" (die Heitere) nicht die richtige Lösung ist.


    Mit einem Wissens-Captcha kann man sowohl Captcha-Lösern das Leben sehr schwer machen, als auch einen gewisses Bildungsniveau als "Mindestvoraussetzung" zur Bedingung machen.


    Noch nicht vorhandenes Wissen, kann man sich relativ leicht selbst "ergoogeln". Solche Aufgaben erhöhen also auch das Allgemeinwissen und haben damit auch einen kleinen Lerneffekt ;)


    Zusätzlich können Spezialseiten auch Aufgaben stellen, die einen ganz direkten Bezug zum Thema der Seite haben.
    Hier kann die Aufgabe in einem beschreibenden Text bestehen und das Captcha-Wort ist der Fachbegriff.


    ---------------------------------------


    Wenn man diese Captcha-Variationen und -Möglichkeiten konsequent nutzt, wird man es der "Spammer-Branche" immer schwerer machen.
    Je mehr man einen Text lesen und dessen Sinn verstehen muss , desto größer ist die Chance, dass sich gewerbliche Spammer nicht mit der Seite beschäftigen.


    Man darf auch nicht vergessen:
    Jede Aufgabe müsste einzeln in exakt dieser Art und Weise in einer Datenbank mit der dazu gehörenden Antwort abgelegt werden.


    DEINE Aufgaben passen nur zu exakt deiner Seite. Du hast die volle Kontrolle darüber, wie die Wörter innerhalb der Aufgabe variieren.
    Stellst du fest, dass eine der Aufgaben durch Spambots gelöst werden kann, lösche sie und stelle eine ähnliche Aufgabe .. mit anderen Wort-Variationen .. und schon ist sie für Spambots wieder "unlösbar" geworden ---> bis exakt diese Aufgabe wieder einmal den Cpatcha-Löseern vorgelegt wird.


    Bei den aktuell benutzten Captchas kann im Laufe der Zeit eine allumfassende Datenbank angelegt werden.
    Captcha-Bilder werden mit den passenden Lösungen in einer Datenbank abgelegt, auf die Spambots später zugreifen können.
    Auch wenn es viele Variationen gibt, so ist die Menge der Variationen doch am Ende irgendwo begrenzt.
    Je mehr Lösungen gespeichert werden, desto höher wird die Treffergenauigkeit von Spambots.


    Wissens- und Sinn-Captchas bieten aber faktisch wirklich eine unendliche Variationsvielfalt.
    Schon die Umstellung von Wörtern bedeutet für Spambots eine "ganz andere Aufgabe", die er nicht in seiner Datenbank hat und deshalb auch nicht lösen kann.