2. Was ist hier mit Spam gemeint?
Ähnlich den Robots oder Crawlern der Suchmaschinen gibt es böswillige Robots, sogenannte
Spambots. Sie scannen Webseiten auf Schwachstellen, um Daten zu sammeln, Linkbuilding zu
betreiben oder Werbung bzw. Malware zu verbreiten.
E-Mail-Harvesting
Spambots suchen auf Webseiten nach lesbaren E-Mail-Adressen und sammeln diese, um später
Massen-Mailings mit Werbung, Malware o.ä. zu versenden
Formular-Spam
Spambots versuchen auf Webseiten zu posten, um auf ihre Seiten zu verlinken, Werbung zu
platzieren oder Malware-Links anzubringen. Dazu versuchen sie ggf. auch, sich auf der Seite zu
registrieren oder einzuloggen.
Warum das Ganze?
Ganz einfach: es geht um Geld! Spamming ist ein Milliardenmarkt!
3. Schwachstellen von Spambots
Spambots erkennen i.a. JavaScript oder CSS nicht
Diese Technologien sind verwendbar, um Spambots in die Irre zu führen.
Spambots haben's eilig!
Kein langes Ausprobieren, Suchen oder Warten bei Verzögerungen.
Spambots können kein Deutsch!
Wirkungsvolle Methoden z.B. im Zusammenhang mit Captchas möglich.
Aber: Spambots sind lernfähig!
Abwehrtechniken müssen laufend überprüft und angepasst werden.
4. Wo sitzen die Spammer?
Quelle: trustwave.com, Stand März 2013
5. Maßnahmen gegen E-Mail-Harvesting
E-Mail-Adressen einfach nicht anzeigen
Sehr wirksam, aber nicht immer praktikabel
E-Mail-Adressen als Bild platzieren
Problem: Barrierefreiheit
E-Mail-Adressen verschleiern
- manuell, z.B. "info [at] muster [dot] de"
- automatisch, z.B. mit Hilfe von JavaScript:
ohne JS:
<span class="spamspan"><span class="u">m.muster</span> [at] <span class="d">t-online [dot]
de</span></span>
mit JS:
<a href="mailto:m.muster@t-online.de" class="spamspan mailto">m.muster@t-online.de</a>
Geeignete Drupal Module:
http://drupal.org/project/spamspan
http://drupal.org/project/invisimail
6. Allgemeine Maßnahmen gegen Formular-
Spam
Anonyme Benutzer nichts posten lassen
Wirksam, aber nicht immer gewünscht (Barriere)
E-Mail-Verifizierung
Neue Benutzer, oder ggf. Posts, müssen per Mail bestätigt werden.
Moderation
Beiträge, Kommentare oder neue Benutzer vor Freischaltung kontrollieren. Nicht immer praktikabel.
Postings für Spammer unattraktiv machen
Kommentare auf gesonderter Seite platzieren, ausgehende Links mit REL="NOFOLLOW" versehen.
Abfrage einschlägiger Blacklists
IP-Adressen bekannter Spammer werden gesperrt.
Beispiele dazu: http://drupal.org/node/599512
7. Spam-Erkennung durch Captchas
(kleine Aufgaben)
Grundidee:
Zusätzlich zu den eigentlichen Formulareingaben muss der Benutzer eine kleine Aufgabe lösen, z.B.
ein Bilderrätsel, eine Matheaufgabe, eine Frage beantworten, und Ähnliches. Spamrobots können das
im Idealfall nicht.
Verfahren:
Bild-Captcha, Mathe-Captcha, Riddle, Spiele,...
Problem:
- Usability / Accessibility, vor allem bei Bilderrätseln. Alternativen ermöglichen!
- Spambots nutzen z.T. OCR
Geeignete Drupal Module:
http://drupal.org/project/captcha
http://drupal.org/project/recaptcha (externer Service)
8. Beispiele für Captchas
Ungeeignet (kaum lesbar, nicht barierrefrei): Besser (barrierefreier, Reload):
Textalternative (sehr wirksam):
9. Honeypot: die falsche Fährte
Grundidee:
Man bietet Spambots ein Formularfeld an, das normale Benutzer nicht sehen können. Wird das Feld
ausgefüllt, besteht Spamverdacht!
Verfahren:
Das spezielle Formularfeld wird per CSS oder Javascript ausgeblendet. Beides können Spambots
normalerweise nicht erkennen.
Problem:
Barrierefreiheit, bei JavaScript nicht gegeben. Besser bei CSS!
Geeignete Drupal Module:
http://drupal.org/project/honeypot
http://drupal.org/project/spamicide
10. Textanalyse der Formulareingaben
Grundidee:
Eingegebene Texte werden auf verdächtige Inhalte geprüft, z.B. einschlägige Begriffe (viagra, porn,
swarovski, money...), um Spam zu erkennen.
Verfahren:
Früher wurde das über Listen mit Stoppworten gemacht, heute werden i.a. externe Services dafür
genutzt, z.B. Akismet, Defensio oder Mollom
Problem:
Datenschutz! Die Formulareingaben werden an einen externen Server geschickt, i.a. in den USA.
Dieser unterliegt nicht dem BDSG. Deshalb ist ein entsprechender Datenschutzhinweis zwingend
erforderlich! Und: was tun, wenn der Serviceprovider nicht erreichbar ist?
Geeignete Drupal Module:
http://drupal.org/project/antispam
http://drupal.org/project/mollom
12. Analyse des Formular-Timings
Grundidee:
Formulare die zu schnell ausgefüllt und abgeschickt wurden, wurden wahrscheinlich automatisiert
bearbeitet -> Spamverdacht!
Verfahren:
Es wird eine Mindestdauer zum Ausfüllen des Formulars verlangt. Schnellere Eingaben werden
abgewiesen, und das Formular ggf. für einige Zeit gesperrt.
Problem:
Bei kurzen Formularen ist die Zeitspanne u.U. zu hoch -> Fehlalarm
Ausfüllhilfen (Autofill durch Browser oder spezielle Tools) -> Fehlalarm
Geeignete Drupal Module:
http://drupal.org/project/honeypot
http://drupal.org/project/botcha
14. Verstecken von CMS-typischen URLs
Grundidee:
Die Adressen der Standardformulare von großen CMS sind bekannt und werden gezielt angelaufen.
Beispiel: /user/register, /contact, /guestbook, /forum, usw. Also schreibt man diese um.
Verfahren:
Aus Drupals "user/register" wird z.B. "registrieren" gemacht, die ursprüngliche URL erzeugt einen
Fehler oder führt auf ein irrelevantes Formular (s. Honeypot)
Problem:
Sollte nicht als einziges Verfahren eingesetzt werden. Wird das Formular vom Spamrobot entdeckt, ist
es nicht weiter geschützt.
Geeignete Drupal Module:
http://drupal.org/project/rename_admin_paths
16. Schlussfolgerungen
Verfahren kombinieren!
Mehrere Verfahren einsetzen, sortiert nach Aufdringlichkeit (unobstrusive -> obstrusive). Also nicht
erst die IP sperren und dann ein Captcha anzeigen! Beispiele: Mollom, Honeypot
Fallbacks bereitstellen!
- wenn eine Technologie nicht zur Verfügung steht (z.B. JS)
- wenn ein externer Service nicht erreichbar ist
- wenn eine Fähigkeit nicht zur Verfügung steht (z.B. Lesen)
Usability berücksichtigen!
Captchas können sehr schnell nerven, Zeitsperren auch!
Accessibility beachten!
Barrierefreiheit, z.B. für fehlsichtige, blinde oder taube Benutzer
Datenschutz berücksichtigen!
17. Fragen / Diskussion
Zum Weiterlesen:
http://de.wikipedia.org/wiki/Spam
http://www.lifeisaprayer.com/articles/web-design/2011/preventing-form-spam
https://www.trustwave.com/support/labs/spam_statistics.asp
Diese Folien als PDF:
http://www.slideshare.net/drubb