PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Benchmark für Antispam



kirdie3
02.05.2009, 17:58
Hallo,
Als Informatikstudent an der Uni Leipzig schreibe ich momentan meine Diplomarbeit über Verbesserungen von Antispam-Maßnahmen.
Allerdings habe ich trotz heftigestem Googlen eins noch nicht gefunden: Einen Standardbenchmark für Antispam.
Was ich suche ist so etwas wie ein großer Beispieldatensatz mit 1000 Spam und 1000 Ham Mails, mit denen man dann die Häufigkeit der richtig Erkannten und der
false positives herausfinden kann. Idealerweise sollten über diesen Datensatz bereits Analysen der gebräuchlichsten Produkte existieren, anhand derer man dann
die Effizienz von Modifikationen dieser Methoden überprüfen könnte.
Ich würde mich freuen, wenn wir jemand sagen könnte, ob und wenn ja wo so etwas existiert.
Ich habe auch schon die Forensuche benutzt (http://www.antispam-ev.de/forum/search.php?searchid=595465) aber nichts gefunden.

P.S.: Das ist mein erster Post hier und ich habe das Gefühl, dass es sich bei diesem Forum eher um ein Antispam-Benutzungs- als um ein Antispam-Entwicklungsforum
handelt. Gibt es denn auch ein solches Forum speziell für Entwickler von Antispam?

Gool
02.05.2009, 18:05
Ich schätze, sowas wirst Du auch nicht finden. Schließlich wendet kaum einer nur eine Standardinstallation an, sondern modifiziert die Antispam-Software nach seinem eigenen Ermessen. Um verschiedene Tools zu testen, empfiehlt es sich wohl am ehesten, einen eigenen Mailserver zu eröffnen. Allerdings bedarf es auch da einer gewissen Zeitspanne und einigen "Arbeiten", bis sich so viel Spam dort ansammelt, dass man daraus Rückschlüsse ziehen kann.

actro
02.05.2009, 20:15
Man kann munin dafür benutzen. Der führt Statistik über Ham, Spam, Rejects, etc.

SpamRam
02.05.2009, 20:32
Ehrlich gesagt: ich halte das Thema der Diplomarbeit, so wie es da kurz dargestellt wurde, für recht gewagt.

Man kann doch davon ausgehen, dass ohne Änderung des momentan verwendeten SMTP MailProtokolls kaum wirklich wirksame Maßnahmen gegen Mail-Spam erfolgreich sein werden.

Wichtigste Voraussetzung zur Spam-Filterung natürlich: Analyse von wirklichem Spam: Was ist Spam? Woran erkenne ich Spam? Was unterscheidet schlecht und gut? Wenn die ganzen theoretischen Vorarbeiten weitgehend abgeschlossen sind, Spamkriterien definiert sind, kann man daran gehen, die Antispam-Programme entsprechend einzustellen. Die festgelegten Kriterien sind sicherlich problemlos einzustellen und die Selektion funktioniert auch ganz ausgezeichnet, nur dann kommt wieder eine Mail, die aus dem definierten Rahmen fällt.

Das Herausfinden von False Positives, also Mails, die fälschlich als als Spam erkannt wurden, ist sehr individuell zu sehen. Ich bin überzeugt, dass es nicht möglich ist, automatisiert eine 100%ige Zuverlässigkeit zu erreichen. Es wird immer wieder vorkommen, dass echte Mails die für die Erkennung von Spam definierten Kriterien erreichen und so als Spam klassifiziert werden und umgekehrt gilt dasselbe. Es gibt also eine gewisse Grauzone, die sich nicht vermeiden lässt, weil es immer neue Varianten von Spam gibt, immer wieder werden Spammails verändert, damit sie beim Empfänger trotz Antispam-Programm als echte Mail klassifiziert werden, bis man dem Antispam-Programm beigebracht hat, mit der neuen Variante umzugehen. Ich erinnere mich dunkel (ist schon lange her) an die Sieb-Funktion, die doch auch einen Übergangsbereich hat.

Als gmx-Freemailnutzer stehen mir die Antispam-Maßnahmen von GMX zur Verfügung, Kleine Statistik für April: 221 Mails im Spamverdachtordner davon 40 manuell verschoben, also nicht automatisch erkannt, mit gefühlsmäßig angestiegener Tendenz in den letzten Tagen. False Positives in der Zeit vielleicht 5 Bulkmails / BCCs (trotz Whitelisting des Absenders, weil der z.B. die Absenderzeile geändert hatte).

Wenn ich Werbung sehe, die verspricht besser als 99,99% Erkennung (also weniger als 1 Mail von 10000 Spam-Mails nicht erkannt) und weniger als 0,0001% Falsch Positive (also weniger als 1 Mail von 1 Million fälschlich zu Spam erklärt) dürfte wohl ein Testfeld von 1000+1000 Mails kaum dafür ausreichen, um Untersuchungen für die Verbesserung von Antispam-Maßnahmen durchzuführen.

Das Objekt Mail ist meiner Meinung nach viel zu variabel, um mit einer Menge standardisierten Inhalts Verbesserungen im Mikrobereich erfolgreich zu untersuchen zu können. Ich schließe mich da der Meinung von Gool an und sehe als einzige Möglichkeit, existierende Tools, die mit unterschiedlichem Prüfansatz arbeiten, in der Praxis mit unterschiedlichen Einstellungen zu testen, wobei immer wieder Einstellungen angepasst werden müssen und "neuer Spam" zum Lernen benötigt wird.
----
AntiSpam e.V. ist tatsächlich nicht eine "Entwicklungsforum" von Antispam-Software. Mir ist auch kein solches Forum bekannt. Der Verein bemüht sich mit dem Forum auf freiwilliger und ehrenamtlicher Basis darum, "Opfern" von Spam der verschiedenen Art (Telefon, Mail usw.), Hinweise und Hilfestellung zum Umgang mit Spam zu geben und versucht außerdem die Urheber von Spam zu ermitteln, um gegen sie vorgehen zu können und so zur Verminderung von Spam beizutragen. Da die Mail-Spam-Quellen sich meist in unerreichbarem Ausland befinden, muss es allerdings meist dabei bleiben, Spam zu filtern.

Mittwoch
02.05.2009, 21:58
Ich möchte mich hinsichtlich des Zweifels am Sinn Deiner Bemühungen meinen Vorrednern anschließen. Da Spam in Firmen erhebliche Kosten verursachen kann, besteht für Softwareentwickler ein großer finanzieller Anreiz, durch möglichst gute Filter diese Kosten zu reduzieren und so am Markt einen Wettbewerbsvorteil zu erlangen. Dementsprechend ausgereift sind die mir bekannten Softwarelösungen.

Um Deine Frage nach Beispiel-Spam zu beantworten: Frag doch mal Euer Rechenzentrum. Ich nehme mal an, dass über 90% der Mail, die Eure Uni erreichen, Spam sind; Universitäten haben erfahrungsgemäß nahezu alle Adressen von Angehörigen der Professorenschaft und des Mittelbaus im Internet, wo sie gerne abgeerntet werden. Daher dürfte bei Euch ein guter Spamfilter auf den Servern laufen. Hier könnte sicherlich einfach ein paar exemplarische Mails abzweigen und sie Deinen Analysen unterwerfen.

Schönen Gruß
Mittwoch

Wuschel_MUC
03.05.2009, 11:45
...so etwas wie ein großer Beispieldatensatz mit 1000 Spam und 1000 Ham Mails, mit denen man dann die Häufigkeit der richtig Erkannten und der
false positives herausfinden kann...
Ich bin mir nicht mal sicher, ob ein Standard-Spam-/Ham-Datensatz zielführend wäre. So ein Standard-Datensatz käme nämlich sehr bald auch in die Hände von Spammern, die damit versuchen könnten, Spamfilter auszubremsen.

Wenn du an einem Filterprogramm schreiben solltest: Spam-E-Mails kannst du in beliebiger Anzahl aus dieser Newsgroup ziehen: news.admin.net-abuse.sightings. Damit hast du auch eine hohe Aktualität, denn auch die per Spam beworbenen Waren ändern sich laufend.

Die Ham-E-Mails sind IMHO von Anwender zu Anwender unterschiedlich. Ich behaupte, dass z.B. dein betreuender Prof. ein völlig anderes E-Mail-Profil hat als eine Firma oder ein Informatikstudent. Das Wort "Staatsexamen" sollte z.B. trotz der unmoralischen Zeichenfolge nicht weggefiltert werden.

Du kannst natürlich auch bei diversen Fachzeitschriften anfragen, mit welchen Methoden sie Spamfilter auf ihre Qualität getestet haben.

Der übernächste Weg führt dann zu deinem Prof oder Betreuer, ob sie mit deinen Lösungsansätzen zufrieden sind.

Viel Erfolg!
Wuschel

kirdie3
03.05.2009, 12:42
Erstmal vielen Dank für die ausführlichen und kompetenten Antworten!

Die dargestellen Zweifel an dem Erfolg teile ich leider auch, ich finde es schwer, sich in ein ganz neues Fachgebiet einzuarbeiten und dann etwas zu verbessern, woran schon jahrelang Leute arbeiten, die sich nur darauf konzentrieren aber ich dachte das wäre immer so bei Diplomarbeiten und ich habe ja noch die Hilfe von meinem Betreuer.

Ich brauche die Motivation, etwas Nützliches zu tun und nicht nur eine Arbeit zu schreiben, die dann im Regal verstaubt und Spam hat mich schon immer genervt.

Da die Abteilung bei der ich die Arbeit schreibe mit Semantischen Netzen und Ontologien arbeitet, dachten wir, dass man so etwas irgendwie für Spamfilterung nutzen könnte.

Ich bin da auch noch ziemlich neu und habe noch nicht so komplett verstanden, wie das alles funktioniert aber ich versuche mal ein Beispiel anzugeben, was ich meine:

--------------------------------------------------------------------------
Nehmen wir an, es wird sehr viel Spam versandt, in dem für Medikamente geworben wird.
D.h. unser herkömmlicher Spamfilter X hat jetzt einen Eintrag wie
- Spam ist alles was "drugs" oder "prescription" oder "viagra", ... enthält

Jetzt wird eine Spammail versandt, in der steht "get cheap Bepanthen now".
Der herkömmliche Filter X würde diese Mail dann wohl durchlassen, unser semantischer Filter Y würde aber so funktioniern:

- Filterregel: Spam ist alles, was eine Instanz von <Medikament> enthält

Wir treffen also jetzt auf das Wort Bepanthen und benutzen jetzt eine Wissensbasis, die sehr viel Wissen über die reale Welt enthält, z.B. DBPedia (http://en.wikipedia.org/wiki/DBpedia) (Ein Projekt, welches Wissen aus Wikipedia extrahiert).

Der Filter Y würde also jetzt auf das Wort "Bepanthen" stoßen.
In der Wissensbasis steht jetzt (Bepanthen is_a Wund_und_Heilsalbe), (Wund_und_Heilsalbe subclass_of Medikament).
Damit könnte der Filter Y dann folgern, dass Bepanthen ein Medikament ist und dass die Email Spam ist.

Wir können natürlich jetzt den Filter X erweitern um das Wort "Bepanthen" und viele andere Medikamente.

Was ist aber nun, wenn der Empfänger ein Apotheker ist?

Dann würde er die Mail aus seinem Spamverdachtsordner fischen und sagen "Diese Mail ist kein Spam".

Die Regel "Medikamente raus" würde also jetzt gestrichen werden und er könnte von nun an auch die Viagrabestellungen seiner Kunden erhalten.

Wenn er allerdings den neuen Filter X benutzt, in dem alle neuen Medikamente eingetragen werden, muss er bei jedem neuen Medikament immer neu sagen, dass dieses kein Spamschlüsselwort ist. D.h. wenn er die Mail mit Bepanthen als Ham deklariert, muss er Viagra und co immer noch einzeln aktivieren.
--------------------------------------------------------------------------

Ich weiß nicht, ob so ein Ansatz schon existiert aber in der Richtung bin ich momentan am Recherchieren und ich denke schon, dass es sich lohnen könnte, dem mal nachzugehen.

Aber zurück zum eigentlichen Thema:
Das ist schade, denn ich denke mal, dass mir so ein Benchmark viel Arbeit erspart hätte.
Das Problem ist ja jetzt, dass ich, wenn ich einen neuen Ansatz testen möchte, mir die ganzen anderen Produkte installieren müsste (die ja sicher teilweise auch sehr teuer sein können) und auf allen denselben Datensatz durchlaufen lassen müsste.
Das hätte mir einiges an Arbeit erspart.
Aber wenn es diesen nicht gibt, werde ich als nächstes eine Studie sucht, die mehrere Produkte hinsichtlich ihrer Erfolgsrate vergleicht und deren verwendeter Datensatz offen zugänglich ist, weil es glaube ich ansonsten zu viel Aufwand wäre.
Das mit den Fachzeitschriften werde ich einmal probieren, das ist auch eine gute Idee.
Was allerdings auch noch schade ist, ist, dass wenn jeder seine eigenen Testdaten hat, man die Testergebnisse ja auch schwer miteinander vergleichen kann, weil der Eine vielleicht sehr einfachen Spam und der Andere vielleicht eher schwer zu entdeckenden Spam benutzt hat. Außerdem kann man ein positives Resultat ja dann auch schwer beweisen, da einem dann jeder unterstellen könnte, man habe einfach einen für das jeweilige Produkt zugeschnittenen Datensatz benutzt.
Aber ich denke mal, ich werde mir dann wohl aus der geposteten Newsgroup news.admin.net-abuse.sightings einen Datensatz holen.

actro
03.05.2009, 13:14
Hab grad nicht soviel Zeit, aber Du solltest Dich mal an NIXSpam (http://www.heise.de/ix/nixspam/) halten. Die generieren Hashsummen um zu blocken, damit wird SPam auch bei kleinen Veränderungen im Text noch sehr sicher erfaßt.
Wenn ich fertig bin mit Küchenrenovierung, können wir das gern vertiefen..

kirdie3
03.05.2009, 23:26
Ok, das NixSpam habe ich mir mal angeguckt und die "fuzzy checksum" scheint sehr interessant zu sein. Ich werde jetzt erstmal das Exposé schreiben...

Gool
03.05.2009, 23:59
Das Problem ist ja jetzt, dass ich, wenn ich einen neuen Ansatz testen möchte, mir die ganzen anderen Produkte installieren müsste (die ja sicher teilweise auch sehr teuer sein können) und auf allen denselben Datensatz durchlaufen lassen müsste.
Das hätte mir einiges an Arbeit erspart.

Die meisten kommerziellen AntiSpam-Produkte sind nur für den Desktop-Einsatz unter Windows gedacht. Die sind im Übrigen nicht besser als die kostenlosen Produkte, von denen es auch eine große Menge gibt (Spamihilator, SpamPal, etc.). Für den Betrieb von Mailservern eignet sich SpamAssassin, was natürlich auch eine kostenlose OpenSource-Software ist. Du wirst feststellen, dass es genügend freie Produkte gibt, wenn Du Dich erstmal an die Suche gemacht hast.