Re: IM2000 RNASP -- identifying message stores to recipients

James Craig Burley <[email protected]> 10 Mar 2004 18:10:29 -0000
Newsgroups gmane.mail.im2000
Message-ID <[email protected]>
>It
>would be easy to publish a list of such domain names to avoid (known spam
>operations, etc).

Really?  I worry about this (for both IM2000 *and* SMTP).  It *seems*
easier at first, but, which is larger, the set of all possible domain
names, or the set of all possible IPv4 addresses?  Therefore, which is
easier for spammers *on the whole* to create and dispose of rapidly?

(It's tempting to think of an IP address, especially an IPv6 address,
as "cheap".  But we really do pay for each one, since we *must* have
at least one to get onto the Internet, whether we share it with
others.  We are therefore often unaware of its actual cost to us,
versus the explicit cost of having to own a domain name, since that's
optional for most purposes and a purchase we make ourselves.  Yet it's
likely that far, far more people and organizations own more domain
names than IP addresses than the other way around, especially if the
pertinent definition of "own", which includes all the subdomains of a
purchased domain names that are actually deployed, is used.)

An incoming SMTP connection requires an rDNS lookup to determine a
host name for it, if one exists.  That's overhead, and it's not
necessarily reliable information anyway.

(I believe rDNS is rarely useful for handling incoming email after
all, though it's helpful for logging and double-checking
configurations; my own qmail setup looks it up, but just logs it to
system log files and email headers, does no filtering based on it
whatsoever, yet manages to easily block the vast majority of incoming
spam and vermin.  It used to temporarily block no-rDNS injections,
but, on somebody's suggestion, I disabled that, discovered many of
them were legitimate bounces of joe jobs that could be easily
dispensed with, and the remaining spam and vermin I've since learned
to easily block without rDNS.)

We tend to assume DNS services are trustworthy, but, aside from issues
of security and reliability within the DNS implementation *itself*,
there's always the possibility that, starting at an arbitrary point in
the tree (say, the foobar.whatever.com heirarchy), the utility of DNS
for blacklisting fades away.  Reasons for this might include the
operator of the DNS at that point is a spamware enabler, or the system
running it has been taken over and become a zombie.

Either way, anything...foobar.whatever.com can be created and serve up
spam via an outgoing message store for as long as that works, so
blacklisting just that domain name does little more than tell the
spamware that it's time to gin up a new name under the
foobar.whatever.com heirarchy.

So you can't just look at a particular "leaf" in the tree, without
being sure you can trust each of the branches, starting from the root
(.), that lead to it, to not spawn arbitrary, short-lived subdomain
names.

The same goes for IPv4 addresses as well, but since they're limited,
their owners (and customers) have added incentive to keep the ones
they own "pure", lest they be blacklisted.  The metrics for listing a
branch (say, a /24 branch) are clearer: if you have N distinct /32
addresses within a /24 branch that are transmitted spam, and no others
that transmit legitimate email, given that you already know the
maximum for N is 254, you can easily decide whether N has reached the
point that *you* will blacklist the entire /24, on the theory that
*all* addresses in that range are probably hijacked, or hijackable.

I've tended to shy away from suggesting IPv4 addresses instead of
domain names be listed in blacklists, because I don't "own" my dynamic
IP address, yet I do own three domain names that point to it.

But I can't justify blacklists having to special-case my sort of
situation by using domain names as a basis to punch holes through IP
blacklists; after all, a bazillion random domain names can be
theoretically be resolved to a given IPv4 address, times 256 for a /24
IPv4 address, so it would actually be potentially very expensive to
whitelist known-good domain names, and even more expensive to
blacklist known-bad ones.

And, when I consider what I (or someone else) might actually want to
block, it's not the *domain* name, rather, the computer system, plus
any other systems under that owner's control, that is what I want to
block, and that is more closely coupled (when considering economics as
well as technologies) to IPv4 addresses than domain names.

(It's true that a domain name might well resolve to several distinct
IPv4 addresses, and that discovering one to be a source of spam is
probably a good indicator that the others are as well.  But is that
true *enough*?  If, of three IPv4 addresses to which example.com
resolves, each runs different OS and mail-server software, and only
one gets turned into a zombie, it's perhaps a *feature* that, upon
blacklisting that one, the other do *not* get blacklisted.  Of course,
that should be taken into account for IP address grouping, e.g.
blacklisting an entire /24 because "enough" addresses within it have
recently committed offenses; they may have nothing to do with each
other, in terms of ownership and type of OS/server software.)

So I've come to believe that it's actually easier for
generally-untrusting systems, like SMTP servers and IM2000 recipient
agents, to use IPv4 addresses as keys into their blacklisting data
bases, as most tend to do today anyway.

And the blacklisting criteria should include "Time of Most Recent
Offense" parameters that allow IPv4 addresses to "fall off" the
blacklist, on a schedule that each site determines for itself.

IM2000 has a substantial technological advantage over SMTP in that it
can take its own sweet time determining whether the host that holds
the outgoing message (the SMTP client injecting it or the IM2000
outgoing message store serving it) is trustworthy before transmitting
mail content: with SMTP, delays in making that determination result in
connections timing out and subsequently redelivery attempts, and
nobody easily benefits from sites being blacklisted *after*
notification in SMTP, whereas those who wait until they actually read
their email to pull it via IM2000 benefit quite naturally from this
scenario.

OTOH, SMTP can more easily tie up offending site resources by
tarpitting incoming SMTP connections, at the SMTP protocol level as
well as at the TCP level for each such connection.  And it can do that
according to a weighting for *degree* of offense, so the occasional
offense just slows things down a bit for that site (which becomes a
serious problem for *that* site, to the extent its occasional offense
is committed against a great many hosts, while the tarpitting site
doesn't see much negative effect due to employing its mild form of
tarpitting).

SMTP thus allows a response that takes more advantage of an
"opponent's" thrusts, in the form of push-style email injection, while
IM2000 offers more of an inherently passive, you-go-your-way-and-I'll-
go-mine, response.


Anyway, what I'm thinking, then, is that maybe ServiceLocation
*should* be as JdBP apparently proposes -- a fairly vanilla host:port
specification, where host is either a domain name or an IP address.

It seems superfluous to demand that an outgoing message store also
have a domain name, which would imply that every "pull" operation
require a DNS lookup even when it isn't actually needed.

Beyond that, I suggest the focus on blacklisting and other reasons to
share information on data stores be either on IP addresses or via
chain-of-trust relationships for domain names, starting with the root.
(That's different from web-of-trust, which is a more general idea in
that it supports arbitrary roots; we already implicitly accept
chain-of-trust as a necessity on the Internet.)

-- 
James Craig Burley
Software Craftsperson
<http://www.jcb-sc.com>