Icon Makefg

Auswertung von DMARC, DKIM und SPF Prüfungen per PowerShell

Die Version NoSpamProxy 11 enthält eine neue Aktion mit der es möglich ist, bei eingehenden E-Mails eine DMARC, DKIM und SPF-Prüfung durchzuführen. Derzeit ist lediglich die Prüfung möglich, eine Abweisung der E-Mail erfolgt nicht. Das Ergebnis kann zum einen in der Nachrichtenverfolgung auf der Registerkarte „Kryptografie“ abgelesen werden, zum anderen ist auch die automatisierte Auswertung per PowerShell möglich. Bei GitHub ist bereits ein fertiges Script verfügbar.

Um den erzeugten Report besser einordnen zu können, werden hier die Begriffe SPF, DKIM, DMARC und die entsprechenden Alignments kurz erläutert:

Die Relation der Protokolle untereinander

Die Relation der Protokolle untereinander

SPF (Sender Policy Framework)
Mit SPF hat der Inhaber einer Domäne die Möglichkeit der Welt mitzuteilen, welche Server autorisiert sind, E-Mails im Namen der jeweiligen Domäne zu versenden. Dazu erstellt er in seiner DNS-Zone einen sogenannten SPF-Record. Technisch gesehen handelt es sich um einen TXT-Eintrag, der eine bestimmte Syntax aufweist.
Bei der Prüfung des SPF-Records wird der empfangende Server die Domäne des Absender-Feldes aus dem Envelope (MAIL FROM) einer E-Mail extrahieren und den entsprechenden SPF-Record für diese Domain prüfen. Diese Prüfung wird optional zusätzlich für den Host-Eintrag des Absenders (EHLO-Client-ID) durchgeführt.
Der SPF-Record für die Domäne netatwork.de sieht beispielsweise so aus:

v=spf1 +mx:netatwork.de include:spf.protection.outlook.com ptr:prod.exchangelabs.com –all

v=spf1 stellt die Einleitung dar und ist verpflichtend.
Es folgen die sogenannten Mechanismen und vorangestellten Modifier.
+mx:netatwork.de bedeutet, dass alle Server E-Mails für netatwork.de verschicken dürfen, die als MX-Record in der Domäne netatwork.de eingetragen sind.
include:spf.protection.outlook.com bedeutet, dass die Hosts des SPF-Eintrags der Domäne spf.protection.outlook.com ebenfalls zugelassen sind. Dies wiederum bedeutet, dass ein Teil des SPF-Records für die Domäne netatwork.de vom Admin der Domäne spf.protection.outlook.com gepflegt wird. Dieser Eintrag ist nötig, wenn E-Mails mit der Absenderdomäne netatwork.de aus Office 365 versendet werden sollen.
Der Eintrag –all untersagt es allen anderen Servern E-Mails mit der Domäne netatwork.de zu versenden.
Weitere Infos zu SPF und den Einstellmöglichkeiten erfahren Sie hier.

DKIM (Domain Keys Identified Mail)
DKIM hat vom Prinzip her dasselbe Ziel wie SPF. SPF hat jedoch den Nachteil, dass der E-Mail-Server-Administrator ständig die DNS-Zone pflegen muss, sobald sich an der E-Mail-Infrastruktur etwas an den IP-Adressen ändert. Um das zu umgehen, verwendet man DKIM. Zunächst wird ein Schlüsselpaar, bestehend aus einem öffentlichen und privaten Schlüssel gebildet (genau wie bei S/MIME und PGP). Der öffentliche Schlüssel wird in der DNS-Zone hinterlegt. Mit Hilfe des privaten Schlüssels erzeugt der absendende Server eine DKIM-Signatur, die Teile des Headers sowie den Inhalt der E-Mail umfasst. Darüber hinaus wird im Header angegeben, wo der passende öffentliche Schlüssel zu finden ist. Eine beispielhafte DKIM Signatur sieht wie folgt aus:

v=1; c=relaxed/relaxed;
d=netatwork.de;
s=main2015;
t=1443621799;
bh=ejw+hFUOGVBnSS1Br6aSO3r36dqVFnhUeBGj0zADBDw=;
h="Subject:Subject:From:From:Date:Date:ReplyTo:ReplyTo:Cc:Cc:Message-Id:Message-Id";
a=rsa-sha256;
b= Gwp…….2f7o=

Wichtig sind die Angaben der Domäne mit dem Parameter „d“ und die des sogenannten Selektors mit dem Schalter „s“. Daraus kann der empfangende Server den Ort des öffentlichen Schlüssels ermitteln. In diesem Beispiel wird der TXT-Record für main2015._domainkey.netatwork.de abgefragt. Dort wiederum ist der öffentliche Schlüssel zur Prüfung der DKIM-Signatur enthalten. Ist diese Prüfung erfolgreich, ist der einliefernde Server identifiziert.
Weitere Infos zu DKIM und den Einstellmöglichkeiten erfahren Sie hier.

DMARC (Domain-based Message Authentication, Reporting & Conformance)
Weder SPF noch DKIM geben dem Empfänger einer E-Mail Empfehlungen, was mit E-Mails passieren soll, die nicht erfolgreich geprüft werden können. Darüber hinaus „bricht“ SPF, falls die E-Mail unter Verwendung der ursprünglichen Envelope-Daten weitergeleitet wird. Auch DKIM kann bei Weiterleitungen brechen, falls der E-Mail-Inhalt verändert wird. Für sich genommen ist jede dieser Technologien recht fehleranfällig. Diese Defizite behebt DMARC.
DMARC setzt auf SPF und DKIM auf, und ergänzt die Prüfungen um das sogenannte Alignment. Dieses stellt sicher, dass die Absender-E-Mail-Adresse („From“ aus den Kopfzeilen) zu der Domäne passt, die während der SPF- und DKIM-Prüfung ermittelt wurden.
Beim SPF-Alignment wird geprüft, ob die Absende-Domäne im MAIL FROM (Envelope) mit der Domäne im E-Mail-From-Header übereinstimmt. Beim DKIM-Alignment wiederum wird geprüft, ob die Domäne im E-Mail-From-Header mit der Domäne im angegebenen Selektor übereinstimmt. Bei den Alignments ist es möglich, die Prüfung mit der Option „strict“ oder „relaxed“ durchzuführen. Ist die Option „strict“ angegeben, muss die Domäne zu 100% übereinstimmen, im anderen Fall sind auch Sub-Domänen zugelassen.

Über die Prüfung hinaus wird bei DMARC der Domäneninhaber regelmäßig darüber informiert, welche Hosts im Namen seiner Domäne E-Mails versendet haben.
Um DMARC zu aktivieren, hinterlegt der Inhaber einer Domäne eine DMARC-Richtlinie im DNS. Wie bei SPF und DKIM auch, wird die DMARC-Richtlinie in einem TXT-Record gespeichert. Damit zeigt er an, dass E-Mails von der Domäne mittels SPF und/oder DKIM geschützt werden. Anders als bei SPF und DKIM wird zusätzlich festgelegt, wie sich der Empfänger verhalten soll, wenn die Prüfung fehlschlägt. Annehmen, in Quarantäne stecken und Abweisen sind die möglichen Aktionen.
Des Weiteren werden in der DMARC-Richtlinie E-Mail-Adressen hinterlegt, an die Berichte geschickt werden sollen. Diese werden von allen Servern im Internet erstellt, die zum einen DMARC beim E-Mail-Empfang unterstützen und zusätzlich E-Mails von der jeweiligen Domain erhalten haben. Sie werden täglich erstellt und vermitteln dem Domänen-Inhaber ein Bild von den Servern, die versucht haben, in seinem Namen E-Mails zu verschicken.
Der DMARC-Record für die Domäne netatwork.de sieht beispielsweise so aus:

v=DMARC1; p=none; rua=mailto:dmarc_rua@netatwork.de; ruf=mailto:dmarc_ruf@netatwork.de; fo=1; adkim=s; aspf=s; rf=afrf; sp=none

 

Der Parameter „p“ (Policy) definiert, wie der Empfänger sich verhalten soll, falls sowohl die SPF- als auch die DKIM-Prüfung fehlschlagen. None bedeutet beispielsweise, dass er auch im Fehlerfall nichts unternehmen soll. Die E-Mail wird zugestellt, falls in der E-Mail keine schlechten Merkmale wie Viren oder ähnliches gefunden werden. Diese Einstellung wird in der Regel während der Einführung von DMARC gemacht, damit sich der Domäneninhaber ein Bild des E-Mail-Stroms machen kann.
Eine gute Übersicht über DMARC finden Sie hier.