
spf at misc
Mar 20, 2004, 7:03 AM
Post #3 of 4
(1522 views)
Permalink
|
begin Saturday 20 March 2004 01:35, Meng Weng Wong quote: > We should maybe move this thread to srs-discuss. > > On Fri, Mar 19, 2004 at 07:30:55PM -0500, Stuart D. Gathman wrote: > | More interesting, I am getting a pile of attempted bounces to lowercase > | SRS signed users - each with a different combination in the hash. > | Someone is repeating a timestamp, and trying lots of combinations of > | hashes to try and find a good one - and counting on the case folding to > | reduce combinations I guess. I am using hashlength=8, so I don't think > | this will be very successful other than annoying my milter. The attempts > | are from AOL and YAHOO. The hash values seem to be random, rather than > | sequential. I am getting them on all of the mail servers and domains I > | manage. > | > | I guess this means spammers are taking notice of SRS, and seem to be > | planning on a brute force attack. > > But even if they manage to brute one particular combination, that still > doesn't let them guess the key ... But, depending on how the SRS is set up (i.e. integrated into the MTA), "one particular combination" may unfortunately be just as good as a key. Indeed, if the spammer has obtained one valid encoding of an e-mail address that he controls, he may use this to trick the server into revealing the encoding of whatever other address he wants: just send a forged mail "from" the address that he wants to encode "to" the encoded address that he already has. Just lemme explain by example: 1st step: Spammer tries to find out (through brute force, or through bugs) what is the SRS encoding of one address that he controls: From: dummy [at] nowhere To: SRS0=fdgWtWqA=GR=spammer.cx=evil [at] victim ===> If the spammer succeeds, he has now a valid encoding for an address he control (can read) 2nd step: Use this Address to translate addresses of his recipients: From: spamrecipient [at] yahoo To: SRS0=fdgWtWqA=GR=spammer.cx=evil [at] victim || || \/ From: SRS0=aWDFEQzx=GR=yahoo.com=spamrecipient [at] victim To: evil [at] spammer ===> evil [at] spammer now knows encoding of spamrecipient [at] yahoo! What has happened: (1) Victim.com has _decoded_ the SRS "To" (2) At the same time, it has _encoded_ the spam recipients' "From" ===> with a single SRS cookie, the spammer can generate as many others as he feels like ===> if his cookie nears expiry, he just needs to inject another address that he controls (maybe hidden as a spamrecipient...), and he has a new "fresh" cookie! Limitations of this algorithm ----------------------------- 1. Lots of effort needed to find initial cookies 2. The spammer is forced to reveal one of his own addresses to make the scheme workable. 3. It obviously wouldn't work if the recipient has SPF (because in that case, victim.com would not accept the forged probe. Why a spammer might do this anyways ----------------------------------- 1. Effort only needs to be spent once. 2. Revelation of his own address is not tragic to the spammer: just use a throwaway hotmail.com or a .cn address 3. SPF is still not widespread enough to significantly cut into the number of potential recipients. So, this is obviously an attack that works "best" now that SPF has not a wide penetration. Its main goal would not be to spread spam, but to discredit SRS by converting SRS hosts into unwitting open relays. What we can do about it: ------------------------ 1. Do not apply SRS encoding for mails where we already do SRS decoding. 2. Or, only apply encoding for From eaddresses whose domain publishes SPF 3. (or maybe easyer to implement): only apply SRS decoding if From is <> or <postmaster@ ... > 4. Some throttling mechanism (limit number of SRS encoding /decoding operations per minute that come from a same IP or IP range) Regards, Alain
|