Sicherheitslücke im Newsletter-System MailOut
Abgreifen von E-Mail-Adressen leicht gemacht – wieder ein mal können Suchmaschinen dazu missbraucht werden, an vertrauliche Informationen zu gelangen: Das Newsletter-System MailOut gibt in der Standard-Konfiguration die E-Mail-Adressen der aktuellen Interessenten preis. Sie stehen in einer einfachen Textdatei, die für jedermann zugänglich auf dem Webserver liegt.
Die Funktionsweise von MailOut und das Problem
Was die Verwaltung der E-Mail-Adressen der Interessenten angeht, wurden bei Entwicklung MailOut offensichtlich sämtliche Sicherheitsvorkehrungen außer Acht gelassen. Die Hauptkomponente von MailOut ist ein Windows-Programm und läuft auf dem Rechner des Betreibers. Um die Abwicklung von Ein- und Austragungen über die Website kümmert sich ein kleines PHP-Script. Dieses Script trägt die E-Mail-Adressen in die Dateien „email_list_in.txt“ bzw. „email_list_out.txt“ auf dem Webserver ein. Mit Hilfe des Windows-Programm holt der Betreiber dann vor dem Versand des nächsten Newsletters die Neueintragungen bzw. Abmeldungen über eine ungesicherte HTTP-Verbindung ab.
Eine Google-Suche nach „powered by MailOut Enterprise“ fördert diverse Bestell-/Abstellseiten von MailOut zu Tage. Ruft man eine solche Seite auf und ersetzt den Dateinamen in der URL (z.B. „unsubscribe.html“) durch „email_list_in.txt“ oder „email_list_out.txt“, findet man in den meisten Fällen eine Auflistung von mit hoher Wahrscheinlichkeit gültigen E-Mail-Adressen.
Ein Angreifer könnte sich also einen Cronjob einrichten, der die E-Mail-Adressen in regelmäßigen Abständen abholt und seine Datenbank einpflegt – ohne dass der Betreiber davon etwas mitbekommt. (Es sei denn natürlich, er analysiert regelmäßig seine Logs. Aber wer das tut, dem sollte diese Sicherheitslücke schon längst aufgefallen sein.)
Abhilfe für den Betreiber
Wer dieses System auf seiner Website einsetzt, sollte die Dateien, die vertrauliche Informationen enthalten, unbedingt vor öffentlichem Zugriff schützen. Dies kann auf Apache-Webservern mit der folgenden .htaccess-Datei erreicht werden:
<FilesMatch "^(email_list_(.*)|hashes\.csv)$">
Order deny,allow
Deny from all
</FilesMatch>
Die Dateien
- email_list_in.txt
- email_list_out.txt
- hashes.csv
sind dann über HTTP nicht länger zugänglich. Das hat allerdings zur Konsequenz, dass die Adressen auch von der MailOut-Software nicht mehr ausgelesen werden können. Abhilfe schafft eine IP-basierte Ausnahmeregelung (einzufügen nach der Deny-Regel):
Allow from 0.0.0.0
Wer allerdings eine dynamische IP-Adresse besitzt oder das Newsletter-System von unterschiedlichen Internetzugängen aus verwalten möchte, muss vor jeder Aktualisierung der Datenbank seine aktuelle IP-Adresse eintragen.
Abhilfe für Interessenten
Wer bei der Bestellung eines Newsletter unter dem Formular die Zeile „…powered by MailOut Enterprise!“ entdeckt, sollte gewarnt sein. Entweder sieht man von der Bestellung des Newsletter gänzlich ab oder man verwendet eine Wegwerf-Adresse, die bei einer möglichen Spamflut einfach wieder gelöscht werden kann.