Safe Sender List

Schon Exchange 2003 hat mit dem Intelligent Message Filter einen eingebauten Spamfilter, der auch in den nachfolgenden Versionen vorhanden ist und mit der Cloud-Strategie als "Exchange Online Protection" sogar in der Cloud vorhanden ist. On-Premises hat Microsoft als Relay in der DMZ die Exchange Edge-Server vorgesehen. Mit der Safe Sender List gibt es einen Weg, mit der ein Anwender bestimmte Absender-Adressen oder Absender-Domänen explizit erlauben oder verbieten kann. Es gibt also immer unerwünschte Mails, die durchkommen.

Ich halte natürlich nicht so viel von durch Anwender gepflegte White/Blocklists aber die Funktion ist da und kann genutzt werden.

Das sehen sie in Outlook

Wenn Sie auf eine Mail im Posteingang das Kontext-Menü öffnen, dann finden Sie folgenden Eintrag:

Die Junk-E-Mail-Optionen erlauben dann neben der generelle Filterung auf dem Client auch Verwaltung der sicheren und blockierten Absendern.

Daten im Postfach

Die Einstellungen in Outlook landen im einem versteckten Bereich des Postfachs beim Benutzer. Diese Einstellungen kann auch ein Administrator per PowerShell ansehen und sogar ändern:

# Anzeigen der aktuellen Einstellungen
Get-MailboxJunkEmailConfiguration `
   -Identity testsafelink@uclabor.de

Enabled                     : True
TrustedListsOnly            : False
ContactsTrusted             : True
TrustedSendersAndDomains    : {}
BlockedSendersAndDomains    : {xxxxx},
TrustedRecipientsAndDomains : {}
MailboxOwnerId              : msxfaq.net/user/testsafelink
IsValid                     : True

# Die Anzahl der Einträge kann auch ermittelt werden

$temp.BlockedSendersAndDomains.Count: 15

C:\>get-mailbox testsafelink@uclabor.de | fl MaxSafeSenders,MaxBlockedSenders
MaxSafeSenders    :
MaxBlockedSenders :

Standardmäßig können Benutzer bis zu 5.000 sichere Absender und 500 blockierte Absender konfigurieren
Quelle: Verwenden der Exchange-Verwaltungsshell zum Konfigurieren von Grenzwerten für die Erfassung von Listen sicherer Adressen für Postfächer
https://docs.microsoft.com/de-de/Exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation-procedures

In Exchange Online gelten andere Grenzwerte:

Safe sender limit: 1,024
Blocked sender limit: 500

Über den Weg könnten zentral auch Einträge verwaltet werden.

# zentrale Pflege
Set-MailboxJunkEmailConfiguration `
   -Identity user1@uclabor.de `
   -BlockedSendersAndDomains @{Add=" @example1.com"} `
   -TrustedSendersAndDomains @{Add="msxfaq.de","newsletter@uclabor.de"}

#Anpassen der Obergrenzen
Set-Mailbox `
   -Identity user1@uclabor.de `
   -MaxSafeSenders <Integer> 
   -MaxBlockedSenders <Integer>

Vom Anwender zum Spamfilter

Wenn ein Anwender eine Mail von einem bestimmten Absender nicht empfangen möchte, dann sollte der Einlieferungsversuch möglichst früh unterbunden werden. Die Information muss daher auf den Servern vorliegen, die über den MX-Record von extern angesprochen werden.

In das Postfach kann aber ein Edge Server oder auch ein anderer Spamfilter nicht schauen und es würde auch viel zu lange dauern. Aber auch ein Anwender hat natürlich keinen direkten Zugriff auf diese Systeme. Daher kommt hier eine Replikation zum Einsatz, um die Daten aus den Postfächern bereit zu stellen.

  1. Benutzer verwaltet Daten im Postfach
    Dazu gibt es im Postfach einen versteckten Ordner, den der Anwender selbst in Outlook aber nicht sieht. Im Postfach selbst stehen die Mailadresse und Domänen noch in lesbarer Form für den Anwender. Hier sind bis zu 1024 Einträge möglich.
  2. Exchange überträgt ins AD-Feld
    Die Daten aus dem Postfach werden durch den Exchange Prozess "Junk Email Options mailbox assistant" asynchron in das AD-Feld beim Benutzer übertragen. Dabei werden Hash-Werte ((SHA-256) mit 4 Byte Länge pro Adresse gebildet und in den Feldern msExchSafeSenderHash, msExchSafeRecipientHash, und msExchBlockedSendersHash ablegt.
  3. Edge-Sync
    Die Werte im AD werden durch den Transport-Server direkt genutzt. In Verbindung mit einem Edge-Server werden Sie durch den Edge-Sync-Prozess in die DMZ übertragen.
  4. AADConnect
    Wenn Sie Office 365 oder Exchange Online Protection nutzen, dann überträgt AADConnector auch diese Felder in beide Richtungen.

In dem Bild haben ich alle drei Exchange Transport-Services parallel eingezeichnet. In den Firmen gibt es natürlich meist nur einen eingehende Weg. Die normale Exchange Hub/Transport-Rolle nutzt direkt das Active Directory während ein Exchange Edge-Server natürlich die lokale ADAM-Instanz nutzt, die durch EdgeSync gefüllt wird.

Safelist collection entries are hashed (SHA-256) one way before they are stored as array sets across three user object attributes, msExchSafeSenderHash, msExchSafeRecipientHash, and msExchBlockedSendersHash, as a binary large object. When data is hashed, an output of fixed length is produced, and the output is likely to be unique. For hashing of safelist collection entries, a 4-byte hash is produced
Quelle: Safelist aggregation
https://docs.microsoft.com/en-us/exchange/antispam-and-antimalware/antispam-protection/safelist-aggregation

ADFelder

Wer also 1000 Einträge hat, produziert 4000 Byte Binärdaten in dem jeweiligen Feld. In dem Zuge lohnt sich mal ein Blick ins Schema zu den drei LDAP-Feldern, in denen die Hashwerte landen:

Feld msExchSafeSenderHash msExchSafeRecipientsHash msExchBlockedSenderHash

Type

Octet String

Octet String

Octet String

Feldgröße in Bytes

1-32000

1-12000

1-4000

Max Felder mit 4 Bytes Hash

8000

3000

1000

Schema

Limits in Exchange Online

1024

?

500

Default in Exchange On Prem

5000

 

500

Fragen Sie mich bitte nicht, warum alle drei Felder unterschiedlich groß sind. Vieleicht hat es etwas mit "Datensparsamkeit" zu tun.

Die Information wird aber auch über AzureAD-Connect in die Cloud repliziert. Es gibt ja auch Firmen, die "Exchange Online Protection" als vorgelagerten Spamfilter nutzen. Auch MIM hat durchaus Probleme mit den drei Feldern, da diese größer sind als die korrespondierenden Metaverse-Felder in der SQL-Datenbank von MIM/FIM

Deine Mail will ich nicht!

Es ist nicht einfach ein "Allowlisting" zu prüfen, wenn Sie nicht selbst gerade eine Mail einliefern, die von Exchange üblicherweise geblockt würde. Aber es ist möglich einen Absender zu blocken und dann vorzugeben, dieser Absender zu sein. Bei dem Versuch eine Mail an Exchange zuzustellen, bekommt der Absender dann z.B. diese Meldung.

5.7.107 Recpient not on bypass list, your IP has been found on a block list (in reply to RCPT TO command)

Die Meldung ist eine permanente Meldung, d.h. der einliefernde Mailserver wird keine weitere Zustellung versuchen. Zudem sehen Sie hier natürlich auch, dass deine White-List sogar einen RBL-Eintrag überstimmen könnte.

3rd Party

Mit Exchange und Outlook stellt Microsoft schon eine robuste Plattform bereit, über die Informationen zu White/Block-Lists letztlich auf jedem DomainController vorliegen. Es ist technisch überhaupt kein Problem, dass auch Drittprodukte diese Felder auswerten oder in ihre eigene Datenbank übertragen. Sie Müssen einfach nur nach allen Objekten mit diesen Feldern suchen und diese Informationen samt der SMTP-Adressen des Empfänger exportieren.

Aktuell kenne ich aber noch kein 3rd Party Produkt, welches diese Information weiter verwendet. Wir haben mit NoSpamProxy aber einen Kunden, der sich einfach ein eigenes PowerShell-Script entwickelt, hat, um die Daten aus dem lokalen Active Directory auszulesen und über die NoSpamProxy-API in den  Level-of-Trust-Filter zu integrieren. Der Export ist ja relativ einfach

Get-Mailbox | Get-MailboxJunkEmailConfiguration | select -ExpandProperty TrustedSendersAndDomains)

Allerdings sollten sie hier zur Sicherheit natürlich die Verbindung zur Mailbox herstellen, nicht dass die Sperre einer Adresse oder Domäne durch einen Benutzer gleich auf die gesamte Firma angewendet wird. Auch sollten Sie beim ersten Durchlauf die Daten kontrollieren. Anwender können hier ja "Freitext" eingeben und Sie sollten daher schon sicherstellen, dass Sie gültige Werte an ihren Spamfilter weiterreichen.

Weitere Links