As requested during the review of autoconfig, I would like to pose the fetch ISP part of the feature for security review.

I didn't know back then that I had to schedule the meeting myself, so I waited indefinitely for it to be scheduled. So, I now set the time to tomorrow, 2009-11-05, 10AM PST = 19:00 CET. That's Thursday, 10AM in California, 6PM in UK and 19:00 in Germany.
http://www.timeanddate.com/worldclock/

Anybody interested in security is welcome to join. Let's just use the normal TB conference line
<https://wiki.mozilla.org/Thunderbird/StatusMeeting/DialInInfo>

F-up-To: mozilla.dev.apps.thunderbird . See there for updates.


On 2009-01-21, in thread "autoconfig security", I wrote:

We're currently implementing "autoconfig" for Thunderbird, which is intended to be able to automatically figure out the mail settings needed to configure an email account, like hostnames, ports, SSL on/off, secure auth algo etc.. All that the user should need to provide is his real name, email address and password. We take the domain of the email address and try to find the configuration from that.

Please see https://wiki.mozilla.org/Thunderbird:Autoconfiguration#Implementation

I think that's fairly secure (and specifically designed to be). We try to get the config only by contacting servers at the original domain example.net (or Mozilla), and that should be under the control of the mail provider Example Corp. We also try to do that only via secure mechanisms (which is a pain, because it rules out DNS).

philor, during review, asked for a "formal security review" by the Mozilla Security Group, so that's what this post is about.

The risk here is that we find and offer a configuration that contains mail servers operated by an attacker. E.g. Emily wants to set up em...@example.net, but we find a configuration for example.net that includes imap.evil.com. Then, evil.com would gain Emily's email password. Or imap.example.net offers SSL, but the attacker manages to return a config without SSL nor password encryption, and then using a MITM to read the cleartext password.

Mitigating factors are:

   * There is a small time window for the attacker. It's all only about
     the account setup wizard, and setting up an account is a very rare
     action, 2 times per year roughly on average.
   * The attacker has to run a MITM or DNS attack of some sort.
   * We show the configuration (hostnames etc.) to the user before we
     create the account, and do not send the password before the user
     clicked "Create account".
   * The greatest possible danger here is a loss of the email password.
     Addons/Extensions or downloads of EXEs pose a *far* far larger
     risk. Therefore, we should be careful, but not overly hesitant.
   * People currently often use no SSL at all, and instruction pages
     instruct entirely unprotected cleartext configs, although SSL is
     available. [paragraph added now]


Philor came up with one possibly problematic case: A webhoster which is allowing customers to register subdomains. So, a customers has f...@hoster.com and fred.hoster.com. How, if the attacker registers autoconfig.hoster.com, it can redirect Fred to imap.evil.com and get the password.
I can see two possible counter-measures for that:
1) The webhoster must block the autoconfig subdomain or register/use it himself. 2) We also contact https://www.<domain>/autoconfig/mail/mozilla.xml /before/ we contact autoconfig.<domain>. Upside of 2) is that it's a bit easier to set up (no new host). Downside is that it creates more 404 spam in the hoster's logfile (same as /favicon.ico, which I hate). Microsoft has a very, very similar feature in Outlook / Exchange 2007, which also contacts "https://<domain>/autodiscover/autodiscover.xml" and "https://autodiscover.<domain>/autodiscover/autoodiscover.xml", so they do exactly the same (same idea independently), and they used 2) above. (There are some differences in the XML files, so dropping our own format in favor of Microsoft's is not a good idea, but I plan to implement the autodiscover as well, in case we talk to Exchange 2007 servers).

Somebody can see other problematic situations?


Note, however: [slightly modified]
The vast majority of users currently use no SSL and no "secure auth", because that's too cumbersome to set up without knowing which combination works, and official instructions are usually incomplete and outdated. Quite often, the pages instruct to use no SSL and cleartext passwords.

So, people are already sending their password in the clear, the attacker just has to sniff it. Given that the risk here is that the passwords gets discovered, and that requires an *active* attack, I don't think we can make the situation much worse than it already is.

This feature wants to make the situation much *better*, though, by configuring SSL for those users where their provider offers it.
_______________________________________________
dev-security mailing list
dev-security@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security

Reply via email to