Re: [dmarc-ietf] Another p=reject text proposal

2023-07-15 Thread Wei Chuang
FWIW I think this language is an improvement over the prior language but I
would like to point out two concerns:

1) Specifying receivers with "MUST NOT reject" in Section 8.6
"Interoperability Considerations" presumably to to downgrade a p=reject to
quarantine with does carry new security risk.  I note that "other knowledge
and analysis" is not defined and there may be a temptation to blindly do
downgrades.  I believe the document needs to note that new risk in that
Section 5.8 "Policy Enforcement Considerations" [1] and Section 11
"Security considerations" so that receivers apply the downgrade in secure
way.   Section 5.8 already does note risk for the immediate recipients as
says "it may increase the likelihood of accepting abusive mail" however it
should note risk in forwarded flows and the risk to those recipients.  In
particular I'm worried about SPF upgrade attacks as described by Liu et.
al. [2].  Here an adversarial senders may exploit overly broad SPF policies
of victim domain that permit SPF upgrade as noted Section 4.2.2 in plus
relaxed DMARC to enable DMARC From header spoofing.  The paper notes that
some receivers today may relax DMARC as a user setting to improve
deliverability i.e. permit downgrading a p=reject enforcement to
p=quarantine in Section 4.2.3 and another setting to forward messages as
described in Section 4.3.1.  Liu et al. was able to demonstrate sending
spoofed state.gov emails that passed DMARC at the receiver despite a
"p=reject" policy using those steps as described in Section 5.  Presumably
receivers that then more broadly apply DMARCbis p=reject downgrade may
inadvertently create a new vector for SPF upgrade attacks.  Some
suggestions are for receivers to be cautioned against doing p=reject
downgrades if they don't validate participation by the forwarding
recipient.  Another is if DMARCbis adopts some scoped authentication, is
for domains to deploy a DMARC DKIM-only authentication policy.  This not
some academic issue and the spammers are very aware of SPF upgrade attack
technique i.e. looking for ways to exploit it.  We've seen significant
scaling of this type of attack over the past two years or so.

2) The proposed language calls out "“alumni forwarders”, role-based email
aliases, and mailing lists" for consideration by receivers.  How should
receivers be aware that traffic failing authentication should be
reconsidered?  Mailing-lists sometimes uses RFC2919 List-id headers.  Can
Section 5.8 [1] call out more strongly the application of those List-id
headers?  Can something be done so that receivers can identify the other
scenarios e.g. role-based email aliases and alumni-forwarders?

[1] DMARCbis:
https://datatracker.ietf.org/doc/html/draft-ietf-dmarc-dmarcbis-28
[2] Liu, Enze, et al. "Forward Pass: On the Security Implications of Email
Forwarding Mechanism and Policy", 8th IEEE European Symposium on Security
and Privacy, 2023, https://arxiv.org/abs/2302.07287

-Wei

On Thu, Jul 6, 2023 at 7:55 AM Barry Leiba  wrote:

> I had some off-list discussions with Seth, who was very much against
> my original proposed text, and he suggested an alternative
> organization that would be more palatable to him.  I've attempted to
> set that out below.  The idea is to remove the normative requirements
> about using p=reject from Sections 5.5.6 and 5.8, and instead put a
> broader discussion of the issues, along with the normative
> requirements, into a new "Interoperability Considerations" section.
> This makes it explicitly clear that any MUST/SHOULD stuff with regard
> to using and honoring p=reject is an issue of interoperating with
> existing Internet email features.  I can accept that mechanism also,
> and so, below is my attempt at writing that proposal up.
>
> Barry
>
>
> -
>
> — Section 5.5.6 —
>
> ADD
>In making this decision it is important to understand the
>interoperability issues involved and problems that can result for
>mailing lists and for deliverability of legitimate mail. Those
>issues are discussed in detail in the Interoperability
>Considerations section [see Section x.x].
> END
>
> — Section 5.8 —
>
> OLD
>Mail Receivers MAY choose to accept email that fails the DMARC
>mechanism check even if the published Domain Owner Assessment Policy
>is "reject".  In particular, because of the considerations discussed
>in [RFC7960], it is important that Mail Receivers SHOULD NOT reject
>messages solely because of a published policy of "reject", but that
>they apply other knowledge and analysis to avoid situations such as
>rejection of legitimate messages sent in ways that DMARC cannot
>describe, harm to the operation of mailing lists, and similar.
> NEW
>Mail Receivers MAY choose to accept email that fails the DMARC
>mechanism check even if the published Domain Owner Assessment Policy
>is "reject".  In particular, because of the consid

[dmarc-ietf] How did DMARC go wrong, and how does our document fix it?

2023-07-15 Thread Douglas Foster
Murray recently observed, correctly, that something went horribly wrong
with the DMARC rollout, because it caused (continues to cause) many safe
and wanted messages to be blocked.

My assessment was in a recent post:

Something about the language of RFC 7489 caused implementers to focus on
blocking individual messages, when the appropriate use of DMARC is to
identify and investigate potentially malicious sources.

The "message blocking" approach violates the interests of the users it is
intended to protect:

- An attacker sends 10 messages that maliciously impersonates a big bank.
With help from DMARC p=reject, the evaluator blocks them all.  The attacker
follows up with 10 messages that maliciously impersonate a major
university.   The stupid evaluator says, "p=none means no problem here".
 The message is accepted and the user is harmed because the evaluator
learned nothing from blocking the successful attack.

Consider a variant of the above:   The attacker never impersonates a big
bank with p=reject, it only impersonates big universities with p=none.
 The foolish evaluator blocks nothing because it only acts on domains with
p=reject.  Again, the user is harmed.

And we know the flip side:   Safe and wanted messages get blocked because
p=reject is enforced without investigation against mailing lists and other
traffic.

Security theory says that ANY unauthenticated message COULD be a malicious
impersonation, and worthy of investigation.   Experience says that
malicious impersonations are a small percentage of all unauthenticated
messages.  As a result, the appropriate response to an authentication
failure is to investigate, not to block.

I don't know exactly how to communicate the difference between message
blocking and sender investigation in DMARCbis, but I sure hope that we will
try.

Doug Foster
___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Eliminating From Munging from this list

2023-07-15 Thread Douglas Foster
We have two tracks that we can pursue for eliminating From munging from
this list:   They can be pursued in parallel:

Track 1:   Downgrade Request
We identify the small number of domains and subscribers who participate
from p=reject domains, and consequently have their submissions munged.
We develop a document which explains all the reasons why p=reject is a bad
idea because of its impact on mailing lists.
We ask the p=reject participants to ask their domains to change their DMARC
status from p=reject to p=none.
We see if the participants are willing to submit the request.
We evaluate responses from those domains.

This track could have been done a long time ago.

Track 2: Exception Request
1) We fix our incoming filtering so that all submissions have verified
identities.   This is much easier for a list like this one than for a
general mailstream.

2) We implement conditional munging.

3) We document and explain the list's operating practices, to include:
- The techniques we use to achieve 100% identity verification
- The message changes made by the list, with a special emphasis on the
security benefits of forcing all body content to text mode.
- Other content controls, such as attachment policy.
- All of the ways that list messages can be distinguished from all other
messages, so that a filtering exemption can be applied successfully
Then we explain that because of these controls, DMARC enforcement is not
needed because sender authentication has already been enforced.  Because
the beneficial content changes, DMARC enforcement at final delivery is
actually counter-productive.

4) Finally, we ask all participants to submit an Exception Request to their
email policies, to bypass DMARC enforcement for list messages.   Our
operating practices document is intended as supporting material for the
exception request.

5) For any participant that receives a favorable response to his submission
request, we skip From munging on messages sent to that that domain.

Track 2 requires actual "Internet Engineering"
- We SHOULD be doing 100% sender authentication.  Undertaking the effort
will identify technical obstacles that need to be overcome.   The technical
obstacles may be different for different list types.   The effort will
almost certainly identify authentication techniques that are effective for
authentication purposes but not currently configured as an A-R or ARC
authentication result.
- We SHOULD provide better documentation of our operating practices.
Undertaking the effort will provide a model for other lists to follow.

Track 2 benefits:
- From munging can be eliminated for a participant with only the
cooperation of their domain administration.   The solution does not require
the cooperation of any other domains.
- Elimination of From munging is potentially available to all participants,
even those from p=reject domains
- We are not fighting a battle to convince domains to lower their security
posture.
- Results can be obtained in months, possibly a year, based on development
complexity and available resources.   We have been trying some version of
Track 1 for over a decade, with poor results.

Can we please get started on Track 2?

Doug Foster






On Thu, Jul 13, 2023 at 10:55 AM Barry Leiba 
wrote:

> > The issue is not about lists being second class.  What lists do to a
> message is a privileged function, because
> > modifying a message can be done maliciously as easily as it can be done
> innocently.   So the real problem
> > is that DMARC demoted them from privileged to non-privileged by exposing
> the risk inherent in their message
> > modifications.   Non-privileged parricipants do not have permission to
> modify messages that they did not author.
>
> I do mostly agree with this, and it's a good point.
>
> Let me note two things:
>
> (1) As I've said before, telling mailing lists how they might deal
> with this situation is out of scope for THIS DOCUMENT.
>
> (2) Telling mailing lists how they might deal with this situation is
> absolutely in scope for this working group.
>
> Apart from rewriting the From header, which you seem to be presenting
> as the only or best thing that mailing lists can do, there are other
> solutions that mailing lists could adopt.  For example, they could
> bounce posts from p=reject domains.  They could simply not modify
> messages that are posted from p=reject domains.  Ale has a proposal
> that we will surely discuss at some point that sets up an automated
> allow-list system so that receiving domains can adjust based on
> information from the mailing list and the subscriber.
>
> We can and should discuss these and consider an update to RFC 7960,
> perhaps as a BCP for mailing list managers about dealing with DMARC.
>
> In this document, specifying the DMARC protocol, we should say how we
> think DMARC should work.  I believe that means we need to say,
> regardless of who we think will not pay attention, that p=reject is
> not intended for domains that give out general-