We feed received DMARC reports through Open-Report-Parser and visualize
with Open DMARC Analyzer.

Sometimes the ingestion step fails, because we receive aggregate DMARC
reports with invalid contents. Particularly from senders that seem to
have just started sending DMARC reports.

RFC 7478 says:

        The aggregate data MUST be an XML file that
        SHOULD be subjected to GZIP compression.

The name of the filename is then specified, and the extension further
implies only gzip as an optional compression method.

        extension = "xml" / "xml.gz"

        The extension MUST be "xml" for a plain XML file,
        or "xml.gz" for an XML file compressed using GZIP.

However, some send zip compressed files, with a ".zip" extension, one
notable sender being google.com.


I have also seen zip files declared as application/gzip, and gzip files
declared as application/zip. They are few and far between, but cause
annoying failures.


1&1 started sending DMARC reports for at least some of their domains
today, and fell into the trap of sending gzipped data declared with
content-type application/zip.

Their reports are also sent with a NULL envelope sender, and a quick
look through my report archive suggest they are alone in this.

The RFC says very little about envelope sender, only that:

        Email streams carrying DMARC feedback data MUST
        conform to the DMARC mechanism, thereby resulting
        in an aligned "pass" (see Section 3.1).


Another category of failures are what I call 'NULL reports' -
superficially valid-looking DMARC report XML files (but does not follow
the DMARC XML schema, as far as I understand it), but with no real
aggregate data;

<feedback>

  [...]
  <record>

    <row>

      <source_ip/>

      <count>0</count>

      <policy_evaluated>

        <disposition/>

        <dkim/>

        <spf/>

      </policy_evaluated>

    </row>

  [...]
</feedback>


which appear to be a bit pointless. wp.pl, I'm looking at you.

I've reported this to the involved parties, and are waiting to see
improvements.

These NULL-reports, I just ignore for now.


Regarding the first type of mis-declared content-types, I've resolved to
using a Sieve script to fix up the content-type on a case by case basis
while waiting for the sender to fix their process, but would it perhaps
be better if the processing tool did its own content-type sniffing?

Could this type of sniffing have or cause other problems?

I'm thinking about improving the ingestion step by adding Content-Type
sniffing, but are wondering if it should be done at all, or if it will
be considered an anti-feature.

Any advice?


Daniel K.

_______________________________________________
mailop mailing list
mailop@mailop.org
https://list.mailop.org/listinfo/mailop

Reply via email to