Preliminary release of my perl scripts for argus-2.0

Carter Bullard carter at qosient.com
Mon Jan 8 22:54:47 EST 2001


Hey Russell,
   Got it.  I'm going to make an independant directory
for this stuff so you can manage at your leisure, and
when we get the CVS server on the argus web site,
you can manage the code from there.

   I'll take a look tomorrow afternoon, to install, run
etc.... and I'll send comments.

Thanks greatly!!!!!

Carter

Carter Bullard
QoSient, LLC
300 E. 56th Street, Suite 18K
New York, New York  10022

carter at qosient.com
Phone +1 212 813-9426
Fax   +1 212 813-9426



-----Original Message-----
From: owner-argus at lists.andrew.cmu.edu
[mailto:owner-argus at lists.andrew.cmu.edu]On Behalf Of Russell Fulton
Sent: Monday, January 08, 2001 10:41 PM
To: Argus (E-mail)
Subject: Preliminary release of my perl scripts for argus-2.0



On Mon, 8 Jan 2001 15:05:25 -0500 Carter Bullard <carter at qosient.com> 
wrote:

> 
> If anyone has any code that they would like included
> in the release, please get that to me this week.
> 

OK the time has come to byte the bullet.  Here are my perl scripts and 
support modules in the uuencoded inclusion.  These scripts are still 
under active developement as I find out more about new features in 
Argus 2.0 so I hope there will be some mechanism for updating them in 
the distribution independent of argus releases.

Both the major scripts (watcher and scan_watch) have had major work 
done on them in the last few weeks so treat them with caution.  Watcher 
had a few lines of code added today to track fragments, this is work in 
progress.

Look_for script takes a supplied filter and runs ra with the filter 
over archived data, you can specify dates to start and finish or you 
can specify things like today, yesterday, thisweek, lastweek etc.

the scan detection scripts.

Why have two scripts for detecting scans?  Well partly belts and braces 
but mostly because this is an ongoing research project and the two 
scripts use somewhat different strategies to detect scans.

Watcher is a 'real time' script that watches output from a live server, 
scan_watch is an overnight job that processes a days logs in one go.  
It maintains records of activity for a long time (up to 7 days be 
default) and thus is capable of spotting very slow scans (I regularly 
find scans with below 10 probes per day -- there are currently about 
80 probing udp-137).  Over the last two weeks I have added udp scan 
detection.  This is a mixed blessing because there are so many machines 
infected by worms that scan on port udp-137.  These scans are typically 
about 10 probes per day but the sheer number of them tends to overwhelm 
everything else.  You can stop it looking at udp by altering the ra 
filter to ignore udp.  

These scripts have been tuned over the last two years to our network 
traffic volumes, if you put them on a very busy network you will have 
to tweak the parameters to get the resource usage and sensitivity 
approriate.  I suspect that scan-watch will not work for those of you 
who have OC3s, it will simply consume too much memory, but then you may 
have machines with much more memory than I have. 

The distribution has two directories: bin and lib,  bin has the 
executable scripts and lib has the perl modules.  I have tried to move 
all site specific configuration out into the module files: 
Argus.pm Argus/Watcher.pm and Argus/Slowscan.pm

I hope that others will adopt this scheme and convert your perl scripts 
to use this scheme and, of course, add them to the contrib distribution.
One thing that made me reluctant in the past to distribute my code was 
that a good deal of it is necessarily site specific, particularly 
anything that accesses archived data.  I have attempted to deal with 
this problem (see Argus::Archive below).

Argus.pm contains all the generic site specific information (what your 
local IP address are, where is your usual argus server, etc.)

Argus/Watcher.pm has addition configuration information for watcher and
Argus/Slowscan.pm has stuff for scan_watch (you have noticed I can't 
decide whether to call it slowscan or scanwatch ;-)

Both scan_watch and look_for read archived argus data and they do this 
by calling module Argus/Archive.pm.  The idea is that you will need to 
modify this module to match the layout of your own archive.

There is also Argus/Support.pm which contains a lot of code that is 
common to the two major scripts.  Much of this code is to do with 
formating long lists of IP addresses and port numbers.

The scripts use a few CPAN modules:

use Date::Manip;  # handles dates and times
use Net::SMTP;    # so we can mail reports  -- this is part of libnet 
                  # bundle which is installed by default on many systems
use Data::Dumper; # store data structures to disk

I am not aware of any perl version dependencies -- should run with any 
reasonably recent version of perl 5.

I think that about wraps it up.  There are bound to be details I have 
fogotten so if you have any problems drop me a line.  I will be away 
from work for the rest of the week (on babysitting duty -- if you can 
describe keeping an bored 12 yearold out of mischief during school 
holidays babysitting ;-) I will be checking my mail at least once a day 
but don't expect lightning response.

As always comments (positive and negative) welcome.  I particularly 
want to know what needs to be better documented.  I would also like 
suggestions on how to automatically set things like the bin dir for ra 
and lib directory.  Could this be done via make install or configure?

I would put "enjoy" but I see that a certain large US multinational has 
now adopted this as their main marketing slogan.  I would not like to 
give the impression that I support such cultural imperialism ;-) ;-)

Russell Fulton, Computer and Network Security Officer
The University of Auckland,  New Zealand



More information about the argus mailing list