Packets are defined to be malicious (and, thus, may be dropped) if they are
destined for a host or subnet from which too few packets are coming back. This
heuristic is based on the assumptions that (1) most Internet traffic consists
of packet flows, and (2) during normal operations, the rate of packets in a
flow going from to
is proportional to the packet rate going from
to
. Thus, during normal operations on the Internet, the packet rate of
traffic going in one direction is proportional to the packet rate of traffic
going in the opposite direction. If not, something must be wrong.
This heuristic appears to hold broadly. TCP, the protocol mainly used on the
Internet, acknowledges every single--or every --received packets by
sending back a packet, and, therefore, has proportional packet flows.
The following example illustrates the heuristic. If machine is sending
legitimate TCP packets to machine
, but
is suffering under a bandwidth
attack, then
's packets will not reach
. Even if some of
's
packets reach
, then
's packets may not reach
because of the
overloaded links and routers. In reaction to the absence of
's packets,
will automatically decrease the sending rate and, eventually, stop sending
packets to
altogether. If, on the other hand,
is an attacker that
blasts (any type of) packets at
, a MULTOPS-equipped router routing
's
packets to
will detect the disproportional packet rates between them and
could decide to drop packets going to
. Consequently,
will not have to
cope with
's packets.
Let be the ratio between the packet rate going to and coming from
addresses with prefix
. Under normal circumstances,
is close to some
constant
for all
, i.e., packet rates are proportional for all
prefixes. If
drops below
or exceeds
, then a (host in)
subnet with prefix
is either under attack or a subnet with prefix
harbors an attacker.
MULTOPS collects packet rates to and from address prefixes so that, given a
certain ,
can be calculated. Packets may be dropped if they are
destined for a host or subnet from which disproportionally fewer packets are
coming back, i.e., if
is not between
and
. The
sensitivity of MULTOPS can be tuned by changing the values of
and
.