Workshops / Hintergrundberichte / Buchvorstellungen
---------------------------------------------------

1. Workshop: Anti-Spam mit YAM (von Christian Aichinger)

E-Mail ist toll! Elektronische Briefe an Freunde, Bekannte oder Verwandte 
kosten so gut wie nichts und sind im Allgemeinen innerhalb von Sekunden am 
Ziel. Auch Einladungen, Rundschreiben und Diskussionsbeiträge werden 
normalerweise in Nullkommanix verteilt und erreichen den Menschen am 
anderen Ende der Leitung im besten Fall sofort. Doch genauso viel 
Anziehungskraft wie auf normale Internet-Anwender haben all diese Vorteile 
von E-Mails auch auf jene, die versuchen, mit Werbung und ominösen 
Angeboten das schnelle Geld zu machen; werden doch die Kosten für eine 
umfangreiche E-Mail-Werbekampagne zum größten Teil von den Empfängern 
getragen (nämlich mittels derer Telefonrechnung). Geringe (bis keine) 
Investitionen und größtmöglicher Gewinn locken so manchen "Geschäftsmann", 
der die eigenen Kosten sogar so weit minimiert, als dass er zum Versenden 
seiner Spam-Mails den Internetzugang des Arbeitgebers verwendet und mit 
Hilfe von Robots (kleine Programme, die das Internet systematisch 
durchforsten) seine E-Mail-Datenbestände automatisch erweitern lässt.

In letzter Zeit wurde es mir jedenfalls endgültig zuviel mit Download-
Angeboten für "100%ig kostenlose Sex-Software", dümmlichen Kettenbriefen 
und "heißen Sonderangeboten" von Firmen, deren Name ich noch nie zuvor 
gehört habe. Einige Absender waren sogar so unverschämt, mir ihren 
gehaltlosen Müll gleich drei- bis viermal hintereinander zu schicken. Zum 
Teil ging es soweit, dass von zehn E-Mails fünf ungelesen in den Müll 
wanderten, spricht doch allein schon das Betreff-Feld der meisten Spam-
Mails eine eigene Sprache ("Software für Dich!", "LADIES earn money for 
college, vacation, car, new house!", "Top Verdienstmöglichkeit ! ! ! ...", 
usw.). Doch meinen alten E-Mail-Account aufgeben? Nein, dazu hatte ich nun 
auch keine Lust - ist es außerdem nur eine Frage der Zeit, bis wieder das 
alte Spam-Aufkommen auf einem neuen Account erreicht werden würde.


Defensive

Eine goldene Regel zur Bekämpfung von Spam lautet: Antworte niemals auf 
solche Mails! Mal ganz abgesehen davon, dass die eigene Telefonrechnung 
durch eine Antwort auf Spam ein weiteres Mal sinnlos beansprucht wird, 
erhält der Spam-Versender durch eine Antwort auf sein Angebot die 
Verifizierung eines gültigen E-Mail-Accounts. Für ihn ist ein gültiger E-
Mail-Account bares Geld wert, kann er doch nun diese E-Mail-Adresse an 
andere Spammer weiterverkaufen (man mag es kaum glauben, aber damit wird 
tatsächlich Geld verdient) und/oder seine Aktivitäten auf diese Adresse 
verschärfen. Die Folge für den Anwender: Das Spam-Aufkommen wächst, anstatt 
zu schrumpfen.
Aber was bleibt dem entnervten Anwender als Antwort auf Spam übrig? - Nun, 
zum einen kann man "aufgeben", sprich, sich einen neuen E-Mail-Provider
suchen und den alten E-Mail-Account abschalten lassen. Die neue E-Mail-
Adresse an den Bekannten- und Verwandtenkreis weiterzugeben ist in dem Fall 
kein so großes Problem, doch falls der Anwender in mehreren Mailinglisten 
eingetragen ist oder die Dienste eines kommerziellen E-Mail-Providers in 
Anspruch nimmt, artet so eine Adressänderung meistens schon in "richtige 
Arbeit" aus, die man sich als Benutzer von YAM auch sparen kann. Zum 
anderen kann man sich auch von vornherein einen E-Mail-Provider suchen, der 
es über sein Webinterface ermöglicht, einen Spam-Filter einzubauen. Als 
Beispiel sei hier GMX (http://www.gmx.de) genannt. Wenn der E-Mail-Provider 
solch ein Feature nicht unterstützt sieht es düster aus, oder? Nicht ganz!


Born to Kill

Die Lösung lautet "Killfile", oder in der gemäßigteren YAM-Formulierung 
ausgedrückt: "Remote-Filter". Diese Filter-Form durchsucht vor dem Holen 
der E-Mails alle Mailheader (und nur die Mailheader) nach frei wählbaren 
Header-Schlüsselworten (wie z.B. das "From:"-Schlüsselwort, das über die
Absender-Adresse Auskunft gibt). Dazu muss allerdings der optionale "TOP"-
Befehl vom verwendeten POP3-Server (POP3: Post Office Protocol V3; das 
heutzutage übliche Protokoll zur Verwaltung des "E-Mail-Briefkastens") 
unterstützt werden.
Wie gesagt, dieser Befehl ist optional und muss nicht von jedem POP3-Server 
zur Verfügung gestellt werden. Ob der eigene E-Mail-Account nun "Remote-
Filter"-fähig ist, lässt sich demnach nur nach dem Motto "Versuch macht 
kluch" in Erfahrung bringen, es sei denn, der E-Mail-Provider weist 
definitiv auf diese Eigenschaft hin (was natürlich auch keine 
hundertprozentige Garantie für eine korrekte Funktion sein muss).


E-Mail-Analyse

Um ein halbwegs effektives Killfile aufzubauen, benötigt man als erstes
natürlich die E-Mail-Adressen derjenigen, die sich in den Augen des 
Anwenders besonders als Spammer hervorzeichnen. Am besten durchsucht man 
dazu das Postfach "Deleted" nach älteren Spam-Mails. Hat man nun solch eine 
Mail gefunden, muss nur noch die E-Mail-Adresse des Absenders gefunden und 
in einer externen Textdatei eingetragen werden. Es können natürlich mehrere 
E-Mail-Adressen in diese Datei aufgenommen werden, oder aber auch nach ganz 
anderen Merkmalen (E-Mail-Provider ["@yahoo.com" und "@msn.com" werden sehr 
gern von Spammern verwendet], Teilketten mit AmigaDOS-Dateimustern, etc.) 
gesucht werden. Jedoch sollte beachtet werden, dass, je mehr Parameter in 
der Dateifilterung Verwendung finden, desto länger auch die Analyse aller 
E-Mails vor dem Abholen dauert. Demzufolge sollten nur die wichtigsten 
Merkmale einer solchen E-Mail in das Killfile aufgenommen werden. Gegen 
Spam-Mail hilft im Allgemeinen schon das "From"- oder auch "To"-
Schlüsselwort (also die Absender- bzw. Empfängeradresse). Sinnvollerweise 
sollte diese Textdatei im YAM-Verzeichnis mit einem logisch 
nachvollziehbaren Namen angelegt werden. Mein Killfile nennt sich zum 
Beispiel "Remote-Filter.txt".
Außerdem habe ich der Datei ein Project-Icon verpasst, dessen Tooltype zu 
einem Texteditor verweist. Das Hinzufügen von weiteren Spam-Adressen ist so 
relativ schnell erledigt. Auch ein kleines ARexx-Skript, das das Einfügen 
von E-Mail-Adressen direkt aus YAM in diese Datei erledigt, sollte kein 
wirklich schwieriges Problem darstellen. Falls ich Zeit finde, wird das 
Skript bis zur nächsten Ausgabe nachgeliefert.


Filter stricken

Der Remote-Filter wird im Konfigurationsfenster von YAM erstellt. Dazu wird 
im Menü "Einstellungen" der Punkt "Konfiguration" angewählt. In der linken 
Liste des nun erscheinenden Fensters wird das Feld "Filter" (4. Position 
von oben) selektiert. Daraufhin erscheinen im rechten Teil des Fensters die
Filteroptionen. Ein Mausklick auf "Neu" erzeugt einen neuen Filter. Damit 
dieser als Remote-Filter funktioniert, muss auch das Häkchen "Remote-
Filter" gesetzt werden, das auf der rechten Seite unter dem Reiter 
"Optionen" zu finden ist. Die Namenswahl unterliegt der Entscheidung des 
Anwenders - "Killfile" dürfte allerdings recht naheliegend sein.

Screenshot:
Screenshot

Als nächstes müssen die Werte definiert werden, die eine E-Mail nach 
Meinung des Anwenders als Spam auszeichnet. Unter dem Reiter "Vergleich" 
gibt es nun die Möglichkeit, zwei Suchkriterien zu definieren, die mit 
einem logischen Operator ("und", "oder", "exklusives oder") verknüpft 
werden können. Für den Anfang begnügen wir uns mit nur einem Suchkriterium, 
nämlich der "From-Zeile". Dazu wird das Cycle-Gadget "Suchen in" auf "From-
Zeile" und das direkt darunter befindliche Cycle-Gadget (also die Art des 
Vergleichs) auf "IN" gestellt. "IN" bedeutet übrigens, dass die Suchmuster 
aus einer externen Textdatei entnommen werden. Und hier kommt das vorher 
angelegte Killfile mit den Spam-Absenderadressen ins Spiel. Der Name der 
Datei muss in das Texteingabefeld neben "IN" eingetragen werden. Dazu kann 
auch ein Dateirequester verwendet werden, der mit dem Knopf gleich rechts 
neben dem Texteingabefeld aufgerufen werden kann.

Screenshot:
Screenshot

Nachdem alles eingestellt wurde, muss noch festgelegt werden, was mit den 
Mails, die diesem Suchkriterium entsprechen, geschehen soll. Da es sich 
dabei um Spam handelt, können solche Mails ruhig auf dem E-Mail-Server 
bleiben und gleich dort gelöscht werden. Dazu wird der Reiter "Aktion" 
aufgerufen und die beiden untersten Häkchen "Löschen" und "Nicht 
runterladen" gesetzt. Mit einem Klick auf "Speichern" wäre ein 
grundlegender Spam-Filter erstellt.

Erfahrenere Anwender können die Suchkriterien für Spam-Mails wie erwähnt 
mit einer logischen Verknüpfung zusätzlich verfeinern. Zum Teil werden E-
Mail-Adressen von Spam-Versendern in regelrechten Spam-Mailinglisten (wie 
z.B. Yahoogroups, was allerdings laut deren AGBs nicht erlaubt ist) 
verwaltet bzw. verschickt. Die eigene E-Mail-Adresse ist dann in so einer 
Mailingliste eingetragen, obwohl man davon überhaupt nichts weiß, 
geschweige denn sein Einverständnis dazu gegeben hat. In so einem Fall kann 
es sinnvoll sein, auch die "To"-Zeile einer E-Mail auf eine entsprechende 
E-Mail-Adresse bzw. die dort eingetragene Mailinglisten-Bezeichnung 
("Freunde", "Kontaktanzeige") überprüfen zu lassen. Dazu wird das mittlere 
Cycle-Gadget (das jetzt noch auf "nicht verknüpfen" stehen sollte) auf 
"oder" und das zum zweiten Suchkriterium gehörige "Suchen in"-Cycle-Gadget 
auf "To-Zeile" gestellt. Der Vergleichsoperator wird wie beim ersten 
Suchkriterium auf "IN" gesetzt, um die Suchmuster einer externen Textdatei 
entnehmen zu können. Diese externe Textdatei kann entweder wieder die 
gleiche wie beim ersten Suchkriterium sein, in der dann aber zusätzlich 
auch die zu filternden "To"-Adressen eingetragen werden müssen, oder man 
erstellt eine weitere Textdatei (ein weiteres "Killfile"), in der dann 
ausschließlich "To"-Adressen verzeichnet sind.

Screenshot:
Screenshot

Der erste Fall ist nur für bequemere Zeitgenossen geeignet, da im zweiten 
Fall eine zusätzliche Datei verwaltet werden muss, dafür aber der 
eigentliche Vergleich der Mail-Header auf dem Server schneller vonstatten 
geht und demzufolge das "Post holen" mit "schmalbandigen" 
Internetverbindungen nicht zur Kaffeepause ausartet.


Kampf gegen Windmühlen

Leider hat die Remote-Filter-Methode auch eine entscheidende Schwachstelle, 
die den Kampf gegen Spam zur Sisyphus-Arbeit ausufern lassen kann: Da es
unzählige E-Mail-Weiterleitungs-Angebote, Anonymisier-Dienste, kostenlose 
E-Mail-Provider und zu allem Überdruss auch noch Programme gibt, die es dem 
Spammer ermöglichen, seine wahre Identität - besser gesagt E-Mail-Adresse - 
zu verbergen, ist es nahezu unmöglich, vor jeder Spam-Mail gefeit zu sein. 
Der Remote-Filter hilft tatsächlich nur gegen Absender, die wenigstens 
einmal ihren Müll ins Postfach des Anwenders geschickt haben und von diesem 
auch in das Killfile aufgenommen wurden. Ein weiteres Problem ist, dass es 
nur wenige Spammer gibt, die in ihren Mails eine E-Mail-Adresse zweimal 
verwenden, was das Killfile in kürzester Zeit gewaltig anwachsen und 
demzufolge die Filterung vor dem Abholen der Mails enorm verlangsamen 
lassen kann. Wenn es dann irgendwann länger dauert, das gesamte 
Postaufkommen nach Spam durchsuchen zu lassen, als alle Mails inklusive 
Spam herunterzuladen, sollte man logischerweise den Remote-Filter ad acta 
legen. Gegen Postings von unliebsamen Mailinglisten-Teilnehmern, Mail-
Bomben und -Würmer hilft der Remote-Filter im Allgemeinen aber immer, so 
dass er zumindest bei diesen unerwünschten Mails seiner Rolle voll gerecht 
wird.

Christian Aichinger <christian@aakt.de>