Possible Fix for Dynamic Querying?...and kill Spammers to boot!

"sellick_david" <[email protected]>
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
Re:Possible Fix for Dynamic Querying?...and kill Spammers to boot!

> In the last twelve months, the spam problem has increased
> dramatically, and it seems to render Dynamic Querying quite
> useless. 
[...]
> Do you have any ideas how we can do something to reduce or solve
> that problem on the network level? 
> 
> Wishes, 
> Arne

--- In [email protected], "Elias Athanasopoulos" <elathan@...>
wrote:
>
> I am not arguing on how to fight spam in Gnutella; unfortunately I
> have no clue on that, I am arguing that the 'spam' problem,
> or even better: the ability to inject fake QueryHits in the system,
> is a *real* and *serious* problem. 

The only place I see to tackle this problem is at the UltraPeer level.

They are the only ones that can tell if a connected node (especially a
leaf) is replying to a ridiculous number of queries. If a node is
responding to EVERY query (especially if it has 10+ Alt-Locs with
each!) then that node can be considered too "noisy" and no (or very
few) requests should be sent to it.

If a questionable Leaf or UltraPeer's hash query table sent to a
"good" UltraPeer is too full (as it might be with a spammer that
replies to everything), then at the very least that questionable Leaf
or UltraPeer should always be the last resort to send query searches
to. A leaf that's sharing too much is unlikely to have free upload
bandwidth anyway, so trying other leaves first makes good sense. This
might also decrease the probability that the majority of real file
hits of a search come from very few sources...as well as decrease
"early" spam hits from leaves on the same UltraPeer as the searcher.

Also, overfilled leaf hash query tables should not be used by a
UltraPeer to create the hash query tables passed on to other
UltraPeers. This might slowly reduce the masking of spammers by
neighboring innocent UltraPeers...as well as reduce the UP-to-UP traffic.

I've heard rumors that many spam nodes are claiming to be UltraPeers
but are actually without leaves...thus much like old Gnutella v0.4
Peers. They seek 100's of connections into the network to
short-circuit query routes and to guarentee they "hear" almost every
search sent out. This may be what puts such a heavy strain on so many
host caches. Perhaps UP-to-UP search queries could cycle through
connected UltraPeers to send to -- to hopefully not always hit the
"bad ones" first. Also, a possible way to cross-check them is to see
how they handle push routes through themselves or UDP Nat
hole-punching. Maybe some criteria can be built up just from what a
single UltraPeer can see to determine which neighboring UltraPeers are
Pure Spammers(tm)?

Much of this is already implemented in Gnutella v0.6 since I last
researched it, however some of it was optional.

Maybe UltraPeers could do a quick spammer spot-test?: randomly
generate 8 characters (with or without vowels for twice the fun) and
send that as a search query to every newly connected UltraPeer or
Leaf. It's highly likely that anything that replies to that search
query is a spammer. This would only be a stop-gap measure to eliminate
spammers, as they will likely adopt smarter reply strategies were this
test commonplace.

Spammers generating UDP out of bounds query replies would be much
harder to catch, since the UltraPeers they're connected to would not
see any of their replies. If their hash query table is kept small (but
matches the most common search words), then it may be impossible to
detect them but they probably wouldn't be flooding the system as bad
as we've seen. Unfortunately, thanks to UDP OOB traffic, their ip
couldn't be detected by whoever sent out the search request in the
first place even with a packet monitoring program...so they'd be
nearly invisible. Against them, only a modified spammer spot-test
might work...and it would likely generate false positives. (calling a
leaf/UP a spammer when it is not) But that's the best idea I can think of.

The best defense against spammers is not to ban-block them but to
connect to them and reply almost nothing to them.
"ping pong"!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.