Mastodon

Nach dem Artikel über das Erkennen von Spam hier einige technische Möglichkeiten um E-Mails zu filtern, die man vermutlich nicht lesen möchte. Neben dem Komfort hilft das auch sogenannte Phische leichter zu erkennen. Als Phishing bezeichnet man allgemein gesagt die Methode einen seriösen Inhalt vorzutäuschen, um so eine Reaktion beim Empfänger auszulösen; im harmlosesten Fall einen Werbe-Spam ernstzunehmen; im schlimmsten Fall die Zugangsdaten zu seinem Online-Banking preiszugeben.

Einfache Methoden

Im E-Mail-Programm die automatische Erkennung einschalten. Ohne weitere Maßnahmen ist diese Methode sehr ungenau, weil man sich quasi “blind” auf die Erkenntnisse und Einschätzungen anderer verlässt. Sowohl false positives, also die Spam-Markierung gewünschter Nachrichten (“Ham”) sind häufig, also auch false negatives, also eine fehlende Markierung von Spam.

Die automatische Erkennung trainieren verbessert die erste Methode deutlich. Das bedeutet, man sagt dem E-Mail-Programm, was Spam und was Ham ist. Dadurch “lernt” es und wird im Laufe der Zeit immer besser.

Bei manchen Dienstleistern kann man eine Markierung von Spam schon auf dem Server aktivieren. Da diese meist mehr Erfahrung haben und auch ein größeres E-Mail-Aufkommen, ist die Markierung recht zuverlässig. Ein Training ist hier nicht üblich, weil sich diese Dienstleister nicht gern auf die Einschätzung ihrer Kunden verlassen möchten. Auch diese Methode ist wie jede andere nicht 100 % zuverlässig. Man sollte also gelegentlich prüfen, ob kein Ham versehentlich aussortiert wurde.

Fortgeschrittene Methoden

Auf einem eigenen Server lässt sich Spam mithilfe ausgereifter Tools wie SpamAssassin sehr gut markieren. Hier können viele weitere Filter und externe Dienstleister eingebunden werden. Die Bewertung erfolgt hier nicht “schwarz/weiß” anhand von “harten Regeln”, sondern jede Teilmethode trägt einen Teil zu einer Gesamt-Bewertung bei. Das ist viel genauer und zuverlässiger als simple Filter. Wenn die Bewertung hinreichend eindeutig ist, lernt dieser Filter sogar automatisch.

SpamAssassin kann um weitere externe Filter erweitert werden. Die iX vom Heise-Verlag bietet z.B. nixSpam an. Dieser Filter ist für uns besonders wertvoll, weil er aus deutschsprachigen E-Mails trainiert wird. Umgekehrt kann man SpamAssassin auch beibringen, dass alleine schon das Benutzen einer für einen selber ungebräuchlichen Sprache einen Spam-Verdacht darstellt.

Noch besser wird diese Methode, wenn Server auch noch manuell trainiert wird. Dazu kann man IMAP-Verzeichnisse anlegen, aus denen der sogenannte Bayes-Filter im SpamAssassin trainiert wird. Das geht auf Linux-Systemen z.B. mithilfe von incron-Events. E-Mails, die man zum Trainieren benutzen möchte, kopiert man dann einfach in seinem E-Mail-Programm in diese IMAP-Verzeichnisse. Besonders für Spam unterstützen diese Methode viele Programme. Falls man auch Ham trainieren möchte, muss man sich überlegen, was nach dem Training mit der E-Mail in diesem Verzeichnis geschieht.

Dem verschickenden bzw. anliefernden Server kann man vorgaukeln, dass der eigene Server gerade nicht empfangen kann. Es soll dann nach 5 Minuten erneut versucht werden. Beim zweiten Versuch funktioniert es dann. Das bewirkt zweierlei: Zum einen sind viele Spamserver dazu nicht in der Lage. Sie “vergessen” die erneute Zustellung. Zum anderen kommt Spam oft in “Wellen”. Diese 5 Minuten geben den anderen Methoden mehr Zeit zu lernen. Für dieses sogenannte “Greylisting” sollte man ein ausgereiftes Tool benutzen, denn man braucht eine Liste von “guten” Servern die wegen Lastverteilung nicht gut wiedererkannt werden können. Sie würden sonst jedes Mal erneut abgewiesen werden. Nachteil dieser Methode ist, dass die E-Mails eben mindestens 5 Minuten verspätet ankommen. Das wird etwas gemildert, dass sich das Greylisting bekannte Absender merkt und diese direkt durchlässt. Zum anderen kann man auch einzelne Absender und Empfangs-Adressen manuell auf eine Whitelist setzen, sodass sie nicht verzögert werden.

Anliefernde Server, die ein Mal als Spammer erkannt wurden, kann man in eine eigene Blacklist eintragen. Das erfolgt meist DNS-basiert. Diese Blacklist wird direkt im Mailserver eingetragen. Dieser weist erneute Zustellversuche dann direkt ab. Das ist sehr wichtig. Eine Blacklist darf nicht erst nach der erfolgten Zustellung aktiv werden, da sonst keine Chance mehr besteht, false positives zu erkennen, die es wie schon erwähnt immer geben kann.

Eine gute Ergänzung zum Spamfilter ist auch ein Virenscanner. Das ist zwar nicht ganz das gleiche, aber als Resultat bei den unerwünschten E-Mails schon. Da auch Viren häufig in Wellen verschickt werden, sind häufig unzählige identische gleichzeitig unterwegs. Besonders dank Greylisting ist die Wahrscheinlichkeit hoch, dass schon jemand anders den Virus erkannt hat. Hier hilft dann eine Datenbank wie VirusTotal, um bekannte Viren anhand einer simplen Prüfziffern-Signatur zu erkennen. Um VirusTotal in den Server zu integrieren, kann ein kleines Python-Script in ProcMail benutzt werden. Wichtig ist dabei, dass man nicht den zu prüfenden Anhang an VirusTotal schickt, sondern nur die Prüfziffer. Denn man möchte sicher nicht jeden (möglicherweise vertraulichen) Anhang auf einen “fremden” Server hochladen.

Computer-Viren mutieren genau wie biologische auch. D.h. es gibt auch eine hohe Wahrscheinlichkeit, dass ein empfangener Virus eben noch von keinem anderen markiert wurde. Hier hilft ein Virenscanner wie ClamAV direkt auf dem eigenen Server. Die Virendatenbank von ClamAV selber ist nicht sehr groß, aber man kann die sogenannten “unofficial” Pakete dazu laden, die erheblich umfangreicher sind und einen besseren Schutz bieten. Aus Performance-Gründen sollte man sich mit der Server-Client-Version von ClamAV beschäftigen. Genau wie VirusTotal kann man ClamAV über ProcMail einbinden.

Hat man mehrere Mailserver zur Verfügung, so kann man diese über entsprechend über mehrere MX-Einträge im DNS zum Empfang nutzen. Dazu müssen diese natürlich auch zum Empfang aller E-Mail-Domains eingerichtet werden. Normalerweise nutzt man das, um den temporären Ausfall des primären Mailservers aufzufangen. Oft sind diese sekundären Mailserver nicht vollständig in das Filterkonzept gegen Spam und Viren eingebunden. Einige Spammer nutzen das aus und gehen bevorzugt über diese sekundären Mailserver. Wir können das nun wieder ausnutzen und markieren jeden der über den sekundären Mailserver reinkommt im SpamAssassin als Spam. Das darf natürlich keine sehr “scharfe” Regel sein, denn zum einen kann der primäre ja wirklich mal ausfallen; zum anderen ist es ja durchaus zulässig den sekundären zu nutzen.

Hinweise

Wie schon erwähnt, darf ein Abweisen eines Zustellversuchs nur direkt während des laufenden Zustellversuchs erfolgen. Erst annehmen und dann verwerfen verbietet sich, weil false positives nicht erkannt werden. Das ist auch juristisch relevant, weil der Absender davon ausgehen muss, dass seine E-Mail empfangen wurde.

Abgesehen vom direkten Ablehnen der Zustellung wird der Absender niemals automatisch vom Spamfilter kontaktiert. Nach der Beendigung der Zustellung erfolgt keine Kontaktaufnahme mehr. Zum einen will man den Spammer gar nicht über seine Erkenntnisse informieren. Zum anderen ist es nahezu unmöglich den wahren Absender einer E-Mail zu ermitteln. Man würde mit hoher Wahrscheinlichkeit Unbeteiligte behelligen. Besonders Server hinter übertriebenen Firewalls wie z.B. die meisten in China machen das oft falsch mit der “Ausrede”, dass der eigentliche Mailserver ja gar keine Chance habe die Verbindung abzulehnen.

Besonders in der ersten Zeit nach der Einführung eines neuen Spamfilters, sollte man den Spamordner regelmäßig prüfen. False positives können sehr ärgerlich sein, wenn dadurch wichtige Informationen verloren gehen. Aus dem gleichen Grund sollte Spam auch niemals automatisch endgültig gelöscht werden.

Teilen
Kategorien: Computer