Top Banner
Network Security Protecting An Organization’s Network
77
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Network Security Protecting An Organizations Network.

Network Security

Protecting An Organization’s Network

Page 2: Network Security Protecting An Organizations Network.

A Note About Security

Humans are usually the most susceptible point in any security scheme

A worker who is malicious, careless, or unaware of an organization’s information policy can compromise the best security• William Stallings

Page 3: Network Security Protecting An Organizations Network.

A Note About Security

If your site has multiple access points, the overall security of the site is only as strong as the security of the least secure access point• Thus, you must ensure that all points of

access are secure

• Again, frequently the weakest link is people• This includes such access points as E-Mail, their

personal web sites, etc.

Page 4: Network Security Protecting An Organizations Network.

A Note About Security

A recent demonstration found that 24% of passwords could be determined, by:• Searching dictionaries of names, places, and other

words

• Using the username

• Using information about the user, such as their first name

A much higher percentage would result if variations of the above were used• e.g. marge123

Page 5: Network Security Protecting An Organizations Network.

Security Terminology

Authentication: The process of determining the identify of a client or other entity

Encryption: The process of obfuscating data so that it cannot be examined in its current form

Public key: An object used in the encryption process that is publicly available

Private key: An object used in the encryption process that is kept private within an organization

Page 6: Network Security Protecting An Organizations Network.

Authentication: IPSec

Uses IP datagrams to provide security features such as authentication

Authentication is provided for each datagram• An IP datagram, such as those used for TCP

connections will be assigned an authentication header (AH)

Page 7: Network Security Protecting An Organizations Network.

Authentication: IPSec

IPH TCPH TCP Data

IPH TCPH TCP DataAH

A normal TCP datagram:

A TCP datagram with IPSec authentication information:

Page 8: Network Security Protecting An Organizations Network.

Authentication Headers

Each authentication header contains authentication information that relates the sender of the message to the message data• If this data were static, it would be fairly simple to

‘forge’ datagrams with another entity’s authentication information

• Clearly this data must be dynamic, relating to the data in the message, and difficult to reproduce by another entity

Page 9: Network Security Protecting An Organizations Network.

Authentication Headers

Data

Sequence Number

Security Parameters Index

Unused

Payload Length

Next Header

Data for the security scheme

A unique number for each packet

The security scheme used

Reserved for future use

Length of the entire header

Points to the TCP header

?

4

4

2

1

1

Page 10: Network Security Protecting An Organizations Network.

Authentication Data

The data portion of the authentication header is where we place authentication information

This authentication must be difficult to forge• IPSec (and many other schemes) use

message digests for this purpose

Page 11: Network Security Protecting An Organizations Network.

Message Digests

A message digest is a small piece of information created by examining a larger piece of information• In this case, the larger bit of information is the data of

the datagram Sound familiar?

• It should, a checksum is very similar to a digest

• A digest normally is a larger entity so there is a higher degree of detecting changes

Various algorithms are used to create digests• E.g. SHA-1, MD5

Page 12: Network Security Protecting An Organizations Network.

Authentication Information

A well-known algorithm is used to generate the digest

So how is that valid authentication information?• Its not, the digest ensures the data received is

the same as the data sent

• The digest is encrypted using the sender’s private key

Page 13: Network Security Protecting An Organizations Network.

Public Key Encryption

Public key encryption (encrypting with pairs of public and private keys) will be discussed at a later time

Suffice it to say, that either:• The sender encrypts the data using the receiver’s

public key, and the receiver decrypts the data using its own private key

• The sender encrypts the data using its own private key, and the receiver decrypts the data using the sender’s public key

Page 14: Network Security Protecting An Organizations Network.

Public Key Encryption

A

A’s Private

Key

B’s Public

Key

B

B’s Private

Key

A’s Public

Key

Page 15: Network Security Protecting An Organizations Network.

Public Key Encryption

A

A’s Private

Key

B’s Public

Key

B

B’s Private

Key

A’s Public

Key

Page 16: Network Security Protecting An Organizations Network.

Public Key Encryption

A

A’s Private

Key

B’s Public

Key

B

B’s Private

Key

A’s Public

Key

Page 17: Network Security Protecting An Organizations Network.

Public Key Encryption

A

A’s Private

Key

B’s Public

Key

B

B’s Private

Key

A’s Public

Key

Page 18: Network Security Protecting An Organizations Network.

Public Key Encryption

Clearly, each key can be used to encrypt, and each key can be used to decrypt• Thus public key encryption is bi-directional

The private key is used to encrypt when the receive wants to ensure the data comes from the correct recipient• No-one else would have the private key

The public key is used to encrypt when the data must not be seen by external entities• Only the private key can be used to decrypt

Page 19: Network Security Protecting An Organizations Network.

Authentication Information

The private key of the sender is used to encrypt the message digest• Since only the sender would have the private key, the

resulting encrypted digest is unique

• Since the digest would change with even a minor change to the data, the encrypted ensures data has not been tampered with

Thus this combination of digests and public key encryption ensures data integrity and provides authentication

Page 20: Network Security Protecting An Organizations Network.

Encryption in IPSec

IPSec also supports encryption• In IPSec, it is called Encapsulating Security

Payload (ESP)

The operation is similar to how IPSec handles authentication, except that the datagram’s data portion is encrypted• The ESP header describes the technique

used for encryption

Page 21: Network Security Protecting An Organizations Network.

Encryption in IPSec

Since the sender normally would use its private key to encrypt datagrams, additional authentication is not normally required

Encryption schemes also normally include methods for ensuring data integrity

Page 22: Network Security Protecting An Organizations Network.

VPNs

Recall that virtual private networks uses encryption to keep their data secure between sites

VPNs frequently use IPSec’s ESP feature to accomplish this

The external router for each site would employ IPSec ESP on incoming and outgoing datagrams

Page 23: Network Security Protecting An Organizations Network.

VPNs

The advantage of using IPSec to implement VPNs is that it is a well-known technology• Thus it may be used, assuming the ubiquitous

nature of IPSec on the Internet

Page 24: Network Security Protecting An Organizations Network.

Web Security

Securing the World Wide Web

Page 25: Network Security Protecting An Organizations Network.

The Need

The World Wide Web requires certain access points• If your site is to have a world wide web server, it

requires at least one port that external entities may connect to

• e.g. 80 (HTTP), 443 (HTTPS), etc.

• If users on your site will access the web through a client, it requires ports to do so

• This may be through a single machine, called an HTTP proxy server

Page 26: Network Security Protecting An Organizations Network.

The Threats There are four kinds of web-related threats:

• Integrity threats: Data and/or system files are modified or destroyed

• Confidentiality threats: Private data is examined by the intruder

• Denial of Service: Web service is disrupted, preventing other clients from using it

• Authentication: The identify of an entity is forged, making it seem like a request or command is coming from someone else

• Unchecked code attacks: User-supplied data is assumed to be benign, but when used it could be code which is executed (e.g. Javascript or SQL)

Page 27: Network Security Protecting An Organizations Network.

Integrity Threats

Data integrity can be compromised in several ways:• Files stored on the server are modified

• Memory, containing data, is modified

• Network messages are modified

The result is the loss of data, or some compromised data• This compromised data may include such things as

password files, malicious shell scripts, etc.

Page 28: Network Security Protecting An Organizations Network.

Integrity Threats

The common theme to all of these threats is that data is changed

Checksums/digests make it possible to ensure data is not changed• If data is changed, the checksum/digest will indicate

the change

• That may not prevent loss of data alone, but it will (at least) alert administrators (or automatic sentry programs) of the change

Example: Nimbda virus

Page 29: Network Security Protecting An Organizations Network.

Nimbda Virus

Nimbda virus exploited a vulnerability in Internet Information Server (a web server) to modify files• The outgoing web page was modified

• Actually, Nimbda virus is also an example of a denial of service attack

It is used as an example here, because of its widespread effect and notoriety

Page 30: Network Security Protecting An Organizations Network.

Confidentiality Threats

The types of confidentiality threats are:• Reading files from the server

• Reading contents of a server’s memory

• Reading network messages The results are:

• Invasion of privacy

• Lost data (packets read are typically not placed back on the network)

Page 31: Network Security Protecting An Organizations Network.

Confidentiality Threats

Encryption prevents any data from being interpreted• Encryption allows only owners of the right

‘key’ to unlock the contained data

• Datagrams might be examined and removed from the network, but timeouts would allow that information to arrive, eventually

Example: Packet sniffers, Spyware

Page 32: Network Security Protecting An Organizations Network.

Packet Sniffers

Packet sniffers allow anyone on a network to intercept any datagram passing through a machine

Instead of passing the datagram along, first the packet sniffers read the packet’s data

Examples: SpyNet, CommView, Ethereal

Page 33: Network Security Protecting An Organizations Network.

Denial of Service Attacks

Sometimes called overload attacks, there are a few types:• Overloading a server with connections or

requests

• Overloading the threads of a server

• Overloading the network connection to a server (buffer overload)

• Overloading a disk

• Overloading memory

Page 34: Network Security Protecting An Organizations Network.

Denial of Service Attacks

Overloading a server can cause the service to become unavailable (thus ‘denial of service’)

Example: Nimbda virus• Once Nimbda virus infiltrates a site (using an integrity

attack), each incoming request executes a program (part of the virus)

• This program attacks a number of other sites, trying to install the virus there

• Eventually, the attacks themselves can cause denial of service (DoS), even on machines where the Nimbda virus could not install itself

Page 35: Network Security Protecting An Organizations Network.

Denial of Service Attacks

DoS attacks can be reduced/avoided in a variety of ways:• Routers can filter out duplicate packets

• Reduce the effect of a request

• Attempt to recognize ‘bogus’ attacks and eliminate any unnecessary processing as a result

• Require authenticated access wherever possible• Although, authentication itself may be a target of DoS

However, there is no way to make DoS attacks impossible at this time

Page 36: Network Security Protecting An Organizations Network.

Authentication Attacks

Sometimes used in combination with integrity attacks• Where data is modified and the identity of the sender

is forged, so that the data is accepted Authentication attacks typically involve users

modifying source IP addresses (and things like IPSec authentication headers) to forge their identities• Although the authentication schemes used by IPSec

now make this difficult

Page 37: Network Security Protecting An Organizations Network.

Authentication Attacks

Authentication can be accomplished using techniques such as those used by IPSec• Including a message digest, encrypted with

the sender’s private key allows the receiver to validate the identity of the sender

Examples: Using a packet sniffer, modifying the packets, placing them back on the network

Page 38: Network Security Protecting An Organizations Network.

Unchecked Code Attacks

User-supplied data should always be validated• Positive validation: Checking to make sure the

data meets your expectationse.g. the expected format of an E-Mail address

• Negative validation: Checking for code, special characters and other enablers which might indicate that something malicious is in the user data

e.g. a <script> tag

Page 39: Network Security Protecting An Organizations Network.

Unchecked Code Attacks Imagine a form that asks for an E-Mail address

• Please enter your E-Mail address and password to log into our site

Imagine that when the form submission fails, the printed the E-Mail address in the browser for verification• Are you sure [email protected] the correct E-Mail

address? Now imagine that the user types in some nasty

JavaScript code (<script>…</script>)• The code will be put into the response page, and

possibly executed

Page 40: Network Security Protecting An Organizations Network.

Guarding Against Attacks

For each type of attack, I have suggested a few examples of technologies that can be used to prevent the attacks

Of course, none of these solutions is fool proof• Recall the comment about the weakest link in the

chain

• e.g. A private key falls into the wrong person’s hands

• e.g. A certificate is sent unencrypted via E-Mail

Page 41: Network Security Protecting An Organizations Network.

Guarding Against Attacks

The combination of the following techniques may represent a security scheme for a given site:• Message digests

• Guards against integrity attacks

• Encrypting the digest with a private key• Guards against authentication attacks

• Encrypting the message with a public key• Guards against confidentiality attacks

• Employing duplicate-removing routers, and requiring authenticated access wherever possible• Guards against DoS attacks

• User input validation• Guards against unchecked code attacks

Page 42: Network Security Protecting An Organizations Network.

Guarding Against Attacks One fact is always true about site security:

• An ounce of prevention is worth a pound of cure Frankly if attacks can be avoided or halted before they

occur, we will not need to deal with the side-effects of intrusions

The Code Red worm gives an example:• The security hole was discovered by a popular security site,

and a patch was created by them many months in advance• The security hole was made public by this site

• Many clones of the Code Red worm were created given this new information, which also flourished on unpatched sites

• Microsoft subsequently released an official patch for IIS more than 2 months before the code red worm became prevalent

Page 43: Network Security Protecting An Organizations Network.

Another Attack Categorization The previous scheme categorized attacks by their

purpose Another possibility is to categorize attacks by how

messages propagate:• Interruption: Messages are removed from the network, so

they are never received

• Interception: Messages are read from the network without interrupting the message reaching its destination

• Modification: Messages are removed from the network and replaced by another, modified version

• Fabrication: Messages are created, usually in order to appear to come from a different source, for a different purpose

Page 44: Network Security Protecting An Organizations Network.

Encryption and Authentication

In Depth

Page 45: Network Security Protecting An Organizations Network.

Authentication and Encryption

These two technologies are frequently inter-related• Both can be closely related to private keys

There are really two categories of encryption techniques:• Conventional (single-key) encryption: The same

key (shared by both sides) is used to encrypt and decrypt the data

• Public key encryption: One key is used for encryption (usually the private key), and another for decryption (usually the public key)

Page 46: Network Security Protecting An Organizations Network.

Single Key Encryption

Somehow, a shared key must be distributed between both programs

Single key encryption algorithms must be symmetric:• They must provide a means to use the same

key to decrypt and encrypt the data

• Usually this means there are two (reverse) algorithms

Page 47: Network Security Protecting An Organizations Network.

Single Key Encryption

To ensure security, the key exchange must occur in some secure way

If someone intercepts the key, the encrypted message can be decrypted• Assuming they have the decryption algorithm

This separation of encryption algorithm from the key is an advance in cryptography• Encryption algorithms in the 30’s and 40’s involved

only an encryption algorithm

Page 48: Network Security Protecting An Organizations Network.

Terminology

Plaintext: Data prior to the encryption process• Or data after the decryption process

Ciphertext: Data after the encryption process Cipher: An encryption algorithm Secret key: A piece of data used by the

encryption algorithm to generate ciphertext• The secret key is also used by the decryption

algorithm to generate plaintext

Page 49: Network Security Protecting An Organizations Network.

Encryption Algorithms: Ancient Encryption methods (not applied to data per se, but to

spoken or telegraph/written messages) usually involved the replacement of common parts of the messages with other characters/words• One common example is the replacement of letters with

some other letter in the alphabet

• This scheme was used by Julius Caesar, and as such it is called the Caesar Cipher

Later, these schemes employed some changing factor• Such as a table containing mappings between letters

• This table represents a changeable key that both parties must know

Page 50: Network Security Protecting An Organizations Network.

Caesar Cipher Problems

If the relationship between ciphertext letters and plaintext letters follows some pattern (as they did in Caesar’s method), the key can be easily determined

One way to combat these problems is to convert groups of letters at a time

Thus AB might translate to XY, but AC might translate to WV (not XV or something like that)

Page 51: Network Security Protecting An Organizations Network.

The Playfair Cipher

The Playfair cipher was created to convert groups of two letters at a time• Thus each translation occurs on two letters, so there are

262 (or 676) combinations

• This method is more difficult to crack since all 676 combinations must be found to be able to crack all messages

• However, if a partial list of mappings is known, it may reveal the message (or part of it), which will reveal more mappings

• mee? me a? ??e barn => meet me at the barn

Page 52: Network Security Protecting An Organizations Network.

The Playfair Cipher

The details of the Playfair cipher are irrelevant to this discussion, since the key can easily be determined

This scheme does, however, remove some of the structure of the message (e.g. word groupings), which is a good idea• For example, we cannot examine the ciphertext, looking

for commonly used letters, to determine which represent common letters in the plaintext (such as R,S,T,E)

We need to maximize this effect in order to make it more difficult to determine the key

Page 53: Network Security Protecting An Organizations Network.

Encryption Algorithms: Single Key

Keys have to be complicated enough that the encryption algorithm could be well-known and the ciphertext is still relatively secure

While overly simplistic, the Caesar Cipher (as well as other ancient algorithms) represents a symmetric algorithm, as required by single key encryption• One shortcoming is that the key can easily be determined

through iteration

• Ciphertext should never be enough information to determine the secret key

Algorithms which do not suffer from this include:• DES (Data Encryption Standard), IDEA (International Data

Encryption Algorithm), BlowFish, RC5, RC2, CAST-128

Page 54: Network Security Protecting An Organizations Network.

DES Algorithm

DES is a complicated algorithm, the details of which are not important here

Suffice it to say that DES is more secure than the other (ancient) algorithms discussed here

However, DES is vulnerable to brute-force attacks• Attacks where various key values are tried until the

message appears to be decrypted

Page 55: Network Security Protecting An Organizations Network.

DES Algorithm

One solution for this, is to apply the DES algorithm multiple times• If the code breaker finds one of the keys, it will be hard

for him/her to realize it, since the output will be ciphertext again

• Applying DES twice makes it difficult to break using brute force, however techniques exist for cracking double DES

• Thus, an alternative to DES is triple DES, where DES is applied three times• Thus the two parties must share 3 different keys

• This scheme is called Triple-DES or 3DES

Page 56: Network Security Protecting An Organizations Network.

Key Distribution Single key encryption relies on the secrecy of

the key in order to work There are a few ways to transfer secret keys:

• The key is generated by A, and delivered (physically) to B• For example, a floppy disk may be used for this

purpose• Once one key is securely transferred to B, A or B

could send the other a new key, by encrypting the new key using the old key

• The keys are generated simultaneously using the same (private) algorithm and some shared data

Page 57: Network Security Protecting An Organizations Network.

Key Generation

Generating a secret key is fairly simple, random sequences of characters are usually sufficient

However, care must be taken to avoid pseudo-randomly generated keys• These can be identified and keys may be found using

prediction algorithms

• Computers are incapable of generating truly random numbers, but algorithms which generate very difficult to predict sequences can be used above easy to predict ones

Page 58: Network Security Protecting An Organizations Network.

Public Key Cryptography

Cryptography Using Keys Which Are Publicly

Distributed

Page 59: Network Security Protecting An Organizations Network.

Public Key Cryptography

Public key cryptography involves ciphers that use different keys for encryption than decryption

PKC uses a key pair:• A public key, which is made publicly available

• A private key, which is kept secret

• Since there are two keys, the private key need never be transferred, so there is less likelihood of it being discovered

Page 60: Network Security Protecting An Organizations Network.

Key Pairs In some systems, keys have a sort of symmetry

• Either key can decrypt data encrypted with the other key

• e.g. RSA encryption Thus if the private key is used to encrypt, anyone with the

public key can decrypt the data• This does not keep data private

• However, only the owner of the true private key could have generated the encrypted data

If the public key is used to encrypt, only someone who has the private key can decrypt the data• This keeps the data private

• However, it is possible for anyone to replace the data with other encrypted data

Page 61: Network Security Protecting An Organizations Network.

Key Pairs

Thus there are two uses for PKC:• Encryption using the private key for authentication

• Encryption using the public key for data encryption

Key pairs must be carefully generated to support this symmetry• The details of generating key pairs is usually specific

to each PKC technique

• e.g. RSA

Page 62: Network Security Protecting An Organizations Network.

RSA

The RSA PKC scheme is very popular, and is used by many technologies:• PGP (Pretty Good Privacy): An implementation of an

encryption scheme (typically used for E-Mail) One useful feature of the RSA algorithm is that

it uses variable sized keys• Larger keys can be used where additional security is

required

• Smaller keys can be used for short periods (too short for the private key to be ‘broken’) and where computation and/or network bandwidth is a concern

Page 63: Network Security Protecting An Organizations Network.

RSA

428 bit RSA keys can be cracked by old desktop PC in less than 1 year• Info: Athlon XP 1900+ CPU (~4000 MIPS)

So why the heck do banks (and other sites that use SSL) use only 128 bit encryption?• Firstly, the US government will not allow larger keys

• They mandate that because they must be able to crack private keys when necessary

• Secondly, SSL-enabled browsers generates these keys for each SSL session• Sessions typically last minutes or hours, not months

Page 64: Network Security Protecting An Organizations Network.

A Problem

RSA (and other PKC schemes) suffer from one problem, similar to the distribution of the secret key in SKC:• How do we export public keys?

At first glance, this may seem like an easy problem• Public keys need not be hidden, since little damage

can be done with them

• The danger is not with reading the public key, but replacing it (i.e. an integrity attack on the public key)

Page 65: Network Security Protecting An Organizations Network.

A Problem

If a 3rd party replaced the public key with their own, they could use their own private key to decrypt data and for authentication• Thus the site would grant full access to the 3rd

party Obviously we want to avoid this

• We need to distribute public keys in such a way as to eliminate this possibility

Page 66: Network Security Protecting An Organizations Network.

Public Key Distribution

Secure public key distribution really boils down to one problem:• How do we know that the public key we

receive is really from who we think?

The answer is simple: certificates• Certificates provide a way of distributing

public keys, while also providing source authentication

Page 67: Network Security Protecting An Organizations Network.

Certificates

Certificates are quite simple:• They are an encrypted version of your public key

Certificates are encrypted using the private key of a certification authority (CA)• Public keys of CAs are well known

• In fact, the public keys of several CAs are built into browsers for SSL

• Since the public key of a CA is well known, we do not need to transfer it (and thus run the risk of it being tampered with)• The CA public key can be used to decrypt the certificate,

and thus extract the public key of the owner of the certificate

Page 68: Network Security Protecting An Organizations Network.

Certification Authorities CAs job is to create certificates The certificate (i.e. public key) of at least one well-known CA is

installed into browsers• For other (non-browser) uses of PKC, the certificate/public key of a

CA must be known If the incoming certificate is issued by (encrypted using the

private key of) a different CA, the certificate can still be verified• The public key of the certificate’s CA can be downloaded (they are

also publicly available), and used to extract the public key in the certificate

• The CA’s public key is contained in a certificate authorized by another CA

• Eventually, through a chain of certificates, the certificate can be validated, and the public key extracted

Page 69: Network Security Protecting An Organizations Network.

SSL

A Common Scheme

Page 70: Network Security Protecting An Organizations Network.

Secure Socket Layer (SSL)

SSL was designed to create a communication model similar to that available through TCP

However, SSL employs additional security techniques, such as encryption• Thus SSL gives the appearance of normal

socket communication, while providing security features

Page 71: Network Security Protecting An Organizations Network.

SSL

SSL can use several different encryption algorithms, including IDEA, DES, 3DES

However, due to the streaming nature of TCP, normally uses one of the schemes that encrypts a stream byte by byte: RC4• This includes key sizes of 40 (RC4-40) and

128 bits (RC4-128)

Page 72: Network Security Protecting An Organizations Network.

SSL Operation

SSL begins when clients connect to servers• This stage is marked by each side exchanging hello

messages Next, certificates are exchanged

• The server sends its certificate to the client, followed by the client sending its certificate to the server

Then, the two agree upon an encryption algorithm and parameters• Now, it is possible for the client and server to exchange

information using the agreed encryption algorithm and the certificates (which contain public keys)

Page 73: Network Security Protecting An Organizations Network.

E-Mail Security

Page 74: Network Security Protecting An Organizations Network.

E-Mail Security

There are two aspects to E-Mail security:

1. E-Mail privacyUsing encryption (or some other means) to keep

data contained in E-Mail private

2. Virus protectionSince E-Mail is a simple portal through which any

entity may send messages, those messages must not affect the user’s system or the network

Page 75: Network Security Protecting An Organizations Network.

E-Mail Privacy

The most common way to ensure data privacy through E-Mail is to use PGP

PGP: Pretty Good Privacy• A freeware tool that uses single key cryptography

(and public key cryptography) to encrypt text

• It uses public key cryptography for digital signatures (obviously)

• The tool allows users to choose the encryption method: 3DES, IDEA (SKC), RSA (PKC)

Page 76: Network Security Protecting An Organizations Network.

E-Mail Virus Protection

Microsoft recently release a “patch” for Outlook, which Outlook 2002 (shipped with Office XP) had already preinstalled• This patch essentially prevents receiving any files

which are suspect (.EXE, .COM, etc.)

Other (better) solutions are to have virus checkers virus scan all incoming files• Norton Antivirus, McAfee, PC-cillin, and others

already perform these scans, if configured to do so

Page 77: Network Security Protecting An Organizations Network.

Malicious Programs A program with 2 goals; to propagate itself to other machines,

and to do some harm to this machine, possibly:• Trap door: A modification that allows a secret entry point to a

system (accidental or purposeful; by an employee?)

• Logic bomb: Code hidden within a seemingly harmless program that will activate when certain conditions are met (e.g. a time elapses)

• Trojan horse: A program that appears to be useful, but actually has some unwanted behaviour

• Virus: A program that propagates itself by embedding its own code into other executable programs

• Worm: A program that uses network connections to propagate

• Bacteria: A program that does no harm, except propagate