spamschutzverfahren für drupal

17
Spamschutz- verfahren (nicht nur) für Drupal Drupal Meetup Stuttgart 9.3.2013 - drubb

Upload: drubb

Post on 18-Dec-2014

49.267 views

Category:

Documents


0 download

DESCRIPTION

Vortrag beim Drupal Meetup Stuttgart, 9.3.2013

TRANSCRIPT

Page 1: Spamschutzverfahren für Drupal

Spamschutz-verfahren (nicht nur) für DrupalDrupal Meetup Stuttgart 9.3.2013 - drubb

Page 2: Spamschutzverfahren für Drupal

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-HarvestingSpambots suchen auf Webseiten nach lesbaren E-Mail-Adressen und sammeln diese, um später Massen-Mailings mit Werbung, Malware o.ä. zu versenden

Formular-SpamSpambots 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!

Page 3: Spamschutzverfahren für Drupal

Schwachstellen von Spambots

Spambots erkennen i.a. JavaScript oder CSS nichtDiese 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.

Page 4: Spamschutzverfahren für Drupal

Wo sitzen die Spammer?

Quelle: trustwave.com, Stand März 2013

Page 5: Spamschutzverfahren für Drupal

Maßnahmen gegen E-Mail-Harvesting

E-Mail-Adressen einfach nicht anzeigenSehr wirksam, aber nicht immer praktikabel

E-Mail-Adressen als Bild platzierenProblem: 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:[email protected]" class="spamspan mailto">[email protected]</a>

Geeignete Drupal Module:http://drupal.org/project/spamspanhttp://drupal.org/project/invisimail

Page 6: Spamschutzverfahren für Drupal

Allgemeine Maßnahmen gegen Formular-Spam

Anonyme Benutzer nichts posten lassenWirksam, aber nicht immer gewünscht (Barriere)

E-Mail-VerifizierungNeue Benutzer, oder ggf. Posts, müssen per Mail bestätigt werden.

ModerationBeiträge, Kommentare oder neue Benutzer vor Freischaltung kontrollieren. Nicht immer praktikabel.

Postings für Spammer unattraktiv machenKommentare auf gesonderter Seite platzieren, ausgehende Links mit REL="NOFOLLOW" versehen.

Abfrage einschlägiger BlacklistsIP-Adressen bekannter Spammer werden gesperrt.Beispiele dazu: http://drupal.org/node/599512

Page 7: Spamschutzverfahren für Drupal

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/captchahttp://drupal.org/project/recaptcha (externer Service)

Page 8: Spamschutzverfahren für Drupal

Beispiele für CaptchasUngeeignet (kaum lesbar, nicht barierrefrei): Besser (barrierefreier, Reload):

Textalternative (sehr wirksam):

Page 9: Spamschutzverfahren für Drupal

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/honeypothttp://drupal.org/project/spamicide

Page 10: Spamschutzverfahren für Drupal

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/antispamhttp://drupal.org/project/mollom

Textanalyse der Formulareingaben

Page 11: Spamschutzverfahren für Drupal

Beispiel ( hier für Drupal 6):Modul "Mollom"

Page 12: Spamschutzverfahren für Drupal

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 -> FehlalarmAusfüllhilfen (Autofill durch Browser oder spezielle Tools) -> Fehlalarm

Geeignete Drupal Module:http://drupal.org/project/honeypothttp://drupal.org/project/botcha

Page 13: Spamschutzverfahren für Drupal

Beispiel für Drupal 7:Modul "Honeypot"

Page 14: Spamschutzverfahren für Drupal

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

Page 15: Spamschutzverfahren für Drupal

Beispiel für Drupal 7:Modul "Rename Admin Paths"

Page 16: Spamschutzverfahren für Drupal

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!

Page 17: Spamschutzverfahren für Drupal

Fragen / Diskussion

Zum Weiterlesen:

http://de.wikipedia.org/wiki/Spamhttp://www.lifeisaprayer.com/articles/web-design/2011/preventing-form-spamhttps://www.trustwave.com/support/labs/spam_statistics.asp

Diese Folien als PDF:

http://www.slideshare.net/drubb