[IRCServices] My ideas for WAKILL

Trevor Talbot quension at softhome.net
Thu Dec 12 12:26:01 PST 2002


On Thursday, Dec 12, 2002, at 01:09 US/Pacific, calimonk wrote:

Just a couple quick comments:

> If not for instance, bots connect with QKGJLKSD, QKLGJLKE, QLKTEFDF,
> QGKLJEGS as ident and all random realname and nicknames, we can only
> put an akill on *Q*@* something which is generally not so great.
>
> Now lets see what they have in common, they all start with teh letter
> Q and have a total of 8 characters, all upcase. Now if we could just
> add an akill as this:
> *Q{7,CU}*@*
>
> This would mean, akill all idents starting with a capital Q, and 7
> characters (7,C) after that and all UPPERCASE (U). Now i'm no real
> wizard with making new wildcards and stuff but i'm sure people have
> already made up things like this for other programming languages.
> With this method you could remove the bots you normally can't.

Regular Expressions are good at this.  A 'dampened' form would
probably be better for IRC purposes -- remove some of the
nesting/recursion.

> I personally really don't feel users would be affected with this
> way of akilling but bots would get removed alot faster and easier.
> If a botnet with idents like the one i just said connect, with over
> 500 bots all random hosts, nicknames and realnames you can't
> effectively ban them at all. With this new way you can.

The problem is, you still can't ban them.  Why not?  Lack of server
support.  As far as I know, none of the supported ircds support
regex or similar akills.  If ircservices itself implemented this,
you'd just get a burst of kills, and no bans.

It also needs to be 'standardized'.  You really DON'T want to use
full regex on IRC -- way too much abuse potential.  But getting
everyone to agree on a supported subset?  Good luck.  People have
been trying to sneak regex-type solutions into ircds for years.
So far I haven't seen anything stick.

And as far as the random bot nicks go, even regex is largely
inadequate.  One solution I've seen recently is in bahamut 1.4.35
-- support for a loadable 'drone' module.  While the module
itself is unavailable to the public, its concept is simple.  It
gets hooked when a user connects, and fed all the info (nick,
ident, host, realname).  That module can do whatever processing
it wants to determine whether a client is valid or not.

Consider, for example, the actual from-the-wild nick GVTiqflB.
Suppose its generator simply grabs a random alphabetic character.
How on earth are you going to describe any useful ban on that
nick, be it with regex or another method?

An arbitrary processor such as the 'drone module' I mentioned
above can do something like upper/lower case character
probability analysis (in english: look for mixed-case junk).
Regular Expressions can't do that.

Getting back to your original idea, I do agree that such a
"string description syntax" (seems as good a term as any ;) )
would be very useful.  I'm just commenting on some of the
problems involved in creating it.

-- Quension