On Friday, June 18, 2004, 5:13:27 AM, Markus wrote:

MG> Maybe Pete can provide some tips what would be good combinations.

MG> Like IP4R + SNIFFER = good because SNIFFER make's no DNS lookups
MG> But not FILTERX + SNIFFER because SNIFFER checks for this already.

That's a tough one. SNIFFER is intended to be comprehensive and
continues to grow in that way every day. Another way to say that is
that SNIFFER already has a lot of overlap with the tests that are
available in Declude and other packages. ( Our goal is for SNIFFER to be
as comprehensive, efficient, and dynamic as possible. )

For example, a recent R&D process that has been added to SNIFFER is
cross-referencing with SBL/ROKSO. As a result, when a spam hits our
spamtraps and matches SBL/ROKSO then we will encode that IP range
rather than the single IP - this gives the rulebase some efficiency
because a hand-full of rules covers many hundreds (or thousands) of
IPS.

Note: this does not mean that SNIFFER is any substitue for SBL
or any other list - far from it. We use many resources when
researching and developing our rulebase and we do not aggregate other
services (at least not yet). The best way to look at SNIFFER's
overlaps with other resources is as an additional vote of confidence -
this is how we add value. A match that overlaps another service
indicates that not only did that service's R&D develop that rule, but
SNIFFER's R&D did also. The overlaps are therefore a stronger
indication than where there are no overlaps.

Another example of an overlap is bogons (IPs that are not usable).
There are lists and tests for these. Most of the known bogons are included
in SNIFFER.

Another example is the basic IP rule process - each message that hits
a spam trap is generally coded for content rules and also it's
individual source IP. As a result we encode a large volume of zombies
in near real-time.

(Note that nothing gets coded without review - so in order for an IP
rule to be coded it must at least hit a clean spamtrap and be
recognized as spam, and in general it will also match one or more
DNSBLs.)

There are R&D processes for broken or spamware generated headers such
as the recent 9[2 variety.

... I could go on for quite a while, but the point is that there is a
lot of overlap with other test and the overlap is likely to continue
to grow over time. After all, people are constantly finding new ways
to identify spam... and so are we... so we're going to land on the
same ground quite a bit.

A case in point - the recent development of SURBL is based on a
premise that has been at the core of SNIFFER since it began many years
ago. While SURBL cannot capture variations and URI patterns the way
SNIFFER does, there is clearly a lot of overlap.

While SNIFFER is able to capture a much broader spectrum of URI than
SURBL, there are still many cases where SURBL might detect the URI
before we do.

With SURBL and all other lists you should make an effort to determine
if the test provides sufficient benefit for your system. In many
cases, SNIFFER will be strong enough that the other test is not
needed. You should always try things and see how they perform on your
system before making a decision.

As you point out - one key piece of the equation will be performance.
For example, it has been reported that SNIFFER's accuracy is
comparable to SpamAssassin "right out of the box". SNIFFER typically
scans a message in 100ms or so. There are frequent reports on the SA
list of SA requiring on the order of 10 seconds or more! This is
largely due to SA's heavy use of DNSBLs but also the fact that SNIFFER's
pattern matching engine is superior to SA's.

If you find that a DNSBL test has a high overlap with SNIFFER then
it's probably a good decision to drop the DNSBL test in exchange for
better performance.

If you have a number of content rules and you use SNIFFER then you
should strongly consider moving those rules into SNIFFER (let us know
and we can code them for you). Just keep in mind that in general the
current design of SNIFFER is a collection of white/black rules -
there's not a lot of room for "fuzzy" rules and there is no internal
weighting system. (that's in the next version).

-- so what to recommend?

I think that the best approach seems to be to use SNIFFER as a strongly
weighted opinion, and to use other tests to finally tip the balance
over. Many of our users tell us that SNIFFER plus any other test =
spam on their system. *

Even better, and strongly dependent upon your own system's
requirements, you may find that many rule groups in SNIFFER are
sufficient to hold or even delete a message while others may require
the addition of another test to push a message over the edge. The
other test could be a DNSBL or a specialized content filter.

Since SNIFFER is very efficient (now scanning messages in under 200ms
consistently) and very accurate (most report > 95% accuracy) you might
implement parts of SNIFFER so that if a match is found no other tests
are run - or at least not expensive ones. If you leave the SNIFFER
tests that are more risky out of this policy then you can have a very
effective system that can handle a very high volume.

--

I think that what Matt does is very interesting. The content rules
that he codes cover some current weaknesses in SNIFFER.

For example, the current pattern matching engine in SNIFFER doesn't
have a strong mechanism for counterbalancing one pattern against
another. (An upcoming version solves this problem.) So Matt's rules
tend to cover this ground very well by playing tricks with Declude's
weighting system.

Another example is header analysis. SNIFFER is good at recognizing
when something is there, but the current version doesn't "know" or
can't "see" when something is missing. Some of Declude's tests cover
this ground.

There are other counterbalancing mechanisms that are not yet included
in SNIFFER. For example automatic white-listing is a strong addition
that can mitigate false positives - particularly on systems that are
not business oriented... (Sometimes, friends and lovers talk dirty to
each other - and SNIFFER is likely to capture that since the majority
of SNIFFER's users are business oriented.)

---

There are a lot of folks reporting extremely strong results with
SNIFFER. The vast majority of them employ as many tests as they can
get and balance them off of each-other. Each implementation is a bit
different - so there does not seem to be a single "best practice" for
this. There are even some systems that use SNIFFER almost exclusively
- though these tend to be very specialized.

I think the way I would go with Declude is to find an example
configuration that comes from a system that is close to your own and
then tweak it for best performance. That seems to work well, and it
seems to be the Declude way.

---

* There is an emerging challenge with our Experimental rule group. The
Experimental rule group contains Experimental Received IPs. Early in
this groups development there were quite a few false positives. While
the false positive rate for this group has fallen off quite a bit
there are still a few from time to time.

However, this group has become quite strong lately - especially at
identifying new zombies. We frequently identify new zombies before
they are listed in other services.

Unfortunately since it is typical for at least one other service to
list an IP before that hit can be trusted a great many spam may get
through before blocking becomes effective.

Another challenge with this group is that all broad and unusual
heuristics are coded there. These rules can be very effective at
capturing spam and malware generated probes, etc... however, they are
"risky" because they do not match precise patterns that can be
verified in any corpus. This creates a challenge when setting an
appropriate weight for this group. On the one hand, these can be some
of the most effective rules in the system. On the other hand, they can
also be a high FP risk due to something unknown. ++

An example is a recent rule that matched messages from a popular Mac
email client. The rule was coded for a number of spam that showed what
appeared to be an obvious forgery in the received: headers. When we
tested the rule on our corpus it looked good.

Unfortunately we didn't have any messages from this Mac client in our
ham corpus - and the rule began to produce a very unusual and focused
string of false positives. We detected the problem and removed the
rule quickly (as always), but the false positives did occur none the
less. This is a pretty good real-world representation of the risk
involved in these kinds of rules and why we code then in the
experimental group.

Generally, it is time to increase the weight of the experimental rule
group since the FP rate has fallen quite a bit... but finding the
correct balance is going to require some trial and error, and on each
system's ability to absorb some risk. Systems that hold messages for a
period of time have a much easier time with this kind of risk. For
example, holding messages based on the experimental group is probably
reasonable for many systems since the holding bin provides a good
recovery mechanism if a FP problem is detected.

---

++ One of the weird problems we've been facing lately is that SNIFFER
is so accurate it tends to be weighted very highly. As a result, our
customers have become extremely sensitive to any errors that might
occur. For example, it's common discussion that spamcop might list a
major ISP... but since this kind of error is relatively common,
spamcop is generally weighted so that the error can be tolerated.

Since this kind of thing is extremely rare with SNIFFER, a similar
error - no matter how short lived - can cause significant problems.

On the other side of the coin, if SNIFFER stops working for some
reason (such as a bad, unchecked rulebase) then the resulting torrent
of spam can bring a system to it's knees!

We have largely eliminated the possibility of this kind of failure
through strong integrity checking tools and upgrades to our servers,
but the underlying message cannot be overstated, and it is one of the
core design strategies in Declude: Strength through diversity.

---

Sorry for the length...
Hope this helps,
_M



---
[This E-mail was scanned for viruses by Declude Virus (http://www.declude.com)]

---
This E-mail came from the Declude.JunkMail mailing list.  To
unsubscribe, just send an E-mail to [EMAIL PROTECTED], and
type "unsubscribe Declude.JunkMail".  The archives can be found
at http://www.mail-archive.com.

Reply via email to