----- Original Message -----
From: "Carlo Wood" <[EMAIL PROTECTED]>
To: "Isomer" <[EMAIL PROTECTED]>
Cc: "Dani?l Boeije" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Sunday, August 18, 2002 8:55 AM
Subject: Re: [Coder-Com] Modes for (by example) botservice(s)


> On Mon, Aug 19, 2002 at 12:14:50AM +1200, Isomer wrote:
> > What would you suggest?  Perhaps some examples?
>
> Being able to ban bots from channels.
> Only allowing bots to message people who are on the same channel
> (disable PRIVMSG thus, only allowing CPRIVMSG).

This is a well intentioned but still, bad idea with currently existing bot
codebases.
It prevents bots from sending any messages at all unless opped or voiced on
a
channel, which while it fights spam and other abuses, can be a serious
problem
because a fair number of bots need to msg another bot (such as X) to get
their
ops in the first place. The only way around that if such a restriction were
imposed,
would be to force people to set an autoop script on the bot that doesn't
require
the bot to authenticate itself, which is a really bad security risk for
channels (even
the old X which had your specific hostmask wouldn't autoop you unless you
were
logged in ... for good reason).

A solution might be to restrict PRIVMSG to +k clients only, so that bots can
msg
X without CPRIVMSG, but nobody else. Actually, this makes me think that
maybe
CPRIVMSG should be changed to allow a +k target to be messaged regardless of
the sender's op/voice status; this seems like less coding work and CPU usage
than
adding the checks to PRIVMSG. (Unless this has already been done; I haven't
really been keeping all that much track of the features in the most recent
betas ...)

> Put a much tighter restriction on (joining/)parting channels,
> for example a maximum of one PART per 20 minutes.

Good idea as long as the restriction is placed on PART. (JOIN would be a bad
idea, as a takeover artist could easily kick a bot and put it out of action
for 20 min;
*not* good)

> Not allowing bots to talk to channels at all unless they are +o or +v.

A decent idea.

> Keeping a counter per human of the number of times they
> are msg-ed by a (different) bot per second; if someone is
> messaged by -say- 10 different bots within 10 seconds then
> report all bots that msg this target to (a channel with) IRC opers
> (botnet detection).

Reporting to all opers creates a lot of noise; reporting to a channel
requires
hard coded channel names, hardly a good idea (ircnet ircd uses hardcoded
channel names for a few things, but then, ircnet ircd is hardly an example
of
good ircd code :)

Reporting to services (+k clients) could work. An appropriately designed
service could then forward the messages to a channel set in its
configuration.

Since most floodnets use CTCP (and most non-flood bots that use CTCP
extensively tend to be warez/mp3 kiddie xdcc bots anyway), checking solely
for excessive CTCP might work. This could lead to CPU usage issues though,
having to check messages at the character level.

> Disconnect bots that are idling when a server is full and
> a human wants to connect.

Has to be done delicately. As another member mentioned, it is possible then
to DoS legitimate bots by connecting too many drones, rather too easily. A
better solution may be to disconnect a bot on attempting to connect, but
this
is not particularly feasible if bots must log in to a service to receive
their status.
Better might be to, upon a bot acquiring its flag, checking to see if the
server
is more than a certain amount full, and if it is, disconnecting the (almost
certainly
newly connecting) bot, rather than disconnecting existing clients which is,
as
mentioned, rather thorny.

-- Amarande


Reply via email to