DMARC

DMARC steht für Domain-based Message Authentication, Reporting and Conformance und nutzte DNS-Einträge, die in Verbindung mit SPF und DKIM arbeiten.

Es mehren sich die Hinweise, dass Domains mit einem DMARC-Eintrag seltener zum Phising missbraucht werden, dass viele große Provider dank SPF bzw. DKIM solche Fälschungen nicht nur erkennen, sondern anhand DMARC den Inhaber auch informieren und diese durchaus über den Provider dagegen vorgehen.

Der Ausgangspunkt von DMARC ist der Schutz der eigenen Domäne gegen Missbrauch von anderen Absendern, indem Sie als Inhaber die entsprechenden Vorarbeiten leisten, damit die Empfänger prüfen können, ob der Absender für diese Domäne auch senden darf. Es gibt mit SPF oder RMX schon ein Verfahren, um die "Source-IP" von Systemen zu veröffentlichen, die für eine Domäne als Absenderhost agieren. Allerdings limitiert dies die Möglichkeiten Mails z.B. über Relays oder Provider zu versenden, bei denen Sie Mailserver-Adressen ändern oder erweitern. Mit DKIM gibt es daher einen Weg, wie eine Mail selbst signiert werden kann. Es ist keine klassische digitale Signatur mit SMime oder PGP aber sehr ähnlich. Die Integrität der Mail wird damit sichergestellt, d.h. der Inhalt gegen Veränderungen geschützt und der Absender bestätigt.

DMARC geht aber weiter und veröffentlich Informationen, wie die Empfänger Sie als Domaininhaber über missbrauch informieren sollen. Die Empfänger prüfen also nicht nur die eingehenden Mails gegen SPF und DKIM-Parameter, sondern über DMARC senden Sie auch Statusmeldungen und Zusammenfassungen an die hinterlegten Rückantwortadressen.

Als Domaininhaber mit einer passenden Verarbeitung erhalten Sie also direkt ein Feedback, wir stark ihre Domäne von fremden Personen unberechtigt genutzt wird. Es dient also primär dem Schutz ihrer Marke. Interessant wird das natürlich, wenn die großen Mailempfänger und Hoster nicht nur SFP und DKIM als Spamfilter nutzen, sondern auch die Daten aus dem DMARC-Eintrag verwenden. Es ist also kein neuer Spamfilter sondern primär addiert DMARC einen Weg, wie Missbrauch auch bekannt werden kann. Aber wenn man DMARC glauben kann, sind das zumindest in den USA schon sehr viele Postfächer.

As of early 2013 DMARC had been deployed to protect roughly 2 billion email accounts - over 60% of consumer mailboxes globally, and over 80% of consumer mailboxes in the united States.
During the first 45 days of initial monitoring, Twitter saw nearly 2.5 billion messages spoofing its domains.
Twitter reports ~110 million messages/day were spoofing its domains prior to deploying DMARC, redUCEd to only 1,000/day after publishing a "reject" policy.
Quelle: http://www.dmarc.org/

Achtung:
Ein DMARC-Eintrag auf einer Domäne gilt auch für Subdomains !. DMARC-Prüfer haben dazu eine Liste der "Root-Domains", um z.B. "<firma>.de" von "<firma.co.uk>" zu unterscheiden.

Achtung:
Ein gesetzter DMARC Eintrag erfordert für die Domäne und alle Subdomains auch einen SPF-Eintrag. Fehlt dieser, dann lehnen viele Firmen die Mails ab, wenn die SPF-Prüfung bei gesetztem DMARC-Eintrag nicht möglich ist.

Die Zahlen sind beeindruckend, aber DMARC ist nur die Einstellung, dass die Empfänger mit DMARC-Support an die Domaininhaber auch die Zahlen melden. Der Filter solche "Phishing-Mails" basiert auf SPF und/oder DKIM und gibt es schon länger.

Der DMARC Eintrag

Dazu ist ein DMARC-Eintrag erforderlich. Aus Sicht von DNS ist es einfach ein TXT-Record, der den Namen "_dmarc" trägt. Ein Eintrag für die MSXFAQ könnte also lauten: (alles ohne Umbrüche und bitte eine gültige Mailadresse verwenden):

Warnung:
Dies ist ein Beispiel damit ich für meine Domäne die Reports bekomme. Bitte nutzen Sie als Mailadresse für ihre Domains bitte ihre eigene Adresse oder einen Dienstleister.

_dmarc.msxfaq.de TXT ="
   v=DMARC1;
   p=none;
   pct=100;
   rua=mailto:dmarc-aggregate@msxfaq.de.net;
   ruf=mailto:dmarc-forensik@msxfaq.de.net;
   adkim=s;
   aspf=r
   "

Die Felder können unterschiedliche Bedeutung haben:

Feld Bedeutung der Werte

v=DMARC1

Kennzeichnet die Version. Aktuell ist Version 1 gültig.

p=
sp=

Policy oder "Subdomain Policy"
Der Wer hinter "p=" kennzeichnet, wie der Empfänger mit Mails umgehen soll, die nicht korrekt mit SPF oder DKIM überprüft werden konnten. Der Eintrag "sp=" beschreibt das Vorgehen für Sub-Domains. mögliche Werte sind:

  • none
    Der Empfänger soll die Mail trotzdem weiter senden
  • quarantine
    Der Empfänger soll die Mail annehmen aber in Quarantäne legen
  • reject
    Der Empfänger soll die Mail einfach auf SMTP-Level ablehnen

pct=

Prozentsatz der Mails, die entsprechend von "p" gefiltert werden sollen. Wenn jemand aber mit DMARC einen Eintrag addiert und korrekt alle Mails gemäß SPF und DKIM versendet, sollte kein Problem mit einer "100" hier haben

rua

Receive or aggregated Report
Der Empfänger sendet an diese Adresse oder Adressen einen "Summenbericht". Das passiert in der Regel einmal am Tag

Achtung: Wenn der Empfänger in einer anderen SMTP-Domäne ist, dann senden die DMARC-Aggregatoren die Mail in der Regel erst dann, wenn die Empfängerdomäne ihr Einverständnis gegeben hat. DAs macht diese ebenfalls per DNS-Eintrag.

msxfaq.de._report._dmarc.netatwork.de   TXT "v=DMARC1"

So gibt die Domäne "netatwork.de" bescheid, dass die DMARC-Report für msxfaq.de annehmen wird.

ruf

receiver of forensic report
An diese Mailadresse sendet der Empfänger einen forensischen Report über die fehlerhafte Mail. Als Betreiber können Sie dann gut erkennen, welcher angebliche Absender an das Ziel versucht hat, eine Mail mit ihrer Domain zu senden. So können Sie "vergessene" Versender erkennen und korrigieren oder versuchen gegen Missbrauch vorzugehen.

Auch für hier verwendete Adressen anderer Domänen muss der Empfänger seine Bereitschaft signalisieren.

adkim

Abgleicheinstellung für DKIM.
Hiermit können Sie vorgeben, wie streng die Prüfung bezüglich DKIM sein soll.

  • s=Strict
    Die Domänen müssen exakt übereinstimmen
  • r=Relaxed
    Die Kopfzeile im SMTP-Header darf auch eine Subdomain sein, z.B. "newsletter@msxfaq.de"

aspf

Dieser Parameter steuert analog die SPF-Auswertung.

  • s=Strict
    Die Domänen müssen exakt übereinstimmen
  • r=Relaxed
    Die Kopfzeile im SMTP-Header darf auch eine Subdomain sein, z.B. "newsletter@msxfaq.de"

Für eine erfolgreiche DMARC-Validierung reicht es, wenn eines der beiden Checks, SPF oder DKIM erfolgreich war. DKIM wird überwiegend genutzt, wenn die Authentizität der Mail auch über Relaisstationen gewährleistet werden soll, aber erlaubt kein Umschreiben der Absender (Stichwort Mailingliste). Hier ist dann SPF besser, wenngleich dann die ausgehenden IP-Adressen gepflegt sein müssen.

Wer mit DMARC anfängt, kann also erst einmal den Eintrag setzen aber stellt also Aktion z.B. "p=none" und schaut sich die Meldungen einige Zeit an.

Beispieleinträge von Firmen

Ob eine Firma DMARC einsetzt, können Sie einfach per NSLOOKUP ermitteln.

C:\>nslookup -q=TXT _dmarc.microsoft.com
Server:  dns.netatwork.de
Address:  192.168.100.1

Nicht autorisierende Antwort:
_dmarc.microsoft.com    text = 
        "v=DMARC1; p=none; pct=100; rua=mailto:d@rua.agari.com; ruf=mailto:d@ruf.agari.com; fo=1"

Wenn man ein paar bekannte Firmen anfragt, dann sieht man durchaus einige interessante Einträge:

_dmarc.microsoft.com  text = "v=DMARC1; p=none; pct=100; rua=mailto:d@rua.agari.com; ruf=mailto:d@ruf.agari.com; fo=1"
_dmarc.outlook.com    text = "v=DMARC1; p=none; pct=100; rua=mailto:d@rua.agari.com,mailto:dmarc_agg@auth.returnpath.net; ruf=mailto:d@ruf.agari.com,mailto:dmarc_afrf@auth.returnpath.net; fo=1"
_dmarc.mail.ru        text = "v=DMARC1;p=none;rua=mailto:d@rua.agari.com,mailto:dmarc_rua@corp.mail.ru,mailto:dmarc_agg@auth.returnpath.net;ruf=mailto:d@ruf.agari.com,mailto:dmarc_afrf@auth.returnpath.net;fo=1;"

_dmarc.yahoo.com      text = "v=DMARC1; p=reject; sp=none; pct=100; rua=mailto:dmarc-yahoo-rua@yahoo-inc.com, mailto:dmarc_y_rua@yahoo.com;"
_dmarc.google.com     text = "v=DMARC1; p=quarantine; rua=mailto:mailauth-reports@google.com"
_dmarc.aol.com        text = "v=DMARC1; p=reject; pct=100; rua=mailto:d@rua.agari.com; ruf=mailto:d@ruf.agari.com;"
_dmarc.bahn.de        text = "v=DMARC1; p=none; rua=mailto:dmarc.reporting@deutschebahn.com;"
_dmarc.dell.com       text = "v=DMARC1; p=none; rua=mailto:dmarc-dell-rua@sonicwall.com; ruf=mailto:dmarc-dell-ruf@sonicwall.com"
_dmarc.amazon.com     text = "v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc-reports@bounces.amazon.com; ruf=mailto:dmarc-reports@bounces.amazon.com"
_dmarc.dhl.de         text = "v=DMARC1;p=none;rua=mailto:dhl@rua.agari.com;ruf=mailto:dhl@ruf.agari.com"
_dmarc.ups.de         cname = _dmarcmonitor.ups.com
_dmarcmonitor.ups.com text = "v=DMARC1; p=none; rua=mailto:ups@rua.agari.com; ruf=mailto:ups@ruf.agari.com; fo=1"
_dmarc.ups.com        text = "v=DMARC1; p=reject; rua=mailto:ups@rua.agari.com; ruf=mailto:ups@ruf.agari.com; fo=1"
_dmarc.ing-diba.de    text = "v=DMARC1; p=none; rua=mailto:SecurityServices@ing-diba.de" 
_dmarc.ebay.de        text = "v=DMARC1; p=none; rua=mailto:dmarc_agg@auth.returnpath.net; ruf=mailto:dmarc_afrf@auth.returnpath.net; rf=afrf; pct=100"
_dmarc.paypal.com     text    "v=DMARC1; p=reject; rua=mailto:d@rua.agari.com; ruf=mailto:dk@bounce.paypal.com,mailto:d@ruf.agari.com"

Es ist gut zu sehen, dass die großen Versender und Logistiker, aber auch die Internet-Firmen hier Vorreiter spielen. Interessant sind hier natürlich insbesondere die Einträge zum RUF und RUA´. Scheinbar nutzen sehr viele die Dienste von agari.com, um die Ergebnisse von "Domainmissbrauch" zentral zu erkennen. Auf deren Webseite finden sich Daten wie

In fact, we get data from 85% of all email inboxes in the US and 60% of email inboxes globally.
Quelle: http://agari.com/what-we-do/

Auf der anderen Seite haben gerade deutsche Domains hier noch Nachholbedarf. (Stand Okt 2014). Ich habe einfach ein paar Namen einmal durch probiert. Gerade die großen Provider scheinen hier eher auf ihr "E-Mail Made in Germany" zu setzen.

_dmarc.t-online.de            text = nicht vorhanden
_dmarc.telekom.de             text = nicht vorhanden
_dmarc.gmx.de                 text = nicht vorhanden
_dmarc.web.de                 text = nicht vorhanden
_dmarc.basf.com               text = nicht vorhanden
_dmarc.siemens.de             text = nicht vorhanden
_dmarc.rwe.de                 text = nicht vorhanden
_dmarc.bsi.de                 text = nicht vorhanden
_dmarc.ccc.de                 text = nicht vorhanden
_dmarc.deutsche-bank.de       text = nicht vorhanden
_dmarc.netbank.de             text = nicht vorhanden
_dmarc.allianz.de             text = nicht vorhanden
_dmarc.aldi.de                text = nicht vorhanden
_dmarc.tchibo.de              text = nicht vorhanden
_dmarc.ebay-kleinanzeigen.de  text = nicht vorhanden

Interessant ist auch, dass die Banken noch nicht dabei sind.

Es ist wie gesagt nicht schlimm, wenn man DMARC nicht unterstützt. Letztlich muss jede Firma selbst entscheiden, ob ihr Mailsystem die Mails per DKIM signieren kann und dann per DMARC dies den Empfängern mitgeteilt wird. Ich persönlich würde ja eh viel mehr auf eine echte S/MIME-Signatur setzen aber es ist durchaus eine Option den eigenen Namen und die Marke zu schützen.

Reporting

Die Rückmeldungen der entfernten Server, an die Mails mit ihrer Domain gesendet werden, kommen ganz klassisch per Mail und nicht "modern" über Webservices. Entsprechend muss die im DMARC-Record hinterlegte Mailadresse natürlich einem Postfach zugeordnet sein. Das muss aber kein Postfach in ihrer Domäne sein und wenn Sie sich die DMARC-Records der oben genannten Firmen anschauen, dann erkennen Sie eine Häufung der Firmen "agari.com" und "returnpath.net". Beide sind Dienstleister die solche Rückläufer einsammeln und die Auswertung als "Hosted Service" ihren Kunden anbieten. Sie können die Mails aber natürlich auch in ein eigenes Postfach ablegen.

Achtung:
Als deutsche Firma sollten Sie überlegen ob sie selbst DMARC-Reports an andere Firmen senden oder in welcher Weise Sie die Reports aus Datenschutzgründen verwässern.
https://www.eco.de/2015/pressemeldungen/phishing-abwehr-datenschutzrechtliche-bedenken-gutachten-empfiehlt-redacting.html 

Ich habe dazu bei einer meiner Spiel-Domains einfach mal einen _DMARC-Eintrag addiert und als RUF/RUA-Adresse meine normale Mailbox angegeben. Hier der Mustereintrag

C:\>nslookup -q=TXT _dmarc.frankcarius.de
Server:  fritz.box
Address:  192.168.178.1

Nicht autorisierende Antwort:
_dmarc.frankcarius.de   text =

        "v=DMARC1;p=none;pct=100;rua=mailto:frank.carius@netatwork.de;ruf=mailto:frank.carius@netatwork.de;adkim=s;aspf=r"

Dann habe ich eine Testmal an eine outlook.com-Adresse gesendet. Die kam durch, weil im DMARC-Eintrag ein "p=none" steht.

Aber nun habe ich gespannt auf die Mail in dem angegeben Postfach gewartet. Die kam dann auch kurz nach Mitternacht:

Der Body der Mail war leer und als Anlage war eine ZIP-Datei angehängt. In der war wiederum genau eine XML-Datei, in der z.B.: die vom Empfänger gesehenen Einstellungen wieder gegeben sind und die Detaildaten der Verbindung. Hier war es genau eine von der Source-IP "80.66.20.28".

<?xml version="1.0" encoding="utf-8"?>
<feedback>
   <report_metadata>
      <org_name>Microsoft Corp.</org_name>
      <email>dmarcrep@microsoft.com</email>
      <report_id>e7c320ad9ac24ac9a153ac17065a2db9@hotmail.com</report_id>
      <date_range>
         <begin>1414015200</begin>
         <end>1414101600</end>
      </date_range>
   </report_metadata>
   <policy_published>
      <domain>frankcarius.de</domain>
      <adkim>s</adkim>
      <aspf>r</aspf>
      <p>none</p>
      <sp>none</sp>
      <pct>100</pct>
   </policy_published>
   <record>
      <row>
         <source_ip>80.66.20.28</source_ip>
         <count>1</count>
         <policy_evaluated>
            <disposition>none</disposition>
            <dkim>fail</dkim>
            <spf>fail</spf>
         </policy_evaluated>
      </row>
      <identifiers>
         <header_from>frankcarius.de</header_from>
      </identifiers>
      <auth_results>
         <spf>
            <domain>frankcarius.de</domain>
            <result>none</result>
         </spf>
         <dkim>
            <domain>frankcarius.de</domain>
            <result>none</result>
         </dkim>
      </auth_results>
   </record>
</feedback>

Man sieht auch, dass sowohl die SFP- als auch die DKIM-Abfrage fehlgeschlagen sind. Leider konnte ich im Header der Mail keine Hinweise darauf sehen, dass diese Stausmail per DKIM gesichert war. So kann ich nicht sicher sein, dass nicht jemand anderes mit einen StatusBericht sendet und damit die daraus generierten Statistiken verändert.

Ein kleiner PowerShell-Einzeiler liefert eine Tabelle der Statusmeldungen:

[xml]$report=Get-Content C:\temp\temp\report.xml
$report.feedback.record | select {$_.row.source_ip}, {$_.identifiers.header_from}, {$_.auth_results.spf.result}, {$_.row.policy_evaluated.spf}
 
$_.row.source_ip    $_.identifiers.head $_.auth_results.spf $_.row.policy_evalu
                    er_from             .result             ated.spf
----------------    ------------------- ------------------- -------------------
117.111.120.11      msxfaq.com          pass                pass
117.111.120.11      de.msxfaq.com       none                fail
93.199.90.91        msxfaq.com          pass                pass
93.199.90.91        de.msxfaq.com       none                fail
93.199.90.94        msxfaq.com          pass                pass
93.199.90.94        de.msxfaq.com       none                fail
62.242.148.41       de.msxfaq.com       none                fail

Wer also mag, kann z.B. alle Anlagen aus dem DMARC-Sammelpostfach abfischen und verarbeiten.

Störpotential beim Reportpostfach

Für Spammer sind diese Adressen zwar leicht per DNS "einzusammeln" aber natürlich kein lohnendes Ziel. Diese Mails wird wohl nie ein unbedarfter Anwender lesen. Damit niemand gefälschte Reports darunter mischt, werden natürlich auch diese Mails per SPF/DKIM gesichert, so dass Fälschungen früh aussortiert werden können. Und selbst dann wird der verarbeitende Prozess eine Mail nur dann verstehen, wenn Sie sich an das Format hält. Dennoch scheint es Spammer zu geben, die entweder die Mailadresse hier auf der Webseite eingesammelt haben oder tatsächlich den DNS-Eintrag parsen. Auf jeden Fall kommt tatsächlich Spam an diese Adresse.

Es gibt aber dennoch ein Störpotential. Es ist heute sehr einfach eine Domäne im Internet zu registrieren und einen DMARC-Eintrag zu addieren, in dem eine Mailadresse einer anderen Person hinterlegt wird, die ich stören möchte. Wenn der Mailserver dieses Ziels nicht SPF/DKIM prüft und gefälschte Report-Mails verwirft, dann wird er die Mails in das Postfach zustellen.

Wenn ich dann absichtlich eine Mail mit dieser Absenderdomäne z.B. an einen Server sende, der SFP/DKIM prüft und die Reports anhand des DMARC-Eintrags erstellt, dann sendet dieser Server eine Mail an die hinterlegte Adresse. Das kann schon störend sein, wenn ich von einem PC eben tausende "kleine" Mails an viele Mailserver mit SPF/DKIM-Support sende und diese dann eine deutlich größere "Statusmail" an die DMARC-Reportadresse sende. Ob das schon für einen DDoS per SMTP reicht ?

DMARC bei 1&1

Seit Anfang 2016 hat die 1und1-Gruppe den Schutz gegen Spam mittels SPF noch etwas verstärkt. Der Versuch aber einen DMARC-Eintrag zu addieren, schlägt leider fehlt. Technisch musste man dazu bei 1und1 früher eine "Subdomain" anlegen aber im neuen Control-Center können Sie auf der Domäne direkt einen TXT-Record addieren. Allerdings ist die aktuell (Jun 2016) nicht möglich, da die Eingabe eine Validierung macht und ein einfaches _dmarc.<domain> nicht erlaubt ist.

Leider kann ich auch keine "Subdomain" mit einem "_" ersatzweise anlegen. Hier muss 1und1 wohl noch etwas korrigieren, damit auch DMARC-Einträge möglich werden

DMARC Auswertungen

Die Rückmeldungen von Firmen, die DMARC-Einträge auswerten, kommen in dem angegebenen Postfach als XML-Datei an. Sicher könnten Sie nun das Postfach lesen und auswerten, sei es per Outlook oder mit einem PowerShell-Skript. Aber dann steht immer noch die grafische Auswertung an. Im Zeichen der Cloud gibt es einige Anbieter, die ihnen die Arbeit hier abnehmen. Sie lassen die Reports einfach an diesen Anbieter senden oder leiten ihre Reports weiter. Per Browser können Sie dann entsprechend aufbereitet Reports betrachten.

Die folgende Liste von DMARC-Auswertestellen ist keine repräsentative Marktübersicht und darf nicht als Empfehlung meinerseits missverstanden werden.

Weitere Links