From: <Microsoft Internet Explorer 5¡Æ¢® AuAa>
Subject: Intrusion Detection
Date: Sun, 17 Jun 2001 11:51:17 +0900
MIME-Version: 1.0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.enteract.com/~lspitz/ids.html
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Intrusion Detection</TITLE>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META=20
content=3D"How to plan, implement, and react to an intrusion detection =
system."=20
name=3Ddescription>
<META=20
content=3D"hacking,intrusion detection,security,logs,TCP Wrappers,port =
scanner"=20
name=3Dkeywords>
<META content=3D"MSHTML 5.00.3018.900" name=3DGENERATOR></HEAD>
<BODY link=3D#0000ff><FONT face=3D"Palatino,Book Antiqua"><FONT =
size=3D+4>Intrusion=20
Detection</FONT></FONT> <BR><I><FONT face=3D"Palatino,Book =
Antiqua"><FONT=20
size=3D+1>Knowing when someone is knocking on your =
door.</FONT></FONT></I>=20
<P><FONT face=3D"Palatino,Book Antiqua"><FONT size=3D-1><A=20
href=3D"mailto:lance@spizner.net?Subject=3DIntrusion Detection">Lance E. =

Spitzner</A></FONT></FONT>=20
<P><B><FONT face=3D"Palatino,Book Antiqua">Your network is being scanned =
for=20
vulnerabilities. This may happen only once a month or twice a day, =
regardless,=20
there are people out there probing your network and systems for =
weaknesses. I=20
can say this with confidence because I have yet to work on a network =
that has=20
not been probed. My personal network of six systems at home is on a =
dedicated=20
ISDN line. This network has no valuable data, nor represents any =
organization,=20
yet I get probed two to four times a week. If you have a system or =
network=20
connected to the Internet, you become a target. This article will =
discuss how=20
you can protect yourself by detecting these intrusion attempts. I will =
then=20
cover what you can do when you discover these attempts.</FONT></B>=20
<P><B><FONT face=3D"Palatino,Book Antiqua"><FONT size=3D+2>Setting up =
Intrusion=20
Detection</FONT></FONT></B>=20
<P><FONT face=3D"Palatino,Book Antiqua">The methods we will be =
discussing are=20
simple in use and implementation. For larger or more security =
conscientious=20
organizations, you may want to consider third party Intrusion Detection =
Systems,=20
such as Network Flight Recorder (<A=20
href=3D"http://www.nfr.net/nfr">http://www.nfr.net/nfr</A>. These more =
advanced=20
IDS systems use traffic analysis and advance algorithms to determine if =
a probe=20
has been conducted. Our approach will be somewhat simpler.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">There are a variety of different =
probes=20
hackers will attempt. The first type we will prepare for is one of the =
most=20
common, port scans. Port scans are where an inidvidual attempts to =
connect to a=20
variety of different ports. The scans can be used on a specific target, =
or used=20
to scan entire IP ranges, often chosen at random This is one of the most =
popular=20
information gathering methods used by hackers today as it identifies =
what ports=20
and services are open.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">To detect these scans, we will =
build a=20
system that emails us alerts whenever someone connects to a =
predetermined port.=20
First, we identify three to five of the most commonly scanned ports. =
Then we=20
select two to three systems to listen on these ports. When an intruder =
scans our=20
network, he will most likely hit our systems listening on these ports. =
When=20
these ports are scanned, the systems log the attempt, execute various=20
predetermined actions, then email an alert to a point of contact.</FONT> =

<P><FONT face=3D"Palatino,Book Antiqua">The end result is you receive an =
email for=20
each port scanned. If you have 3 systems, each listening on 4 ports, =
then you=20
may get up to 12 emails from a single network port scan. However, this =
is=20
normally not the case. If hackers are scanning an entire network, they =
are=20
normally looking for a single vulnerability, such as imap (port 143). In =
this=20
case, we would have received only three emails, one from each system. =
When they=20
scan a single target, often they scan a range of ports, such as 1-1024. =
In that=20
case, we would have received only 4 emails, one for each port on the =
system.=20
Based on what emails you get, you can quickly determine what the =
intruder is=20
interested in. <B><FONT color=3D#0000ff><A=20
href=3D"http://www.enteract.com/~lspitz/ids.html#Figure 1">See Figure=20
1.</A></FONT></B></FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">To implement this methodology, =
we first=20
identify two to three systems to use for monitoring. I often select DNS =
servers=20
as these are primary targets, many scanning tools start by scanning Name =
Servers=20
to build databases of IP addresses. Then select three to five of the =
most=20
commonly scanned ports. Ensure that you are not using these ports, or =
every time=20
someone connects to it, you will be alerted. To identify commonly =
scanned ports,=20
CERT alerts are a great place to start, you can find these alerts at <A=20
href=3D"http://www.cert.org/">http://www.cert.org/</A>. The ports we =
will be using=20
are.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">imap (port 143)</FONT> <BR><FONT =

face=3D"Palatino,Book Antiqua">SMB (port 139)</FONT> <BR><FONT=20
face=3D"Palatino,Book Antiqua">login (port 513)</FONT> <BR><FONT=20
face=3D"Palatino,Book Antiqua">http (port 80)</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">I like these ports since hackers =
commonly=20
look for them, but most of your systems will not be using them. Make =
sure these=20
ports are not already blocked by a screening router or a firewall. We =
will then=20
set several system to listen on these ports, alerting us when there is a =

connection.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">Our implementation uses TCP =
Wrappers.=20
Created by Wietse Venema, TCP Wrappers allows us to control, log, and =
most=20
importantly, react to any wrapped service. When someone connects to one =
of the=20
services we defined above, TCP Wrappers will log the connection (via =
syslog) and=20
then spawn our alerting mechanism.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">For those of you who do not =
already have=20
TCP Wrappers installed , I highly recommend it. It is extremely easy to =
compile,=20
configure, and implement. You can find it at many tool repositories, =
such as=20
ftp://ftp.cerias/purdue.edu/pub/tools/unix. Before you compile it, =
enable=20
language extensions in the Makefile (this greatly enhances it =
configurability).=20
We will be using this capability for intrusion detection purposes. For =
more=20
information on installing TCP Wrappers, I recommend you review my =
article on=20
"Armoring Solaris".</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">Once we have compiled and =
installed TCP=20
Wrappers, we will want to wrap the four ports we defined above. The =
ports are=20
first defined in /etc/services and then added to the /etc/inetd.conf =
file. Here=20
is an example of "wrapping" imap in the file /etc/inetd.conf.</FONT>=20
<P><TT>imap stream tcp nowait root /usr/local/bin/tcpd imap.trap</TT>=20
<P>When someone connects to port 143, tcpd accepts the connection from =
inetd. It=20
then looks at the /etc/hosts.allow file for access control. This is =
where we=20
define what connections are allowed to launch the alert. Finally, it =
will finish=20
by launching imap.trap. You will need to rename imap.trap for each =
respective=20
service, such as http.trap for http or smb.trap for smb. Below is an =
example of=20
the entry in /etc/hosts.allow, this is the entry that alerts us of a =
possible=20
probe.=20
<P><TT>imap.trap: ALL: spawn (/var/adm/ids.sh %d %h %H)</TT>=20
<P><FONT face=3D"Palatino,Book Antiqua">This tells tcpd to accept all =
connections=20
to port 143 regardless of IP, then spawn our intrusion detection script, =
the=20
script that alerts us. We want spawn instead of twist, because twist =
uses the=20
remote client for all stdout and stderr. The three expansions following =
the=20
ids.sh file (defined by TCP Wrappers) become in line variables.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">The script /var/adm/ids.sh is =
where all=20
the action happens. You can modify for your own personal taste. I have =
included=20
an example that parses the data, does a safe_finger on the client, =
emails an=20
alert to a point of contact, and optionally launches snoop to track any=20
additional action <B><FONT color=3D#0000ff><A=20
href=3D"http://www.enteract.com/~lspitz/ids.html#Figure 2">see Figure=20
2.</A></FONT></B></FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">Now, whenever someone connects =
to one of=20
our predetermined ports, we receive a formatted email with all the =
critical=20
data. For example, a user scans our network for port 143 looking for =
imap=20
vulnerabilities. Three of our systems are listening on that port. The =
connection=20
is made, and tcpd is launched. It looks at /etc/hosts.allow, and finds =
an entry=20
for imap.trap. It spawns our intrusion detection script /var/adm/ids.sh, =
which=20
parses the data, fingers the client, then emails an alert. We also have =
the=20
option of launching tools, in this example snoop. The last thing that =
happens is=20
that tcpd attempts to launch /usr/sbin/imap.trap, which it does not =
find. Tcpd=20
then exits, logging an error to syslog. To avoid this, you may want to =
create a=20
shell script /usr/sbin/imap.trap, which does nothing but exit =
out.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">One thing to keep in mind is =
Denial of=20
Service attacks. The more you have your script do, the more system =
overhead you=20
incur. An attacker could disable your system by making multiple =
connections to=20
the predetermined ports, creating multiple processes of your scripts. I=20
recommend that if you implement a variety of actions in your scripts, =
that you=20
limit the number of process per source IP address.&nbsp; A simple way to =
do this=20
is grep for the source in your tcpdlog.&nbsp; If you do not find the =
source,=20
this is the first time the system has probed you, so launch your =
profiling=20
script.&nbsp; Otherwise, the source has scanned you before, so just log =
the=20
entry.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">An alternative to using TCP =
Wrappers is=20
router logs. Many of us do not have the luxury of using three systems =
for=20
intrusion detection. However, you can use the methodology described =
above using=20
your internet router. One again, you select two or three systems and =
three to=20
five ports to be monitored. Build an ACL (Access Control List) on your =
router=20
that denies the specified ports and systems. Have this ACL log all =
connection=20
attempts to a syslog server. Now you can monitor any denied traffic and =
quickly=20
determine if your network has been probed. I have had great success =
implementing=20
this with Swatch which automates both the filtering and alerting =
process.</FONT>=20

<P><FONT face=3D"Palatino,Book Antiqua">These solutions are not =
foolproof. Many of=20
today&#8217;s port scanners do not complete the TCP SYN/ACK sequence =
during a=20
connection. In fact, many scans use invalid packets (such as FIN or Xmas =
scans).=20
The methods I have discussed will NOT detect some of these scans. For =
more=20
robust intrusion detection you will need more advance tools, such as <A=20
href=3D"http://www.kalug.lug.net/tcplogd/">tcplogd</A>, which will =
detect these=20
"stealth" scans.</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">There are other ways you can =
implement=20
intrusion detection on your system. Once again, you have to first =
identify the=20
intrusion methodology, then implement a tracking and alerting procedure. =
An=20
example would be brute force attempts to login. Five consecutive failed =
attempts=20
to login are logged in the file /var/adm/loginlog. This would happen =
when a=20
hacker is probing your system for weak login and password combinations. =
I set=20
all my systems to run a daily cronjob and see if there are any entries =
in the=20
file. If there are, someone has either forgotten their password and is =
guessing=20
what it is, or a potential hacker is attempting a brute force entry. The =
cronjob=20
emails me the entries, make a copy to an archive, then clears the log. =
Another=20
example is the common /cgi-bin/test-cgi attack used on web servers. =
Instead of=20
disabling this cgi script, I alter it to log and email me whenever =
someone=20
attempts this exploit. This usually involves nothing more the modifying =
the=20
shell script test-cgi (be sure to test this before you implement it on =
your=20
system).</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">As we have covered, there are a =
variety of=20
simple ways to implement some basic intrusion detection. Though not =
foolproof,=20
these methodologies will help you identify potential probes and protect =
your=20
network. Now, once you have implemented intrusion detection, what do you =
do when=20
you discover your systems are being probed?</FONT>=20
<P><B><FONT face=3D"Palatino,Book Antiqua"><FONT size=3D+2>Reacting to =
an=20
Intrusion</FONT></FONT></B>=20
<P><FONT face=3D"Palatino,Book Antiqua">The firs step is confirming that =
your=20
systems are truly being probed. Just because you receive one email alert =
from=20
our TCP Wrapper setup does NOT mean you are being scanned. A confused =
user may=20
be connecting to the wrong system, or someone is simply mistyping a key. =
Nothing=20
is more embarrassing then accusing someone of something they did not =
do.However,=20
if you have three consecutive systems scanned on the same port at the =
same time,=20
this indicates that you may have been probed. Now what?</FONT>=20
<P><FONT face=3D"Palatino,Book Antiqua">The last thing you want to do is =
send out=20
a counter attack on the system and take them off the air. When your =
network gets=20
scanned, you may feel frustrated and want to take that frustration on =
the system=20
that probed you.. Since someone is preparing to hack you, =
shouldn&#8217;t you act?=20
However, you want to be very careful how you react.</FONT>=20
<OL>
  <LI><FONT face=3D"Palatino,Book Antiqua">Your systems may have indeed =
been=20
  scanned, but by accident. Many times large organizations scan their =
internal=20
  networks and remote offices. Someone may have scanned the wrong =
network (I=20
  personally know of this happening at one organization).</FONT>=20
  <LI><FONT face=3D"Palatino,Book Antiqua">Often the people responsible =
for the=20
  systems that scanned you have no idea of what happened. Large systems =
with=20
  hundreds of users may have a malicious user who is illegally using his =
or her=20
  account to probe other networks. Or, the system may have been hacked =
and is=20
  beings used as a launching point. Either way, the admin of the system =
will=20
  want to know so they can fix the problem.</FONT>=20
  <LI><FONT face=3D"Palatino,Book Antiqua">The source IP address showing =
in your=20
  logs may not be valid system, rather they may be a "decoy" source. =
Many=20
  scanning tools allow the user to change the source IP address to =
whatever the=20
  user wants. Your logs may show your systems scanned from five =
different=20
  sources, however you were actually scanned be the same machine. The =
user is=20
  attempting to deceive the true source of the probe by using fake =
source IPs.=20
  It is now extremely difficult to determine which one of scans was the =
actual=20
  probe. Also, the user could have faked his source IP address to lay =
blame on=20
  someone else.</FONT> </LI></OL><FONT face=3D"Palatino,Book =
Antiqua">Even with the=20
best of intentions, you can do more harm then good. For example, lets =
say you=20
discover that the system that scanned you has been hacked and is being =
used as a=20
launching point. You identify a backdoor the hacker left, gain access, =
grab all=20
of his tools and logs, and then proceed to notify the system owner and =
various=20
emergency response organizations. Even though you think you have done =
the right=20
thing, you have caused more harm then good.</FONT>=20
<OL>
  <LI><FONT face=3D"Palatino,Book Antiqua">Most likely the hacker =
replaced various=20
  monitoring tools and logs on the compromised system. He may discover =
you were=20
  there, then wipe the system clean to cover his tracks (thus destroying =
the=20
  machine).</FONT>=20
  <LI><FONT face=3D"Palatino,Book Antiqua">The system admin may have =
known about=20
  the hacker and was working with law enforcement. You have just messed =
up their=20
  investigation.</FONT>=20
  <LI><FONT face=3D"Palatino,Book Antiqua">You can be held liable for =
the hacking=20
  incident. The system owners do not know you and may accuse you of =
being the=20
  original hacker, attempting to protect yourself by blaming someone=20
  else.</FONT> </LI></OL><FONT face=3D"Palatino,Book Antiqua">Basically, =
there is a=20
lot that can wrong and not much that can go right when you act on your =
own. The=20
best thing you can do is first get as much information as you can. =
Identify any=20
logs that show probes from the source address. Then identify the =
individuals=20
and/or organization responsible for the incident. The whois database, =
dig, and=20
nslookup are excellent methods to discover who is responsible for the =
system.=20
Email them with details of what happened when, including log entries for =

verification. You may also want to courtesy copy the =
organization&#8217;s upstream=20
provider to keep them informed. If the intrusions are serious enough, =
contact=20
professional response organizations, such as CERT <A=20
href=3D"http://www.cert.org/">http://www.cert.org/</A> or CIAC at <A=20
href=3D"http://www.ciac.org/">http://www.ciac.org/</A>. If the intrusion =
attempts=20
continue with no response from the system owners, call the organization. =
The=20
phone can be a very powerful tool.</FONT>=20
<P><B><FONT face=3D"Palatino,Book Antiqua"><FONT=20
size=3D+2>Conclusion</FONT></FONT></B>=20
<P><FONT face=3D"Palatino,Book Antiqua">Sooner or later, you systems and =
networks=20
may be probed for various vulnerabilities. By taking some of the basic =
measures=20
we have discussed, you will be better prepared to log and identify these =

attempts. Once identified, you can track these probes and gain a better=20
understanding of the threats to your network and react to these threats. =
When=20
identified, it is best to gain as much information as possible, then =
notify the=20
individuals and organization responsible for the system. Taking action =
on your=20
own will often become messy, causing more harm then good. By working =
with=20
others, you will come to a better a solution.</FONT>=20
<P><A name=3D"Figure 1"></A><FONT face=3DArial><FONT size=3D+0>Figure =
1</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Subject: ### =
Intrusion=20
Detection Alert ###</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>You have received =
this alert=20
because the network</FONT></FONT> <BR><FONT face=3D"Courier =
New,Courier"><FONT=20
size=3D-1>is potentially being scanned. The information =
below</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>is the packet =
that was logged=20
and dropped.</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Date: Sat Jan =
24</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Time: =
18:47:46</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Source:=20
ICARUS.CC.UIC.EDU</FONT></FONT> <BR><FONT face=3D"Courier =
New,Courier"><FONT=20
size=3D-1>Destination: lisa</FONT></FONT> <BR><FONT=20
face=3D"Courier New,Courier"><FONT size=3D-1>Service: imap</FONT></FONT> =

<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>--- Finger Results =

---</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT=20
size=3D-1>[ICARUS.CC.UIC.EDU]</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Login Name TTY =
Idle When=20
Where</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Spitzner Lance =
Everett Spitzn=20
pts/72 Sun 18:42 lspitz-4.soho.entera</FONT></FONT> <BR>&nbsp;=20
<P><A name=3D"Figure 2"></A><FONT face=3DArial,Helvetica>Figure 2</FONT> =

<P><FONT face=3D"Courier New,Courier"><FONT =
size=3D-1>#!/bin/ksh</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>#</FONT></FONT> =
<BR><FONT=20
face=3D"Courier New,Courier"><FONT size=3D-1># Script launched by tcpd =
for intrusion=20
detection purposes</FONT></FONT> <BR><FONT face=3D"Courier =
New,Courier"><FONT=20
size=3D-1>#</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT=20
size=3D-1>USER=3Dlance@honeynet.org</FONT></FONT> <BR><FONT=20
face=3D"Courier New,Courier"><FONT size=3D-1>SRV=3D`echo $1 | cut -f1=20
-d.`</FONT></FONT> <BR><FONT face=3D"Courier New,Courier"><FONT =
size=3D-1>DATE=3D`date=20
"+%a %b %e"`</FONT></FONT> <BR><FONT face=3D"Courier New,Courier"><FONT=20
size=3D-1>TIME=3D`date "+%T"`</FONT></FONT> <BR><FONT=20
face=3D"Courier New,Courier"><FONT =
size=3D-1>FINGER=3D`/usr/local/bin/safe_finger=20
@$2`</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT=20
size=3D-1>MAIL=3D/usr/bin/mail</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>$MAIL $USER=20
&lt;&lt;EOF</FONT></FONT> <BR><FONT face=3D"Courier New,Courier"><FONT=20
size=3D-1>Subject: ### Intrusion Detection Alert ###</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>You have received =
this alert=20
because the network</FONT></FONT> <BR><FONT face=3D"Courier =
New,Courier"><FONT=20
size=3D-1>is potentially being scanned. The information =
below</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>is the packet =
that was logged=20
and dropped.</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Date: =
$DATE</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Time: =
$TIME</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Source: =
$2</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Destination: =
$3</FONT></FONT>=20
<BR><FONT face=3D"Courier New,Courier"><FONT size=3D-1>Service: =
$SRV</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>--- Finger Results =

---</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT =
size=3D-1>$FINGER</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>EOF</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>##### If the =
service is imap,=20
lets go ahead and snoop the session.</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>if [ $SRV=3Dimap =
];=20
then</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>snoop -v -c 5000 =
-o=20
/var/adm/$2_snoop.$$ $2 &amp;</FONT></FONT>=20
<P><FONT face=3D"Courier New,Courier"><FONT size=3D-1>fi</FONT></FONT> =
<BR>&nbsp;=20
<P><B><I><FONT face=3D"Helvetica-Narrow,Arial Narrow">Author&#8217;s =
bio</FONT></I></B>=20
<BR><I>Lance Spitzner enjoys learning by blowing up his Unix systems at =
home.=20
Before this, he was an <A=20
href=3D"http://www.enteract.com/~lspitz/officer.html">Officer in the =
Rapid=20
Deployment Force,</A> where he blew up things of a different nature. You =
can=20
reach him at <A =
href=3D"mailto:lance@honeynet.org">lance@honeynet.org</A> .</I>=20
<BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>&nbsp;=20
<CENTER>
<TABLE border=3D5>
  <TBODY>
  <TR>
    <TD><I><FONT face=3DBraggadocio><FONT color=3D#800000><FONT =
size=3D+2><A=20
      href=3D"http://www.enteract.com/~lspitz/pubs.html">Whitepapers /=20
      =
Publications</A></FONT></FONT></FONT></I></TD></TR></TBODY></TABLE></CENT=
ER></BODY></HTML>

