SecureServ 3.0 Manual


1. Prerequisites and Installation.
1.1. Compiling and Installation
2. Basic Configuration
2.1. Exclusion Lists
2.2. Helper Lists
2.3. Dat File Updates
2.4. System Messages
3. Detailed Configuration
3.1. NICK Setting
3.2. ALTNICK Setting
3.3. USER Setting
3.4. HOST Setting
3.5. REALNAME Setting
3.6. EXCLUSIONS Setting
3.7. VERSION Setting
3.8. CHECKFIZZER Setting
3.9. DOONJOIN Setting
3.10. ONJOINBOTMODES Setting
3.11. CYCLETIME Setting
3.12. DOPRIVCHAN Setting
3.13. MULTICHECK Setting
3.14. MONBOT Setting
3.15. MONCHANCYCLE Setting
3.16. MONCHANCYCLETIME Setting
3.17. BOTECHO Setting
3.18. BOTQUITMSG Setting
3.19. HELPERS Setting
3.20. AUTOSIGNOUT Setting
3.21. JOINHELPCHAN Setting
3.22. SVSJOIN Setting
3.23. HELPCHAN Setting
3.24. NOHELPMSG Setting
3.25. REPORT Setting
3.26. AKILL Setting
3.27. AKILLTIME Setting
3.28. AKILLMSG Setting
3.29. AUTOUPDATE Setting
3.30. AUTOUPDATETIME Setting
3.31. VERBOSE Setting
4. Operational Commands
4.1. HELP Command
4.2. VERSION Command
4.3. ABOUT Command
4.4. CREDITS Command
4.5. LEVELS Command
4.6. SET Command
4.7. LOGIN Command
4.8. LOGOUT Command
4.9. ASSIST Command
4.10. CHPASS Command
4.11. CHECKCHAN Command
4.12. LIST Command
4.13. STATUS Command
4.14. MONCHAN Command
4.15. BOTS Command
4.16. CYCLE Command
4.17. RELOAD Command
4.18. HELPERS Command
4.19. EXCLUDE Command
4.20. UPDATE Command
5. Custom Definitions
5.1. Custom Definitions file
5.1.1. Create customviri.dat file
5.1.2. add entries to customviri.dat
5.1.3. Reload the definitions
6. Final Words
6.1. Dealing with Un-detected Attacks/Trojans/Virus etc

Welcome to the SecureServ Manual. This document will aid you in setting up and running SercureServ on your IRC network.

SecureServ is a advanced IRC Trojan detector, much like a Virus Scanner, but aimed for IRC networks. Using Several different methods, including, but not limited to Version checks, Behavior analysis, and general pattern matching, it aims to detect Trojans and Virus's as well as FloodBots that connect to your IRC network.

SecureServ's "brains" are based on a "Definition file" or Dat file, that contain information on how to detect the trojans. This means to update SecureServ's detection for new Trojans/Bots only requires that you download a new dat file (which can be automated). There are some pre-conditions to obtaining new Dat files, and these can be found in the Installation chapter.

SecureServ also supports a "customised" dat file that administrators can add their own signatures to to help detect new, or unsupported clients/trojans. (eg, Bottlers). This requires some programing knowledge, and more information about the customviri.dat file can be found in the "Custom Definitions" chapter.

SecureServ can detect Trojan/Virus's or "Security Risks" to your Network a number of ways, including:

While we can detect a vast majority of Trojans, and its easy to extend SecureServ to detect new ones without Recompiling/upgrading, its not a fullproof solution. Additionally, Virus/Trojan/Bot authors are getting more and more sophisticated these days, and will always find ways to avoid detection. SecureServ aims to reduce the load on a Network Administration staff in dealing with these Trojans.

SecureServ is written and maintained by Justin Hammond. It requires the NeoStats software. More information about SecureServ, or NeoStats, can be found at http://www.neostats.net/

SecureServ is Copyright, 2005 by Justin Hammond.

1. Prerequisites and Installation.

SecureServ is designed to run on Top of NeoStats. The Following requirements at the time of writing are required for NeoStats:

  • A Linux or BSD based Server or Shell.

  • A IRCd supported by NeoStats. See the NeoStats website.

  • Some basic Unix administration Skill

  • Of Course, a IRC network to connect it all together.

Please refer to the NeoStats website for more information on the requirements

SecureServ itself requires the following:

  • NeoStats 3.0 or Higher correctly installed and Running

  • A NeoNet account http://accounts.neostats.net is required if you wish to take advantage of updated definition files

  • The time to read this entire document.

    Warning

    SecureServ has the potential to Akill/Gline your entire network. Its strongly suggested that you read this entire document before even attempting to compile SecureServ, as I'm just going to laugh, if you didn't read, and it AKILL's your entire network.

The requirement to have a valid account on http://accounts.neostats.net is due to the fact that I want to have some control over who receives the definition files. If these Definition files fall into the hands of the TrojanWritters or Virus Writers, its possible they might be able to re-write their bots to avoid detection. Please see the website for more information.

1.1. Compiling and Installation

As long as you have successfully setup NeoStats, and installed it correctly, Compiling SecureServ is very simple and straight forward. First you must extract the files from the download package. This is as simple as:

bash$ tar -xzf SecureServ-<ver>.tar.gz

This should then create a directory called SecureServ-<version> where <version> is the Version of SecureServ. Then Proceed to Change into the SecureServ directory, and run Configure as follows:

bash$./configure [--enable-debug | --with-neostats=<dir> --enable-treatchanmsgaspm]

--enable-debug is only useful for diagnostics purposes when used in conjunction with debugging tools. There should be no need to use this option on a day to day basis

--with-neostats=<dir> should be used if your neostats directory is not in a standard location (~/NeoStats/). Replace <dir> with the full path to your NeoStats installation directory (NOT SOURCE DIRECTORY)

--enable-treatchanmsgaspm makes SecureServ treat all messages sent to a monitored channel as messages sent to a individual user. Enabling this option is not recommended as it greatly increases the CPU utilization if you have large, busy channels

Configuring SecureServ will look something like the following screen:

Fishs-Mac:~/Documents/Dev/SecureServ justin$ ./configure       
checking whether to enable maintainer-specific portions of Makefiles... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no

<snip>

checking To Enable AutoTools Debug Mode?... no
checking silent building of source files... Enabled
configure: creating ./config.status
config.status: creating Makefile
config.status: creating modconfig.h
config.status: modconfig.h is unchanged
config.status: executing depfiles commands
Configuration complete.
Press Enter key to read the release notes

The Configure process will then prompt you to read the release notes. You are encouraged to read this document throughly as it might contain important information about the current version of SecureServ that isn't covered in the manual.

If the configuration did not produce a error, you may then move onto Compiling SecureServ. Compiling is simply just issuing the "make" command (or "gmake" if you are running BSD):

Fishs-Mac:~/Documents/Dev/SecureServ justin$ make
make -s all-am
Compiling Helpers.c:                                                  [OK]     
Compiling SecureServ.c:                                               [OK]     
Compiling scan.c:                                                     [OK]     
Compiling OnJoinBot.c:                                                [OK]     
Compiling SecureServ_help.c:                                          [OK]     
Compiling update.c:                                                   [OK] 

Again, check for Error messages. As long as there are not error messages, "make install" will install SecureServ, this README file, and any auxiliary files needed into your NeoStats directory:

Fishs-Mac:~/Documents/Dev/SecureServ justin$ make install
Installing secureserv.so:                                             [OK]     
Installing viri.dat:                                                  [OK]     
Installing README.SecureServ:                                         [OK]     
Installing README.SecureServ.html:                                    [OK] 

If you receive *ANY* errors at all during the this process, please post them on our Support boards, at http//www.neostats.net/boards/

Once Installation is complete, you can either configure NeoStats to load SecureServ when it starts, or load SecureServ via IRC.

To Configure NeoStats to automatically load SecureServ when it boots, modify the neostats.conf file and add SecureServ to the list of modules to load:

MODULENAME = {
       "statserv",
       "hostserv",
       "secureserv",
} 

You also should now configure a NeoNet account if you wish to take advantage of updated virus definition files. To obtain a account for NeoNet, please go to http://accounts.neostats.net and sign up for a new account. Once you have signed up, you will recieve a email with instructions for configuring your NeoStats to use NeoNet. Please modify your neostats.conf file as per the instructions contained in the email.

To load SecureServ via IRC, you must make sure you have the appropriate permissions and issue the following command:

/msg neostats load SecureServ

Thats it. SecureServ is now loaded and ready for use (in fact, it will already be running now, but read on for further information.)

2. Basic Configuration

SecureServ is completely configured online via IRC. When you first start up SecureServ, it attempts some "Sane" defaults for you get started with, but you should always review these settings as soon as you install. There are a few important settings you may want to review right away. They are:

  • Exclusion Lists - You should setup a Exclude list for your IRC Services server (NickServ etc)

  • Automatic or Manual updates of Dat Files

  • System Messages sent to users

These are outlined below:

2.1. Exclusion Lists

Exclusion lists allow you to specify certain Hostmasks, Servers, or Channels that should be excluded from monitoring by SecureServ. This exclusion list would allow a administrator to say, allow users on that are matched against Trojans, when the administrator has verified that the Trojan does not in fact exist on the users host.

Caution

Exclusions should be setup for your Services Server, so that SecureServ does not try to scan ChanServ, or NickServ, or any of the bots relating to Nickname protection.

With NeoStats 3.0, you should also be aware that there are two types of Exclusion Lists. There are "Global" exclusion lists that all modules may optionally use, and there is module specific exclusion lists. SecureServ defaults to not using the Global Exclusion lists. You can enable it by the following command:

/msg SecureServ set exclusions on

Adding a Entry

To add a entry to the Exclusion list, use the following format:

/msg SecureServ exclude add <host/Server/Channel/UserHost> <pattern> <reason>

Where:

<Host/Server/Channel/UserHost> = The type of exclusion you are adding. The different types are:

  • Host - The Users real (Internet) Hostname

  • Server - The Users server they are connecting to. You should ensure you add a exclusion for your Services Server

  • Channel - A specific channel on your IRC Network

  • UserHost - The users Virtual Hostname (IRC)

<pattern> = The pattern you wish to match on. May include wildcard charactors such as * and ?

<reason> = a short description of the exclusion, for operator reference only.

The output is as follows:

[13:20] -SecureServ- Added *.blah.com (userhost) to exclusion list
[13:20] SecureServ Fish added *.blah.com (userhost) to the exclusion list

Listing an Entry

To list the Exclusions simple type:

/msg SecureServ exclude list

And all the current exclusions are listed. Additionally, a Position number is provided for use with the delete command. The output is as follows:

[13:21]  -SecureServ- Exclusion list:
[13:21]  -SecureServ- #bothouse (Channel) Added by Fish on Sat Aug 13 2005 01:20 AM SGT for Requested
[13:21]  -SecureServ- #ircop (Channel) Added by Fish on Sat Aug 13 2005 07:40 PM SGT for IRCop channel
[13:21]  -SecureServ- *irc-chat.net (Host) Added by Fish on Tue Aug 09 2005 10:13 PM SGT for Services Exclusion
[13:21]  -SecureServ- chieftess!*@* (Userhost) Added by Fish on Tue Aug 09 2005 10:14 PM SGT for buggy client
[13:21]  -SecureServ- *.blah.com (Userhost) Added by Fish on Sun Jan 15 2006 01:20 PM SGT for Cause Blah.com is cool
[13:21]  -SecureServ- End of list.

Deleting an Entry

To delete a entry, you should first lookup the Position of the entry that you wish to delete. The format of the command is as follows:

/msg SecureServ exclude del <pattern>

Where:

<pattern> is the pattern of the entry you wish to delete in the list

The output of the command is as follows:

[13:22]  SecureServ Fish used EXCLUDE
[13:22]  -SecureServ- *.blah.com delete from exclusion list

2.2. Helper Lists

Helper lists let you grant non-privileged users the ability to maintain your Virus help channel and help users that are infected with virus's that could be removed with simple instructions (such as Spam Virus's that infect Mirc). These users are granted the ability to "release" a infected user from SecureServ or kill un-cooperative, or unresponsive users that SecureServ has identified as being infected. Users that have been joined to the help channel are "held" by SecureServ and are usually prevented from joining other channels (if your IRCd supports this option). This can be helpful so you can clean up users that are infected with simple script based virus's and you require their attention to help you clean their computer. More information about the commands available to use on infected users is available via the assist command detailed below.

Caution

Although SecureServ limits who a "Helper" may kill (only infected users joined to the Help Channel) you should only give out login accounts to trusted users.

Adding a Entry

To add a entry to the Helper list, use the following format:

/msg SecureServ helpers add <login> <pass> 

Where:

<login> = The login name to use to gain access. Does not have to be a nickname.

<pass> = The password to use to login

The output is as follows:

>secureserv< helpers add myhelper mypass
-SecureServ- Successfully added Helper myhelper with Password mypass to Helpers List

Listing an Entry

To list the helpers simple type:

/msg SecureServ helpers list

And all the helpers are listed. Additionally, if a nickname is provided after the login name, it means that this nick is logged into this particular helper account.

The output is as follows:

>secureserv< helpers list
-SecureServ- Helpers List (2):
-SecureServ- fish (Fish)
-SecureServ- myhelper (Not Logged In)
-SecureServ- End of List.

Deleting an Entry

To delete a entry, you must provide the login name you wish to delete. The format of the command is as follows:

/msg SecureServ helpers del <login>

Where:

<login> is the login account you wish to delete.

The output of the command is as follows:

>secureserv< helpers del myhelper
-SecureServ- Deleted myhelper from Helpers List

2.3. Dat File Updates

In order to update SecureServ's Detection, you need to register a account at http://accounts.neostats.net/ and apply for access to the Secure IRC-Chat website. Once your application for access has been recieved, you will be able to download updated dat files either automatically (as they are released) or manually. You also get access to some advanced reporting capabilities such as weekly reports on virus infections on your Network, as well as real time statistics.

When applying for access to the Secure IRC-Chat website, it might take a while for the application to be approved, as one of the Admins has to review the application and ensure its valid. Once your access has been granted, you will recieve a email informing you that your access has been granted.

Once you have received confirmation that you can now access Secure IRC-Chat via email, you can proceed to configure SecureServ to update Dat files automatically for you. SecureServ can be configured to check for updates on a Daily Basis. You can, disable this automatic update if you wish, but this is covered in the "Settings" Section.

For more information on the NeoNet configuration, please refer to the NeoStats Manual.

2.4. System Messages

SecureServ sends different messages to users depending on whats happening. Examples of the messages its send is messages when they are AKILedL or warn a user about a possible "Trojan/Infection" etc. These messages can be customized to suit your network, or language of choice easily. The different messages that you can set are:

  • "AKILL" messages

    AKILL messages are sent to users when they are about to be akilled from your network due to a positive "infection". You could provide email addresses, contact information, should the user wish to contact you. In addition to the AKILL message, the user is also given a URL they can view with details about their "infection" and how to fix it.

  • "No Help Available" messages

    As SecureServ can also detect Virus's, some network may have channels devoted to helping users remove virus's from their IRC clients. SecureServ has a "Helper" login function that allows you to setup "non-oper" or "oper" users to be helpers. If no one is logged into SecureServ and a virus infected user is detected, instead of attempting to automatically join him to the "Help" channel, he is akilled from the network. This message is sent to the user to let them know that they have a virus, and should seek help.

Setting these three types of messages is simple. Just issue the following commands:

/msg SecureServ set akillmesg <message>
/msg SecureServ set nohelpmsg <message>

Note

If you don't customize any of these messages, a Default system message is used automatically.

3. Detailed Configuration

SecureServ attempts to be as configurable as possible in order to cater for each individual networks requirements. This in turn though makes the configuration very complex. There are many many settings with SecureServ that affect how it operates, how it responds and even, how affects the performance of NeoStats Overall. Out of the box, SecureServ provides sensible defaults for these settings, but you may wish to read this section for details on exactly what each option does, and its affect on how SecureServ operates.

The following list summaries the available options you can set in SecureServ

  • NICK

  • ALTNICK

  • USER

  • HOST

  • REALNAME

  • EXCLUSIONS

  • VERSION

  • CHECKFIZZER

  • DOONJOIN

  • ONJOINBOTMODES

  • CYCLETIME

  • DOPRIVCHAN

  • MULTICHECK

  • MONBOT

  • MONCHANCYCLE

  • MONCHANCYCLETIME

  • BOTECHO

  • BOTQUITMSG

  • HELPERS

  • AUTOSIGNOUT

  • JOINHELPCHAN

  • SVSJOIN

  • HELPCHAN

  • NOHELPMSG

  • REPORT

  • AKILL

  • AKILLTIME

  • AKILLMSG

  • AUTOUPDATE

  • AUTOUPDATETIME

  • VERBOSE

To change any of these settings, you use the Set Interface in SecureServ. Eg:

/msg SecureServ set <option> <params>

To view the current settings, issue the following command:

/msg SecureServ set list

The following Sections describes the different options, their params, and the effect on SecureServ in detail.

3.1. NICK Setting

This setting allows you to change the Nickname that SecureServ uses when it connects to your network. If you change this setting make sure you update your NeoNet account, otherwise you might loose access to the Secure IRC-Chat site if we perform a check on your network and can't find "SecureServ" running.

Warning

This option requires you to reload SecureServ or restart NeoStats to take effect.

/msg SecureServ set NICK <nickname>

3.2. ALTNICK Setting

This setting allows you to set a "Backup" nickname used for SecureServ. If the primary Nickname in the NICK Setting is not available, SecureServ will use this nickname, and if that is not available, it will use a automatically generated nickname

Warning

This option requires you to reload SecureServ or restart NeoStats to take effect

/msg SecureServ set ALTNICK <nickname>

3.3. USER Setting

This option allows you to customize the "user" or ident portion of the SecureServ Bot.

Warning

This option requires you to reload SecureServ or restart NeoStats to take effect

/msg SecureServ set USER <user>

3.4. HOST Setting

This option allows you to customize the Hostname that SecureServ uses when it signs onto your Network. It defaults to the Standard Hostname specified in your NeoStats configuration.

Warning

This option requires you to reload SecureServ or restart NeoStats to take effect

/msg SecureServ set HOST <host>

3.5. REALNAME Setting

This option allows you to customize the realname (or Gecos) that SecureServ uses when it signs onto your Network.

Warning

This option requires you to reload SecureServ or restart NeoStats to take effect

/msg SecureServ set REALNAME <realname>

3.6. EXCLUSIONS Setting

This option enables SecureServ to use the Global Exclusions list that is control by the main NeoStats bot. This allows you to maintain a "global" exclusion list that is applicable to all modules in NeoStats, and then only apply individual exclusions to SecureServ.

Warning

This option only becomes effective on new users joining your Network. Existing users that are already connected when you enable this option will not be rescanned for exclusions, as the Global Exclusions are only effected when a new user signs onto the Network. In order to make the global exclusions list effective straight away, you should restart NeoStats.

If you wish to enable or disable the Global Exclusions lists, issue the following command

/msg SecureServ set EXCLUSIONS <ON/OFF>

3.7. VERSION Setting

When users sign onto your IRC network, SecureServ or NeoStats will issue a "CTCP VERSION" command to the clients, as many Trojans/WarScripts/Virus's have unique replies to CTCP Version requests.

When SecureServ receives the reply, it compares it to the Definitions, and if there is a Match, will take action based on the Definition File (Either AKILL the user, Join them to a AV help channel, Warn the Operators, or just issue a warning message to the users)

If you wish to turn off the CTCP VERSION checks, issue the following command

/msg SecureServ set VERSION <ON/OFF>

3.8. CHECKFIZZER Setting

SecureServ can Detect the Fizzer Worm on your IRC network. If you are not affected by Fizzer, its advisable to turn this option off, as it affects performance.

To Change the setting, issue the following Command:

/msg SecureServ set CHECKFIZZER <ON/OFF> 

3.9. DOONJOIN Setting

This setting decides if SecureServ should perform OnJoin Virus Checking. When enabled, every CYCLETIME Seconds, SecureServ will create a psydo user and join a random channel. When this setting is off, SecureServ will not check random channels for OnJoin Virus's.

To Change this Setting, issue the following Command:

/msg SecureServ set DOONJOIN <ON/OFF>

3.10. ONJOINBOTMODES Setting

This option defines what usermodes the OnJoin Bots will have when they "Sign-On" to your network. By default no modes are assigned, but you may wish to assign some Oper or Helper or Services flags so that users at least can easily identify that the OnJoinBot is part of your services if they Whois the OnJoin Bot

If you wish to change the modes, issue the following command

/msg SecureServ set ONJOINBOTMODES <modes>

3.11. CYCLETIME Setting

SecureServ automatically creates new "pseudo" users that randomly join channels looking for OnJoin virus's or SPAM. This option changes the interval that SecureServ will Cycle the random users and channels. On a Large network, you should aim for a smaller value, so it covers more of your channels quicker, but on a smaller network, this may become annoying for your users, so a higher value is recommended.

To Change the setting, issue the following Command:

/msg SecureServ set CYCLETIME <SECONDS> 

3.12. DOPRIVCHAN Setting

This setting controls if SecureServ's will check Private Channels. Private Channels are defined by the Channel Modes +I, +k +s +p or +O. Enabling this option forces SecureServ to check these channels. Disabling this feature means SecureServ will never check these channels unless forced via a /msg SecureServ check <chan>

To Change this Setting, issue the following Command:

/msg SecureServ set DOPRIVCHAN <ON/OFF>

3.13. MULTICHECK Setting

By Default, when SecureServ identifies a Positive Match for a Trojan/VIrus etc, it takes action straight away, and discontinues checking for any other matches. This option tells SecureServ, that even if it does find a Match, to continue checking, so that the user is warned of all matches, and not just the first one found.

Warning

Enabling MULTICHECK on a large network is not advised due to performance reasons.

To Change the setting, issue the following Command:

/msg SecureServ set MULTICHECK <ON/OFF> 

3.14. MONBOT Setting

SecureServ has the option to assign one of the random bots to stay in a channel all the time, instead of cycling like the ONJOIN bots do. This option sets which bot will be used to monitor the channels specified in the MONCHAN command. A listing of available bots is obtained via the Bots Command. .

To Change the setting, issue the following Command:

/msg SecureServ set MONBOT <bot> 

3.15. MONCHANCYCLE Setting

This setting specifies if SecureServ should cycle the MONCHAN's periodically (by default, it cycles one channel interval specified by the MONCHANCYCLETIME setting). This can help detect OnJoin virus's in the channels you specify a monitor bot should be placed.

To Change this setting, issue the following Command:

/msg SecureServ set MONCHANCYCLE <ON/OFF>

3.16. MONCHANCYCLETIME Setting

This setting specified the interval that SecureServ will cycle one of the monchans. By Default, if MONCHANCYCLE is enabled, every 30 minutes, one of the MONCHAN's be selected and the monbot will cycle the channel looking for ONJOIN virus's. For example, if you are monitoring 4 channels, each channel will only be cycled every 2 hours (30 minutes x 4 channels) so you should adjust this value accordingly.

To Change this setting, issue the following Command:

/msg SecureServ set MONCHANCYCLETIME <seconds>

3.17. BOTECHO Setting

This option enables SecureServ sending messages any of the onjoin bots, or monbot receives to the services channel. This can help you monitor for potentially new onjoin virus's, or monitor for spam users.

To Change the setting, issue the following Command:

/msg SecureServ set BOTECHO <ON/OFF> 

3.18. BOTQUITMSG Setting

This option specified the "Quit" message that a Onjoin bot will use when its finished scanning. If not set, it uses a default message

To Change the setting, issue the following Command:

/msg SecureServ set BOTQUITMSG <msg> 

3.19. HELPERS Setting

This option enables the SecureServ Helper SubSystem. It allows you to grant users access to SecureServ to manage any user that is joined to your help channel. See the Helpers section in the introduction for more information on helpers.

To Change the setting, issue the following Command:

/msg SecureServ set HELPERS <ON/OFF> 

3.20. AUTOSIGNOUT Setting

SecureServ has the ability to automatically logout helpers that set away while being logged in. This ensures that infected users are only joined to the help channel if a helper is available to help them.

To Change the setting, issue the following Command:

/msg SecureServ set AUTOSIGNOUT <ON/OFF> 

3.21. JOINHELPCHAN Setting

SecureServ can optionally join the help channel with the first helper logs in, and leave the help channel when the last helper logs out. No additional functionality is provided when SecureServ joins the channel, its only for the "look" and "feel" of having SecureServ in your antivirus channel.

To Change the setting, issue the following Command:

/msg SecureServ set JOINHELPCHAN <ON/OFF> 

3.22. SVSJOIN Setting

If you dont want SecureServ to automatically join some infected users to your help channel, then turn of SVSJOIN and instead if a user is matched against a signature that specifies it should SVSJOIN the user, it will akill the user instead.

Important

This option does not turn on a global option for actions SecureServ performs. Instead it just specifies what SecureServ should do if a signature specifies SVSJOIN as the action.

To Change the setting, issue the following Command:

/msg SecureServ set SVSJOIN <ON/OFF> 

3.23. HELPCHAN Setting

If your network has a AntiVirus Channel setup, HELPCHAN sets that channel name. The default is #nohack

To Change the setting, issue the following Command:

/msg SecureServ set HELPCHAN <NAME> 

3.24. NOHELPMSG Setting

If there are no helpers logged into SecureServ and a user is infected with a Signature that specifies SVSJOIN, this is the message that is sent to the user informing them there are no users available, and it then proceeds to AKILL the infected user.

To Change the setting, issue the following Command:

/msg SecureServ set NOHELPMSG <msg> 

3.25. REPORT Setting

SecureServ has the option to report positive infections to secure.irc-chat.net site for both statistically and in future a blacklist type setup. Enabling this option means that statistics about infections can be reported to you on the secure.irc-chat.net site as well as providing Summarized data to the public (No Private information, such as infected hostnames, or your networks infection rate is reported to the public though - See the secure.irc-chat.net site for more information.

Important

You must have configured a NeoNet account in your NeoStats configuration for this option to be enabled.

To Change the setting, issue the following Command:

/msg SecureServ set REPORT <ON/OFF> 

3.26. AKILL Setting

If you do not wish SecureServ to ever AKILL a user for a positive match, turn this option off. It will then just issue a warning to all operators about the Client, and Operators are free to do as they see fit.

To Change the setting, issue the following Command:

/msg SecureServ set AKILL <ON/OFF> 

3.27. AKILLTIME Setting

This setting changes the Timeout value for AKILL's that SecureServ sets when it detects a "infection"

To Change the setting, issue the following Command:

/msg SecureServ set AKILLTIME <SECONDS> 

3.28. AKILLMSG Setting

This option allows you to customize the message sent to users when they are AKILLED. You can point them to your website or provide additional information to help them if required.

To Change the setting, issue the following Command:

/msg SecureServ set AKILLMSG <MSG> 

3.29. AUTOUPDATE Setting

If SecureServ has been Configured with a username and password (as Covered in Section 2.2, you can optionally Setup SecureServ to automatically check and download new dat files if available on a Daily basis. If you prefer to manually update the DAT files via /msg secureserv update, then disable this option

To Change the setting, issue the following Command:

/msg SecureServ set AUTOUPDATE <ON/OFF> 

3.30. AUTOUPDATETIME Setting

This option specifies how often to Check for new Dat files.

To Change the setting, issue the following Command:

/msg SecureServ set AUTOUPDATETIME <SECONDS> 

3.31. VERBOSE Setting

If you like to know what SecureServ is doing (and like to be flooded in the #services channel, then enable this option.

Warning

Not Recommended on a Large Network. SecureServ can get quiet busy!

To Change the setting, issue the following Command:

/msg SecureServ set VERBOSE <ON/OFF> 

4. Operational Commands

SecureServ has a number of commands that you can issue it in order to perform checks or operations on your IRC network. These commands aid Administrators in keeping their network secure, and keeping SecureServ upto date.

The following list summarizes these commands:

  • HELP

  • VERSION

  • ABOUT

  • CREDITS

  • LEVELS

  • SET

  • LOGIN

  • LOGOUT

  • ASSIST

  • CHPASS

  • CHECKCHAN

  • LIST

  • STATUS

  • MONCHAN

  • BOTS

  • CYCLE

  • RELOAD

  • HELPERS

  • EXCLUDE

  • UPDATE

The following Sections Describe these commands in detail

4.1. HELP Command

The help command allows the users to access the online help for the different commands available. You can get general help about the available commands, or can access more specific information about a command.

To see the help pages, use the following format:

/msg SecureServ help [command]

command is optional and only required if you want more specific information about a particular command

4.2. VERSION Command

This command displays the Version of SecureServ, and the dat files.

The format of the command is as follows:

/msg SecureServ version

4.3. ABOUT Command

The about command shows a brief description of the Bot and its purpose.

The format of the command is as follows:

/msg SecureServ about

4.4. CREDITS Command

The credits command shows details about the authors or contributors of to the Module

The format of the command is as follows:

/msg SecureServ credits

4.5. LEVELS Command

The levels command allows you to adjust the security of each command available in this module. You can make certian commands only available to higher "level" users in NeoStats.

For more information about NeoStats Levels and Security, please consult the NeoStats Manual

To list the currently configured levels, issue the following command:

/msg SecureServ levels list

To change the minimum level required to execute a command, issue the following command:

/msg SecureServ levels <command> <level>

Where:

command = is the actual command name you wish to modify

level = a number between 0 and 200 that specifies the new level.

4.6. SET Command

The set command allows you to modify settings applicable to this module. For a complete description of the available set options, please consult the Detailed Configuration Section of this manual.

4.7. LOGIN Command

This command allows a "helper" or trusted user that mans your Antivirus or help channel to login to SecureServ to gain additional functionality with regards to handling infected users. The helpers must have a valid login account and password as set in the helpers command.

The format of the command is as follows:

/msg SecureServ login <login> <pass>

4.8. LOGOUT Command

This command allows a logged in helper to logout of SecureServ if he is going to be away or not paying attention to the help channel for a period of time. You should encourage your users to logout if they can not provide timely response to infected users that may be forcejoined to the channel.

The format of the command is as follows:

/msg SecureServ logout

4.9. ASSIST Command

This option is only available to "helpers" that have logged into secureserv and is used to control SecureServ's limits over users that have been identified as infected with simple virus's and joined to a help channel. They allow the "helpers" to either release a user from SecureServ's restrictions, or kill un-cooperative, or un-responsive users from the network. The helpers may only perform these actions on users that SecureServ has identified as infected with a simple virus, and automatically joined to the help channel. Helpers may not "kill" users that SecureServ has NOT identified as infected.

The format of the assist command is as follows:

/msg SecureServ assist release/kill <target>

The release option allows the user to join all previous channels and continue as normal. After release is used on a user, a helper can no longer kill the target.

The kill option removes the user from the network via a akill command and broadcasts a message to all opers indicating the helper that used the kill command, and the initial virus the users was detected as having.

4.10. CHPASS Command

This option is only available to "helpers" that have logged into secureserv and is used to change thier password that they use to login to SecureServ.

The format of the chpass command is as follows:

/msg SecureServ chpass <newpass>

Where:

newpass = The new password to set your helper account to

4.11. CHECKCHAN Command

If you suspect that a user in a Channel is infected with a OnJoin virus, you can force SecureServ to check the channel on your behalf. If SecureServ finds any infection in the channel, it will take the normal action associated with that virus.

The format of the command is as follows:

/msg SecureServ checkchan <chan>

4.12. LIST Command

The List command shows a brief list of all the Definitions that SecureServ currently has loaded. These are direct from the Dat file that is downloaded from the http://secure.irc-chat.net website.

The format of the command is as follows:

/msg SecureServ list

More detail about each "Virus" can be found at the http://secure.irc-chat.net/ site by searching for the Virus Name.

4.13. STATUS Command

This command gives the Administrator statistics on the how SecureServ is performing, how many checks it has conducted, and currently logged in "helper" users.

The format of the command is as follows:

/msg SecureServ status

4.14. MONCHAN Command

This option allows you to manipulate the list of channels that will be monitored all the time by SecureServ for Private Message type virus's. The bot that joins these channels is specified in the monbot section of the set command. You should also investigate the MONCHANCYCLE and MONCHANCYCLETIME options listed above on how to enable the monbot to cycle these monitored channels, as a OnJoin bot will not check a MONCHAN channel.

/msg SecureServ monchan list

This option lists all the channels that will be monitored. If the channels do not exist when SecureServ is started, they will be joined when the first user joins the channel. When the last user leaves the channel, they will also leave the channel.

/msg SecureServ monchan add <chan>

This option adds a channel to be monitored.

/msg SecureServ monchan del <chan>

This option lists will delete a channel from the monitored list.

4.15. BOTS Command

This option allows you to manipulate the random bot list that is used to join random channels (or channels monitored with the monchan command, as detailed below). The available options are:

/msg SecureServ bots list

This option lists all available bots.

/msg SecureServ bots add <nick> <ident> <host> <realname>

This option adds a bot with the nickname, ident, host and realname as specified in the command to the list of bots that will be used to randomly join a channel.

/msg SecureServ bots del <num>

This option lists will delete a bot from the available bots if its not currently in use.

4.16. CYCLE Command

This command forces SecureServ to part the existing channel it is checking and join the next random Channel.

The format of the command is as follows:

/msg SecureServ cycle

The next channel is chosen at random, but is guaranteed not to be the previous channel it checked.

4.17. RELOAD Command

This option reloads the viri.dat and customviri.dat files. Its no the same as a update command, as it does not attempt to download new dat files from http://secure.irc-chat.net site. Its useful if you make a change to your customviri.dat file.

The format of the reload command is as follows:

/msg SecureServ reload

4.18. HELPERS Command

Helper lists let you grant non-privileged users the ability to maintain your Virus help channel and help users that are infected with virus's that could be removed with simple instructions (such as Spam Virus's that infect Mirc). These users are granted the ability to "release" a infected user from SecureServ or kill un-cooperative, or unresponsive users that SecureServ has identified as being infected. Users that have been joined to the help channel are "held" by SecureServ and are usually prevented from joining other channels (if your IRCd supports this option). This can be helpful so you can clean up users that are infected with simple script based virus's and you require their attention to help you clean their computer. More information about the commands available to use on infected users is available via the assist command detailed below.

Caution

Although SecureServ limits who a "Helper" may kill (only infected users joined to the Help Channel) you should only give out login accounts to trusted users.

Adding a Entry

To add a entry to the Helper list, use the following format:

/msg SecureServ helpers add <login> <pass> 

Where:

<login> = The login name to use to gain access. Does not have to be a nickname.

<pass> = The password to use to login

The output is as follows:

>secureserv< helpers add myhelper mypass
-SecureServ- Successfully added Helper myhelper with Password mypass to Helpers List

Listing an Entry

To list the helpers simple type:

/msg SecureServ helpers list

And all the helpers are listed. Additionally, if a nickname is provided after the login name, it means that this nick is logged into this particular helper account.

The output is as follows:

>secureserv< helpers list
-SecureServ- Helpers List (2):
-SecureServ- fish (Fish)
-SecureServ- myhelper (Not Logged In)
-SecureServ- End of List.

Deleting an Entry

To delete a entry, you must provide the login name you wish to delete. The format of the command is as follows:

/msg SecureServ helpers del <login>

Where:

<login> is the login account you wish to delete.

The output of the command is as follows:

>secureserv< helpers del myhelper
-SecureServ- Deleted myhelper from Helpers List

4.19. EXCLUDE Command

Exclusion lists allow you to specify certain Hostmasks, Servers, or Channels that should be excluded from monitoring by SecureServ. This exclusion list would allow a administrator to say, allow users on that are matched against Trojans, when the administrator has verified that the Trojan does not in fact exist on the users host.

Caution

Exclusions should be setup for your Services Server, so that SecureServ does not try to scan ChanServ, or NickServ, or any of the bots relating to Nickname protection.

With NeoStats 3.0, you should also be aware that there are two types of Exclusion Lists. There are "Global" exclusion lists that all modules may optionally use, and there is module specific exclusion lists. SecureServ defaults to not using the Global Exclusion lists. You can enable it by the following command:

/msg SecureServ set exclusions on

Adding a Entry

To add a entry to the Exclusion list, use the following format:

/msg SecureServ exclude add <host/Server/Channel/UserHost> <pattern> <reason>

Where:

<Host/Server/Channel/UserHost> = The type of exclusion you are adding. The different types are:

  • Host - The Users real (Internet) Hostname

  • Server - The Users server they are connecting to. You should ensure you add a exclusion for your Services Server

  • Channel - A specific channel on your IRC Network

  • UserHost - The users Virtual Hostname (IRC)

<pattern> = The pattern you wish to match on. May include wildcard charactors such as * and ?

<reason> = a short description of the exclusion, for operator reference only.

The output is as follows:

[13:20] -SecureServ- Added *.blah.com (userhost) to exclusion list
[13:20] SecureServ Fish added *.blah.com (userhost) to the exclusion list

Listing an Entry

To list the Exclusions simple type:

/msg SecureServ exclude list

And all the current exclusions are listed. Additionally, a Position number is provided for use with the delete command. The output is as follows:

[13:21]  -SecureServ- Exclusion list:
[13:21]  -SecureServ- #bothouse (Channel) Added by Fish on Sat Aug 13 2005 01:20 AM SGT for Requested
[13:21]  -SecureServ- #ircop (Channel) Added by Fish on Sat Aug 13 2005 07:40 PM SGT for IRCop channel
[13:21]  -SecureServ- *irc-chat.net (Host) Added by Fish on Tue Aug 09 2005 10:13 PM SGT for Services Exclusion
[13:21]  -SecureServ- chieftess!*@* (Userhost) Added by Fish on Tue Aug 09 2005 10:14 PM SGT for buggy client
[13:21]  -SecureServ- *.blah.com (Userhost) Added by Fish on Sun Jan 15 2006 01:20 PM SGT for Cause Blah.com is cool
[13:21]  -SecureServ- End of list.

Deleting an Entry

To delete a entry, you should first lookup the Position of the entry that you wish to delete. The format of the command is as follows:

/msg SecureServ exclude del <pattern>

Where:

<pattern> is the pattern of the entry you wish to delete in the list

The output of the command is as follows:

[13:22]  SecureServ Fish used EXCLUDE
[13:22]  -SecureServ- *.blah.com delete from exclusion list

4.20. UPDATE Command

That command forces SecureServ to check the Dat File version at http://secure.irc-chat.net/ and download the latest version if required.

Warning

Repeated use of this command in a short period of time will result in your account at secure.irc-chat.net being suspended for abuse. Use with CARE

The format of the command is as follows:

/msg SecureServ update

5. Custom Definitions

You can create your own definitions to be used by SecureServ, but it requires a bit of programing skill, and knowledge of how to detect the trojan/virus.

We have enabled SecureServ to obtain additional definitions from a custom, administrator defined definition file. This allows IRC administrators to add additional signatures to SecureServ to ban clients that the IRC network does not permit. A common signature is one for Bottlers or IRCork clients. The only drawback is that the definition file is not simple, and some degree of programing knowledge is required.

5.1. Custom Definitions file

If you wish to create your own custom definition, follow these steps:

5.1.1. Create customviri.dat file

with a text editor, create a new file called customviri.dat in your ~/NeoStats/data directory.

5.1.2. add entries to customviri.dat

The format of the customviri.dat file is as follows:

Example 1. customvir.dat

name dettype 0 0 "detectionregex" "message" action

It is very important that you follow the spacing format, otherwise your custom definition will fail to load.

Each individual field is described below:

name

This is the Virus Name. It can be any combination of upper and lower case characters or numbers, but can not contain spaces, or punctuation.

dettype

This defines how SecureServ should use this signature to detect Trojans. Its a number and can only be one of the following:

0 - CTCP Version check. This trys to match the detectionregex against a received CTCP version reply.

1 - Private Message. This trys to match the detectionregex against a private message received by the onjoin bots or monbot

2 - Nick. This trys to match the detectionregex against a nickname.

3 - Ident. This trys to match a detectionregex against a ident.

4 - Realname. This trys to match a detectionregex against a users real name.

5 - Channel. This trys to match a detectionregex against a channel name.

6 - Channel Message. This trys to match a detectionregex against a channel Message (only channels that are monitored by MONBOTS or ONJOINBOTS)

6 - Away Message. This trys to match a detectionregex against a away Message that a client sets

6 - Topic Message. This trys to match a detectionregex against a channel topic.

10 - Internal. This is reserved.

detectionregex

This field is used to define how to detect a Trojan. If for example in the dettype we specify a value of 0, then this is a regular expression that is applied to all CTCP VERSION replies that secureserv receives.

Warning

This is a "Regular Expression" field. It is not the same as a wildcard field. Regular expressions are much more powerful pattern matching expressions than the standard ? and * options available in typical filesystem or IRC pattern matching code. If you have never used regular expression before, I STRONGLY suggest you test your "Regular expression" code with a utility called "pcretest" available as part of libpcre at www.pcre.org. Additionally, you should try to learn the pattern matching language. This can be done by looking at the man page for "perlre" or the documentation available on www.pcre.org. If you get your pattern matching code wrong, you have the ability to kill everyone on your IRC network, so be extremely careful.

This field must be enclosed in double quotation marks (") and if you use " in your regular expression, you must escape them.

message

This is the private message sent to the "Infected" user when they are matched against this definition. As customviri.dat definitions do not direct users to the secure.irc-chat.net. site, you should provide as much information as possible in this, or optionally, direct them to your own hosted IRC page. You should place your message inside double quotation marks (") and if you use " in your regular expression, you must escape them.

action

This field defines what SecureServ should do when it matches a user against this definition. The field is a number only and should only be one of the following.

0 - SVSJOIN. On IRCds that support SVSJOIN, the user is automatically joined to the help channel, and any online opers are notified of the users infection. If no helpers are logged in, then the user is akilled instead.

1 - AKILL. Akill the user from the IRC network.

2 - WARN. Send the message to the user indicating they matched a definition, warn the operators via a global message, and do nothing else.

3 - NOTHING. Only send the message to the user. Do not take any further action.

3 - KILL. just issue a standard kill message for the infected user

We don't support any customviri.dat definitions, either by the secure.irc-chat.net site, or via our boards, though members of the community may choose to share their customviri.dat files. If you are in doubt or unsure about creating your own customviri.dat files you should always test them with the warn or nothing option as the action type until you are sure that you have the matching correct.

5.1.3. Reload the definitions

If SecureServ is already operating, you can reload the definitions by issuing a /msg SecureServ reload command. This will make SecureServ reload both the viri.dat file as well as the customviri.dat file. Your customviri.dat entries will be placed before any viri.dat entries, so if you wish to override the action of a viri.dat entry, you can place a copy in the customviri.dat file.

6. Final Words

This Section is my "Rant" for SecureServ. Although you don't need to read it to operate SecureServ, it does provide you some tips

6.1. Dealing with Un-detected Attacks/Trojans/Virus etc

If you come across a new "Trojan" or Virus or attack on your network, it might be possible to update SecureServ to be able to detect these new "Virus's"

If you wish us to consider adding support to SecureServ's Definition files for new "Virus's" please provide us with the following information via http://secure.irc-chat.net/ using the "submit new" link (only available when logged in as a member)

The following information is required:

  • the output from /whois <infected user>

    If there are multiple Infected users, please provide multiple /whois outputs. This will aid us in determining a pattern.

  • The results from a /ctcp <infected user> version command, if any

  • Logfiles extracts of the behavior of the bot that makes you suspect it is a new Trojan/Virus

    we will NOT add detection to SecureServ for anything we can not verify is in fact a risk to IRC security. If you submit to us the details of a script that a user is using, because you don't like the colors, Tough. Find some other way to deal with that user.

  • Details of your IRC network

    So that we may contact you directly on your network if we require additional information or wish to the "Virus" in the wild.

Before adding new items to the Definitions, we do as much research as possible, and also share this information with other "IRC Security" professionals or teams in order to determine the most effective way to detect this "infection"

Additionally, we will add "warning" messages to users that are running old copies of IRC software that are vulnerable to security issues (such as allows a Hacker to break into the users computer via IRC) and advise the user to upgrade their IRC client. If you are a client Author of a script or IRC client that has had Security Issues in the past, and wish us to add this "warning" to the Definitions, please contact us directly.