Visit our newest sister site!
Hundreds of free aircraft flight manuals
Civilian • Historical • Military • Declassified • FREE!


TUCoPS :: General Information :: ihg.txt

CIAC Incident Handling Guidelines






1







Table of Contents

1 - Introduction

1.1	Background   	3
1.2	Purpose   	3
1.3	Scope   	3
1.4	Relationship of Incident Handling Guidelines to CIAC Workshop   	4
1.5	Revision of Incident Handling Guidelines   	4

2 - Responding to Incidents

2.1	Definitions  	5
2.2	Causes of Incidents   	5
2.3	Avenues of Attacks   	5
2.4	Effects of an Attack   	6
2.5	Incentives for Efficient Incident Handling   	6
2.6	Priorities in Incident Handling   	7
2.7	Stages /Steps of Incident Handling   	7
			2.7.1	Protection   	7
			2.7.2	Identification   	8
			2.7.3	Containment   	9
			2.7.4	Eradication   	9
			2.7.5	Recovery   	10
			2.7.6	Follow-up   	10
2.8	Division of Responsibility   	10
2.9	Reporting of Incidents   	11
2.10 CIAC's Charter and Role   	15

3 - Responding to Viruses

3.1	Introduction   	16
3.2	Definition of Computer Virus   	16
3.3	Overview of Virus Actions   	17
3.4	History of Viruses   	17
3.5	Basic Mechanisms of Viruses   	18
3.6	Common Viruses and their Symptoms   	19
3.7	How Viruses Work   	25
3.8	Virus Weaknesses   	27
3.9	Virus Platforms   	30
3.10  Responding to a Virus Infection   	30
			3.10.1	Protection   	31
			3.10.2	Identification   	33
			3.10.3	Containment   	37
			3.10.4	Eradication   	37
			3.10.5	Recovery   	38
			3.10.6	Follow-up   	38

4 - Responding to Worm Attacks

4.1	Introduction   	39
4.2	Definition of Worm   	39
4.3	A Brief History of Worms   	39
4.4	Considerations in Worm Attacks   	39
4.5	Basic Mechanisms of Worms   	41
4.6	Recommended Steps for Responding   	42
			4.6.1	Protection   	42
			4.6.2	Identification   	43
			4.6.3	Containment   	43
			4.6.4	Eradication   	44
			4.6.5	Recovery   	44
			4.6.6	Follow-up   	45
4.7	Final Words about Worm Attacks   	46
  
5 - Responding to Hacker/Cracker Attacks 

5.1	Introduction   	47
5.2	Division of Responsibility   	47
5.3	Recommended Steps for Responding   	47 
 			5.3.1	Protection   	47
			5.3.2	Identification   	49
			5.3.3	Containment   	50
			5.3.4	Eradication   	51
			5.3.5	Recovery   	52
			5.3.6	Follow-up   	52
5.4	Automated Hacker/Cracker Attacks   	52
5.5	More on Passwords   	53	
 
6 - Vulnerabilities

6.1	Introduction   	55
6.2 	Types of Vulnerabilities   	55
6.3 	UNIX Vulnerabilities   	56
6.4 	VM Vulnerabilities   	56
6.5 	VMS Vulnerabilities   	57
6.6	MVS Vulnerabilities   	57
6.7 	File Protections   	57
6.8	Concluding Comments   	57
 
7 - Incident Handling Tools
	
7.1	Types of Tools Available   	59
7.2	System Security Tools   	60
7.3	Authentication Tools   	60
7.4	Intrusion Detection Tools   	61

8 -  Exercises and Scenarios   	62

References   	67

 1 - Introduction
 
1.1  Background
 
Responding to computer security incidents is generally not a simple matter.  This 
activity requires technical knowledge, communication and coordination among staff 
responding to the  incident, and adherence to applicable Department of Energy (DOE) 
orders on computer security (i.e., DOE Orders 1360.2A and 5637.1 for unclassified and 
classified computing, respectively).   Incidents over the last few years indicate 
that, if anything, responding to incidents is increasingly more complex.  There have 
been, for example, not one, but three largescale worm attacks since 1988.  Intrusions 
into machines are a serious concern, and increasing sophistication and collaboration 
among network attackers poses considerable threat to the integrity of computing 
resources.   Viruses continue to infect MS-DOS and Macintosh computers, despite 
widespread availability of virus detection and eradication software.

1.2  Purpose

These incident handling guidelines repeatedly mention the importance of establishing 
and following written procedures for handling incidents.  There are several reasons 
for developing such guidelines:

1.	The procedures in these guidelines will help site computer security personnel 
develop more complete and effective contingency response procedures.   

2.	There is usually some degree of confusion during an incident.  Written 
procedures for handling incidents minimize confusion.

3.	During times of increased stress (e.g., during a fast-moving incident), 
people's attention usually becomes more narrow, and memory is more prone to 
failure.  Without a written procedure, the likelihood that someone responding 
to an incident will respond ineffectively increases.

4.	Written procedures can help computer security personnel understand and consider 
the legal aspects of responding to attacks on computer systems.  

1.3	Scope

These guidelines do not comprise an exhaustive set of incident handling procedures.   
A lengthy set of guidelines would be too intimidating to read and to incorporate into 
site contingency response plans.    The discipline of responding to incidents is also 
very much in its infancy.  Because so much is yet to be learned about handling 
incidents, this version of these guidelines will necessarily lack some degree of 
sophistication and detail.  In addition, it is impossible to specify specific 
technical procedures for responding to the many types and versions of computer 
systems within DOE.  This guidelines document contains basic information about 
responding to incidents which can be used, regardless of hardware platform or 
operating system.  For specific technical details necessary to implement many of the 
recommendations in these guidelines, consult your system administrator or vendor.  

NOTE:  These guidelines are written for someone who has a working knowledge of the 
field of computer science.  The beginner in computer science will do well to refer to 
an introductory text in this area to understand many of the computer science concepts 
(e.g., functionality of operating systems) mentioned but not explained in these 
guidelines.
 


1.4	Relationship of Incident Handling Guidelines to CIAC Workshop

Since its inception in early 1989, the DOE's Computer Incident Advisory Capability 
(CIAC) team from Lawrence Livermore National Laboratory has assisted many sites in 
dealing with a large variety of incidents.  These guidelines reflect the corporate 
experience of the CIAC team.   The content of these guidelines also parallels the 
content of the two-day CIAC workshop, "Responding to Incidents," and are designed to 
help those unable to attend the workshop become familiar with the content of the 
workshop and participate in workshop exercises.   For more information about the CIAC 
workshop, contact:

	Thomas A. Longstaff
	University of California
	Lawrence Livermore National Laboratory 
	P.O. Box 808, L-619
	Livermore, CA  94550
	(415) 423-4416 or FTS 543-4416
	longstaf@pantera.llnl.gov

1.5 	Revision of Incident Handling Guidelines

These guidelines will periodically be revised and upgraded.  Send comments and 
feedback  to:

	E. Eugene Schultz
	University of California
	Lawrence Livermore National Laboratory 
	P.O. Box 808, L-619
	Livermore, CA  94550
	(415) 422-8193
	gschultz@pantera.llnl.gov

__________

UNIX is a registered trademark of AT&T.  
VMS and DECNET are  registered trademarks of Digital Equipment Corporation.  
Macintosh and Virus Rx are registered trademarks for Apple Computer Inc.   
Amiga is a registered trademark for Commodore Business Machines.
PC and IBM Scan are registered trademarks for International Business Machines.
PC tools is a registered trademark for Central Point Software.  
Sidekick is a registered trademark for Borland International.
Anti-Viral is a registered trademark for Softhansa of Berlin.
Anti-Virus is a registered trademark for OS Software.  
Code Safe is a registered trademark of ChrisWare.
Data Physician, VIRHUNT and RESSCAN are registered trademarks for Digital Dispatch, 
Inc. 
Ingres is a registered trademark for Ingres Corporation.
Oracle is a registered trademark for Oracle Corporation.
Port of Entry is a registered trademark for Sector Technologies.
Virex is a registered trademark for CE Software.
VirusSafe is a registered trademark for ComNetCo.


2 - Introduction

2.1	Definitions

The title of this document includes the term  incident.   In its most broad sense, 
incident  refers to an adverse event in a computer system or the threat of such an 
event occurring.   Penetrations into computer systems or hoaxes, therefore, fall 
within the definition of incident.  However, not all incidents are of interest to the 
computer security community.  Damage to systems due to power outages, for example, is 
not an incident within the domain of computer security.  For the purpose of this 
guidelines document, therefore, the term incident implies an incident related to 
computer security.    The term incident encompasses the following general categories 
of adverse events:

1. Compromise of integrity (e.g., when a virus infects a file) 

2. Denial of resource (e.g., when an attacker has set a system to single user 
mode, locking out all other users)

3. Penetration  (e.g., when a worm has breached a system)

4. Misuse (e.g., when an intruder makes unauthorized use of an account, or insider 
incidents)

5. Damage (e.g., when a virus scrambles a file or makes a hard disk inoperable)

6. Intrusions (e.g, hacker/cracker incidents)

In contrast, an event is any noticeable occurrence in a system.   A system crash and 
an unusual graphic display are both events.  Events may lead personnel to determine 
that an incident is occurring, although closer investigation of events may or may not 
indicate that something adverse from the standpoint of computer security is 
occurring.

2.2 Causes of Incidents

There are at least four generic causes of computer security incidents.  The first is 
malicious code, such as viruses, worms, trojan horses, time bombs, and pests.  
(Viruses, worms, etc. will be explained in detail shortly.)  The second is called 
procedural failures or improper acts.  Examples include transmitting information from 
a classified to an unclassified system or revealing one's password to someone else.   
A third cause can be called  intrusions or breakins.   For example, an intruder might 
bypass a system's authentication procedure, might attack a system using provided 
services (e.g., using UNIX commands such as sendmail, finger, or rsh), or might 
"snoop" (e.g., wiretapping, network monitoring, or electronic monitoring of 
terminals).  Finally, an incident might be caused by an insider attack.

2.3 Avenues of Attacks

Attacks originate through certain avenues or routes.  If a system were locked in a 
vault with security personnel surrounding it, and if the system were not connected to 
any other system or network,  there would be virtually no avenue of attack.  More 
typically, however, there are numerous avenues of attack, including:


 1. Local networks

 2. Devices connected illegally, such as a non-approved connection to a local   
network

 3. Gateways, which allow an attack to come from outside a network

 4. Attacks through communications devices, e.g., modems, telebits, and integrated   
systems digital networks (ISDN's)

 5. Shared disks (e.g., transmission of a virus from one machine to another)

 6. Downloaded or pirated software (e.g., from an electronic bulletin board)

 7. Others, including direct physical access by an attacker

2.4 Effects of an Attack

There are at least five effects of attacks which compromise computer security:

 1. Denial of service--Examples include network jamming, introducing fraudulent  
packets, and system crashes and/or poor system performance, in which people are   
unable to effectively use computing resources.

 2.  Unauthorized use or misuse of computing systems--System resources are tied  up 
by someone who does not have permission to use the system, or are used for non- 
approved purposes (e.g., playing games on a U.S. Government computer).

 3. Loss or alteration of data or programs--An example would be an attacker who  
penetrates a UNIX system, then modifies the wtemp program so that the intrusion will  
not be detected.  Another example would be an infection by the SCORES virus on  
Macintosh computers resulting in loss of data (the Scores virus may cause destruction  
of files).

 4.  Compromise of protected data--An example in a multi-level system would be  
sending a classified file to an uncleared user's account.

 5. Loss of trust in computing systems--Users may become hesitant to use a  computing 
system which is plagued by virus infections, for example.

2.5 Incentives for Efficient Incident Handling

Learning to respond efficiently to an incident is important for numerous reasons.   
The most important benefit is directly to human beings--preventing loss of human 
life.   Some computing systems are life critical systems, systems on which human life 
depends (e.g., by controlling some aspects of surgery in a hospital or assisting air 
traffic controllers).  

An important but often overlooked benefit is an economic one.   Having both technical 
and managerial personnel respond to an incident requires considerable resources, 
resources which could be utilized more profitably if an incident did not require 
their services.   If these personnel are trained to handle an incident efficiently, 
less of their time is required to deal with  that incident.   

A third benefit is protecting classified, sensitive, and/or proprietary information.   
One of the major dangers of a computer security incident is that information may be 
irrecoverably lost.   The loss of classified information jeopardizes our Nation's 
security.  Efficient incident handling minimizes this danger.

A fourth benefit is related to public relations.    News about computer security 
incidents tends to be damaging to an organization's stature among current or 
potential clients.  Efficient incident handling minimizes the potential for negative 
exposure.   

A final benefit of efficient incident handling is related to legal issues.   It is 
possible that in the near future organizations and/or institutions may be sued 
because one of their nodes was used to launch a network attack.  In a similar vein, 
people who develop patches or workarounds may be sued if the patches or workarounds 
are ineffective, resulting in damage to systems, or if the patches or workarounds 
themselves damage systems.  Knowing about operating system vulnerabilities and 
patterns of attacks, then taking appropriate measures is critical to circumventing 
possible legal problems.

2.6 Priorities in Incident Handling

It is important to prioritize actions to be taken during an incident well in advance 
of the time an incident occurs.  Sometimes an incident may be so complex that it is 
impossible to do everything at once to respond to it; priorities are essential.  
Although priorities will vary from organization-to-organization and institution-to-
institution, the following suggested priorities serve as a starting point for 
defining an organization/institution's response:

 o Priority one -- protect human life and people's safety; human life always has   
precedence over all other considerations

 o Priority two -- protect classified and/or sensitive data; our National safety and   
security is second only to protecting human life 

 o Priority three -- protect other data, including proprietary, scientific, 
managerial and   other data, because loss of data is costly in terms of resources

 o Priority four --prevent damage to systems (e.g., loss or alteration of system 
files,   damage to disk drives, etc.); damage to systems can result in costly down 
time   and recovery

 o Priority five -- minimize disruption of computing resources; it is better in many   
cases to shut a system down or disconnect from a network than to risk damage to   
data and/or systems

An important implication for defining priorities is that once human life and National 
security considerations have been addressed, it is generally more important to save 
data than system software and/or hardware.   Although it is undesirable to have any 
damage and/or loss during an incident, systems can be replaced; the loss or 
compromise of data (especially classified data), however, is usually not an 
acceptable outcome under any circumstances.   

2.7 Stages /Steps of Incident Handling

There are at least six identifiable stages of response to a computer security 
incident.   Knowing about each stage can help you respond more methodically (and thus 
efficiently), and can also help you develop a more complete contingency response plan 
for your organization.  

2.7.1  Protection

Part of handling an incident is being prepared to respond  before the incident 
occurs.  This includes establishing a suitable level of protections, so that 
if the incident becomes severe, the damage which can occur is limited.  
Protection includes preparing incident handling guidelines or a contingency 
response plan for your organization or site.  Having written plans eliminates 
much of the ambiguity which occurs during an incident, and will lead to a more 
appropriate and thorough set of responses.   Second, part of protection is 
preparing a method of notification, so you will know who to call and what 
everyone's phone number is.   For example, every member of DOE's Computer 
Incident Advisory Capability (CIAC) Team carries a card with every other team 
member's work and home phone numbers, as well as beeper numbers.  Third, your 
organization or site should establish backup procedures for every machine and 
system.  Having backups eliminates much of the threat of even a severe 
incident, in that backups preclude data loss.  Fourth, you should set up 
secure systems.  This involves eliminating vulnerabilities, establishing an 
effective password policy, and other procedures, all of which will be 
explained later in this document.  Finally, conducting training activities is 
part of protection.   It is important, for example, to conduct "dry runs," in 
which your computer security personnel, system administrators, and managers 
simulate handling an incident.  

2.7.2  Identification

This stage involves determining exactly what the problem is.  Of course, many 
if not most signs often associated with virus infections, system intrusions, 
etc. are simply anomalies, such as hardware failures.  To assist in 
identifying whether there really is an incident, it is usually helpful to 
obtain and use any detection  software which may be available.  For example, 
widely available software packages can greatly assist someone who thinks there 
may be a virus in a Macintosh computer.  Audit information is also extremely 
useful, especially in determining whether there is a network attack.   It is 
extremely important to obtain a system snapshot as soon as one suspects that 
something is wrong.  Many incidents cause a dynamic chain of events to occur, 
and an initial system snapshot may do more good in identifying the problem and 
any source of attack than most other actions which can be taken at this stage.  
Finally, it is important to start a log book.  Recording  system events, 
telephone conversations, time stamps, etc. can lead to a more rapid and 
systematic identification of the problem, and is the basis for subsequent 
stages of incident handling.  

 There are certain indications or "symptoms" of an incident which deserve special  
attention:

 o System crashes

 o New user accounts (e.g., the account RUMPLESTILTSKIN has unexplainedly   been 
created), or high activity on an account that has had virtually no activity for   
months

 o New files (usually with novel or strange file names, such as data.xx or k)

 o Accounting discrepancies (e.g., in a UNIX system you might notice that the   
accounting file called /usr/admin/lastlog has shrunk, something that should make   
you very suspicious that there may be an intruder)

 o Changes in file lengths or dates (e.g., a user should be suspicious if s/he   
observes that the .EXE files in an MS DOS computer have unexplainedly grown   by over 
1800 bytes)

 o Attempts to write to system (e.g., a system manager notices that a privileged   
user in a VMS system is attempting to alter RIGHTSLIST.DAT)

 o Data modification or deletion (e.g., files start to disappear)

 o Denial of service (e.g., a system manager and all other users become locked out   
of a UNIX system, which has been changed to single user mode)

 o Unexplained, poor system performance (e.g., system response time becomes   
unusually slow)

 o Anomalies (e.g., "GOTCHA" is displayed on a display terminal or there are   
frequent, unexplained "beeps")

 o Suspicious probes (e.g., there are numerous unsuccessful login attempts from   
another node)

 o Suspicious browsing (e.g., someone becomes a root user on a UNIX system and   
accesses file after file in one user's account, then another's)

None of these indications is absolute "proof" that an incident is occurring, 
nor are all of these indications normally observed when an incident occurs.   
If you observe any of  these indications, however, it is important to suspect 
that an incident might be occurring, and act accordingly.  There is no formula 
for determining with 100 percent accuracy that an incident is occurring 
(possible exception:  when a virus detection package indicates that your 
machine has the nVIR virus and you confirm this by examining contents of the 
nVIR resource in your Macintosh computer, you can be very certain that your 
machine is infected).  It is best at this point to collaborate with other 
technical and computer security personnel  to make a corporate decision about 
whether an incident is occurring.

2.7.3  Containment

The third stage of incident handling, containment, should occur only if the 
indications observed during stage two conclusively show that an incident is 
occurring.  The purpose of the containment stage is to limit the extent of an 
attack.  For example, if there is a virus which can damage the disk drive 
after a fixed number of boots, it is important to take action to prevent this 
damage from occurring.   Similarly,  it is important to limit the spread of a 
worm attack on a network as quickly as possible.  An essential part of 
containment is decision making, i.e., determining whether to shut a system 
down, to disconnect from a network, to monitor system or network activity, to 
set traps, to disable functions such as remote file transfer on a UNIX system, 
etc.).   Sometimes this decision is trivial; shut the system down if the 
system is classified or sensitive, or if proprietary information is at risk!  
In other cases, it is worthwhile to risk having some damage to the system if 
keeping the system up might enable you to identify an intruder.

The third stage, containment, should involve carrying out predetermined 
procedures.  Your organization or site should, for example, define acceptable 
risks in dealing with an incident, and should prescribe specific actions and 
strategies accordingly.  Finally, notification of cognizant authorities should 
occur during this stage (see Section 2.9 of this document).

2.7.4  Eradication

Once an incident has been detected, it is important to first think about 
containing the incident.  Once the incident has been contained, it is now time 
to eradicate the cause.   Software may be available to help you in this 
effort.  For example, eradication software is available to eliminate most 
viruses which infect small systems.     If any bogus files have been created, 
it is time to delete them at this point.   In the case of virus infections, it 
is important to clean and reformat any disks containing  infected files.  
(Important note: if a classified system has been infected with a virus, it is 
essential to follow guiadance issued by the DOE Office of Safeguards and 
Security.   We also strongly advise in this case that a low-level format be 
performed to ensure the integrity of classified information.)  Finally, ensure 
that all backups are clean.   Many systems infected with viruses become 
periodically reinfected simply because people do not systematically eradicate 
the virus from backups.

5. Recovery.  Once the cause of an incident has been eradicated, the recovery 
phase defines the next stage of action.  The goal of recovery to to return the 
system to normal.   In the case of a network-based attack, it is important to 
install patches for any operating system vulnerability which was exploited.  
Again, there is special guidance  for recovery in classified computing systems 
from the DOE Office of Safeguards and Security.

6. Follow-up.  One of the most important stages of responding to incidents is 
also the most often omitted---the follow-up stage.  This stage is important 
because it helps those involved in handling the incident develop a set of 
"lessons learned" to improve future performance in such situations.  This 
stage also provides information which justifies an organization's computer 
security effort to management, and yields information which may be essential 
in legal proceedings.

The most important element of the follow-up stage is performing a post-mortem 
analysis.  Exactly what happened, and at what times? How well did the staff 
involved in dealing with the incident do?  What kind of information did the 
staff need sooner, and how could they have gotten that information sooner?  
What would the staff do differently next time?  A  follow-up report is 
valuable in that it provides a reference to be used in case of other, similar 
incidents.  Creating a formal chronology of events (including time stamps) is 
also important for legal reasons.  Similarly, it is also important to as 
quickly as possible obtain a monetary estimate of the amount of damage the 
incident caused  in terms of any loss of software and files, hardware damage, 
and manpower costs to restore altered files, reconfigure affected systems, and 
so forth.   This estimate may become the basis for subsequent prosecution 
activity by the FBI, U.S. Attorney General's Office, etc.

2.8 Division of Responsibility

One of the most important strategies for responding to an incident is to divide 
responsibility among the people involved.   This strategy, which should be 
incorporated into every organization/site's incident handling procedures, minimizes 
duplication of effort, and ensures that the most important tasks will become 
completed in a timely manner.   In a similar vein, some responsibilities are more 
appropriate for some personnel than for others.  At a minimum, for example, technical 
responsibilities should be assigned to technically qualified personnel.   We 
recommend the following division of responsibilities:

1. End users.   End users should notify site computer security authorities of 
problems they notice.  Throughout this document end users will be called the 
"eyes and ears" of computer security--they frequently notice problems before 
anyone else does.  End users also should be told to not shut down a system or 
disconnect from a network without first consulting site authorities.   It many 
cases it is desirable to keep a system running to avoid subsequent damage or 
to stay on a network to attempt to localize attacks to that machine instead of 
risking more widespread attacks.  End users should also monitor and log system 
activities (at least until more personnel are available to assist in handling 
the incident), and obtain a system snapshot or a copy of infected files.   
Finally, end users should follow their organization/site's reporting 
procedures (see Section 2.9).

There are also some "do not's" for end users.  End users should not, for 
instance,  modify the system or application software.  Not only could 
modification produce damage, but it could also destroy evidence and/or 
important clues about the goals of an attack as well as to encourage an 
attacker to penetrate other machines.   It is also important for end users to 
avoid talking to the media.  Anything other than a well-deliberated and 
coordinated response to the media through one's public affairs office is 
likely to be a public relations catastrophe--avoid this mistake.

2. Technical personnel.   Technical personnel have the responsibility of 
verifying that an incident is occurring.  Once it is determined that an 
incident is in progress, technical personnel should follow the applicable 
recovery procedures which have been prepared in advance.  It is important to 
divide work whenever possible--avoid duplication of effort, and ensure that 
the very high priority work gets done.  Thus, it is important for technical 
personnel to communicate among each other frequently and systematically.  
Technical personnel should also log all activities (including recording time 
stamps), and gather information from system logs.  If an incident in a 
classified system is occurring, it is the responsibility of technical 
personnel to protect classified data, and to follow containment, eradication 
and recovery procedures pertaining to a classified system.  Finally, technical 
personnel should avoid talking to the media except through a public affairs 
office spokesperson.

3. Site managers.  Site managers need to prepare everyone else for handling an 
incident.  This process includes identifying key technical personnel, 
maintaining contact lists, and ensuring that effective written procedures are 
written, validated through training exercises, and widely available.  Site 
managers also need to obtain and coordinate technical support during an 
incident.  This may involve arranging for "shifts," since some incidents last 
for days and even weeks.  Finally, site managers need to coordinate with the 
organization/site's public affairs office to determine what information needs 
to be released  to the media.

2.9 Reporting of Incidents

DOE Orders 5637.1 and 1360.2A cover required reporting procedures for incidents in 
classified and unclassified computing systems, respectively.   These Orders contain 
many details concerning time requirements for reporting and what must be reported.  
In overview, reporting of both classified and unclassified incidents must occur 
through a chain of cognizant individuals.  

IMPORTANT NOTE:  Information about incidents and incident handling that pertains to 
classified DOE systems or may have implications for such systems is subject to the 
guidance in CG-SS-2 , the soon to be released DOE Classification Guide on Safeguards 
and Security.  Persons who handle incident reports at DOE sites should familiarize 
themselves with this guidance in order to avoid an inadvertent violation or 
compromise of classified information.  

For a classified incident, an end user or system manager (if there is such a person) 
reports the incident to the Computer Security System Officer (CSSO).  The CSSO then 
works with the Computer Security Site Manager (CSSM) on initial notification to DOE 
and to produce a historical report on the incident.  The CSSM then notifies the 
Computer Security Operations Manager (CSOM) at the applicable DOE Operations Office.   
The CSOM then notifies the Computer Security Program Manager (CSPM) at DOE 
Headquarters.

Suppose, for example, that a virus incident occurs in a classified MS-DOS system.  If 
there is a system manager, the end user would inform the system manager .  The system 
manager (or end user, if there is no system manager) would assess the technical 
problem to determine whether there is an incident.   If the MS-DOS computer is 
infected with a virus, the system manager would categorize the incident as a virus 
infection, then inform the CSSO.  The CSSO would notify the CSSM, who, in turn, would 
notify the CSOM that an incident is in progress.  The CSSM and CSSO would jointly 
produce a historical report.  The CSOM would inform the CSPM in a quarterly report of 
important and routine incidents.

For an unclassified incident, the end user notifies the site's Computer Protection 
Program Manager (CPPM).  The CPPM in turn notifies the Computer Protection Program 
Coordinator (CPPC) at the  DOE Operations Office for that site.  The CPPC then 
notifies the head of unclassified computer security at the Office of Computer 
Security Information Resources  Management (IRM) at DOE Headquarters.  

For example, if a virus infected an unclassified MS-DOS system, the user would notify 
the system manager (if there were one).  The user or system manager would then assess 
the technical problem, categorize the incident as a virus incident, and inform the 
CPPM of the situation.  The CPPM would notify the CPPC, who would notify IRM that an 
incident is in progress.  The CPPC and the head of unclassified computer security at 
IRM would jointly determine support needed to deal with the virus outbreak, and would 
determine how the incident would affect classified computing within DOE.  The CPPC 
would also advise IRM of findings, measures taken, and a plan of action. 

 






















































Example of Reporting Classified Incident within DOE























































Example of Reporting Unclassified Incident within DOE


2.10 CIAC's Charter and Role
 
CIAC is a resource for personnel at DOE sites faced with computer security incidents.  
The CIAC team consists of computer scientists from the University of California's 
Lawrence Livermore National Laboratory who are available to assist on a 24-hour per 
day basis.  This assistance might be in the form of direct technical assistance, 
information, or the names of technical personnel who can help with very specialized 
and complex problems.  CIAC coordinates efforts by DOE sites, other Government 
agencies and teams, and vendors.   CIAC also alerts and advises sites about 
vulnerabilities, potential attacks, and other threats.  Team members have written 
these guidelines, and are developing databases of vulnerabilities, viruses, known 
incidents, etc.  CIAC also engages in training and awareness activities, and has 
developed the two-day workshop on which this document is based.
 


3 - Responding to Viruses

3.1 Introduction
 
"It seems as if  you can't trust anybody these days, at least when it comes to 
software for MS- DOS systems and Macintosh computers. "  You have probably heard a 
friend relate how his or her computer became infected with a computer virus shortly 
after a new program that somebody else loaned him or her  was run.  Even your own 
machine may, in fact, have been affected.  Worse yet, so-called shrink wrap software 
is sometimes infected with computer viruses, as are pre-configured computers from 
manufacturers.  Did the salesperson who just demonstrated software on your machine 
also infect your machine?  You may not have thought about this possibility, but 
vendor demos are becoming an increasing problem in terms of virus infections.

Fear of computer viruses will cause otherwise rational people to take wholly 
irrational actions.  Their fear is understandable; there is a real, evident  threat 
of computer virus infections.  Viruses spread quickly and are often well hidden, and 
viruses can cause irreparable damage (although this is not usually the case).  
However, most people do not really understand what a computer virus is, and how to 
prevent, identify, contain and eradicate these fragments of harmful code.  This 
chapter will define what a computer virus is and will describe how most viruses work.  
This chapter will also acquaint you with computer viruses on common platforms, and 
will apply our computer incident handling methodology to the problem of dealing with 
a computer infected by a virus. 

3.2 Definition of Computer Virus

A computer virus is a segment of unwanted, self replicating code that (similar to its 
biological counterpart for which it is named) spreads from one computer to another by 
attaching itself to an application program or other executable system component.  In 
this manner  the virus survives and reproduces. A computer virus has several major 
characteristics, including:

o Self-replication, that is, it can make exact copies of itself

o Requires a host program to survive, and lives within the host program

o Usurps control of the host programs functions for the virus' benefit

A computer virus spreads through an infected host, usually an infected application.  
The infection spreads to a new computer by executing the infected application on the 
new system.  An infected program can be transmitted to the target system by disk or 
tape, modem or local network, or any other means and is executed on that system. The 
application then becomes infected, and the next time it is run, the virus will 
attempt to again replicate itself.  

While the computer virus and its biological counterpart seem similar, there are 
specific differences.  While a biological virus is a process of nature,  a computer 
virus was created by some malefactor.  The virus is simply a computer program written 
by somebody as an academic exercise, as a form a vandalism, or possibly to gain 
recognition among peers.  We are familiar with the motives of conventional vandals 
(e.g., those who break windows at a school) and terrorists, but creating of viruses 
seems to motivate another kind of person.   Virus writers appear to want a 
programming challenge,  but misdirect their creative ability.  Many virus writers 
also fail to anticipate  consequences of their behavior--the disruption and even 
destruction their "prank" will cause.


3.3 Overview of Virus Actions

There is no such thing as a generic or prototypic type of virus.  Every virus is to 
some degree unique.     There is some commonality, however, in the way viruses work: 

 o Infection of the host and its programs 

 o Survival and propagation of the viral code

 o Transmission of the infection to other host applications

 o Possible destructive side effects caused by the virus.

Most often the virus code will search for other programs that thus far have not been 
infected.  The virus will then select one of these programs and append itself to it 
as demonstrated below.  The virus will next modify the program so that it will 
execute the virus part of the code before  the actual program is executed.  In this 
way the virus will "get a chance to live" before the actual program is run.  With 
many viruses the user will probably not notice anything out of the ordinary initially 
because the requested program will run, and will cause no interference with the 
executing program.  

At this point virus action diverges broadly.  A virus may replicate virtually 
forever, causing no really harmful damage (as in the case of the WDEF virus on 
Macintosh computers).   In a few cases, the virus may be downright malicious, 
damaging applications, data files, or even the operating system, as in the case of 
the Disk Killer virus on MS-DOS computers.  Viruses have even been created to steal 
data and transmit it during non-working hours to another machine, where the virus 
author can peruse the information at his/her leisure.

3.4 History of Computer Viruses

The idea of self replicating code has been around since the late 1940's (see history 
shown  below).  John von Neuman's creating  the first self-reproducing program 
stimulated considerable interest in this topic.    At first developing self 
replicating code was an academic exercise.  Then it expanded into a game in Bell 
Laboratory's "core wars."  When main-frames were the only computing resource, the 
goal was to battle for core, the main memory of the computer.   Two opponent 
programmers were each given a segment of memory and allowed to launch one program.  
The computer  then divided compute time equally, first allowing one program to 
execute, then the other (in a time-sharing manner).  Each program had two goals, the 
first to live, and the second to destroy the other program.  Part of a successful 
survival strategy was for the program to make multiple copies of itself.   During the 
1960's and 1970's there was also a number of books on the topic of self-replicating 
code and the possibility of using this code maliciously.   Interest in self-
replicating code then waned temporarily.     With the increased interconnectivity 
between systems and availability of powerful computers in the last decade, however,  
there has been  increased interest in self- replicating code, and, in particular, 
viruses.  As personal computers became popular, the idea naturally extended itself to 
creating life across separate disconnected machines.   About the same time that 
personal computers were becoming numerous, the previously centralized computer was 
becoming part of a growing network of available hosts.  The growth of the network 
allowed a third form of life to spawn, the worm (which will be covered  in Chapter 5 
of this document).  Malicious code, both self-replicating and non self-replicating, 
began to be found.  An issue of Scientific American even contained an article about 
viruses in 1984.  
 



A Brief History of Computer Viruses


1949 - John von Neuman  A self reproducing program in Theory and Organization of  
Complicated Automata
1960 - Bell Laboratory's Core Wars
1972 - Dave Gerrold, When Harley Was One, First edition only
1975 - John Brunner:,Shockwave Rider
1977 - Thomas J. Ryan, The Adolescence of P-1
1980 - IBM Trojan.    All IBM 4341's stopped at 7:30 AM on 11 April 1980.  Logic bomb  
planted by disgruntled employee
1984 - Scientific American, A.K. Dewdney.   First article written on computer viruses 
1987 - Pakistani or Brain Virus, Lehigh Virus, Jerusalem Virus, IBM Christmas Virus
1988 - Morris Worm
1990 - Many known viruses on microcomputers and mainframes.

 
3.5 Basic Mechanisms of Viruses

Viruses generally work through a four stage process.  First, the virus must be 
transmitted to the host computer through an infected application or other executable 
program.  Once the infected program has been executed on the host computer, the virus 
enters the second stage.  The virus must now try to survive and propagate through the 
computer's file system.  Frequently, the virus will infect both applications and the 
operating system.    Sometimes the virus will also become resident in memory, so that 
it can infect disks when they are inserted (as in the case of WDEF)  or cause side 
effects, such as characters falling to the bottom of the screen, as in the case of 
the Cascade virus on personal computers.  The virus survives by disguising its 
presence (or at least not immediately announcing its presence), and by replicating as 
quickly as possible.  As it replicates it also attempts to infect floppies or network 
mounted file systems, etc., so that it can continue to propagate between computer 
systems.  This is the third stage of the virus' life, the attempt to infect other 
systems by retransmission of the viral code.  At some point in the life of many 
viruses, they enter the fourth and final stage.  Either by malicious or poor design 
practices, the virus causes interruptions in the processing of data or the corruption 
or destruction of data.


3.6	
Common Macintosh viruses

Names	
Resources
Type	ID	Size 	
Comments
“Peace” , MacMag virus	 INIT	6 	unknown   DR 	First virus on the Macintosh.  Displays 
“Peace on
Earth” message on March 2, 1988 and removes
itself the next day.  Distributed via a HyperCard
stack. An XCMD installed the INIT into the
System.  Its presence did cause problems with
some programs.  Remove the INIT Resource with
ResEdit.
nVIR Family of viruses
nVIRa, nVIRb, nVIRc, AIDS, Hpat,
MEV#, FLU, Jude (J-nVIR)	See below for specifics	This virus is named after its resources. 
There
are two general variations of this virus a and b. 
See below for specifics.
nVIRa	nVIR infected system file:
INIT	32	366     
nVIR	0 	2 
nVIR	1	378
nVIR	4	372      
nVIR	5	8       
nVIR	6	868       
nVIR	7	1562   

nVIR infected Application:
CODE	256	372      
nVIR	1	378
nVIR	2 	8        
nVIR	3	366      
nVIR	6	868       
nVIR	7	1562   	In the case of both nVIRa and nVIRb, the virus
first  copies the INIT 32 resource into the
System file, there after any system restart
causes the virus to become memory resident after
which any application launched will become
infected.   After a set time period nVIRa will
announce its presence by beeping or saying “Don’t
Panic”, if MacInTalk is present .
nVIRb, Hpat, MEV#, AIDS	nVIR infected system file:
INIT	32	416
nVIR	 0	2
nVIR	1	428
nVIR	4	 422
nVIR	5	8
nVIR	6	66
nVIR	7	2106

nVIR infected Application:
CODE	256	422
nVIR	1	428
nVIR	2 	8
nVIR	3	416
nVIR	6	66
nVIR	7	2106	nVIRb is similar to nVIRa, however it doesn’t use
MacInTalk.  

To detect either strain open the suspected
application with ResEdit and look for a CODE 256
resource of size 372 or 422 for nVIRa or nVIRb
respectively.

MEV# and AIDS are identical to nVIRb, except the
resource type will read MEV# or AIDS instead of
nVIR.

Hpat is the same as nVIRb except it adds a code
of 255 instead of 256 and has a resource type of
Hpat.
Dukakis		Written in HyperTalk on a HyperCard stack called
"NEWAPP.STK".  Adds itself to Home Card and other
stacks.  Flashes a message saying, "Dukakis for
President in 88, Peace on Earth, and have a nice
day."  This virus can be eliminated by using the
Hypertalk editor and removing the well commented
virus code.  
Scores, NASA	Scores infected system files:
INIT	6	772	1, 2, 3
INIT	10	1 020	0, 1, 4
INIT	17 	480	1, 3
atpl 	128	2410	0, 1,  4
DATA	400	7026	0, 1

Corresponding system files are:
0 = Desktop, 1 = System
2 = Note Pad,  3 = Scrapbook Files
4 = Scores

Scores infected applications:
CODE      n+1    7026
Where n = the id of the first unused
CODE resource. 	Most virulent of the known viruses. Written by a
disgruntled employee of EDS.  Replicates rapidly
and can cause unpredictable behavior.  Looks for
files of Creator VULT, TYPE ERIC. (Note the
desktop is ERIK, not ERIC)These files were
internal projects of EDS and not actual programs. 
Does not intentionally do damage, but causes
problems in other programs by being present.  
Sexy Ladies Trojan		Not a virus, but a Trojan Horse.  Given away at
1988 San Fransisco MacWorld Expo;erased whatever
hard disk or floppy disk it was on when it was
launched.
INIT29	
INIT29 infected system files:
INIT           29        712

INIT29 infected applications:
CODE      n+1    712
Where n = the id of the first unused
CODE resource. 	Infects disks the moment they are inserted into a
Mac with an infected system.  Its sole purpose is
to replicate itself , but has the unfortunate
side effect of  obliterating any legitimate INIT
29 in any file it infects. It will infect any
file with resources.  This makes it the only
virus (so far) which will attack documents as
well as applications.
WDEF-A, WDEF-B1	Infects the Desktop.  Need not run an
application to be infected, but can
spread on disk insertion.	Cases both the Macintosh IIci and the portable to
crash, severe performance problems on AppleTalk
networks with AppleShare servers, frequent
crashes when users try to save files in
applications under MultiFinder, problems with the
proper display of font styles (the outline style
in particular), damage to disks, Macintoshes with
8 megabytes of memory to crash,  Erratic system
behavior due to  incompatibility with the
"Virtual" INIT from Connectix.
MDEF, Garfield virus	Virus Detective DA, search string:
Resource MDEF & Name "Garfield"
Resource MDEF & ID = 5378
	MDEF or Garfield spreads through system and
application files, causes serious damage to the
menu system.  Causes both the Macintosh 128K and
512K to crash.  On the Macintosh IIci and IIfx,
the MDEF virus spreads from infected applications
to uninfected system files, but does not
propagate from infected systems to uninfected
applications. Vaccine will inform the user that
the system file has been infected, but is only
partially effective in preventing this virus from
infecting the system file, this may damage the
system.
Steroid trojan horse
QuickDraw Accelerator
	TYPE: INIT
CREATOR: QDAC
Code Size: 1080
Data Size: 267
ID: 148
Name: QuickDraw Accelerator
File Name: "  Steroid" (First 2
characters are ASCII 1)

	The purported purpose of Steroid is to make
QuickDraw run faster on computers with 9 inch
screens.    Steroid is actually an INIT that
contains malicious code to check for the system
date and to erase all mounted disks if this date
is July 1, 1990 or afterwards.  Examine system
folder; if Steroid is there, save a copy and then
drag the icon to the trash folder and empty
trash, restart the Mac.

Common Macintosh Viruses


Common MS-DOS Viruses

Name	Strains	Mode of Infection,
Attributes	Size
	Potential Damage	Comments
Pakistani Brain, Ashar, Shoe	8	RES,FDB	Boot
(7K)	BOT,RUN,DAT,FMT	Some variations corrupt  File 
Allocation Table.  Infects
Floppies Only.
Merritt, Alameda, Yale,	
Golden Gate 		8	RES,FDB	Boot
(1K)	BOT	Golden Gate variation will 
reformat drive C: after n
infections.  Infects Floppies
Only.
South African, Friday 13 the
COM	2	COM	512	PRG	Deletes host program if run on
Friday the 13th
Lehigh	1	RES,CC	OVER	PRG,FMT	
 Vienna, 648, Lisbon, Vienna-B,
Austrian, Dos-62, Unesco	12	COM	648	PRG	62-B variant deletes infected
files. Program errors cause
file fatalities.
Jerusalem,  New Jerusalem,
Jerusalem-B, Payday, Black
hole, Blackbox	13	RES, COM,EXE,OVR	1808	RUN,PRG	
April-1-COM, Suriv-01	1	RES,COM,	897	RUN,PRG	Message: “APRIL 1ST HA HA HA HA
YOU HAVE A VIRUS” , Deletes
host file.
APRIL-1-EXE, Suriv-02	1	RES,EXE	1488	RUN,PRG	Same message, but causes system
lock-up instead of deleting
host file.
Suriv-03	1	RES,COM,EXE,OVR		RUN,PRG	
Ping-Pong,Bouncing Ball,
Italian 	3	RES,FDB	Boot	RUN,BOT	Bouncing dot appears on screen. 
No other intentional damage.
Ping-Pong-B	 	RES,FDB,HDB	Boot	RUN,BOT	same as Ping-Pong
Marijuana, Stoned,New Zealand,
Australian	2	RES,FDB,HDP	Boot
(1K)	RUN,BOT,FAT	Message: “Your computer is now
stoned.  Legalize Marijuana.” 
Affects partition record on
hard disk.  No  intentional
damage is done.
Agiplan, 1536, Zero Bug,
Palette	1	RES,COM	1536	RUN,PRG	
1701,Cascade, Autumn,
Blackjack, Falling Leaves	7	ENC,RES,COM	1701	RUN,PRG	Characters fall to the bottom
of the screen.  Both 1701 and
1704 versions are also known
as: Autumn, Blackjack, Falling
Leaves
1704,Cascade-B		ENC,RES,COM	1704	RUN,PRG	
1704 Format		ENC,RES,COM	1704	RUN,PRG,FMT	
Oropax, Music, Musician	1	RES,COM	2756+	RUN,PRG	Plays musical melodies
repeatedly.  File size varies
from 2756 to 2860
DenZuk, Venezuelan, Search	6	RES, FDB	Boot	RUN,BOT	Displays a purple DENZUK
graphic on a CGA, EGA or VGA
screen.   Overwrites FAT.  SYS
variation modifies the SYS
command to preserve viral code
against destruction.  Infects
Floppies Only
Dbase	1	RES, COM	1864	DAT,RUN,PRG	
DataCrime, 1280	4	COM,ENC	1280	PRG,FMT/FAT	Attempts to format the disk, on
some systems this will fail,
but the attempt to format will
destroy the FAT or worse.  Will
require a low level format to
repair.
DataCrime-B		COM,ENC	1168	PRG,FMT/FAT	Same as above
DataCrime II	 	COM,EXE,ENC	1514	PRG,FMT/FAT	Same as above
DataCrime II-B		ENC,CC,COM,EXE	1917	PRG,FMT	
405		1	COM	Over	PRG	
FuManchu	1	RES,COM,EXE,OVR	2086	RUN,PRG	
Ohio	1	RES,FDB	Boot	BOT	
Icelandic, Disk-eating virus	3	RES,EXE	642	RUN,PRG	Marks hard disk clusters as 
bad
Icelandic II		RES,EXE	632	RUN,PRG	
Saratoga		RES,EXE	661	RUN,PRG	
December 24th		RES,EXE	848-863	RUN,PRG	infects one out of every ten
.EXE files run. If an infected
file is run on December 24th it
will stop any other program run
later, displaying the message
"Gledileg jol" (Merry
Christmas)
Israeli Boot, Swap	1	RES,FDB	Boot	BOT	Reverses order of letters typed
creating typographical errors.
Typo	1	RES,FDB,HDB	Boot	BOT,RUN	
Traceback, 3066	1	RES,COM,EXE	3066	PRG	
Disk Killer	1	RES,FDB,HDB	Boot	BOT,RUN,PRG,DAT,FMT	
Vacsina	1	RES,COM,EXE,OVR	1206	RUN,PRG	
Mix1	1	RES,EXE	1618	RUN,PRG	
Syslock, 3551	1	COM,EXE,ENC	3551	PRG,DAT	Some claim this is 3555 bytes
in size.
Pentagon	1	FDB	Boot	BOT	
Dark Avenger	1	RES,CC,COM,EXEOVR	1800	FAT,RUN,PRG,	Infects every executable file
that is opened.
AIDS	1	COM	Over	PRG	
2930	1	RES,COM,EXE	2930	PRG	
Yankee Doodle	1	RES,COM,EXE	2885	RUN,PRG	
Alabama	1	RES,EXE	1560	FAT,RUN,PRG	
Ghost 	2	COM	2351	BOT,PRG	
Ghost - Boot 		RES,FDB,HDB	Boot	BOT,RUN	
Typo/Fumble	1	RES,COM	867	RUN,PRG	
Sunday	1	RES,COM,EXE,OVR	1636	RUN,PRG	
Do-Nothing	1	COM	608	PRG	
Sylvia/Holland	1	RES,COM	1332	PRG	
Amstrad	1	COM	847	PRG	Adds code to front of any .COM
file in the current directory. 
The virus contains an
advertisement for Amstrad
computers.
Devil's Dance	1	RES,COM	941	RUN,PRG,DAT,FAT	
4096	1	RES,CC,COM,EXE,OVR	4096	RUN,PRG,DAT,FAT	Infects every executable file
that is opened.
Chaos	1	RES,FDB,HDB	Boot	BOT,RUN,PRG,FAT	
W13	2	RES,COM	534	PRG	
		RES,COM	507	PRG	A virus from Poland. Infected
programs are padded so their
length becomes a multiple of
512 bytes. Then the virus adds
637 bytes to the end of the
file.  It will also intercept
any disk write and change it
into a disk read.
Vcomm	1	RES,EXE	637	PRG,	
Perfume (alias 765 or "4711")	1	RES,COM,CC	765	PRG,RUN	May ask a question,  won't run
infected file unless the answer
is
"4711" (the name of a perfume). 
In a common variant, the
questions have been overwritten
with garbage.
Virus-90	1	RES,COM	857	PRG	

The Columns
	
Name:  List the most common name of the virus and any
aliases.  Also lists direct mutations of the virus.
	Size:  The infected file will increase in size by this
number of bytes.  Note some viruses are not as
consistent as others.  See the comments.  Over: means
that the virus overwrites the application and does not
add its code to the application.
No. of known strains:  List the number of known
relatives in this family of viruses.  Since people
mutate viruses frequently this number is not guaranteed
to be accurate	Comments:  Notes on unique characteristics of the
virus.

Mode of infection: Attributes: Describes the modus
operandi of the virus:
EXE	Infects .EXE files
COM	Infects .COM files
OVR	Infects program overlay files
FDB	Infects Floppy disk boot sectors
HDB	Infects Hard disk boot sectors
HDP	Infects Hard disk partition table	Potential Damage: Describes what kind of damage the
virus will attempt to do when it strikes.
BOT 	Overwrites (corrupts) the boot sector
RUN	Interferes with application while running
PRG	Corrupts program or overlay files
DAT	Corrupts data files
FMT	Attempts to format the hard disk
FAT	Corrupts file linkage or the FAT table
	RES	    Memory resident 

	Comments:  Notes on unique characteristics of the
virus.

Common MS-DOS viruses




3.7	How Viruses Work

An overview of virus mechanisms has already been presented.   In review, once a 
computer virus is transmitted to a new host via an infected application, it can then 
infect the new system.  After infecting the new system,  the virus will generally 
attempt to stay hidden by employing a variety of strategies.  At some point the virus 
may activate and can cause damage to the host.  This section is designed to help you 
understand in far greater detail how viruses work, including how virus actions are 
based on assumptions made about the host.   

1.	Transmission.   Computer viruses are programs.  They may enter a computer 
by any route used to transfer a computer program.  The most commonly used 
route is via a floppy disk.  Viruses can also be transmitted via a modem or a 
local area network.   We are aware of at least one computer manufacturer from 
Taiwan that even shipped computers infected with the Disk Killer virus-- quite 
a time saver!  Shrink wrap software is becoming increasingly unsafe in terms 
of risk of virus infection, and public domain and shareware software always 
carries a risk.  

The source of infection can vary.  Some people's machines become infected when 
someone borrows their computer for "just a minute to print a report," or "to 
show you something very quickly."  Others become infected when they purchase 
shrink-wrap software.  Even software houses are not immune from infection.  
These distributors  can pass software on to unsuspecting buyers, or (more 
commonly)will take back used  or demo'd software and repackage it, complete 
with a new shrink-wrap outer coating.  The disk may look as good as new, but 
the previous user's machine may have been infected with a virus.  You may 
innocently use software from a shared file server that has been infected, or 
use a shared computer connected to a central resource such as a laser-printer 
that has been infected.
 
2.	Infection.   Once an infected program is copied to the hard disk or onto 
one of the floppy disk drives, the target machine is usually not infected yet.  
In most cases the user  must actually run the infected software to release the 
virus on that machine.

3.	Execution.  When an infected program is run, the computer virus interrupts 
the normal execution of the program.  The virus quickly takes control, 
executes its viral code, then returns execution to the original program.   
Most viruses execute so quickly that a user will not notice the delay.   
Knowing about the structure of a program helps in understanding how a delay 
may not be detectable.   A program  consists of a linear list of machine op-
codes that the computer will execute one at a time  (see figure on next page)  
When a virus infects an executable, it often adds the viral code to the bottom 
of the program.  This increases  the program's length and changes its cyclic 
redundancy check (CRC), or in unused stack space, only changes the CRC.  The 
virus must then patch the first line of the program with a jump statement to 
the first line of the viral code.  Finally, the last line of the viral code is 
modified to return execution to the original program.

                                              

Computer virus infection

4.	Masquerading.  Once a virus infects a system it must try to survive both 
accidental encounters with the operating system or the user as well as 
purposeful search and destroy operations the user may attempt.  To accomplish 
this the virus may use several tactics.  The first is to lay dormant.  A 
biological virus that kills its host immediately has little chance to spread; 
the same principle applies to computer viruses.    A computer virus may wait 
for some specific trigger point, e.g., a designated number of boots on the 
infected machine to occur before it causes any destructive or disruptive 
effects to occur.  This gives the virus time to spread throughout the host 
system as well as to other systems with which the host has had contact before 
someone is likely to notice the virus and eradicate it.

Viruses often employ some form of encryption to make them harder to discover. 
For example, the DataCrime (Columbus Day) virus is almost completely encrypted 
except for a small section of code that decrypts the rest of the program.  A 
search program could easily miss this viral code.  Besides trying to hide from 
detection programs, viruses can actively fight detection by modifying common 
detection programs.  Viruses also find innovative ways to hide, such as in the 
stack space of other programs, or by marking disk sectors as bad and storing 
the virus code in these sectors.  
 
5.	Activation.  The activation mechanism checks for the occurrence of a 
specific event.  Not all viruses have an activation mechanism.   If the virus 
has one and the specific event occurs, however,  the virus will try to 
accomplish the objective of its author.  A virus may activate based on two 
major types of events.  If the activation mechanism checks for a specific date 
and time, the virus is called a time bomb.  Examples of viruses which have 
time bomb mechanisms are DataCrime (the Columbus Day) virus and the Jerusalem 
virus on MS-DOS computers.  If the virus checks for specific circumstances, 
such as the number of system boots, then the virus is called a logic bomb.  An 
example of a logic bomb is the Lehigh-2 virus, which counts the number of 
infections that have occurred.  Unfortunately, viruses can activate on the 
basis of either  logic or a  time bomb, or both, depending on the skill and 
motives of the  virus author.   Other viruses are never intended to do 
intentional harm.  An example is the WDEF virus for the Macintosh computers.   
However, even these programs can create real havoc such as slowing down or 
disrupting a computer system, or can even result in loss of data.  

6.	Damage.  The actual damage a computer virus may do is extremely  variable.  
Many viruses try to damage the data on the host's hard disk.  Remember from 
Chapter 2 that losing data on a computer system generally is more of a loss 
than damage to the system itself and/or its hardware.  If there are no 
backups, any data loss can be permanent.  Other viruses are intended to damage 
specific targets.  For example, the Scores virus was written by a disgruntled 
employee  who was searching for a specific program used only internally within 
a particular company.  The program looks for the files of creator VULT and of 
type ERIC.  Theoretically, Scores should not  affect other computers, but due 
to incompatibilities on systems infected by Scores, Scores can damage files.  
Other viruses accidently do damage due to bugs/programming errors.    No 
matter what the damage, however, a computer virus will steal cycles, that is, 
it takes away time and memory that other programs should have.

3.8	Virus Weaknesses

Viruses may be a formidable challenge, but they are not undefeatable for three 
reasons.  First, viruses must make assumptions about their hosts.  If these 
assumptions fail, the computer will crash due to system incompatibilities, the virus 
may be easily detected, and/or the virus will fail to spread.  Second, a virus may 
try to masquerade its presence, but it can never disguise itself perfectly, because 
viruses need a place to live and a time to run.  Many viruses increase the original 
file size of the hosts they infect.  In addition, they usually modify the CRC, a 
special code used to check the integrity of files, leaving viruses prone to 
detection.    Finally,  the third virus weakness is that because a small portion of 
virus code must remain constant, viruses leave fingerprints, i.e., observable 
characteristics that allow them to be identified and subsequently eradicated.

Most anti-viral software takes advantage of one of these three weaknesses.  The most 
common scanning software looks for fingerprints within all system executables by 
searching all mounted media for a specific binary pattern for each known virus.  The 
problem with scanners is that they only work for known viruses.  Another class of 
anti-viral software uses the other two weaknesses of viruses to detect changes in the 
file size or file CRC.  Even unknown viruses will probably have to modify one of 
these two file characteristics.  If the viruses do, they can be detected.

NOTE:  You can implement some anti-viral protection without using anti-viral 
software.  Since most viruses affect file size, you can keep a record of original 
files sizes, then  can compare current file size if you ever suspect that something 
is amiss.

3.9 Virus Platforms

We will look at two platforms that have been the most common target for computer 
viruses, MS-DOS based computers, and the Apple Macintosh computers.  In addition we 
will look at the possibility of computer viruses infecting multi-user computers, such 
as UNIX- or VMS-based machines.

1.	MS DOS computers.   Computers running the MS-DOS platform present a 
tempting target to the virus author.  One major weakness of the MS-DOS machine 
and its non-compatible cousins such as the Atari and Macintosh is that these 
types of machines run in a single state.  Running in a single state means that 
the operating system is not protected from its applications by the hardware, 
as is the case with UNIX and other multi-user operating systems.  In a single-
state machine, for example, when an application gets control, as signified by 
the program counter pointing to the application code, it never has to give the 
program counter back.  In multi-user machines, a particular application may 
try to keep the program counter, but the operating system can take it back, 
giving the user or software a chance to kill the errant process.

Since any application can take control of the personal computer at any point, 
MS-DOS is susceptable to infection in any of the following:

	o boot record

	o system files

	o application files

Boot infectors attach viral code to the boot record or even replace the boot 
record altogether.  The boot record exists on every single MS-DOS disk, and 
contains just enough information for the computer to load the rest of the 
operating system.  If one of these boot sector viruses infects a machine, the 
virus will take control when the machine is initially booted, and will control 
the machine from that point on.  These programs often stay in memory and 
infect other programs as well as possibly disrupting the system substantially.  

A virus that stays in memory is very similar to a memory resident utility such 
as Sidekick or PCtools.  This type of virus uses one of the many ways a 
program can terminate and stay resident (TSR) to stay active and control the 
program counter and the interrupts.  A resident virus can monitor all 
interrupts and trap all system events.  If the virus is  monitoring a system, 
it can be programmed to take a number of sophisticated measures to accomplish 
its task.  For example, it can hide if it appears that a detection program is 
being run.  It can modify or destroy data, or create havoc with system 
activities and performance.

System infectors infect the operating system  (which is actually a very 
special application).  Examples in the PC arena include IBMDOS.COM, 
IBMBIOS.COM and in the case of the IBM version of PC-DOS, COMMAND.COM .  Many 
are not familiar with the first two files mentioned.  When you format a disk 
with the /s option, as in:

		FORMAT A: /S

IBMDOS.COM, IBMBIOS.COM  are created on the new disk as hidden files.  Some 
viruses specialize in infecting these three special files.  Most often, if the 
hidden system files or the equally hidden boot record is infected, the virus' 
effects will not be noticeable to the user.  Because IBMDOS.COM and 
IBMBIOS.COM are hidden files, most users will not recognize if the size of 
these files grows.  Just as with boot infectors, the system infectors can 
monitor all system activity, look for new disks to infect, and even take total 
control of the systems activities.  
  
Application infectors can infect any application program.  The first viruses 
infected only .COM files because the code was somewhat more simple to write.  
Later some viruses were modified (or mutated, to use the analogy of biological 
viruses) to infect only .EXE files.  The next extension of this malicious work 
was evidenced by newer viruses that could infect both .EXE and .COM files.  
The code for infecting both .EXE and .COM files was even more complicated.  An 
example of this is the DataCrime (Columbus Day) virus.

DataCrime, 1280	4	COM,ENC	1280	PRG,FMT/FAT	Attempts to format the disk, on some
systems this will fail, but the
attempt to format will destroy the
FAT or worse.  Will require a low
level format to repair.
DataCrime-B		COM,ENC	1168	PRG,FMT/FAT	Same as above
DataCrime II	 	COM,EXE,ENC	1514	PRG,FMT/FAT	Same as above
DataCrime II-B		ENC,CC,COM,EXE	1917	PRG,FMT	

The DataCrime Virus Family


DataCrime was originally written as a .COM infector.  Later it was mutated to 
become both a .COM and .EXE infector.  We call slightly different viruses by 
the same family name if the code is substantially the same.  In the case of 
the DataCrime virus, the major infectious and destructive portions of the code 
remained the same.  Only the method of attaching the code was changed by 
determining if the file was a .EXE or .COM file, then branching to the 
appropriate routine to cause the infection.  Because the code is fundamentally 
similar, if your computer were infected by DataCrime, the outward symptoms of 
the infection would be virtually indistinguishable.  However, close analysis 
would reveal whether .EXE or .COM or both types of files were infected, and, 
thus, the particular family member which infected your machine.

2.	Macintosh computers.  The operating system of the Macintosh is 
fundamentally different in architecture from MS-DOS machines.  Nevertheless, 
Macintosh computers are also especially vulnerable to virus infections because 
they also have single-state execution.  In fact, the application structure of 
Macintosh programs and the event queue structure of the operating system 
greatly facilitate adding a virus to a Macintosh application.  An application 
on the Macintosh can be infected by adding viral code to the resource bundle 
of the application.  The virus can then have itself scheduled in the event 
queue.   In this manner the virus can obtain a certain portion of central 
processing unit (CPU) time for its own malicious activities.

In the case of the nVIR virus, for example, the virus adds a CODE resource 
#256.   The virus then patches the jump table so that it will get executed 
first.  After infecting the computer, the virus returns control to the 
application, so the user is not aware of the infection.  After the viral code 
is executed,  nVIR first copies the INIT 32 resource into the system file.  
Now any system restart causes the virus to become memory resident,  after 
which any application launched will become infected.   After a set time 
period,  nVIRa announces its presence by beeping or, if MacInTalk is present,  
saying “Don’t Panic.”

Similar to the boot record of a MS-DOS PC, the Macintosh has a hidden file 
called the desktop.   However, the function of the desktop is to remember the 
position of all the files, and the windows of that disk.  The desktop is a 
program and its run anytime something that affects the desktop is changed, 
e.g., opening a folder or disk, or moving a file.  The WDEF virus takes 
advantage of this operation.  Even if you only accept data-disks from other 
people, and even if you never run unsafe software, your machine can 
nevertheless get WDEF.  WDEF spreads from sharing floppy disks, including any 
Macintosh disk containing data or applications.  If an infected disk is 
inserted into a machine and the desktop is run, e.g., by copying a file, other 
desktops on the machine, e.g., the hard-disk desktop, will be infected.

3. 	Mainframe computers.   Larger computers, such as those running UNIX or VMS, 
can also in theory be infected.  However, although several claims of virus 
infections of mainframe computers have been made periodically,  no mainframe 
viruses have as yet been detected and publically verified.  If a mainframe 
virus were to be released, it  could reproduce itself in three possible ways, 
namely by:

	o Modifying source code

	o Patching executable code

	o Infecting data files

The first method would involve modifying the source code of an application.  
Since programs are often shared as source, a virus could be written to modify 
the source of other source programs on the computer.  An especially ripe 
target would be the compiler itself, such as cc (the C compiler).  

Another method would be to infect executable applications, much as PC viruses 
do, by adding executable code to an application binary.  Fortunately,  some 
link editors in UNIX and VMS make code unrelocateable, making this method of 
infecting a mainframe computer nearly  impossible.

Another possible avenue of attack would be to modify a data file.  Many data 
files contain executable meta-commands that are interpreted by a pre-
processor.  If a preprocessor or screen formatting process such as curses is 
interpreting data, it could be vulnerable to attack.

Because mainframe viruses do not appear to exist outside of the closed, 
laboratory environment at this time, greater detail about these viruses is not 
warranted.   Fortunately, because mainframes are not single-state machines and 
because their operating and file systems are more complex, mainframes make 
difficult targets for viruses.  As mentioned above, executable code is often 
unrelocateable on a mainframe.  In addition, code usually cannot be executed 
in a data segment.  Finally, to be modified, files must have write access by 
the program .  The built-in safeguards of these operating systems provides 
some protection against the ravages of potential viruses.

3.10	 Responding to a Virus Infection

Some primary considerations for handling a computer virus infection include:

o Determining that your machine has actually been infected

o Containment and isolation of the infected host(s)

o Evaluation of the actual virus, and forming an eradication plan

o Cleaning up all media with which the infected host had contact 

o Notifying all computer users that have had contact with the system 

Dealing with a virus will be greatly aided by your using a notebook.  You should 
start your notebook by recording your current system configuration.  List any network 
services you use as well.  Then jot down symptoms that your computer experienced 
before and after you suspected a virus infection.  Also create a list of media or 
network contact that you may have made recently.  If you use scanning software, 
include printouts from the scanner with your notebook.  If you are running more 
advanced, database-driven virus software, include any warning messages, or printouts 
displayed.

The first thing you should remember when you suspect that your computer has been 
infected by a virus  is that errors in applications, misconfigurations, or 
interactions between hardware and software can create pseudosymptoms of viruses.  For 
example, you may load your applications from a shared file server for execution on 
your local machine.  Often an advantage to this system is that the application can be 
upgraded for all users at one time.  Unfortunately, the reverse side is that the 
upgrade may not be compatible with your particular machine.  If you are not aware of 
software upgrades and new incompatibilities created by the software, you may be 
experiencing a psuedosymptom of a computer virus.  Another psuedosymptom frequently 
observed  is due to media, especially hard disks, approaching capacity.  Some 
applications do not have a fail soft mechanism for a full hard disk.  Defective 
media, again especially hard-disks, can also cause data corruption.  Ironically, 
people have had to deal with scrambled file allocation tables (FATs) on hard-disks 
and floppies long before computer viruses were a problem!  

We recommend that you  maintain a curious and somewhat skeptical mind-set while 
exploring the symptoms you are experiencing.  First, compare your symptoms to the 
known symptoms listed in the appendix of this document.  Do the observed symptoms 
match those of any known virus?  If not, your computer may still have a virus, 
because new viruses are being discovered almost every month.  Contrawise, your 
machine may not have a virus.  It may pay to pursue other strategies as well.  This 
chapter will help you understand more about handling a computer virus incident, and 
how to apply these methods to arrive at a valid answer.
 
3.10.1  Protection 

The first and most important stage of computer virus incident handling is to 
as much as possible avoid becoming infected in the first place.  At the same 
time,  it is important to be prepared if your computer does become infected by 
a virus.

Backups of all of your valuable programs and data are the best insurance you 
can purchase for a speedy recovery from a virus infection.  Backups help in 
three ways.   First, if a virus destroys the data on your hard-disk, you may 
lose many months if not years of work.  Why risk your labor to a faulty 
mechanical drive, or a computer virus?   If data or information is important 
to you, back-it up.   Secondly, backups help you return your machine to an 
earlier state. If you suspect that a virus has erased your hard-disk, it is 
too late to make a determination after it happens .  A backup (even if 
infected) will allow you to restore your machine for additional analysis.  
Finally, even if your backup is infected, all  viruses known to date do not 
infect data, so you can still restore the infected back-up.   Copy the data to 
clean media, then reformat the disk.  (Note:  with this procedure, you cannot 
save your applications).

Some programs can restore an application after the application has become 
infected.  However, it can be risky trusting an application that has been 
repaired by a virus-tool, especially with PCs.  A better approach is to 
protect (write-protect) your distribution disks, and make backup copies of 
every application when you take it out of its box.  Except when there are 
certain copy protection schemes, their is absolutely no reason why you should 
insert a write-enabled disk into a computer to copy an application to your 
hard-disk.  Every application that you insert in your machine should be write-
protected.  No known virus can circumvent the hardware that does write 
protection, so if it is write-protected, it is safe!  

This suggests procedures that are similar to a good insurance plan.   First, 
always write- protect your applications as soon as you get them.   Then make a 
backup copy from the write-protected original.   Next periodically backup your 
data.  With your applications safely protected on write-protected media, you 
don't necessarily need to backup all of your applications.  If you back-up 
only data with an incremental back-up, it will take very little time or 
effort.

Virus protection programs can also be very useful.   A whole new software 
market has been created by the need for anti-viral software products.  One of 
the first types of products is a guardian program that warns users when an 
application tries to write to the hard disk.  While useful in analysis, this 
kind of software is usually not good for day-to-day operation because it tends 
to generate a large number of false alarms (false detections).  Consequently, 
the user may bypass this package with the result that  there may be no 
protection against virus infections.  The next class of anti-viral software to 
come on the market recently is the scanner.  A virus scanner or hunter quickly 
examines each byte of every application on the media you are examining.  The 
scanner has a database of virus signatures.  If this type of product finds the 
signature (e.g., an identifying string) embedded in an application, it gives a 
warning, and (usually) some option to remove the virus.  For example, a 
fictitious scanner might display  the following:


Anti-vir 23.3 running...........

Black-hole virus found in the application runme
Do you want to remove this virus? (y/n) y

Black-hole removed

 
Scanning software can make your job easier.  However, it is dangerous to 
depend on such a product, because scanning software has many pitfalls.  One 
problem (possibly the most critical one) is that scanning software can find 
only the viruses it knows about.  If a new virus or one of which the author of 
the scanning program was not aware infects your machine, the scanner will pass 
it by without a warning.   A second class of software actually watches for 
changes to your file system.  This kind of software will detect new viruses, 
since it does not depend on file signatures.  Examples of commercially 
available software in this class  includes  Data Physician by Digital Dispatch 
Inc. and  CodeSafe by ChrisWare.


Some Common Anti-Viral Software Packages


•PC Prevention Programs
	flushot+
	DDI Data Physician
	Chris Ware CodeSafe


•MAC Prevention Programs
	Virex
	Dukakis Vaccine
	GateKeeper/Gatekeeper Aid
	RWatcher
	Vaccine
	VirusWarning INIT


 
 
When installing new applications, do not take unnecessary chances.  Whether 
you download software or purchase it shrink-wrapped, you should now know that 
you should suspect this software.  Examine the software before you load it.  
Look at the application package.  Does it look professionally prepared, and is 
the documentation typeset?  Read the license and at least some of the 
introductory text.  Is this software  suspicious?  

For example here is a portion of a license agreement from a disk that purports 
to be an  information package about the AIDS disease:

``In case of your breach of this license, PC Cyborg reserves the right to 
take any  legal action necessary to recover any outstanding debts payable to 
the PC Cyborg Corp. and to use program mechanisms to insure termination of 
your use of these programs. The mechanisms will adversely affect other 
programs on your microcomputer.''

Does this look suspicious?  It should.  This is the license agreement that was 
enclosed with the PC Cyborg AIDS trojan.  If loaded and executed, this trojan 
would hide all of your computer's files, and then would demand a payment to 
get them back.  The message you would see after this malicious code had hidden 
the files would ask you to send a $387 fee to a Panama City address.

If you are an extra careful type of person, you might consider rigorously 
examining a working copy of a new application with something such as Norton or 
Mace Utilities.  Look at the messages in the software.  While you may not 
always be able to obtain conclusive evidence, this procedure will help you 
spot many viruses that use unencrypted message strings.

Before actually installing the program, you should use a virus scanning 
program to check the media.  Another optional step is to use an isolated test 
machine, if you have one at your disposal.  You should consider exercising the 
package on the test machine for at least 30 days before you install it on your 
operational computer.  Before running the package, record the original file 
sizes and  the CRCs, then compare them to current values.
 
To summarize, when you install new software onto your system you should take 
the following actions:

o Back-up the computer
o Write protect the original disks
o Examine the software package
o Run an anti-viral scanner on the distribution media
o Install the software on a test machine
o Install the package
 
3.10.2  Identification  

Even if you follow the prevention strategy above, we cannot  guarantee that 
you will never get a virus.  If you suspect that your machine has become 
infected by a computer virus, the next step is to identify the problem.  As 
discussed previously, not all problems (e.g., anomalies, poor performance) 
that you encounter with your computer will be a virus.  In fact, polls in the 
industry suggest that the probability of becoming infected by a computer virus 
is only about four percent.  

Before you proceed any further, you may want to create a fresh back-up of your 
system.  This ensures that if you or the virus actually damage any data, you 
can return to a known state.   Do not overwrite your old backup, but create a 
new one.  Remember, even if your back-up is infected, you probably can recover 
the data files.

To identify the virus or problem,you should first record in your notebook the 
symptoms you have observed in the past and are observing now.  Then you should 
look at the list of viruses and their symptoms (see Section 3.6)  to determine 
if the symptoms you are currently observing in your computer  match those of 
any given virus.  If they do and you have eliminated other reasons for unusual 
system behavior, then you should proceed to the next step, containment.





















































Virus identification tools
 



Virus identification tools (see figure above) have become so useful that they 
are almost indispensable in the modern anti-viral arsenal.  While tools are 
not absolutely necessary, they can make dealing with a virus considerably 
easier.  Identification tools are not foolproof, since they can only identify 
the viruses that they are programmed to identify.   For such viruses, however, 
these tools give almost positive proof that your machine is indeed infected.  
Many of the programs listed above can also help eliminate the virus and repair 
damage as well.

Let's look at a hypothetical example.  Let's suppose you are about to use the 
shared MS-DOS computer in your office when you notice characters falling from 
their position on the screen, onto a heap at the bottom of the screen.  You 
suspect something is amiss.  Upon inspecting the tables in Section 3.6 of this 
document, you find the entry:

1701,Cascade, Autumn, Blackjack,
Falling Leaves	7	ENC,RES,COM	1701	RUN,PRG	Characters fall to the bottom of the
screen.  Both 1701 and 1704 versions
are also known as: Autumn, Blackjack,
Falling Leaves

You now strongly suspect that your PC has the 1701 or Cascade virus.  You also 
notice as you press the return key that the screen returns to normal, and you 
are in the middle of an application.  You quit the application (e.g., 
Interleaf) and return to the DOS prompt.  Just to be sure, you decide to try 
your trusty, if a little bit rusty, virus scanning program.  You take the 
program and write-protect the disk so that it will not become infected.  You 
now insert the disk into the A: drive and execute it.  The drive whirls; you 
get reassuring words that its working; but upon completion the program 
indicates the machine is clean.

What can this mean?  You look at the documentation for the scanning program.  
You find that the program detects the 1701 virus, so what could be wrong?  Two 
things could be happening.  First, this could be a mutant of the 1701 virus 
that your scanning tool is not programmed to detect.  Second, you may not have 
a virus.  Some screen-saving programs, such as the one in Interleaf, can have 
virtually the same behavior as some viruses.  It pays to be careful, but in 
this case what appeared to be a virus infection was actually just the normal 
action of a program.

The previous example probably best illustrates why virus identification is 
still a "black-art."  The best way to attack the problem of identification is 
with appropriate knowledge and procedures for dealing with viruses.  You 
should know your platform, your applications, and how platforms and 
applications  interact.  Note strange behavior on your system and develop 
hypotheses to be tested.

Another example actually happened to a CIAC team member while he was getting 
an estimate to repair his car.  The clerk was looking up some part numbers and 
availability of these parts on a Macintosh IIx.  The CIAC team member noticed 
that the machine was slower than should be the case for a CPU such as the 
Macintosh IIx, and was also aware that the WDEF virus was becoming very 
prevalent in the San Francisco Bay Area.   He asked the clerk if it would be 
o.k. to check the Macintosh for viruses.    Using Disinfectant (a Macintosh 
virus detection tool),  the CIAC team member found the WDEF-A virus on the 
machine, as well as all the rest of the Macintoshes in the immediate work 
area.

To repeat, software tools are very useful.   Remember, however, that knowledge 
and good analysis procedures are at least as important in identifying and 
dealing with viruses.

3.10.3  Containment

 A virus is not fundamentally like a worm that replicates independently of 
what users do.   Responding to a virus, therefore, is not as dependent on the 
speed of your reaction (except, perhaps, when a virus attacks something such 
as a central file server machine).  If you suspect your machine has a virus, 
do not automatically reach for the off switch on your computer.  Turning your 
machine off is extremely unlikely to solve any problems.   We recommend that 
unless you know it is better to turn your machine off, leave it on.  If a 
virus has infected your computer and the virus counts the number of boots 
(waiting for the count to reach a certain number), your action might push the 
count over, causing it to attack your machine the next time you turn it on.  
For example, in the case of the Disk Killer virus it is actually better to let 
the virus finish its actions before you do anything.  After the virus finishes 
damaging the data on your hard disk, Disk Killer actually writes information 
about what it affected .   Some anti-viral utilities, therefore, can actually 
restore the disk.  There are a few other viruses, however, for which the best 
response is to turn off your machine as fast as possible.   This will give you 
a chance to recover the entire disk.   Again, being familiar with viruses and 
their actions is a critical component of dealing with viruses.  

When you suspect a computer virus has infected a computer, you should 
immediately establish a quarantine.  Disconnect the infected machine from any 
network, then display a sign to caution people against using the computer.  
Once you have verified the infection, tighten the quarantine--do not let 
anyone use the computer until it is verifiably clean.
 
3.10.4  Eradication  

Eradication is the process of removing a computer virus from your  system.  
The surest way to recover from a computer virus is to start with a clean 
system again.  A clean system is one in which the memory (both RAM and EEPROM) 
is clear,  and the hard-disk has been low-level formatted.  Since some viruses 
hide in the partition table or other specific portions of the disk, to fully 
recover it is important to erase the entire disk (including system- 
and hardware-specific areas such as the partition table).  

Since a low-level format is completely destructive of all data on your disk, 
you will want to first make a full back-up of your data files.  Some viruses, 
such as the Dukakis virus (which infects Hypercard stacks), actually infect 
data-files .  This is, however, a rare case.  In most cases data cannot be 
infected from currently known viruses.  For the most part, therefore, you are 
safe from reinfection if you restore your data from an infected disk.  
However, the applications must come from clean source disks, not your hard 
disk if you wish to be safe.

It is important to be careful how you reformat your disk.  You cannot simply 
issue the reformat command while the virus is in memory.   You must power down 
the system, and then reboot from some trusted source, perhaps a diskette if 
the diskette boots first.  Then issue the formatting instructions from that 
trusted diskette or other clean source.

Some anti-viral products will also remove known viruses from applications.  
Usually on Macintosh computers it is safe to allow these utilities to work.  
This is because the process of adding code in a Macintosh application is quite 
clean, and so is the removal.  On the MS-DOS machines, however, automated 
recovery has mixed results.  If you are unsure, check the documentation.  Most 
anti-viral vendors are very straightforward in describing the particular 
viruses for which their products are effective.  

NOTE:  If a classified system has become infected by a virus, it is essential 
to follow  guidance issued by the DOE Office of Safeguards and Security.  In 
addition, we strongly recommend doing a low-level format on your classified 
system's hard disk.

3.10.5  Recovery

 Recovery is the process of returning to normal operation. Once you have clean 
hardware, you can begin restoring your system.  Take out your original write-
protected applications disks and rebuild your file structure.  If you have 
scanning software, scan your hard disk to ensure that none of the original 
disks were infected.  Then carefully copy the data disk back to the hard disk.  
Don't allow any executable that might have found its way to the back-up disks 
to be copied onto the hard disk.

Scan one more time to make sure no infected applications made it back on the 
hard disk.   You have now returned the file system to a clean state.  If you 
practiced a good backup strategy, you should have all of your files and data 
as clean as new.  If you are exhausted from all the work, you can take comfort 
that at least your hard disk is not fragmented.  Loading all software over 
reduces hard disk fragmentation considerably.

There is one more recovery issue.  Remember to check all backup floppy disks 
for virus infections!  In many cases massive reinfections of a virus occur 
because someone forgets to disinfect backups.  Any floppy disk which contains 
a virus should  be erased and reformatted before it is used again.  If this is 
not possible, use a dependable eradication program to remove or repair 
infected files.

NOTE:  Again, if a classified system is involved, follow the guidance issued 
by the DOE Office of Safeguards and Security to ensure that classified data 
are not compromised.
 
3.10.6  Follow-up

Just because your system is now clean does not mean that all the work is over.  
What about all the other people with whom your system has had contact (e.g.,  
vendors or clients)?    People who may have mailed you an infected disk, and 
your co-workers should be told.  If you don't practice this important follow-
up, then the virus will probably spread more, and your system is very likely 
to become infected again.   Inform others that you had a computer virus on 
your machine and that they should check theirs.  Tell them how you discovered 
it, what the symptoms are, and how you recovered.  

Now might be a good time to review your virus procedures and tighten scanning 
of all disks entering machines in the area, at least until the "coast is 
clear."  How did the virus infection start?  How adequate was the anti-virus 
software that you used?   How many person-hours did this effort require?  Was 
adequate technical assistance available?  These questions must be answered and 
any open issues must be resolved before your follow-up activity is complete.


4 - Responding to Worm Attacks

4.1  Introduction

Imagine thousands of computers connected to a communication network suddenly all 
screeching to a halt.  This actually happened in November, 1988, and the cause was a 
worm-- the Internet (Morris) worm.  Public awareness of a relatively unknown computer 
threat jumped to a high level, with national news coverage and front page newspaper 
articles.  From this point in time onwards, computer worms have been a major concern 
of all computer users connected to networks.

This section will concentrate on computer worms.  Worms will be defined, and a brief 
history of worm attacks will be given.  The remainder of the section will outline a 
methodology for handling a worm event as it happens.  The handling of a worm event 
follows the same pattern as other computer system attacks, and may be characterized 
by the six stages of incident handling described in the overview section above.  This 
model will be used in describing the methodology for handling a worm attack.

4.2	Definition of Worm

A computer worm is a computer program in the category of malicious code with the 
following characteristics:

	o  Is self-replicating
	o  Infects hosts rather than programs (unlike a virus)
	o  Attacks using automated hacking techniques to penetrate a host and begin 
execution
	o  Exists as an autonomous process or set of processes

In general, a worm is very much like a virus, but with the primary distinction that a 
worm will infect a host rather than an application.  A worm will spread using 
communication channels between hosts such as phone lines, networks, or gateways to 
access services on another host.  The worm will then use these offered services to 
copy itself to the victim host and begin execution.  The services used by the worm 
will vary, depending on the specific worm, but may include electronic mail, remote 
login, and remote file service.

The ability of worms to threaten thousands of computers is a direct result of the use 
of network communication between these computers.  When computers were mostly 
isolated, worms could not easily jump between hosts.  Today, the trend is for more 
and more computers and networks to be interconnected to provide easy access and 
distributed services.  Worms take advantage of these advances in computer science to 
threaten the worldwide computing environment.

Once a worm has penetrated a system and begins execution, it may alter the operating 
system for its own use, cause damage, or simply access information and pass it back 
to the worm’s creator.   Previously known worms have stolen user accounts and 
passwords, installed trojan horse programs in the infected host, and caused denial of 
service by utilizing all of the available computing resources.  To date, only the 
worms with relatively small disruptive potential have been released.  

4.3	A Brief History of Worms

While the Morris Worm is the best known network based worm, it was not the first or 
only network worm.  Because it is the best known, however, other worms are dated in 
relation to this one (see figure below).  


                                                         

 A Chronology of Worms


The first recognized network-based worm was launched at Christmas time, 1987 and was 
known as the Christmas Card Worm.  This worm attacked IBM mainframe computers running 
the VM/CMS operating system.  It spread using the electronic mail system.  When this 
“Christmas card” arrived at a person's account, it would exploit a feature that would 
automatically forward itself to everyone in the person's mailing list.  This resulted 
in a denial of service over a large section of the internal BITNET of IBM due to the 
large number of these “Christmas cards” around the net.  It did spread to the 
external BITNET, but was not successful due to the loose coupling outside of the IBM 
Corporation.  

The Morris Worm has already been mentioned.  It was released in November, 1988, and 
spread through a nationwide TCP/IP network known as Internet.  Several operating 
systems, all variants of the UNIX operating system (such as BSD and Sun OS), were 
successfully attacked by this worm.  Four vulnerabilities in UNIX services were 
exploited to spread the worm.  One involved  the electronic mail system (sendmail), 
two more involved an authentication bypass mechanism (.rhosts and hosts.equiv), and 
still another vulnerability involved a utility to find out who the users of a system 
are (finger).  The worm would also attempt to guess passwords on a penetrated system 
and spread using the passwords it successfully guessed.  The result of the Morris 
Worm was a tremendous slowdown of all successfully penetrated systems due to a bug in 
the code that caused the worm to replicate at a faster pace than intended.    
Thousands of hours of system administration nationwide was required to eradicate and 
recover from this worm.

Christmas, 1988 saw the first known VMS worm released.  Named Father Christmas, this 
worm had many of the same characteristics as the Internet Worm, and was obviously 
influenced by the Internet Worm.  The worm attacked a national DECNET,  the Space 
Physics Analysis Network (SPAN), and used a few well-known exploitable features in 
VMS to copy itself between nodes and begin execution.  This worm would send any user 
names and accounts to a known location for later retrieval by the author.  This worm 
would first delete the file used to start the worm, thus leaving no trace in the file 
system of the worm’s presence.  The worm would send a message to each user on a 
system on Christmas Eve from “Father Christmas,”  the basis for this worm's name.

In 1989, another VMS worm attacked a number of nationwide DECNET systems.  Known as 
the WANK/OILZ worm, this worm used many of the techniques found in other worms.   
WANK/OILZ  was quite complex.  It would guess passwords, install trojan horses in the 
penetrated system, add privileged accounts as back doors, and write annoying messages 
to users of remote systems.  The first variant, the WANK worm, was quickly followed 
by the OILZ worm.  The differences between the two was clearly intended to evade the 
common scripts used to eradicate and prevent against the WANK worm.  The intended 
damage of this worm was severe.  The worm would attempt to alter all of the 
executable DCL scripts in the system to add accounts, and changed the user passwords 
of all penetrated accounts.

4.4	Considerations in Worm Attacks

The major concerns in dealing with worm attacks are:

o Speed of reaction
o Indiscriminate spread
o Bugs contained in the worm code
o Reaction of worms to your incident response strategies
o Coordination between sites

The most pressing concern in reacting to a worm attack is the speed of response.  
Because worms are automated attacks, they will proceed at the speed of the host 
computer.  In order to respond to them effectively, the worm must be quickly 
identified and a correct reaction initiated to minimize the damage resulting from the 
worm.

Worms usually do not follow any particular boundaries when choosing a victim machine.  
Therefore, a worm will spread indiscriminately to any other host to which it can 
connect and from which it can request services.  In order to contain a worm, all 
connections to other hosts must be discontinued.  Note that simply because a 
connection is not usually used (i.e., between a company’s computer and a Government 
lab) does not change the fact that a worm could use a common network to spread along 
this route.

It is difficult (if not impossible) to write error-free code, and worms are no 
exception to this principle.  All of the worms detected to date have had programming 
errors (bugs) of one kind or another.  In the most well- known case, the Morris worm, 
the error in the code caused the worm to replicate itself within a host so rapidly 
that no other processing on the host was possible.  This caused an easy detection of 
the worm, and led to a significant denial of service.

When dealing with a worm attack on a particular system, there is no need to take into 
account the “feelings” of the worm.  This is unlike a hacker attack, in which if you 
respond rudely to a hacker, you may increase the possibility of damage to your 
system.  With a worm attack, the removal of the worm by any means at your disposal 
cannot foreseeably change the reaction of the worm.  The worm can neither adapt nor 
react to your incident response strategies.

While it is always important to coordinate with other sites during an incident, the 
nature of worms makes this coordination essential to a favorable resolution to a worm 
incident.  Because worms spread along network and other intra-site connections, 
failure to coordinate your response with other sites will prevent complete recovery 
to the worm attack.  Worm attacks must be dealt with on the level of the 
interconnections between the hosts.  In the case of a worm on the Internet, the 
entire Internet community must cooperate to completely eradicate the worm.

4.5	Basic Mechanisms of Worms

The basic mechanism of a worm is a two stage process.  First, the worm must copy 
itself to the victim host, and secondly, the worm must begin an execution of the copy 
on the remote machine.  To copy itself to another machine, the worm makes use of 
services provided by the victim computer that are designed to accept information from 
the attacking machine.  These are services that both have proved useful to users and 
are widespread (e.g., electronic mail, remote file service, “talk” or “phone” 
services, and “finger” services that will allow information about the users of a 
system to be provided).  

In order to complete the process, the attacking worm must be able to start the 
execution of the worm on the victim machine.  This is accomplished by exploiting 
other services that are provided for this purpose.  Examples include rsh (remote 
shell execution for UNIX) or batch job submission.  Other services not intended for 
remote execution may contain bugs or features that allow remote execution without 
authentication as well.  Such bugs exist in many services such as sendmail, finger, 
and network file systems.   Each operating system has its own set of services that 
may be exploited.  This usually means that a worm is specific to a particular 
operating system,  or a set of systems providing common services.

4.6	Recommended Steps for Responding

This section will apply the methodology introduced in Chapter 2 to handling a 
network-based worm attack.  In review, this methodology includes the following 
actions:

o  Protection
o  Identification
o  Containment
o  Eradication
o  Recovery
o  Follow-up

Each of these will be discussed in detail below.
	
4.6.1  Protection

Protecting against worm attacks involves a number of issues, but the primary 
goal in protection is to assume that sometime you will experience a  worm 
attack in which your system will be penetrated.  Given this assumption, a 
worst-case scenario may be described, and  countermeasures may be prepared.  
This is not to say that prevention is impossible.  All of the known worm 
attacks to date could have been prevented if principles of good system 
administration were followed, including:

o  Sound password management
o  Closing known vulnerabilities and installing provided patches
o  Running the latest version of the operating system
o  Assuring that the systems had been properly configured

In addition, good system administration practice will aid in the process of 
recovery from a worm attack.  Preparing for a worm attack includes:

o  Preparing a set of procedures applicable to a worm attack
o  Following a regular backup schedule
o  Monitoring the system activity for unusual behavior

This methodology will aid in preparing a set of procedures for handling a worm 
attack.  However, a set of procedures that take into account site specific 
considerations should be prepared ahead of time.  These procedures should 
include the names and phone numbers of persons to contact in emergency 
situations involving worm attacks (as well as other incidents described in 
this document).   

As in other types of incidents, procedures are more important than software 
solutions.  For worms, this means that you should not rely on a software 
protection package to assure that you will not have to handle a worm event.  
Assume that a worm will get through your software defenses and determine the 
countermeasures from that point of view.  Of course, this does not mean that 
you should not use software tools or install security patches to the operating 
system, but always consider the worst case scenario as the basis for your 
procedures.

4.6.2  Identification

Identifying a worm attack will require a careful analysis of the state of your 
system.  Some of the things to look for are:

o Unusual names for processes on your system
o Newly created files in special directories such as system, user, and 
temporary directories.  This is especially true if these directories are 
world writeable or in unused accounts
o New or altered accounts
o Unexplained performance problems on your systems

Be sure to document all observations.  You may compare situations where no 
worm was found to exist with a new anomalous situation.

Some other important considerations in the identification of a worm event are 
to keep in touch with your local computer security department and CIAC.  You 
should get an indication of a specific symptom for which to search from these 
sources if a wide-spread worm event is underway.  CIAC and other coordinating 
groups will use the information you provide to aid other sites in getting the 
worm under control.  If this is not done, the worm will be free to attack your 
systems again once you finish your recovery procedures.

In addition, be sure that your user community should be well aware of your 
policy concerning worm identification.  Chances are that your users will 
detect anomalous behavior before you get a chance to monitor the system.  User 
education will allow you to have a network of worm detectors available 
whenever a user is logged into the system.

4.6.3  Containment

Once it has been decided that a worm incident is under way, the most important 
goal of the containment stage is to stop the spread of the worm beyond the 
machines in which the worm has been detected.  This is an exercise in getting 
the situation back under control.  A controlled environment is required in 
order to effectively apply the subsequent stages of incident handling.  

During the containment stage, you will have to make many important decisions 
and gather valuable information on the situation.  Planning is essential since 
you will have to react quickly,but effectively.  You will need to capture the 
baseline state of your system in order to save it for future analysis.  It is 
probably not the case that you will be able to correctly analyze the worm 
before it is under your control, so you should plan to record as much 
information on the state of the system as you can.  If practical, begin a full 
backup at this time (being careful to mark the backup tapes as infected with 
worm code).  List and halt all nonessential processes on the system.    If 
classified information is involved, be aware of and immediately deal with the 
threat involving disclosure of the information across any connected networks.

In order to gain control over your system, you may want to disconnect it from 
all forms of external networks.  This is probably an effective way to prevent 
the spread of the worm, but realize that it may limit your ability to 
communicate information about the worm as well.  During the attack of the 
Internet Worm, those systems that disconnected themselves from the Internet 
were not able to receive critical information concerning how to destroy the 
worm.  If you do choose to disconnect from your normal communication networks, 
be sure to keep in touch via telephone, FAX, or other media to CIAC or some 
other coordinating group.    CIAC is dedicated to providing solutions and 
technical advice during such an attack.

Finally, do not neglect your appropriate reporting procedures during a worm 
attack.  Quite aside from technical issues that arise during a worm event, a 
widespread worm will attract the attention of the national media.  Following 
the proper reporting procedures and allowing your public affairs group to 
handle the press will help you keep your situation under control.  

4.6.4  Eradication

Once the situation is under control and contained, it is important to 
eradicate all traces of the worm from your affected systems.  This may be 
partially accomplished by removing processes (as described in the preceding 
section), but there may also be other residue left from the worm.  In 
particular, be sure to check for:

o New accounts added by the worm, especially privileged accounts (such as root 
accounts for UNIX systems, or privileged accounts on VMS systems)

o New files added by the worm--these files may be used during a reboot of the 
system to restart the worm, and should be removed

o Files for proper ownership and protections--it is common for worms to leave 
back doors in a system for the author to use later

o Trojan horses added by the worm--if possible, compare all executable files 
to files from a trusted source (e.g., backup tapes or distribution media)

Use any eradication scripts provided by CIAC or other trusted source to aid in 
the process of completely eradicating the worm code.  Be sure to document all 
of your actions during this process.  Not only will this allow you to describe 
precisely how your system has evolved, but gives you some additional 
confidence that you have left no steps out in the eradication process.  

For some systems, especially those involving classified processing, it may be 
appropriate to completely erase the on-line storage and recover using clean 
backup tapes and the original distribution of the operating system.  Be 
careful in this case to not only erase the disks, but shutdown the system to 
clear the internal dynamic memory.  If your system uses static memory as part 
of its storage system, be sure that this is cleared as well.

4.6.5  Recovery

Before you can return to operational status, you must recover the state of the 
machine to  before the worm attacked.  During this recovery, you want to 
assure that the worm is eradicated from the system, and that it cannot 
reinfect the system.  To accomplish this, you must plan to install security 
patches to close vulnerabilities exploited by the worm .  (This may involve 
changing user passwords or disabling a system service.)   Use your records 
from the eradication and detection stages to identify any modified or deleted 
files, and restore these files from an uninfected backup copy.  Restore 
whatever system services you can, and restart the normal user services 
unrelated to the worm infection.

After you have brought your system back to normal, you may consider placing it 
back on the network (assuming that it was taken off the network in the 
containment stage above).  Before this step, assure that the worm infection 
has been eradicated from the network and that it is safe to restore network 
services.  Coordinate with CIAC or other computer security groups to assure 
that the time has come to restore your network connection.

4.6.6  Follow-up

Once you have restored the normal operation of the system, you enter the 
follow-up stage of incident handling.  This is an often neglected, but very 
important stage for a number of reasons described in Chapter 2.   In addition, 
the substantial effort used to handle the worm incident will have to be 
justified to management, and information that could be used to prosecute the 
author of the worm must be properly handled.

An important goal in the follow-up stage is to analyze what happened.  We 
recommend that you create a report detailing the chronology of the incident, 
actions taken, and lessons learned.  This is the time for the detailed 
analysis of the specific occurrences and information taken during the 
incident.  If the report is completed soon after the event, information that 
was not chronicled during the event may be reconstructed.  This report may be 
used for a number of different purposes, so it is important that it be as 
complete as possible, and that it contain a true chronology of events.

If you have any indication of other specific systems attacked, be sure to 
notify the appropriate system managers as soon as possible.  This may not only 
help save additional systems from the damage and/or inconvenience the worm may 
cause, but may also lead to reconstructing a path that the worm took through 
the network.  This, in turn, could help  trace the worm back to its point of 
origin.  CIAC may be of great assistance during this activity to contact sites 
and coordinate between investigating agencies.

It is often the case that one of the lessons learned is that if a particular 
tool had been installed, the incident would have been easier to handle, or 
perhaps would not have occurred at all.  The follow-up stage is the time to 
evaluate these tools and to decide which ones should be installed permanently 
on the system.   Be aware, though, that too many invasive security tools tend 
to burden the user and will degrade the day-to-day operation of your system.  
Choose which tools you will install carefully, and be aware of the tradeoffs.

It is very important to remove any on-line copies of the worm from your system 
at this time.  It is common for hackers to break into systems known to have 
been attacked by a worm with the sole purpose to find a copy of the worm and 
re-release it.  There are many hackers who do not have sufficient knowledge to 
write a worm themselves, but may modify an existing worm to evade a common 
protection mechanism.  This was the case with the OILZ variant of the WANK 
worm.  Lock up or otherwise isolate any copies of malicious code you may 
obtain.

Finally, issue an “all clear” message to your user base.  With all the "hype" 
associated with a worm incident, there may be many users who are confused 
whether they can get back to a normal usage schedule.   If you are working to 
coordinate a number of systems, other system managers must be notified as 
well.

4.7  Final Words on Worm Attacks

Network-based worm attacks are a natural extension of malicious code to the current 
trend of interconnected, trusted systems.  While it is currently impossible to 
prevent all future worm attacks, following an effective set of procedures will help 
you to deal with a worm event in a practical fashion and without panic.  The national 
attention these incidents receive will make handling a worm event tricky, but 
following the procedures described in this chapter should keep the disruption of the 
system to a minimum.
 


 5 - Hacker/Cracker Attacks

5.1	Introduction

The term "hacker" is in many ways a misnomer.   The term "hacker" can be used to 
refer to someone who  constantly plays with computers.  A "hacker" can also imply a 
computer expert.  In the context of this manuscript, "hacker" is used somewhat 
inappropriately to refer to someone who breaks into one or more computer systems.  
"Hacker" is nevertheless useful, in that it is a commonly used term within the world 
of computer security--few computer security experts fail to agree to some extent on 
what people mean when they say that a hacker broke into a system.   On the other 
hand, "cracker" refers to someone who breaks into a system with malicious intent 
(e.g., someone who breaks in, then trashes a user's files).

Dealing with hacker and cracker attacks is a special challenge.  Along with internal 
sabotage, hacker/cracker attacks are the most potentially destructive form of attack 
to a single system.  A worm may attack a network, and it may virtually close that 
network.  However, a worm is nothing more than an algorithm.  Once the algorithm is 
understood, the worm attack can be terminated.  In a hacker/cracker attack there is 
an intelligent human being back of a keyboard somewhere.  Although the ethics of 
their activity must be seriously challenged, critics often admit that 
hackers/crackers are frequently resourceful and elusive.   You can shut down the 
machine that is being attacked, but the attacker is likely to simply hit another 
machine.   Furthermore, hacker/cracker attacks are far more frequent than people 
realize.  Hackers/crackers are often very careful to "cover their traces," so that it 
may be difficult to notice the attack at all.   Finally, there are international 
hacking clubs and hacker bulletin boards.  Communication among hackers/crackers makes 
them better organized and increases information available to them, making them more 
capable of succeeding in whatever goals they have.
 
There are many misconceptions about hacker/cracker attacks.   One misconception is 
that there is a single type of hacker or cracker, usually a frail teenage male with 
weak social skills.  Another is that hackers/crackers usually destroy and/or steal 
files.  Yet another misconception is that to break into a system requires 
considerable knowledge about computer systems.  All of these misconceptions are far 
from reality!   There is no single type of hacker or cracker--some hackers/crackers 
are young, and some are considerably older.  Some are quite knowledgeable about 
computer science, whereas others know very little and mostly rely on bulletin boards 
and "word-of-mouth" to break into systems.
 
5.2	Division of Responsibility

Responding to a hacker/cracker attack generally requires a great deal of coordination 
from users and administrators of a system.  Managers must implement and fund a 
security plan, and must ensure that this plan is followed.  System administrators 
must fix security vulnerabilities and must take the lead in installing and 
maintaining security tools on their systems.  Users must be aware of a security plan, 
and must operate their computer in a responsible manner.  This may mean, among other 
things, not using all the available features/utilities of their system if some 
features introduce vulnerabilities.  This may also mean furnishing the system manager 
with pertinent information, such as information about numerous failed login attempts 
on a user's account.

5.3	Recommended Steps for Responding 

	5.3.1	Protection 

Protection against a hacker/cracker attack requires considerable effort.  Taking 
protective measures can never provide absolute assurance that your system(s) will 
not be attacked, however.  Additionally, some protective measures may be 
characterized as proactive measures to ensure that responding to a hacker/cracker 
attack will go more smoothly if and when such an attack occurs.  (Remember, it is 
essential to avoid viewing your system as invincible, and to devote a good 
portion of effort to ensure that things will go smoothly when the inevitable 
happens--your networked system is attacked by a hacker!)  Protective or proactive 
measures include having effective password management, obtaining and installing 
special purpose hardware, creating backups, eliminating security holes, obtaining 
and installing monitoring tools, and developing effective procedures.

Effective password management is so important that there is a separate section 
devoted to this topic at the end of this chapter.  Password management is, in 
fact the single most effective protection mechanism for systems connected to a 
network.  At the most basic level, it is essential to require the use of 
passwords for logins, regardless of whether the login is coming from a terminal 
connected directly to a host machine or  from a remote location.  In the case of 
logins from a modem, it is important to require a separate password for using the 
modem!  At the next level, it is critical to ensure that user accounts have 
effective (i.e., not easily guessed) passwords.  For example, passwords such as 
TOYOTA, JENNIFER, and WEENIE are very easy-to-guess passwords--ask most any 
hacker!

Special purpose hardware is also useful in protecting systems against 
hacker/cracker attacks.   This hardware may require the users to carry and use 
some hardware (e.g.,, a plastic card or authentication device) before the login 
sequence appears.  When properly implemented, special purpose hardware can be 
effective because it can virtually eliminate the threat of intrusion from afar.   
Special purpose hardware, however has some drawbacks.  The hardware can be 
expensive, and it is often inconvenient to use a special card or electronic 
device to gain access to a system.  In addition, users with many accounts must 
keep track of many devices.  For this reason, special purpose hardware is not 
widely used.  We recommend such hardware when there is sensitive and/or 
proprietary information on a system, or when there is another special need for 
extra security.  Another example of the wise employment of this hardware is when 
organizations and agencies require its use when there is an unusual threat, such 
as a recent rash of hacker/cracker attacks on the network to which that 
organization/agency's machines are connected, but not at other times.  

File protections are important in protecting systems against hacker/cracker 
attacks.  In general, files need to have protections such that only the users or 
programs needing access to a given file have access.  In particular, assure that 
file protections for system binaries and home directories are not world-
writeable, and that sensitive files are not world readable or writeable.  Also, 
be aware of unexpected public files and directories with world read or write 
privileges, and files in a user's directory not owned by the user.

Backups are also essential.  You can do many things wrong as far as computer 
security goes, but if you backup your system frequently, you will at least not 
lose data.  If you have frequent backups off-line, any attack can damage at most 
only your on-line data.  (Backups are good not only for handling hacker/cracker 
attacks, for also for other incidents which could lead to a loss of data.)  You 
need an effective backup strategy to make backups work for you.  As part of this 
strategy, make sure that you back up every important file, and that you perform 
the backup on non-volatile media.  Use long backup cycles (e.g., backup once a 
month), since it may take a considerable amount to time to detect a mistake in 
backing up your data.  Use separate media for each backup, and take the time to 
verify that your backups are correct.

Another important step in protecting against hacker/cracker attacks is 
eliminating security holes.    Although this topic will be covered in more detail 
in Chapter 6, it is introduced here to emphasize the role of unpatched holes in 
hacker/cracker attacks.  Many operating systems have numerous holes, whereas 
others present opportunities for hacker/cracker attacks only if they are 
improperly configured.  In general, it is better to run the most recent version 
of an operating system unless you know that the newest release introduces new 
vulnerabilities (which, unfortunately, sometimes happens).  Sun OS 4.1 is 
considerably  more secure than is Sun OS 3.4.  For the sake of system security, 
upgrade to Sun OS 4.1 in this case!!  Keep in touch with information about 
security holes distributed through user groups, emergency response teams such as 
CIAC, etc., and take appropriate action (e.g., install the patches that are 
available).

Obtaining and installing monitoring tools is another important protective 
measure.   There is a variety of monitoring tools available, and it is wise to 
have a number of these tools.  (Refer to Chapter 7 for more specific 
information.)  Now is the time to obtain and install these tools--you may find 
that once a hacker/cracker attack starts, it is impossible to quickly obtain and 
install the tools you need!

Developing effective procedures for responding to hacker/cracker attacks is 
essential.   These procedures should include call lists, lists of people to be 
contacted during an incident.  These lists should include both work and home 
phone numbers, since emergencies often happen at inopportune times.  (CIAC team 
members have a laminated card containing phone numbers of other team members, our 
site computer personnel, our operations office managers, and people at DOE 
Headquarters!  We wear this card with our badges.)  Procedures should reflect 
realistic time-distance considerations.  If there is a hacker/cracker attack 
during non-working hours, some people who will help respond to the hacker/cracker 
attack may have to travel farther than others.  Procedures should have those who 
are closest to the site of response coordination initially doing all the work or 
the most urgent tasks.  Other considerations for developing effective procedures 
include specifying who users should notify, how to get information out to users, 
and what to tell users.   Dealing with the media is also important.  How should 
calls from the media be handled, and what kind of information, if any, should be 
given?   Procedures should address shut-downs and when a system should be taken 
off a network.    When to prosecute and when not to prosecute should also be 
covered, as well as the types of evidence that needs to be gathered if you decide 
to prosecute.  Procedures should address the need for keeping timestamps, 
especially since hackers and crackers may change computer records.  Who keeps the 
"master clock?"    Finally, it is important to decide how to create, change and 
distribute your incident handling procedures, and to specify the tools or other 
computing resources needed to implement your procedures.

We also recommend another simple protective measure.  If practical to implement, 
modify your system banner to delete any words or phrases which welcome users to 
your system.  At the same time, warn intruders with a message such as the 
following:

	WARNING:  Unauthorized access to this computer system is prohibited, and is 
	subject to criminal and civil penalties.

Changing your system banner may not deter all or even most hackers, but it is 
likely to deter some hackers.  In addition, removing welcome messages in your 
system banner may be important in that in a court of law welcome messages may be 
considered invitations to intrude into systems.
 
	5.3.2	Identification 

Identifying a hacker/cracker attack can be an immense challenge.   Good 
hackers/crackers are incredibly good at avoiding detection, often by writing and 
planting routines to mask their presence in systems they attack.  There are a few 
general clues that a hacker/cracker intrusion is occurring.  A  general clue is 
that hacker/cracker attacks often occur during the night or early morning when 
few users are on the system, or when the system manager is not on the system.  
Cooperative users are the "eyes and ears" of computer security--keep in touch 
with them, and encourage them to report unexplained failed login attempts and 
other specific evidences of a hacker/cracker attack.    Finally, detection tools 
(covered in Chapter 7) are available to help identify an intrusion.

There are also specific indications of a hacker/cracker attack.  Look for 
combinations of the following:

	o New, unauthorized user accounts

	o Processes owned by unfamiliar users

	o New files or file modifications

	o Accounting discrepancies (e.g., charges for using your system do not 
coincide 	     with compute time)

	o Changes in system files (e.g., password files)

	o Modified/deleted data

	o Denial of service (e.g., your system suddenly goes into single user mode, 
	   	     locking you out)

	o Poor system performance

	o Anomalies (e.g., compiling new programs in a temporary directory)

	o Suspicious probes (e.g., rlogin attempts) and/or browsing (e.g., file to 
file)

	5.3.3	Containment 

Once you have identified that there is (or probably is, in many cases) a 
hacker/cracker attack, the next step is to contain the attack.  Containment may 
not exactly be the correct term to describe all of the goals and procedures 
necessary during this stage of response.   Goals, for example, include 
identifying the intent of the hacker/crack attack.  Is this a malicious attack, 
are system files being changed, or is the intruder just browsing?   During this 
stage it is also appropriate to start trying to identify the intruder.  Intruders 
have identifiable patterns of attack, and it is important to learn about other 
ongoing hacker/cracker attacks to compare the pattern of your intrusion with 
others.  CIAC can be very useful to you at this stage, and you should also help 
CIAC help others by notifying CIAC about your current situation periodically.  
(CIAC will not reveal the name of your site to others.)   It is important to 
gather evidence to be used against the attacker (e.g., logfiles with timestamps).  
Assessing damage incurred is also important both in gathering evidence for 
prosecution, but also for urgent decisions to be made (covered in next 
paragraph).   

The containment stage involves a critical decision.  You could pull the plug to 
the compromised machine, or disconnect that machine from the network.  This would 
immediately terminate the attack, and would at least superficially relieve your 
anxiety.  In some cases this is the preferred decision, especially when files are 
being destroyed or your machine is being used to launch many attacks on other 
systems.  In many cases, however,  it is not wise to turn off your machine or 
disconnect from the network.   If you immediately terminate the attack, for 
example, you may never know what the hacker/cracker has really done to your 
system.  Furthermore, the intruder will probably  just find another machine to 
attack, perhaps even a machine in your organization or site.  If you can keep the 
hacker on your machine without incurring substantial damage to that machine, you 
can assess damage, gather evidence to identify and prosecute the intruder, and 
probably save a lot of other system managers and users a lot of grief.  

When we  recommend that it is generally better to monitor the intruder's 
activity, we assume that you will already have created system backups, and that 
you will protect sensitive files and users' data.  Additionally, you should never 
risk compromising classified information.  If there is any reasonable probability 
that classified information could be compromised, it is imperative to turn your 
system off or disconnect from the network.  You will also have to determine the 
extent of user interruption that can be tolerated while monitoring occurs.  You 
may need to remove computer service from the user community, and/or to inform 
users that the system is being attacked.  In general, we recommend the following 
monitoring strategy.--try to keep the hacker on one machine.  To do this you may 
have to plant "treasures," games and/or bogus but interesting files (e.g., " 
Highly protected data on nuclear arsenals").  Also, while you are monitoring be 
sure to check periodically for phone messages.  The intruder may try to call you!   
Another consideration is that sophisticated intruders often get into protected 
parts of a system and redirect electronic mail (e-mail)---the intruder may be 
able to read the e-mail messages you send!  Finally,  if you notice that an 
intruder has gotten into your system, do not taunt the intruder or order that 
person off your machine.  Do not turn a casual attacker into a dedicated 
opponent!  Encourage the intruder to call you, and find out what the intruder 
wants.   In several cases hackers have apparently permanently ceased hacking 
activity when they were politely asked to do so, and when they were informed of 
the extent of the problems they had caused.  These now former hackers have on 
several occasions, in fact, helped several emergency  response teams correctly  
determine that hacking attacks were occurring and which hackers were involved.

There are a few final considerations about monitoring activity.  Be sure to 
document everything (keystrokes, timestamps, the actions you take, etc.).    You 
will need the information you record to ensure that you communicate accurate 
information to others with whom you are coordinating your response to the 
hacker/cracker attack.  (Remember, people under considerable stress are not 
particularly good at retrieving information from memory.)  Your documentation 
will also be critical in subsequent stages of handling the incident.  If your 
monitoring efforts are unsuccessful, consider contacting the hacker directly 
before you take any other measures such as turning your machine off.  Finally, 
remember that you should deal with the media only through your public affairs 
office.  Your taking on the media yourself may not only be against your 
organization or site's rules, but also may be an invitation for catastrophe 
unless you have specific training in dealing with the media.
 
	5.3.4	Eradication 

Eradication means ending the hacker/cracker attack.  As mentioned previously, you 
can eradicate the attack by turning off the attacked machine or disconnecting it 
from the network.   Hopefully, however, you can achieve a better solution---
identification and apprehension of the attacker.  A third set of outcomes is 
possible, too--the hacker/cracker might get bored or suspicious and terminate the 
attack.  Similarly, the hacker/cracker might obtain the data or programs that he 
or she wants, and might then terminate the attack.  Finally, the intruder might 
voluntarily agree to terminate the attack.

For eradication to be complete, you need to take additional actions.  If 
applicable, remove the hacker from the system login files.  Also, remove any 
processes left by the intruder.  Backup your system again to preserve any trail 
the intruder may have left.  (Again, remember  that many hackers/crackers are 
often very adept at covering their traces.)  If you have a current backup, you 
may seriously want to consider performing a complete restore. 

	5.3.5	Recovery 

The recovery means that you or the system manager will restore the attacked 
system to its "normal" state after the attack has been eradicated.  The first 
action is to perform a final damage assessment.  You should now have more time 
than with the previous stages of incident handling, because the hacker/cracker 
attack has been eradicated.   After determining the extent of the damage, close 
any security vulnerabilities that the intruder exploited.  For example if the 
intruder entered your system through a sendmail hole, ensure that you obtain and 
install a patch for this hole.    Next, restore data.  An attacker may change the 
date and time stamp, so doing a full restore may require a full removal of all 
files and a full restore from backups.  Next, restore all services, and inform 
users that the system is no longer being attacked and has been returned to normal 
status.  Finally,  determine what tools used to handle the incident you should 
leave in place.   In general, discontinue using tools useful mostly or only in 
dealing with the particular attack that occurred, but leave in place tools which 
might be able to both help you detect intrusions and capture data early in the 
incident handling process without severely taxing system performance.

	5.3.6	Follow-Up 

The follow-up stage is critical.  If law enforcement agencies are not pressing 
for prosecution, it is probably appropriate at this point to debrief the attacker 
(if possible).  Again, it is important to politely inform the attacker of the 
effort handling the intrusion has required, and to learn any additional 
information which may help you (e.g., other systems in your organization/site 
which may have been attacked, methods and routes of attack, etc.)  Be sure to 
record all of the information you learn.  Alternatively, you may need to assist 
in prosecution efforts.  In this case you should not talk to the attacker, but 
should submit your logfiles and documentation of your efforts in dealing with the 
incident to law enforcement agencies which ask for evidence.  Regardless of 
prosecution efforts, you need to determine time and resources used as well as 
damage incurred, and should produce a  monetary cost estimate.   This estimate is 
critical in a court of law, but it is also critical in justifying the importance 
of adopting appropriate security measures and having an incident response team to 
your management.  In addition, determine how the incident happened.  You know 
have a valuable set of "lessons learned" which you can incorporate into a post-
mortem report--something to which you and others can refer during training, when 
you revise your incident handling procedures, or when you have a similar incident 
in the future.    Review and revise your protection program, including your 
procedures, password management policy, and arsenal of tools.  Be sure among 
other things that you are not introducing new security measures purely in 
reaction to the recent hacker/cracker attack.  Don't introduce unduly restrictive 
policies or install numerous tools which diminish system performance simply 
because an attack occurred !
 
5.4	Automated Hacker/Cracker Attacks
 
Some intruders have created tools to help them break into systems.  For example, 
password cracker programs that attempt to match candidate passwords with actual 
system passwords are rather common.  Some of these programs have very large 
dictionaries.  The success of these programs is an important reason why effective 
password management is a must (see Section 5.5).  Worms, discussed extensively in 
Chapter 4, are another form of automated hacker/cracker attack.  There are also 
programs used to find system protection problems to enable hackers/crackers to break 
into that system.    (Note:  these tools may also be used by computer security 
personnel to locate vulnerable systems and make them more secure.)  There are also 
network snooping programs to help intruders locate systems to attack, and programs to 
check for libraries that contain old bugs.  These programs can be linked into other 
programs to break security.
 
5.5	More on Passwords

By now you have seen how important a role passwords play in allowing intruders to 
break into systems.   The overwhelming problem is not really so much the individual 
user as much as failure on the part of management to develop and implement an 
effective password policy.  Unfortunately, we have found that many organizations or 
sites have no password policy at all!   An effective password policy should mandate 
that the following types of passwords and procedures are eliminated:

o "Joe" Accounts, in which the account name and password are identical (e.g., 
WILLIAMS and WILLIAMS)

o Same passwords for one user on different machines (e.g., WILLIAMS uses the 
password tsr80p on SAMVAX and on BAKVAX).  Intruders into a system often realize 
that same passwords are frequently used on different machines, and capitalize on 
this knowledge to break into other machines once they have initially broken into 
a user's account.  In general, using the same password on different machines is 
the greatest problem when the hosts are run by different organizations, the 
hosts have different levels of security, or the hosts have different operating 
systems.

o Accessible password files.  At a minimum, these files must be hidden.  
Unfortunately, some older systems had a publicly known reversal to the 
encrypting algorithm, thus making all accounts available once a hacker stole the 
password file.  Remember, if the encrypting scheme is known and the password 
file is accessible, guesses can be made at the convenience of the attacker!

o Easily guessed passwords, including words found in Webster's dictionary, car 
names, people's names, computer jargon and nicknames, "trendy" words, etc.  Your 
password policy should disallow these classes of words.  Make sure that your 
training and awareness program gets this message to users.  Also, you should 
consider using software to restrict users' choices of passwords, so that users 
are forced to adopt more difficult-to-guess passwords.  Remember, "brute force" 
attacks in which password after password is tried are now easy because of 
password cracker programs.

We also recommend that your password policy include the following:

o Checking for easily guessed passwords.  Checking can be done when a user 
chooses a password and/or at regular intervals (e.g., once every 30 days).    
You can have the system manager disallow weak passwords when users choose 
passwords.  You can also obtain a password checking tool.  (CIAC, for example, 
can help you obtain a password checker for either UNIX or VMS.)  Your policy 
should include procedures for finding and changing easily guessed passwords.

o Using machine-generated passwords.   There are advantages and disadvantages to 
machine-generated passwords.  These passwords, which may be letters, numbers, 
syllables, or phrases, are difficult to guess.  On the other hand, they are 
more difficult to remember, especially when there are multiple accounts for 
one user on several machines.   Users tend to write down machine-generated 
passwords (see below).  If you are from a DOE site, DOE Order 5637.1 requires 
that machine-generated passwords be used with classified computing systems.   
Also, passwords for classified computing systems are classified at the same 
level as the system.

o Obtaining and installing special purpose hardware (discussed previously).

o Adopting a password aging policy.  In general, it is important to require users 
to change passwords on a regular basis (e.g., every month in the case of 
sensitive/proprietary systems, and every four to six months otherwise).  For 
one thing, if an attacker steals the password file, it will take time to crack 
the passwords.  Changing passwords from time-to-time may foil crackers' plans.   
A password aging policy can also flag and lead to the removal of dormant 
accounts.    One disadvantage, however, is that users who are forced to change 
passwords regularly may choose easier-to-guess passwords, because the user has 
to create and remember new passwords.

o Developing a policy for writing down passwords.  Sites and organizations often 
prohibit writing down passwords because writing down passwords leads to 
increased probability that passwords will be compromised.   Slips of paper 
with passwords, for example, are often put in wallets, which may be lost.   
Also,  it is important to remember that writing down a password for a 
classified system requires following your classification guidelines!    On the 
unclassified side of the picture, there must be a policy for protecting 
written passwords if writing down passwords is allowed.  Writing down 
passwords has one major advantage--it allows users to have passwords which are 
harder to remember and guess.  

Selecting a good password requires some inconvenience on the part of users.  It is 
more difficult to choose and remember a more difficult-to-guess password than an 
easy-to-guess password.    We concur with Wood and Kochan's (1985) recommendation to 
use a four letter word, then a control character, then a four letter word which is 
unrelated to the first word (e.g., dust&book).  Such a password is easy to remember, 
but is very difficult for an intruder to crack.  Another sound technique for 
constructing a password is the first letter method, in which the password consists of 
the first letters of each word in an easily remembered sentence.  For example, "my 
Country tis of thee...sweet land of liberty" becomes mctotslol, which is easy to 
remember but almost impossible to crack.  Again, an effective awareness program which 
motivates users to choose appropriate passwords is critical.   

The "bottom line" is that your organization or site needs to create a password 
policy.  This policy will vary, depending on requirements of users and the particular 
system involved.  We have found, however,  that the following additional guidelines 
are applicable to most sites and organizations:

o Be sure you have a policy for detecting and removing "Joe" and dormant 
accounts.

o Explicitly state a policy covering the periodic, mandatory changing of 
passwords.

o If your site or organization uses machine-generated accounts, have a policy 
for written password management.

o Include a password policy for installing accounts and machines.  Remove or 
disable all demo, default and guest accounts.  When adding a new user to a 
system, do not allow system managers to furnish users with an initial 
password which can be easily guessed--users often do not change passwords!

o Build user education into your site or organization's password policy.  User 
education is time-consuming, but is critical in gaining user support and 
giving users sufficient knowledge to avoid giving attackers easy access to a 
system through weak passwords.  Your user education plan should include 
actually helping users select proper words such as non-dictionary words, 
initial letters from phrases, etc.



6 - Vulnerabilities
 
6.1  Introduction
 
The terms "vulnerabilities" and "holes" have by now been used dozens of times in 
these guidelines.  All computer systems have some features that can be exploited by 
an attacker.  The emphasis of this chapter is upon these features.  First, let's get 
our terms straight.  A vulnerability is a feature or bug in a system or program which 
enables an attacker to bypass security measures.   For example, suppose that there is 
an operating system which, unbeknown to the developers of this operating system, 
allows an unprivileged user to suddenly become  privileged simply by hitting 
CONTROL/C at a certain point in using one of the operating system's utilities.   We 
consider the difference between a vulnerability and hole to be an issue of semantics, 
not one of practical significance.  We, therefore, define a hole as a vulnerability.  
A "Joe" account, previously covered in Chapter 5, is an account in which the account 
name and password are identical.  A default account is an account shipped with the 
system that has a default password.  (Unfortunately, system managers too infrequently 
change default account passwords.)  A patch is a modification to a program (e.g., an 
operating system) to correct a bug or vulnerability.  (Note:  patches may have 
undesirable side effects, unfortunately, depending on how a system is configured.)  A 
workaround is a "kluge," a makeshift, temporary solution to a vulnerability.  For 
example, if there is a system utility which allows unprivileged users to read other 
users' files, a workaround might be to disable that utility (which, unfortunately, 
may inconvenience many users).

There is generally (but not always) a tradeoff between the amount of functionality 
that a system delivers and the number of exploitable features.   For example, one of 
the reasons that UNIX has traditionally had more exploitable features than many other 
operating systems is that UNIX offers  a great amount of functionality.  Networking 
functions, which are built into UNIX, offer attackers opportunities to jump from UNIX 
machine to UNIX machine, to steal files, etc.  It is essential that you know your 
system well.  You need to learn about the exploitable features in your system, and to 
close these features within the constrains of user needs, manpower limitations, etc.  
For example, you would do well to disable a seldomly used utility with a well-known 
security hole because few, if any, users would miss that utility anyway.  Disabling a 
frequently used utility with an obscure hole may not be as advisable.  Remember, too, 
that one machine in a network which has unpatched vulnerabilities can become a 
"launching pad" for attacks throughout the network.  Regardless of whether you are a 
user or system manager, you have a responsibility not only to protect your own 
machine but also to be a responsible citizen of the network!

There are many misconceptions about vulnerabilities and how a person's system can be 
attacked.   One of the most common misconceptions is that if one's machine runs a 
particular operating system (e.g., VMS) but the network to which that machine 
connects runs different communications protocols (e.g., TCP/IP), the VMS machine 
cannot be exploited through that network.  The truth is that common communications 
protocols and applications create common vulnerabilities.  Thus, sites running TCP/IP 
may be exploited regardless of the particular operating system run in machines 
connecting to the TCP/IP network if there is a vulnerability in TCP/IP.

6.2 Types of Vulnerabilities

Needless to say, there are many types of security vulnerabilities in computing 
systems.  Poor passwords (see Section 5.5) comprise by far the largest class of 
vulnerabilities.   Dormant accounts and orphan machines (machines which are not 
currently maintained) comprise another significant class of vulnerabilities.  If 
dormant accounts and orphan machines also have poor passwords, this constitutes an 
even greater security problem.    Holes in operating systems are another type of 
vulnerability.  Security holes in applications are another set of vulnerabilities.  
For example, Stoll (1989) gives an interesting account of a hacker attack launched 
through a vulnerability in a word processing program.  The main focus of this chapter 
is on operating system vulnerabilities because these vulnerabilities are so 
frequently exploited by attackers.  (Please note that the following descriptions of 
vulnerabilities include only the outcomes of exploiting each vulnerability, rather 
than the actual mechanics of exploiting each vulnerability.  We take this approach to 
avoid disseminating information that attackers might use.)

6.3 UNIX Vulnerabilities

As discussed previously, UNIX systems generally have numerous vulnerabilities.   
Because there are many flavors of UNIX (e.g., Sun OS, BSD UNIX, ULTRIX, System V, 
etc.) and usually many versions of each flavor, a particular UNIX vulnerability 
seldom is universal.  In fact, it takes careful investigation to discover exactly 
which vulnerabilities are and are not present in any given UNIX system.  We recommend 
that, at a minimum, you become aware of the following vulnerabilities frequently 
found in UNIX systems:

o set-uid (user  id) scripts - if set-uid scripts are not set set up properly, an 
intruder can obtain unauthorized root access

o anonymous ftp (file transport protocol) - some versions of UNIX have bugs or 
have anonymous ftp set up incorrectly, which can allow unauthorized file 
modifications (e.g., unauthorized modification of /etc/passwd)

o tftp (trivial file transport protocol) - some versions of UNIX have bugs in 
tftp, or tftp may not be set up correctly, allowing an attacker to steal any 
publicly readable file (including /etc/passwd)

o login (the program that logs a user into a system) - susceptible to trojan 
horses

o fingerd - there are several vulnerabilities, some of which enable attackers to 
obtain unauthorized root access.  Intruders  can also use fingerd to locate 
user accounts to attack.

o sendmail (the program that delivers mail to the user) - new vulnerabilities in 
this function seem to be discovered frequently.  Some of the vulnerabilities 
include allowing an attacker to corrupt non-root owned files, or, when sendmail 
is used in connection with .rhosts, allowing unauthorized root access

o uudecode - vulnerabilities in this function allow an attacker to overwrite 
files (including .rhosts)

o nis (network information system, formerly yp--yellow pages) - problems in this 
function make multiple attacks within a cluster of machines easier

o nfs (network file system) -  problems in nfs also make multiple attacks within 
a cluster of machines easier

Remember, too, that in UNIX systems  there are demo, user, and guest accounts that 
may have no passwords or "Joe" passwords.
 
6.4 VM Vulnerabilities

VM is a relatively secure operating system, and the exploitable features in VM of 
which we are aware are not severe threats to system and/or network security.   Some 
versions of VM have an option to allow the user name and password to be displayed in 
clear text on the login line.  This allows someone else in the same room as the user 
to view the passwords entered during logins.  Some versions of VM may flag a bad 
userid without asking for a password.  This enables an attacker to learn which 
accounts are and are not viable to attack.  Finally, older releases of VM have 
several additional exploitable features, including echoed passwords as they are 
entered  and a default password on the DURMAINT account.

6.5 VMS Vulnerabilities

Exploitable features in VMS are, for the most part, configuration problems; VMS is 
reasonably secure if configured properly.  Default accounts such as the default 
DECNET account in pre-5.0 version releases of VMS as well as SYSTEM and SHUTDOWN 
accounts on some VMS systems present a problem.   Applications such as INGRES, ORACLE 
and mail running on VMS systems also have default accounts which, if unchanged, allow 
an easy avenue of entry.  The VMS phone object does not check authorizations before 
allowing someone to write to another terminal.  This utility can, therefore, be used 
to trojan horse an account.   (The phone object has also been used by DECNET worms to 
write offensive messages to users.)  The Task 0 object (which allows, among other 
things, functions to run remotely ) may be configured to allow users with no account 
on a machine to run applications.   (Note:  to misuse Task 0, an intruder must first 
gain access to a system.  It is debatable, therefore, whether Task 0 is, in and of 
itself, the real problem.)

6.6  MVS Vulnerabilities

MVS systems are seldom attacked, probably because other operating systems such as 
UNIX are considerably more popular and thus well known.  However, the MVS operating 
system is, according to many experts, very vulnerable to attack unless C2 features 
are added (RACF).  In addition, DSMOM provides attackers with sensitive information 
from the authorized caller table.  The encryption module, SYSL2PALIB (which does RACF 
encryption), can easily be broken.  Finally, problems with the PARMLIB and EXAMINE 
functions within RACF need to be fixed in most MVS systems.  

6.7 File Protections

File protections constitute a special set of security considerations.  File 
protections determine who may read, write or execute a file.  Simple file protection 
measures can prevent many opportunities for misusing a system!  Publicly writeable 
binaries and system directories allow an attacker to modify the system.  Protections 
should be set accordingly.   Readable restricted system files allow an attacker to 
discover other trusted computers or other privileged information.  Writeable home 
directories allow trojan horses to be planted.

6.8 Concluding Comments

The information presented in this chapter is not just some theory.   Taking action on 
the information in this chapter will probably save you considerable time, 
frustration, embarrassment,  and effort, including the effort to "pick up the pieces" 
after a major hacker/cracker or worm attack on your system.  At any given hour of any 
day there are dozens of computing systems being attacked because people have not 
learned about vulnerabilities or have not done anything about them.   Learning of the 
vulnerabilities in your operating system and applications, then patching them is the 
key to avoiding catastrophe.  The CIAC team is especially anxious to lend assistance 
to help anyone in the DOE community who has a question about vulnerabilities, or who 
needs help obtaining and/or installing a patch.  The CIAC team also needs to learn as 
rapidly as possible about any vulnerabilities you may discover so that we can start 
working with vendors to close these vulnerabilities as quickly as possible.










































Scenario For The "Big Fall"

7 - Incident Handling Tools

Throughout this document, it has been stressed that procedures are more important 
than software.  This does not, however, diminish the value of software when used as 
part of an incident handling procedure.  There is an increasing number of prevention 
and incident handling tools available.  In this section, some currently available 
tools will be discussed, where to find them, and their usefulness.

7.1  Types of Tools Available

Currently available tools can aid in dealing with incidents at each stage of the 
incident handling model outlined previously.  These stages include:

o Preventing
o Detecting
o Containing
o Eradicating 
o Recovering
o Following up

There are many different types of tools available.  In general these fall into the 
categories of software solutions, hardware solutions, and integrated products.  
Software solutions are layered software products that do not require any additional 
hardware to function.  These would include additional passwords for authentication, 
checksums for file integrity, etc.  Hardware solutions are devices that attach to 
your system or network to provide some security function without affecting your 
software on the system.  Examples of these are network monitors that snoop your 
network, or printers that attack to a dial-in port to record traffic.  Integrated 
products are combinations of software and hardware on your system.  Hand-held 
authenticators or encryption boxes are examples of integrated products.

Aside from the types of security tools that you can add to a system, there are 
systems that are more inherently secure than others.  Often these systems are based 
on a trusted operating system (TOS).  These systems are formally proven to be secure 
to a particular level.  In the Department of Defense, these systems are rated 
according to criteria outlined in a standardized document on computer security (the 
Orange Book).  For the DOE, no such document exists, but security considerations are 
outlined in DOE Orders 5637.1 and 1360.2A.  

TOSs are useful in a number of situations including dedicated network controllers, 
data base or file servers, or human safety controllers.  However, TOSs are not a 
panacea.  TOSs are not in widespread use because of a few serious drawbacks 
including:

o It can take an extensive amount of time to certify a TOS
o Security is often gained at a restricted functionality
o The assumptions used in certification cannot be applied in some situations
o There is often a unique or archaic user interface
o  The application base is too small to provide off-the-shelf solutions

Anti-virus software is a category all in itself.  There are many good anti-virus 
packages available (see the section on viruses for more details).  These packages can 
save many hours of recovery time, and have proven to be useful.  The main 
considerations for obtaining and using a virus tool are:

o Be careful of your source
o Run the most recent version
o Never entirely trust the virus software (procedures are more important than 
software)
o Maintain a good backup policy

Encryption is a useful tool for computer security.  There are many tradeoffs in using 
encryption however.  Be aware that encryption cannot be used to solve computer 
security problems in general, but may only be used in particular situations such as 
virus detection, communications, and authentication.  Using software to perform the 
encryption can be slow and something must be trusted to do the encryption--if that 
something is corrupted, the entire system is corrupted.  Dedicated hardware to 
perform the encryption helps, but this may be expensive and difficult to integrate 
into the system.

The remainder of this section will be devoted to a listing of tools available to aid 
in computer security incident handling for multi-user systems.  These tools are 
categorized as either system security tools providing added security features to a 
system, authentication tools  that specifically provide additional authentication 
support, and intrusion detection tools that provide detection and identification of a 
system penetration.

7.2  System Security Tools

SPI (Security Profile Inspector)

This tool aids system managers in maintaining the security and integrity of UNIX and 
VMS systems.  It provides password checking, file integrity checks, and checks for 
correct file permissions.  The VMS version adds, in addition, checks for using  
identifiers and for accessibility of files based on UIC, identifier, and privileged 
access.

For information on SPI/UNIX or SPI/VMS, call Doug Mansur, LLNL, (415) 422-0896 or 
(FTS) 532-0896, or send e-mail to mansur@tiger.llnl.gov
 
COPS (Computerized Oracle and Password System)

COPS is a UNIX security checking tool.  It uses configuration information in special 
files to check for the read/write permissions of all important files.  It will also 
check for superuser access and passwords, as well as other aspects of computer 
security.  For information, contact Dan Farmer (412) 268-7080, or send e-mail to 
df@cert.sei.cmu.edu

SecurePak

SecurePak is a commercial package for VMS systems from DEMAX software.  It will check 
many security features on VMS systems, and provides a much nicer interface to the 
authorize function.  Contact DEMAX software for more details on this package.

Matt Bishop’s password program

This is a tool that will search for easily guessed passwords based on a dictionary 
search.  It also may replace the passwd function on UNIX systems to restrict the 
initial selection of an easily guessed password.  It contains a fast DES 
implementation that will improve the performance of the password functions above the 
standard UNIX implementations.  Contact Bill Kramer, NASA Ames, (415) 604-4600, for 
additional information on this package.

7.3  Authentication Tools

Kerberos

Developed within the Athena project at MIT, this is a UNIX tool (which has been 
ported to other operating systems as well) to provide authentication in a distributed 
environment.  This tool's  goals are to provide network authentication without 
sending clear text passwords across the network, or storing them on the individual 
hosts.  Every connection may be authenticated using kerberos, and it is designed to 
be used transparently with other network services.  For additional information or to 
obtain the tool, contact geer@athena.mit.edu or 
info-kerberos@athena.mit.edu

DES Encryption and Secure nis

Both DES encryption and secure nis are provided with the Sun operating system.  These 
systems aid in protecting files with a user-defined key, and protecting network 
communication by encrypting the information used in the distributed authentication 
provided by dns (domain name service).  For more information on how to use this tool 
on Sun systems, see your Sun documentation.  

7.4  Intrusion Detection Tools

Haystack

This is an intrusion detection tool that will run on an IBM PC to monitor Sperry-
UNISYS mainframe computers for intrusions.  It was developed by Steve Smaha of 
Haystack, Inc., under contract by the Air Force.  For additional information, contact 
Capt. Tim Grance, AFCSC, (512) 925-2386.

Wisdom and Sense

This is an intrusion detection tool that will run on a Sun computer to monitor a VMS 
system.  It will layer the appropriate software on the sun to monitor DECNET traffic 
and determine if there is a deviation from normal operation.  For information on this 
tool, contact Hank Vaccaro, LANL (FTS) 843-3382.

CSM (Computer Security Monitor)

The CSM is a rule-based monitor that will detect penetrations based on statistical 
analysis of normal usage patterns.  In addition to the statistical analysis, 
deterministic rules may also be applied to determine if a user is performing an 
unauthorized function.  The rules are system dependent, and have been developed for 
Sun OS 4.0 and IBM MVS systems.  Rules may be developed for other platforms as well, 
since the CSM is designed to be operating system generic.  For information, contact 
Chip Hatfield, LLNL, (415) 422-8567 or (FTS) 532-8567.

Midas

Midas is an intrusion detection based on an expert system.  The system runs on a 
Symbolics Lisp machine, and is used to monitor a MULTICS system.  It was developed by 
the National Computer Security Center (NCSC), and is based on the IDES research into 
user profiles and events.  It is widely recognized as one of the best intrusion 
detection systems available, and is likely to be ported to other systems (e.g., UNIX) 
to assist other vendors in the certification process.  For additional information on 
how to obtain this product, call Eric Shellhouse at (301) 859-4513.
 


8 -  Exercises and Scenarios

Chapter Two - Overview of Incident Handling

1.	Certain stages of the six stages of responding to incidents might be more 
important for some types of incidents than others.  Explain why.

2.	Which of the six stages is most likely to be overlooked?  Why is it important to 
not overlook this stage?

3.	Suppose you were handed a disk and were told that it contained a new virus called 
SPREAD, but the routine used by the virus to replicate itself had been removed.  
a) would the malicious code left on the disk best be called a virus, worm, or 
trojan horse?  b) How would you analyze the code on the disk, and what precautions 
would you take during this process?

4.	Below is a list of symptoms of three types of incidents, virus infections, hacker 
attacks, and worm attacks.  For each symptom determine the type of incident with 
which it is most closely associated by placing a check in the appropriate box.  
For example, if you think that the first symptom, system crashes, is most 
indicative of a virus infection, check the first box to the right of "system 
crashes" (under "virus").  If you think that system crashes are most indicative of 
a hacker attack, check the second box to the right of "system crashes" (under 
"hacker"),  instead.
 

 
Chapter Three - Responding to Viruses

1.	Suppose that your personal computer's disk crashes every third boot.  How could 
you determine whether your machine has a virus?

2.	a) How could you assure that your virus eradication tool is not itself infected?  
b) How could you know that it eradicates the virus which has infected your 
machine?  c) How could you know that you have the latest version of this tool?

3.	You have determined that your PC has been infected by "Disk Killer."  Should you 
turn your machine off immediately?  Explain. 

4.	Given a virus that masks all interrupts into the operating system, how would you 
write an anti-virus code to detect/eradicate this virus?

5.	Can two or more viruses infect a single machine at one time?  Explain.

6.	While editing a classified file on a Macintosh you notice that the file is 
infected by nVIR.  What procedures should you follow to recover?

Chapter 4 -  Responding to Worm Attacks

1.	A user who accesses a mainframe from his Macintosh discovers that his account has 
been penetrated by a worm.  He immediately turns his Macintosh off and calls the 
system manager.  What advice should his system manager give him?  Now the system 
manager confirms that there is a worm and turns the attacked host off.  What 
advice would you give the system manager?  

2.	Suppose that there is a worm in a classified network.  What additional actions 
must be taken to deal with a worm that might not have to be taken in an 
unclassified network?

3.	Given the PS list (below), what are the suspicious processes?  Would this indicate 
a worm, hacker or virus?
























Chapter Five - Responding to Hacker/Cracker Attacks (Scenarios)

1.	A system programmer notices that at midnight each night, someone makes 25 attempts 
to guess a username-password combination.  What should the programmer do next?  
What is your organization/site's procedure?

	Suppose that the programmer decides to do nothing.  Two weeks later, the password 
guessing attempts continue.  The programmer checks the log and finds that each 
night the same username-password combination is being used.  What should you do, 
based on your procedures?

2.	A system programmer gets a call reporting that a major underground cracker 
newsletter is being distributed from the administrative machine at his center to 
five thousand sites in the U.S. and Western Europe.  What do your procedures say 
he should do?  What should you do?

3.	A user calls in to report that he cannot login to his account at 3 a.m., Saturday.  
The system staffer cannot login either.  After rebooting to single user mode, he 
finds that the password file is empty.  What should be done?

	By Monday morning your staff determines that a number of privileged file transfers 
took place between this machine and a local university.  What should be done now?

	By Tuesday morning a copy of the stolen password file is found on the university 
machine along with password files for a dozen other machines.   What has happened?

4.	You receive a call saying that a break-in to a Government laboratory occurred from 
one of your center's machines.  You are requested to provide accounting files to 
help track down the attacker.  Do you have a policy for helping others?  What 
should you do?

5.	You hear reports of a computer virus that paints trains on CRTs.  You login to a 
machine at your center and find such a train on your screen.  You look in the log 
and find no notation of such a feature being added.  You notice that five attempts 
were made to install it, each exactly one hour apart.  What should you do?

6.	You notice that your computer connected to the Internet has been broken into.  You 
find that nothing is damaged.  A high school student calls up and apologizes for 
doing it.  What should you do?

7.	A reporter calls up asking about the breakin at your center.  You haven't heard of 
any such incident.  Three days later you learn that there was an intrusion due to 
a poorly chosen password on one account.  What should you do?

8.	A change in system binaries is detected.  Thanks to your good prevention policy, 
the binaries are changed back to the original.   The next day the binaries are 
changed again.  This repeats itself for several weeks.  What should you do?


Answers to Exercises and Scenarios

Chapter 2

1.	There will be a wide range of acceptable answers.  For example, detection is 
extremely critical (and difficult) in many hacker/cracker attacks.

2.	Follow-up.  This stage provides lessons learned, justification of the incident 
handling activity to management, etc.

3.	a) The code would best be called a trojan horse, since it is malicious code that 
is not self-replicating.  b) The code should be run in an isolated, backed-up 
machine and its symptoms should be recorded.  Tools to monitor memory or 
disassemble the code may be used.  Precautions must be taken to isolate the code, 
since there may be more than one method of replication.

4.

























Chapter 3

1.	There is no 100 percent guaranteed detection procedure.  Some possibilities 
include:  1) check file sizes against a write-protected backup (but remember, the 
backup may be infected), 2) use a virus detection package, and 3) watch for 
unusual activity, such as odd disk access or disks that do not exist, unusual 
graphic displays, etc.

2.	a) Run the tool on itself (but be sure to use a write-protected disk) or check the 
tool against a trusted source.  Some manufacturers have authentication tools to 
verify their product.  b) Use your detection procedures after using the tool.  c) 
Get the tool from a trusted source, or from the originator of the tool.  You could 
also read Virus-L, contact CIAC, or find a knowledgeable person.

3.	No.  In the case of disk killer, there is information stored on completion of the 
virus that will aid in the recovery of the original files.

4.	Many methods exist.  The important thing to realize is that if you provide the 
correct vector addresses in your program, the virus could intercept them and 
substitute its own values.  The correct values must be computed and compared to 
the actual vectors to assure that the virus is not present.  Also, care must be 
taken to not use interrupt services in the program.

5.	Yes.  nVIR A and nVIR B (Macintosh viruses) may infect the same application on a 
host, and, in this case, would create a new variant, nVIR C.

6.	You should save the infected application on a WELL LABELED floppy, then re-format 
the disk and re-install all your applications and data from a recent backup.  Then 
check for the virus again.

Chapter 4

1.	Turning off the Macintosh is ineffective.  A worm invades the host machine, not 
terminals or terminal emulators used to access the host.  Notifying the system 
manager is an important action, however--users are one of the most important 
"detection tools."  The system manager's actions are good ones.  There are many 
things which now should be done, among which are:  a) follow the site's reporting 
procedures, c) call CIAC to report the attack and to obtain 
immunization/eradication scripts, c) locate or check the latest backup, d) 
disconnect the system from all networks, and e) bring the system up in a 
restricted (i.e., single user) mode.

2.	DOE Order 5637.1 does not specifically address the problem of a worm attack.  
Actions depend on whether the worm has changed the accessibility of classified 
information.  We generally recommend that you start from a clean backup (assured 
to be worm-free).  If the worm has caused any unauthorized disclosure of 
classified information, all disks on a system should be purged.

3.	The ftp processes should be examined.  This could be a hacker or a worm.

Chapter 5 

1.	The fact that the same username-password combination is used repeatedly suggests 
that this is not an intrusion attempt.  

2.	In this case, eight weeks later the authorities called to inform that the 
information in one of these newsletters was used to disable 911 in a major city 
for five hours.  (This is a true story.)  Your procedures should require that 
management should be notified of the type of information in this scenario.

3.	A week later you find that your system initialization files have been altered 
maliciously.  Recovery will be complicated, but at a minimum, passwords for all 
users should be changed on any systems with stolen passwords.

4.	A week later you are given a list of machines at your site which have been 
compromised.  Once you authenticate the caller, determine whether the caller has a 
need-to-know.  If so, it is important to supply the needed information.

5.	This is a "false alarm."  Three days later you learn that the unusual graphic 
display was put up by a system administrator locally who had heard nothing about 
the virus scare or about your concern.

6.	There is no outcome to this scenario.  We have found, however, that persuading the 
hacker to meet you in person (if possible), acquainting the hacker with the 
problems he or she caused, and getting him/her to promise to quit this activity 
and possibly to assist you in subsequent attacks is very worthwhile.   In this 
case, in which the hacker initiated contact and apologizes, your following through 
with law enforcement agencies is not necessarily advisable unless there is reason 
to believe that the hacker has damaged other machines or caused considerable 
trouble elsewhere.

7. 	In this case there was a breakin due to a poorly chosen password.  Do not 
talk directly to the reporter.  It might be good to have your public relations 
office contact the reporter and find out how the reporter learned the information 
related to you, however.  

8.	This is a potentially complicated situation.  You need to attempt to rule out 
plausible causes for this unusual system behavior other than the work of an 
intruder.  In this case, there was no intrusion.






References



Stoll, C. (1989) Tracking a spy through the maze of computer espionage:  The cuckoo's 
egg.  New York:  Doubleday.

Wood, P.H., & Kochan, S.G. (1985) UNIX system security.  Hasbrouck Heights, NH:  
Hayden.




 



RESPONDING TO COMPUTER
SECURITY INCIDENTS:
GUIDELINES FOR INCIDENT HANDLING 


 








E. Eugene Schultz, Jr. 
David S. Brown
Thomas A. Longstaff


University of California
Lawrence Livermore National Laboratory







July 23, 1990


 
1 Must use GateKeeper Aid, Disinfectant 2.0, or other software that specifically recognizes WDEF 
to 
eradicate this virus.



TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2014 AOH