

Zugegeben: Ein ungesichertes Webformular ist ein beliebtes Angriffsziel. Besonders kritisch sind diese bei Seitenbetreibern beliebten Formulare, mit denen der Leser die besuchte Seite weiter empfehlen kann. Da der Ausfüllende den Empfänger der Nachricht frei bestimmen kann, lässt sich dieses Formular erstklassig für die Verbreitung von SPAM nutzen.
CAPTCHA ist die Kurzform für Completely Automated Public Turing test to tell Computers and Humans Apart und bezeichnet eine Grafik, die eine zumeist geometrisch möglichst unkorrekte Zeichenkette darstellt. Diese Zeichenkette muss zur Validierung in ein Eingabefeld abgetippt werden und ist maschinell nur schwer lesbar. Der Sinn liegt darin, ein automatisiertes (und massenhaftes) Ausfüllen durch einen Spambot zu vermeiden.
Nachteilig daran ist, dass schon Menschen mit normalem Sehvermögen zumeist ihre Schwierigkeiten haben, diese Zeichenketten zu entziffern. Oft sind die Buchstaben bis zur Unkenntlichkeit abstrahiert. Hinzu kommt, dass die Zeichenketten keine bekannten Wörter darstellen, die man gegebenenfalls noch erahnen kann, sondern in der Regel kryptische Codes aus Groß- und Kleinbuchstaben gemischt mit Ziffern sind.
Auch das Argument, dadurch einen Missbrauch zu verhindern, zählt leider nicht mehr ganz: Findige Programmierer entwickeln immer leistungsfähigere Software, die aus einem CAPTCHA die Zeichenfolge auslesen können. Die Erkennungsraten steigen bedenklich, so dass der Sinn eines CAPTCHAs mittlerweile ernsthaft angezweifelt werden kann.
Sehbehinderte Menschen dürften von einer Alternative am stärksten profitieren, da für sie ein CAPTCHA eine unüberwindbare Hürde bildet: Ein Browser mit Sprachausgabe kann die abgebildete Zeichenkette nicht vorlesen.
Lösungsansätze erfordern Kreativität, denn es gilt, die menschliche Überlegenheit auszuspielen. Der Benutzer muss sich als denkendes Wesen zu erkennen geben können, damit er sich auf diese Weise von einer automatischen Routine unterscheidet.
Eine einfache Lösung ist eine Frage mit gestellten Antworten, von denen der Benutzer die richtige Antwort auswählen muss:
Solange keine Antwort ein klares JA oder NEIN ist, kann der Spambot keinen Sinn in den Antworten erkennen. Seine Erfolgschance liegt bei 20 Prozent. Nutzt man nun noch einen eine willkürliche Auswahl aus einem Pool möglicher Antworten, kann man diese Erfolgschancen beliebig senken.
Eine weitere Möglichkeit ist, den Spambot in die Irre zu führen. Ein Formular zur Weiterempfehlung einer Seite beinhaltet in der Regel den Namen und die E-Mail-Adresse des Absender sowie notwendigerweise die E-Mail-Adresse des Empfängers. Wird nun das Feld für den Namen des Absenders per CSS ausgeblendet, ist es für den normalen Benutzer unsichtbar, für den Spambot jedoch nicht:
Stylesheet:
Quelltext:
Da der Spambot die Angaben des Stylesheets nicht auswertet, wird er das Feld mit der Bezeichnung „email“ vermeintlich ordnungsgemäß ausfüllen wollen. Noch deutlicher wird es für ihn, wenn dem Feld ein Label voransteht, das auch noch mit „Ihr Name“ beginnt. Um Benutzer von Browsern mit Sprachausgabe nicht ebenfalls in die Irre zu führen, muss der Labeltext jedoch so ergänzt werden, dass ihnen der Sinn des Feldes klar wird.
Als weitere Schutzmaßname bietet sich an, in dem üblicherweise vorhandenen Nachrichtenfeld die Eingabe von Webadressen zu untersagen und zu filtern. Wer SPAM versendet, will üblicherweise darin auf Webseiten verweisen. Ohne dieser Möglichkeit macht eine SPAM keinen Sinn. Ein gut sichtbar angebrachter Hinweis dient weniger dazu, Missbrauch zu vermeiden. Vielmehr sollen normale Besucher darauf hingewiesen werden, dass bei Eingabe von Webadressen die Nachricht verworfen wird.
Gute Ideen gibt es noch viele, doch es ist nicht unbedingt sinnvoll, sie gänzlich zu beschreiben. Je individueller ein Formular geschützt ist, desto sicherer ist es. Und je unbekannter den Spambots die eingesetzten Schutzmaßnahmen sind, desto geringer wird ihr Erfolg sein.
Von Tilman Pietzsch am 08. Dezember 2009, 03:33 Uhr veröffentlicht | 499 mal gelesen
Zuletzt bearbeitet am 13. Dezember 2009, 13:42 Uhr
Themen: Code | Technik
