NoSpamProxy -  eine Idee wird Realität

http://www.netatwork.de/gateway-solutions/uebersicht/
Vollwertiger Virenschutz. gerade interessant, wer Exchange 2013 einsetzt und Forefront für Exchange nicht mehr nutzen kann.
Zusätzlich noch die Anforderung nach digitaler Signatur, Verschlüsselung oder DE-Mail, dann gibt es enQsig als Version 8

Viell eicht fragen Sie sich, wie ich als durchaus im Internet aktiver Autor mein Postfach möglichst "Spamfrei" halte ohne wichtige Nachrichten zu verpassen. Hier meine Antwort:

Hinweis: NoSpamProxy ist ein Gateway-Produkt, welches auf dem gleichen Core wie enQsig aufsetzt und sogar kombiniert laufen kann. Die Firma Net at Work, deren Gesellschafter ist bin, ist Hersteller dieses Produkt.


Wer meine Aktivitäten im Bereich Spam schon seit 2001 betrachtet, wird immer wieder auf den Namen "NoSpamProxy" stoßen und sich vielleicht fragen, was es damit auf sich hat. Sie können sich sicher vorstellen, dass meine Mailadresse ziemlich beschossen wird. im Schnitt kommen 120-200 Spam Mails pro Tag, was es nicht gerade einfach macht, die 30-40 erwünschten Nachrichten zu verarbeiten. Also musste etwas  passieren und so wurde die Idee von NoSpamProxy geboren. Alle von mir damals analysierten Produkte hatten das gleiche Problem: False Positive, d.h. die Behandlung von irrtümlich blockierten erwünschten Nachrichten.

Ein paar Fakten !

  • Spam ist immer unerwünscht !
    Spam kostet Geld, Bandbreite, Arbeitszeit und bedeutet wirtschaftlichen Schaden. Das sehen die Versender natürlich anders und eine Definition für "Spam" gibt es auch nicht. So gibt es offensichtlichen Spam, wie z.B. Phishing-Mails, Werbung für Aktien oder andere unseriöse Angebote. Aber auch der ein oder andere Newsletter von Firmen wird nicht von allen Empfängern gerne bekommen.
  • Niemand will von Hand sortieren !
    Daher muss eine Software eingehende Nachrichten anhand von Wortlisten, statistische Analysen, Sperrlisten, Prüfsummen und anderen Merkmale als Filterkriterium die Nachrichten klassifizieren.
  • Jede automatische Entscheidung kann irren
    Das kann dazu führen, dass Spam irrtümlich zugestellt wird.. Das ist zwar ärgerlich aber bis zu einem gewissen Maße tolerierbar.
    Schlimmer ist, wenn erwünschte Mails irrtümlich als Spam behandelt werden (False Positive). Dies ist ein ernstes Problem, wenn dies unbemerkt bleibt. Leider sind diese beiden Fehler sehr eng miteinander verknüpft, denn je mehr Spam erkannt werden soll, desto höher ist das Risiko für die Falscherkennung (False Positive).
  • Reduzierung der Risikos von unerkannten False Positives durch Benachrichtigung des Absenders. Nur dann kann ich sehr restriktive Filter konfigurieren. Das kann auf mehrere Arten passieren:
    • Information an den Empfänger
      Einige Produkte senden einmal am Tag eine Zusammenfassung der geblockten Mails an den Empfänger zur "Kontrolle" oder leiten die Mails mit einer Kennzeichnung oder einen speziellen Ordner (Junk-Mail) zum Empfänger. Fakt ist, dass die meisten Empfänger diese Mails nach einiger Zeit ignorieren oder ungesehen löschen. Würde ich auch machen, wenn in der Mail 200 Betreffzeilen stehen würden und ich die Nadel im Heuhaufen suchen müsste. Zudem kommt die Zusammenfassung verspätet und wer liest gerne eine Mail, die zu 99% Informationen über Spam enthält.
    • Information des Absenders (Unzustellbarkeitsquittungen)
      Im Prinzip ein guter Gedanke, damit der Kommunikationspartner aktiv werden kann, wie er es auch täte, wenn er sich vertippt oder die Mail z.B.: aufgrund einer Größenbeschränkung nicht zugestellt werden konnte. Leider würde solche eine NDR natürlich auch für jede Spam Mail erstellt werden. Das führt zu zusätzlichen Nachrichten und einer entsprechenden Systembelastung, was wieder mit Kosten verbunden ist. Viel schlimmer ist aber das eigenes Störpotential, das Spammer oft gefälschte Absenderadressen (Siehe Fälschung) verwenden und damit die unzustellbarkeitsquittungen den falschen Empfänger erreichen. Siehe auch NDR Spamming
    • NDR durch entfernten Mailserver
      Etwas anders verhält es sich, wenn der eigene Mailserver direkt beim Empfang die Nachricht ablehnt. Dann ist der MTA der Gegenseite weiterhin zuständig für die Zustellung der Nachrichten und erzeugt einen NDR.

Insofern ist das Prinzip eines effektiven Spamschutzes in drei Merksätzen beschrieben:

  • Eine angenommene Mail muss zugestellt werden
    ... sonst ist sie in einer Quarantäne und hilft niemandem
  •  Eine Mail, die nicht zugestellt werden soll, darf ich nicht annehmen
    .. nur dann kann der Absender erkennen, dass es ein Problem gibt
  •  Eine Mail, die nicht zugestellt werden kann, muss abgelehnt werden
    ... weil ich sonst störende NDRs erzeuge und unbeteiligte Adressen zumülle.

Was bedeutet "Ablehnen" ?

Eine Mail gilt erst dann als erfolgreich übermittelt, wenn das System des Empfängers am Ende der Übertragung den Code "250 OK" sendet /Details siehe SMTP oder Mail im Internet. Während die meisten Produkte die Mail erst nach der Annahme analysieren, wollte ich, dass alle Nachrichten während des Empfangs bewertet werden und wenn die Mail nicht an das Postfach zugestellt werden soll, dann braucht Sie auch nicht angenommen zu werden. Das einliefernde Gateway bekommt eben keine "250 OK" sondern eine negative Meldung, die die Ursache enthält. Ein Verfahren was auch der Exchange Intelligent Message Filter mittlerweile nutzen kann, wenn Exchange direkt vom Internet erreichbar ist. Da das entfernte System die Mail aber nun nicht los geworden ist, liegt es in dessen Aufgabe, den Absender über die unzustellbarkeit zu informieren. Das bedeutet::

  • Erwünschte Mail wird irrtümlich blockiert (False Positive)
    Der Mailserver des Absenders wird den Absender informieren. Meist ist dies sogar der eigene Mailserver des Absenders. Der Endanwender wird daher auch den lokalen Support fragen. Solange es einen Weg gibt, wie der Absender seine Nachrichten dann doch übermitteln kann, ist dies akzeptierbar
  • Direkter Spam
    Ist der Absender aber ein Spammer, dann wird dieser die Mail ebenfalls nicht los. Er wird vermutlich die nächste Adresse oder den nächsten Server versuchen, aber
  • Offenes Relay
    Nutzt ein Spammer hingegen ein offenes Relay, dann wird dieses die unzustellbarkeitsmeldungen versenden. Das ist dann allerdings eher ein Problem des Administrator des offenen Relay, für das wir nichts können.

Ein Ablehnen einer Verbindung ist offensichtlich die beste Variante, unerwünschte Nachrichten zu filtern und dem Absender die Möglichkeit zu geben, diesen Filter zu umgehen.

Keine unerkannten False Positives

Was bedeutet diese Verhalten im Ergebnis ?

  • Keine unerkannten False Positive Nachrichten
    d.h. eine Mail geht niemals in einer Quarantäne, einem Papierkorb oder einem vergessenen Ordner im Postfach unter.
  • Sie wurde nie angenommen
    Dies ist besonders für Vollkaufleute wichtig, da hier eine angenommene aber nicht zugestellte Nachricht sehr unangenehm werden kann. Aber auch im Hinblick auf die Archivierung haben Sie Vorteile, da eine nicht angenommene Mail auch nicht im Archiv landet.

Das führt natürlich dazu, dass die Filter sehr viel strenger ausgelegt werden können und damit viel mehr Spam Nachrichten erkannt werden können. Auch eine False Positive Rate von 1% oder mehr ist für "Erstkontakte" durchaus tolerierbar, solange es einen Weg gibt, diese Sperre auch zu umgehen.

Level of Trust

Eine Schlüsselkomponente von NoSpamProxy ist jedoch eine Funktion, die ich bislang in keinem anderen Filterprodukt derart gesehen haben. Wir nennen dies "Level of Trust". Eine ausführliche Beschreibung finden Sie dazu auf Level of Trust.

NoSpamProxy lernt dabei ausgehende Nachrichten. Das wäre an sich noch nichts besonderes, da auch andere Produkte ausgehende Nachrichten z.B. als "Gut" an den Bayes-Filter geben. NoSpamProxy lernt aber auch noch die Kommunikationsbeziehungen. Wenn ich eine Mail versende, dann werden verschiedene Kennwerte gemerkt. Das führt dazu, dass der Empfänger auf diese Mail einfach antworten kann und über ein Bonussystem den Spamfilter leicht überwinden kann. Das geht sogar soweit, dass der absendende Host sogar auf einer Blacklist für offene Relays etc. stehen kann. Die Verbindung wird nicht pauschal beendet sondern der "Anfang" einer Mail wird weiterhin empfangen um zu erkennen, ob es sich um eine bestehende Kommunikationsbeziehung handelt.

Diese Filter hat auch noch die Funktion einer dynamischen Whitelist. Wenn Sie mir eine Mail senden und diese als Spam irrtümlich abgelehnt wird, dann erhalten Sie ja eine unzustellbarkeit von ihrem eigenen Mailserver. Sie können mich einfach über einen anderen Kommunikationsweg erreichen und ich sende ihnen einfach eine Mail zu. Und schon können Sie mir antworten oder eigene Mails verfassen und an mich senden. Das funktioniert sogar per OWA oder mobilen Endgeräten (PDA, ActiveSync, Blackberry etc.). Der Administrator muss keine statische Whitelist pflegen und der Anwender muss nicht über zusätzliche Programme oder Webportale den Spamfilter anpassen. Weitere Details zu diesem Filter beschreibe ich zu einem späteren Zeitpunkt.

Zero-Hour Virus Protection (Commtouch)

Net at Work stellt selbst kein Antivirusprodukt her. Daher kann NoSpamProxy mit jedem beliebigen Virenscanner arbeiten, um Viren vor der Empfangsbetätigung zu erkennen und die Verbindung zu unterbrechen. Aber es hat sich gezeigt, dass die Lücke zwischen dem Auftreten eines Virus und dem Erkennen vor Ort sehr groß ist. Schließlich laufen mehrere Tätigkeiten seriell hintereinander ab.

Antivirus Zyklus

Wenn jemand einen Virus "gebaut" hat, dann muss er versuchen, diesen möglichst schnell zu verteilen, ehe er erkannt wird. Der Angreifer wird also mit viel Bandbreite sehr viele Mails versenden. Irgendwann wird der Virus als solcher erkannt und hoffentlich schnell an die AV-Hersteller weiter geleitet. Diese müssen den Virus "verstehen" und ihre Erkennungsregeln erweitern und in Form eines Updates (Patterndatei) bereitstellen. Das wiederrum sollten sich nun alle Kunden "zeitnah" herunterladen, damit die Erkennung möglich ist. Polymorphe Viren wiederholen diesen Zyklus entsprechend häufiger. Das Risiko nimmt daher am Anfang in dem Maße zu, indem es dem Virus gelingt sich zu verbreiten und nachdem die ersten Virenscanner den Virus entdecken, nimmt das Risiko wieder ab. Der Zyklus kann aber durchaus mehrere Stunden oder gar Tage dauern, bis eine ausreichende Anzahl von Antivirus-Produkten dem Einhalt gebieten.

NoSpamProxy konnte lange Zeit nur so gut sein, wie die darunter arbeitenden Antivirusprodukte. Mit der Integration von Commtouch und seiner patentierten Recurrent Pattern Detection (RPD) ändert sich dies grundlegend. Wir warten nicht mehr auf Pattern-Updates der Hersteller sondern Commtouch erkennt durch weltweit verteilte Monitore schon den starken Anstieg solcher Inhalte am Anfang der Epidemie und erlaubt und diese müssen viel früher anzulehnen.

Commtouch Erkennung

Damit schützt sie NoSpamProxy noch effektiver vor Viren und Spam in Zeiten, in denen Viren sich schneller verändern und klassische Spamfilter immer mehr an Wirkung verlieren. Interessant war z.B. eine Meldung im Heise Newsticker über einen neuen Inkasso Virus ( http://www.heise.de/security/news/meldung/119359 ), welcher um 16:18 veröffentlicht wurde und bei Net at Work gegen 16:29 das erste Mail aufgeschlagen (und dank Commtouch abgewiesen) wurde.

Technisch erstellt das Commtouch Addin Prüfsummern über ca. 120 Eigenschaften einer Mail über ähnlichkeit (Mail, Datum, Betreff, Absender, Domain, Hosts etc.) , aus denen aber kein Rückschluss auf den Inhalt selbst möglich ist. Diese Daten werden dann gegen eine Datenbank geprüft.

Regeln

Eine weitere essentielle Funktion ist die Steuerung der Filter und Aktionen durch Regeln, die der Konfiguration einer Firewall nicht unähnlich sind. Es wird immer Ausnahmen geben, die im Bezug auf Spam und Viren Filterung gesondert zu betrachten sind. Solche Einstellungen fehlen aktuell bei vielen kostenfreien Lösungen wie dem Intelligent Message Filter oder z.B. SpamAssassin komplett. Zusätzlich zu den durch Regeln individuell konfigurierbaren Filtern sind auch Aktionen denkbar, die die Mails verändern, z.B. einen Disclaimer anfügen, Anlagen komprimieren oder auch signieren. (Diese Funktionen sind aktuell noch nicht umgesetzt)

Proxy statt Relay oder Add-In

NoSpamProxy, das verrät auch schon der Name, ist kein SMTP-Relay, das vor ihren Mailserver geschaltet wird oder eine Erweiterung, die ihren bestehenden Mailserver um neue Funktionen ergänzt, sondern ein SMTP-Proxy.

  • Funktion eines Proxy
    Jede eingehende Verbindung wird mit kurzer Verzögerung direkt an den zuständigen internen Mailserver weiter gereicht. NoSpamProxy selbst nutzt keine Queue zum zwischenspeichern etc. Erst wenn der interne Maiserver die Mail angenommen hat, wird auch nach außen das "250 OK" gesendet. Lehnt der interne Mailserver die Mail ab (z.B. Unbekannter user, Mail zu groß, Postfach voll) , dann kann auch der Proxy ablehnen
  • Warum kein Relay ?
    Ein Relay nimmt Mails an, bewertet diese und kann diese dann nicht mehr ablehnen. Da es zudem die Mail angenommen hat, muss es die Mail nun an den internen Server weiter geben, oder eine unzustellbarkeitsmeldung erstellen. Ist der interne Mailserver nicht erreichbar, dann muss er die Mails zwischenspeichern. NoSpamProxy hingegen nimmt die Mails nicht an, wenn sie nicht nach intern weitergeleitet werden können. Der interne Server darf die Mail gar nicht mehr ablehnen, da sonst das Relay einen NDR erzeugen muss. Nimmt der Server sie aber an und kann die Mail nicht zustellen, muss er seinerseits einen NDR erstellen.
  • Warum kein Add-In ?
    Viele Mailserver bieten mittlerweile eine Schnittstelle an, wie sich Dritthersteller integrieren können. Exchange erlaubt die Registrierung von SMTP-EventSinks, SendMail und andere bieten eine "Milter"-Schnittstelle an. Die Nutzung dieser Schnittstellen bedeutet aber immer, dass ein Produkt zum einen von einem bestimmten Mailserver abhängig ist und zudem mit auf dem Mailserver läuft. Auch der Einfluss auf die Stabilität des Systems aber auch des Mailservers ist nicht klar zu trennen.

Für die Lösung als Proxy spricht weiterhin, dass der Code überschaubar ist. Ein Proxy ist viel einfacher als ein Mailserver. Aber durch die Vorschaltung schützt er den Mailserver vor unerwünschtem Verkehr. Auch der Einsatz in einer stark abgeriegelten Zonen ist problemlos möglich. Einzig Port 25 SMTP muss hindurch, wenn keine Zusatzfunktionen gewünscht werden. Die mögliche Trennung der Funktionen erlaubt eine bessere Skalierbarkeit.

War das alles ?

Nein, das ist noch nicht alles. Wer mich kennt, weis, dass ich aus dem Enterprise Umfeld komme und entsprechende Schwerpunkte bei eigenen Produkten setze. Einige Beispiele:

  • Queues und Quarantäne
    Gibt es aufgrund unseres Prinzips nicht, d.h. keine Festplatte, die immer mehr Platz für sichergestellte Mails benötigt und durchgesehen werden muss.
  • DMZ Tauglichkeit
    Sicherheit und Schutz ist wichtig. Daher sind die Ports für NoSpamProxy aus das Minimum reduziert (z.B.: 25/TCP SMTP und 53/UDP DNS). Active Directory ist nicht sind möglich aber nicht erforderlich
  • weitere Filter
    Durch die modulare Funktion (WebServices) ist es einfach weitere Filter zu integrieren. Zudem sind Filter möglich, die in konventionellen Lösungen nicht oder nur sehr schwer zu integrieren sind (z.B. Backcheck)
  • Perfmon, Eventlog und MOM
    Betriebsparameter landen als Performance Counter und Eventlog Einträge im System und sind damit von vielen Überwachungsprogrammen auswertbar. Ein MOM Management Pack für NoSpamProxy wird laufend weiter gepflegt.
  • IMF kompatibler Exchange Schutz
    NoSpamProxy schützt ihren Exchange Server gegen DoS-Angriffe und andere SMTP-basierte Angriffe, da die Verbindung bei NoSpamProxy enden und über eine zweite Verbindung zu Exchange weitergegeben werden. Trotzdem können Sie die IMF-Funktion nutzen, Mails bei erkanntem Spam oder ungültigen Adressen abzulehnen, da NoSpamProxy nicht als Relay arbeitet.
  • Virenschutz
    Natürlich ist ein Virenschutz in NoSpamProxy integriert, so dass Sie auch diesbezüglich kein Relay vor Exchange betreiben müssen.
  • Weitere Vorteile
    Neugierig? dann einfach nachfragen

Ist das einzigartig ?

Ja und Nein. Es gibt weitere Produkte, die eine Mail beim Empfang zum Teil analysieren und ablehnen. Viele Produkte beschränken sich dabei aber auf die obligatorischen RBL-Prüfungen und einfache Tests. Zudem handelt es sich oft um Erweiterungen eines Mailservers, was bedeutet, dass dann der Mailserver direkt aus dem Internet erreichbar wäre oder die Produkte behandeln dann alle Verbindungen gleich. NoSpamProxy hingegen erlaubt jedem Filter das Ablehnen von Nachrichten und die Steuerung der Filterauswahl mittels Regeln.

Grundsätzlich sehen ich das Problem, dass aufgrund der Variabilität von Spam eine Lösung ohne kommerziellen Hintergrund nicht schnell und flexibel genug reagieren kann. Zudem ist Mail ein unternehmenskritischer Aspekt, für den auch Support garantiert sein muss. Zuletzt kenn ich kein anderes Produkt, was konsequent in C# (.NET) als managed Code entwickelt wurde und ihnen eine derart flexible und leistungsfähige Schnittstelle für eigene Entwicklungen und zur Konfiguration anbietet.

Wie geht es weiter ?