Viewable With Any Browser Your vote? I Disagree I Agree

GOSSiP Domain Reputation Service in Python

This web page is written by Stuart D. Gathman
sponsored by Business Management Systems, Inc.
Last updated Oct 04, 2011

This is a Python implementation of the GOSSiP Distributed Domain Reputation system. It includes a test suite, which currently checks the Observations cache implementation.

The python package provides client and server library modules. The server module stores reputations as Observations objects in a shelve database. The server module is used by the milter in pymilter, and when a senders spam/ham ratio gets too high, their emails are rejected at MAIL FROM. This is much more efficient than scanning and quarantining the message, and keeps clutter out of the quarantine so that false positives are more likely to be noticed.

The RPM installs a pygossip service, which can aggregate reputation scores from multiple peer servers. Support for this is still experimental, although it is running on two production servers.

Reputation is computed from the ratio of spam to ham over the past 1000 observations and ranges from -100 to +100. A confidence score reflects the number of observations and the freshness of the data and ranges from 0 to 100. Peer reputation is computed from how often the peer agrees with us, and confidence in the peers opinion is adjusted accordingly.

Pymilter integration

If the Python gossip package is installed, the milter will query a local reputation database for reputation. If pydspam is also installed, it will provide feedback to the local database.

Remote GOSSiP nodes are supported with pygossip-0.3.