Stockade (software)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Stockade
Original author(s) Centre for Advanced Internet Architectures (CAIA) at Swinburne University of Technology
Developer(s) Malcolm Robb, Grenville Armitage, Adam Black
Stable release 0.2 / March 16, 2007 (2007-03-16)
Operating system FreeBSD
Type Spam mitigation
License GPL v2
Website http://caia.swin.edu.au/stockade/

Stockade is a TCP-layer blocking tool written in C++. It denies TCP/IP access to registered IP addresses by using the ipfw packet filter. It targets spam prevention, but may also be used against other attackers (e.g. brute force password crackers.)

The rate limiting approach

This approach leverages the superior determination exhibited by legitimate senders. In this respect, it may be considered similar to greylisting. Originally, the authors conceived an MT Proxy to rate-limit the SMTP connections of messages believed to be spam. That worked by adding a dummynet rule for frequent senders who had been sending messages that triggered an unreliable statistical analysis.[1]

A key limitation of the original scheme was the consumption of local resources (in the SMTP proxy). Stockade approach introduces the notion that an inbound TCP connection may be rejected with some random probability proportional to the level of spam already seen from the connection’s originator over some configurable period of time.[2] That probability is subject to a decay, configured as a halving time period, so that each IP address is eventually rehabilitated. That way, stockade provides for fully automatic spam mitigation.

See also

  • IPQ BDB implements a similar random blocking approach in C using Linux's iptables.
  • Fail2ban is a generic intrusion prevention system, featuring multiple blocking techniques and preconfigured for a variety of server applications.
  • DenyHosts is a similar tool, specific for thwarting SSH server attacks.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.