NoSpamProxy -  eine Idee ist Realität geworden

http://www.nospamproxy.de/
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.

Vielleicht 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: Die Firma Net at Work, deren Gesellschafter ist bin, ist Hersteller dieses Produkt.

NoSpamProxy Kanal bei YouTube
https://www.youtube.com/channel/UCCsfNNVlcS6TywttmC5IO1A

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 des 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 Blocklist 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 Allowlist. 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 Allowlist 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 (Cyren)

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 Cyren und seiner patentierten Recurrent Pattern Detection (RPD) ändert sich dies grundlegend. Wir warten nicht mehr auf Pattern-Updates der Hersteller sondern Cyren 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

  • 01. Nov 08 NoSpamProxy ab sofort mit Echtzeit-Virenschutz

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 Cyren abgewiesen) wurde.

Technisch erstellt das Cyren 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 ist ein SMTP-Relay, dass vor ihren Mailserver geschaltet wird und keine Erweiterung, die ihren bestehenden Mailserver um neue Funktionen ergänzt. Früher war NoSpamProxy tatsächlich ein reiner SMTP-Proxy ohne eigene Queues und hat  Verbindungen quasi Echtzeit weiter gereicht. Aber heute ist nicht mehr ausreichend, um z.B. Message Forking und Verschlüsselung an verschiedene Ziele effektiv umzusetzen. Daher ist "Proxy" nur noch im Namen

  • Warum ein Relay und kein Proxy mehr
    Dadurch, dass NoSpamProxy als Relay agiert, bietet er eine zusätzliche Stufe der Ausfallsicherheit. Versucht ein Externer Mails an das Unternehmen zu senden, gelangen diese erst zu NoSpamProxy, wo sie nach erfolgreicher Prüfung die Bestätigung „260 OK“ erhalten. Die Mail wird dann in die NoSpamProxy interne Queue eingereiht, wo sie beim Ausfall des Mailservers auch für 24 Stunden verbleibt.
    Ein weiterer Vorteil hierbei ist, dass NoSpamProxy durch das Anhalten der Mail zusätzliche Verarbeitungszeit gewinnen kann, in der zum Beispiel bestimmte Dokumente entschärft werden und dem Benutzer statt mit aktivem Inhalt, nur als Vorschau in einem PDF zugestellt werden.
  • 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 Gateway ist viel einfacher als ein Mailserver. Aber durch die Vorschaltung schützt es den Mailserver vor unerwünschtem Verkehr. Auch der Einsatz in einer stark abgeriegelten Zone 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 und erhöhte Ausfallsicherheit.

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:

  • 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. Zudem ist man hier auf rechtlicher Ebene sicher, da keine Mail angenommen wird, aber womöglich in der Quarantäne vergessen wird.
  • DMZ Tauglichkeit
    Sicherheit und Schutz ist wichtig. Daher sind die Ports für NoSpamProxy auf das Minimum reduziert (z.B.: 25/TCP SMTP, 53/UDP DNS und bestimmte Anfragen über Port 80). Active Directory ist 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.
  • Schutz des Exchange
    NoSpamProxy schützt ihren Exchange Server gegen DoS-Angriffe und andere SMTP-basierte Angriffe, da die Verbindungen bei NoSpamProxy enden und die Mails später über eine zweite Verbindung zum Exchange weitergegeben werden.
  • Virenschutz
    Natürlich ist ein Virenschutz in NoSpamProxy integriert, so dass Sie auch diesbezüglich kein Relay vor Exchange betreiben müssen. Auf Wunsch kann auf dem System ebenfalls ein weiterer 3rd-Party Dienst genutzt werden (Achtung: Hier sind Ausnahmen erforderlich)
  • 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 sehe 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 kenne 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?