Warum versendet meine Website oder mein Shop Spam-Mails?

Warum versendet meine Website oder mein Onlineshop Spam-Mails?

Jeder kennt sie, sie sind unerwünscht und ärgerlich: Spam-Mails.
Mittlerweile verfügt jedes E-Mail-Programm, Betriebssystem, jeder PC oder Server über einen Spam-Filter und blockiert einen Großteil dieser Inhalte. Und trotzdem gibt es keinen 100%igen Schutz.

Doch wie kommt es dazu, dass der eigene Webshop oder die eigene Website Spam-Mails versendet? Diese Frage erreicht in letzter Zeit unsere Systemadministratoren immer häufiger. Das möchten wir zum Anlass nehmen und Ihnen aufzeigen, was ein möglicher Grund dafür ist, was im Hintergrund passiert und was Sie dagegen tun können.

Der Grund für den Versand von Spam-Mails

In vielen Fällen sind ungeschützte Formulare auf Websites und Onlineshops der Grund für den Versand von Spam-Mails. Das betrifft alle Formulare, beispielsweise Bestell- und Kontaktformulare, die ohne Prüfung Daten annehmen, die Inhalte nicht validieren und daraus Spam-E-Mails generieren. Verantwortlich dafür sind Bots bzw. Programme, die das World Wide Web ganz gezielt nach solchen Formularen durchsuchen und sie zum Versenden von Spam missbrauchen. Selbst Formulare, die laut CMS deaktiviert sind, können auf solche Anfragen reagieren und Spam verursachen. Bleibt der massenhafte Versand von Spam-Mails unentdeckt, wird im schlimmsten Fall die IP des Servers gesperrt, auf dem die Website, der Onlineshop oder das CMS liegen.

Das passiert im Hintergrund

Ein Formular hat in der Regel mehrere ID-Felder. Sie sind meistens so benannt, dass ein User das Feld und dessen Funktion schnell identifizieren kann, zum Beispiel Name, E-Mail-Adresse. Meist wird auch definiert, welches Feld ein Pflichtfeld ist.

Ein HTML-Formular dazu kann wie folgt aussehen:

Aus diesen Informationen kann ein Bot bereits erkennen, welche Angaben vom User verlangt werden, wie der POST-Request formuliert werden muss und wohin die eingegebenen Daten geschickt werden müssen.

Info: Bei der POST-Methode sind die Daten, im Gegensatz zur GET-Methode, nicht Teil der URL. Die übermittelten Daten sind für User nicht sichtbar, sodass die Methode im World Wide Web bevorzugt für sensible Bereiche, wie eben Formulare, eingesetzt wird.

In unserem HTML-Formular gibt es unter action das Script pfad-zum-script.php, das die folgenden Daten per POST entgegennimmt:

  • firstname = Vorname
  • lastname = Nachname
  • emailaddress = E-Mail-Adresse

Abhängig davon, wie die Daten im PHP-Script validiert werden (beispielsweise über die Zeichenlänge oder das Format), können die Informationen schon ausreichend sein, um daraus Spam-E-Mails zu generieren, die dann mithilfe des Scripts verschickt werden. Nachfolgend finden Sie als Beispiel ein minimales PHP-Script, das ohne E-Mail-Funktion erstellt wurde:

In unserem Formularbeispiel bestehen wir mit dem Attribut required="required" darauf, dass alle Felder ausgefüllt werden müssen und dass die Eingabe in dem Feld "emailaddress" einer E-Mail-Adresse entspricht. Diese Daten werden im PHP-Script zwar abgefragt, aber nicht wirklich validiert.

Wird also per POST nur die E-Mail-Adresse korrekt übermittelt, kann dadurch schon ein E-Mail-Versand ausgelöst werden. Hier könnte also ein Bot einen POST absenden, der nur die E-Mail-Adresse enthält und wäre damit teilweise schon erfolgreich. Dieser Bot-Befehl könnte beispielsweise so aussehen:

Häufig missbrauchen Bots zusätzlich auch die Felder "Vorname" und "Nachname" für ihre Spam-Nachrichten:

Durch solche Formulare steigt das Missbrauchspotential enorm an. Leider müssen wir häufig feststellen, dass namhafte und beliebte Content Management Systeme in den Standardeinstellungen keinen Schutz für Formulare aktivieren. Kunden werden in den meisten Fällen erst auf dieses Problem aufmerksam, wenn das CMS bereits für Spam missbraucht wurde.

Bots hinterlassen in den Logfiles der Webserver ihre Spuren. Um also zu prüfen, ob Ihr CMS von einem Spam-Bot aufgesucht wurde, reicht ein Blick in das access.log Ihrer Website. Das kann in gekürzter Form wie folgt aussehen:

In unserem Beispiel können Sie erkennen, dass unterschiedliche IP-Adressen (zum Beispiel 94.142.x.x oder 109.70.x.x) POST-Anfragen auf die URL /newsletter senden und dabei keinen Referrer mitliefern. Der User Agent ist dabei meist derselbe.

Darüber hinaus sollten Sie auch die IP-Adresse prüfen. Sie gibt Aufschluss darüber, ob der Request von einer IP eines Internetanbieters, zum Beispiel Telekom, Vodafone, etc., generiert wurde oder von einem Server-Anbieter stammt. Für die IP-Analyse gibt es verschiedene Online-Tools, zum Beispiel "Whois" von der Heise Medien GmbH & Co. KG.

Wirkungsvolle Gegenmaßnahmen

Um Bot-Angriffe wirkungsvoll zu bekämpfen, empfehlen wir Ihnen die nachfolgenden Maßnahmen:

Captcha

Einfach zu implementieren. Bedingt nutzerfreundlich.
Die wohl bekannteste Option ist der Einsatz eines Captcha (Completely automated public turing test to tell computers and humans apart). Mit diesem Sicherheitsmechanismus wird festgestellt, ob die Formulareingaben von einem Mensch oder einer Maschine gemacht wurden. Meist muss der User eine Aufgabe (Challenge) lösen, was häufig allerdings als störend empfunden wird und die Interaktion mit einer Website beeinträchtigt. Dennoch können Sie diese Option vergleichsweise einfach einbinden, denn die meisten CMS haben diese Funktion bereits implementiert, sodass man sie nur aktivieren muss. Oder Sie rüsten die Captcha-Funktion mittels Plugin nach.

Honeypot

Effiziente Bot-Falle. Positive Conversion Rate.
Mit Honeypot, zu Deutsch Honigtopf, werden Computersysteme oder Netzwerkkomponenten bezeichnet, die gezielt Angriffe anlocken sollen. Damit möchte man Angreifer in die Irre führen und vom eigentlichen Angriffsziel ablenken. Über das Protokollieren der Angriffsmethoden kann man dann den Angreifer analysieren und identifizieren.

In Formularen ist ein Honeypot ein für den Website-Nutzer verstecktes Formularfeld das vorgibt, eine (eventuell) wichtige Information abzufragen. Das Feld sollte via HTML und CSS so implementiert sein, dass ein echter User, der einen Browser nutzt, dieses Feld nie wirklich sieht. Sie könnten beispielsweise zusätzlich den Spitznamen eines Nutzers durch das Feld "nickname" abfragen und den Bot so in eine Falle locken. Denn wurde dieses (eigentlich "unsichtbare") Feld ausgefüllt, können Sie davon ausgehen, dass ein Bot mit Ihrer Seite interagiert hat. So können Sie weitere Maßnahmen ergreifen bzw. die Formulareingaben nicht weiterverarbeiten.

Input-Validierung

Ein Muss.
Bevor Sie Captcha und Honeypot in Erwägung ziehen, sollten Sie sich der Validierung der Formulareingaben widmen. Damit können Sie bereits viele Bot-Anfragen herausfiltern. Fragen Sie in Ihrem jeweiligen Formular nur die Daten ab, die Sie wirklich benötigen. In unserem Formularbeispiel möchten wir lediglich den Vornamen, Nachnamen und die E-Mail-Adresse des Nutzers wissen. Was kann man bei diesen Feldern nun validieren?

Vorname und Nachname:

  • Zeichenlänge: Es wird ein Vor-/Nachname erwartet. Sie könnten hier also die Buchstabenanzahl begrenzen, zum Beispiel auf 50, denn selbst gebräuchliche Vor- und Nachnamen weisen nur eine bestimmte Länge auf.
  • Wortanzahl: Begrenzen Sie die maximale Anzahl beispielsweise auf 4 Wörter für Vor- und Nachname.
  • Schließen Sie aus, dass E-Mail-Adressen, URLs, Domain-Namen oder andere unerwartete Zeichenketten verwendet werden indem Sie Sonderzeichen ausschließen, wie zum Beispiel @ . / ! ? $ = % & § ( ) [ ] { }. Dadurch würde ein Name wie "index.php?id=x&id2=y" ausgeschlossen.

E-Mail-Adresse:

  • Stellen Sie sicher, dass die Eingabe einer E-Mail Regex (kurz für Reguläre Ausdrücke) standhält. Damit lässt sich prüfen, ob die Zeichenfolge ein gültiges E-Mail-Format aufweist.

Ein Bot scheitert dann, wenn er in die Felder Daten einträgt, die Ihren Vorgaben nicht entsprechen, zum Beispiel ein ganzer Satz im Feld "Vorname". Für den Fall der Fälle, dass die Eingabe eines Nutzers Ihren Vorgaben nicht entspricht, falls beispielsweise der Nachname länger als 50 Zeichen ist, können Sie nach der Validierung der Eingaben noch ein Captcha anzeigen lassen.

Browser-Überprüfung

Jeder Browser liefert Merkmale mit, durch die zwischen Bot und User unterschieden werden kann. Mittels JavaScript können beispielsweise nachfolgende Merkmale abgefragt werden:

  • Kann JavaScript Code ausgeführt werden?
    Die wenigsten Internetnutzer benutzen das World Wide Web ohne JavaScript – meist sind es Bots.
  • Welcher Internetbrowser wird genutzt?
    Oft wird der Useragent bei Bots gefälscht.
  • Stimmt die Bildschirmgröße?
    Beispiel: Wird bei einem Mac-Useragent unter Big Sur eine Bildschirmgröße von 640 px x 480 px mitgeschickt, deutet das auf einen Bot hin, denn die Bildschirmgrößen eines MacBooks liegen zwischen 13" (1.248 px) und 16" (1.536 px).
  • Hat der Browser Plugins installiert?
  • Gibt es eine Maus, die sich bewegt?
  • Wurde ein Referrer mitgeschickt?
  • Ist ein Cookie vorhanden?

URL-Sperrung

Sie haben bei unseren nginx-Webservern die Möglichkeit, POST-Anfragen an URLs mittels Schnipsel zu sperren. Nutzen Sie diese Möglichkeit!

Wenn Sie beispielsweise Shopware 5 verwenden, würde Ihr Schnipsel wie folgt aussehen, um unterschiedliche (Beispiel-)Formulare zu sperren:

# Newsletter Formular
set $ban_uri 0;
if ($request_uri ~* "^(.*)/newsletter(.*)") {
set $ban_uri 1;
}
if ($request_method = "POST") {
set $ban_uri "${ban_uri}1";
}
if ($ban_uri = "11") {
return 403;
}

#Bewertungsformular
if ($query_string ~* "action=rating" ) {
return 403;
}

#Frage zu Artikel stellen
if ($query_string ~* "action=notify" ) {
return 403;
}

Die jeweiligen Schnipsel können Sie ganz einfach in ISPConfig hinterlegen. Loggen Sie sich dazu in Ihrem Server Control Panel ein und wählen Sie im Hauptmenü unter dem Punkt "Webseiten" die gewünschte Website aus. Im Reiter "Umleitung" können Sie dann den Schnipsel einsetzen.

Hinweis: Unter der Anleitung "Weiterleitung einrichten" finden Sie eine Schritt-für-Schritt-Beschreibung.

Unser Fazit

Formulare auf Websites und Onlinehops bieten eine Angriffsfläche, um Spam-Mails zu versenden. Falls Sie bei der Erstellung Ihrer Formulare noch keine Sicherheitsmaßnahmen berücksichtigt haben, sollten Sie dies nachträglich anpassen. Im besten Fall entwickeln Sie im Vorfeld zusammen mit Ihrer Agentur oder Ihrem Entwickler eine Strategie für die Entwicklung und Umsetzung von Maßnahmen, um mögliche Angriffspunkte auszuschließen oder zu minimieren.

Es gibt viele Möglichkeiten, die Schwachstellen von Webformularen zu schließen. In Kombination miteinander sind sie umso wirkungsvoller. Wollen Sie beispielsweise den Captcha-Einsatz vermeiden, setzen Sie einen Honeypot ein und werten Sie zusätzlich die Daten aus, die der Browser mitliefert. Reichen Ihnen die Indizien dieser beiden Maßnahmen aber nicht aus, aktivieren Sie zusätzlich ein Captcha. So stellen Sie sicher, dass es sich bei dem Besucher auf Ihrer Seite um einen echten Nutzer handelt.

Sobald bekannt wird, dass von Ihrem CMS Spam verschickt wird, sollten Sie zwingend alle Formulare abschalten bzw. wirksam sperren und das weitere Vorgehen mit Ihrer Agentur oder Ihrem Entwickler abstimmen.

Finden Sie den passenden Tarif

Unser Tarifberater hilft Ihnen dabei, das passende Paket zu finden. Bei Fragen berät Sie unser Sales-Team sehr gerne unter +49 (0) 4131 / 22 78 1-25 oder sales@timmehosting.de.

Bitte beachten Sie: Der Tarifberater dient nur der groben Orientierung. Ihr tatsächlicher Bedarf kann durch den Ressourcenbedarf Ihrer Anwendung(en), tageszeitabhängige/saisonale/aktionsbedingte Schwankungen des Besucheraufkommens, geplantes Wachstum und weitere Faktoren von der Empfehlung abweichen.

  • 1
  • 2
  • 3
  • 4
  • 5

Was möchten Sie hosten?

Möchten Sie einen oder mehrere Shops hosten? (Eine Multishop-Installation gilt als ein Shop.)

Möchten Sie eine oder mehrere Websites hosten? (Eine Multisite-Installation gilt als eine Website.)

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Web Hosting

Zu den ScaleServer Paketen Zu den Web Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Shop Hosting

Zu den ScaleServer Paketen Zu den Shop Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed vServer oder ScaleServer

Zu den Managed vServer Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed Server oder ScaleServer

Zu den Managed Server Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen unsere

Timme Cloud 2.0

Zur Timme Cloud 2.0