Assignment

JB12345
CH07-CompSec4e.pptx

Computer Security:

Principles and Practice

Fourth Edition

By: William Stallings and Lawrie Brown

Lecture slides prepared for “Computer Security: Principles and Practice”, 4/e, by William Stallings and Lawrie Brown, Chapter 7 “Denial-of-Service Attacks”.

1

Chapter 7

Denial-of-Service Attacks

Chapter 1 listed a number of fundamental security services, including availability.

This service relates to a system being accessible and usable on demand by authorized

users. A denial-of-service attack (DoS) is an attempt to compromise availability by

hindering or blocking completely the provision of some service. The attack attempts

to exhaust some critical resource associated with the service. An example is flooding

a Web server with so many spurious requests that it is unable to respond to valid

requests from users in a timely manner. This chapter explores denial-of-service

attacks, their definition, the various forms they take, and defenses against them.

 The temporary takedown in December 2010 of a handful of websites that cut ties

with controversial website WikiLeaks, including Visa and MasterCard, made worldwide

news. Similar attacks, motivated by a variety of reasons, occur thousands of

times each day, thanks in part to the ease by which website disruptions can be

accomplished.

Hackers have been carrying out distributed denial-of-service (DDoS)  attacks

for many years, and their potency steadily has increased over time. Due to Internet

bandwidth growth, the largest such attacks have increased from a modest 400 Mbps

in 2002, to 100 Gbps in 2010 [ARBO10], to 300 Gbps in the Spamhaus attack in 2013,

and to 600 Gbps in the BBC attack in 2015. Massive flooding attacks  in the 50 Gbps

range are powerful enough to exceed the bandwidth capacity of almost any intended

target, including perhaps the core Internet Exchanges or critical DNS name servers,

but even smaller attacks can be surprisingly effective. [SYMA16] notes that DDoS

attacks are growing in number and intensity, but that most last for 30 minutes or less,

driven by the use of botnets-for-hire. The reasons for attacks include financial extortion,

hacktivism, and state-sponsored attacks on opponents. There are also reports of

criminals using DDoS attacks on bank systems as a diversion from the real attack on

their payment switches or ATM networks. These attacks remain popular as they are

simple to setup, difficult to stop, and very effective [SYMA16] .

 

A DDoS attack in October 2016 represents an ominous new trend in the threat.

This attack, on Dyn, a major Domain Name System (DNS) service provider, lasted

for many hours and involved multiple waves of attacks from over 100,000 malicious

endpoints. The noteworthy feature of this attack is that the attack source recruited

IoT (Internet of Things) devices, such as webcams and baby monitors. One estimate

of the volume of attack traffic is that it reached a peak as high as 1.2 TBps [LOSH16].

2

Denial-of-Service (DoS) Attack

The NIST Computer Security Incident Handling Guide defines a DoS attack as:

“An action that prevents or impairs the authorized use of networks, systems, or applications by exhausting resources such as central processing units (CPU), memory, bandwidth, and disk space.”

3

Denial of service is a form of attack on the availability of some service. In the context

of computer and communications security, the focus is generally on network

services that are attacked over their network connection. We distinguish this form

of attack on availability from other attacks, such as the classic acts of god, that

cause damage or destruction of IT infrastructure and consequent loss of service.

 NIST SP 800-61 (Computer Security Incident Handling Guide , August 2012)

defines denial-of-service (DoS) attack as follows:

A denial of service (DoS) is an action that prevents or impairs the authorized

use of networks, systems, or applications by exhausting resources such as central

processing units (CPU), memory, bandwidth, and disk space.

Denial-of-Service (DoS)

A form of attack on the availability of some service

Categories of resources that could be attacked are:

4

From this definition, you can see that there are several categories of resources

that could be attacked:

• Network bandwidth

• System resources

• Application resources

Network bandwidth relates to the capacity of the network links connecting a server

to the wider Internet. For most organizations, this is their connection to their Internet

service provider (ISP), as shown in the example network in Figure 7.1. Usually this

connection will have a lower capacity than the links within and between ISP routers.

This means it is possible for more traffic to arrive at the ISP’s routers over these

higher-capacity links than can be carried over the link to the organization. In this

circumstance, the router must discard some packets, delivering only as many as can

be handled by the link. In normal network operation such high loads might occur

to a popular server experiencing traffic from a large number of legitimate users. A

random portion of these users will experience a degraded or nonexistent service as

a consequence. This is expected behavior for an overloaded TCP/IP network link.

In a DoS attack, the vast majority of traffic directed at the target server is malicious,

generated either directly or indirectly by the attacker. This traffic overwhelms

any legitimate traffic, effectively denying legitimate users access to the server. Some

recent high volume attacks have even been directed at the ISP network supporting

the target organization, aiming to disrupt its connections to other networks. A number

of recent DDoS attacks are listed in [AROR11], with comments on their growth

in volume and impact.

A DoS attack targeting system resources typically aims to overload or crash its

network handling software. Rather than consuming bandwidth with large volumes

of traffic, specific types of packets are sent that consume the limited resources available

on the system. These include temporary buffers used to hold arriving packets,

tables of open connections, and similar memory data structures. The SYN spoofing

attack, which we discuss next, is of this type. It targets the table of TCP connections

on the server.

Another form of system resource attack uses packets whose structure triggers

a bug in the system’s network handling software, causing it to crash. This means the

system can no longer communicate over the network until this software is reloaded,

generally by rebooting the target system. This is known as a poison packet . The

classic ping of death and teardrop attacks, directed at older Windows 9x systems,

were of this form. These targeted bugs in the Windows network code that handled

ICMP (Internet Control Message Protocol) echo request packets and packet fragmentation,

respectively.

An attack on a specific application, such as a Web server, typically involves a

number of valid requests, each of which consumes significant resources. This then

limits the ability of the server to respond to requests from other users. For example,

a Web server might include the ability to make database queries. If a large,

costly query can be constructed, then an attacker could generate a large number of

these that severely load the server. This limits its ability to respond to valid requests

from other users. This type of attack is known as a cyberslam . [KAND05] discusses

attacks of this kind, and suggests some possible countermeasures. Another

alternative is to construct a request that triggers a bug in the server program, causing

it to crash. This means the server is no longer able to respond to requests until

it is restarted.

DoS attacks may also be characterized by how many systems are used to direct

traffic at the target system. Originally only one, or a small number of source systems

directly under the attacker’s control, was used. This is all that is required to send the

packets needed for any attack targeting a bug in a server’s network handling code or

some application. Attacks requiring high traffic volumes are more commonly sent

from multiple systems at the same time, using distributed or amplified forms of DoS

attacks. We discuss these later in this chapter.

Network bandwidth

Relates to the capacity of the network links connecting a server to the Internet

For most organizations this is their connection to their Internet Service Provider (ISP)

System resources

Aims to overload or crash the network handling software

Application resources

Typically involves a number of valid requests, each of which consumes significant resources, thus limiting the ability of the server to respond to requests from other users

5

Figure 7.1

Example Network to Illustrate DoS Attacks

Classic DoS Attacks

Flooding ping command

Aim of this attack is to overwhelm the capacity of the network connection to the target organization

Traffic can be handled by higher capacity links on the path, but packets are discarded as capacity decreases

Source of the attack is clearly identified unless a spoofed address is used

Network performance is noticeably affected

6

The simplest classical DoS attack is a flooding attack on an organization. The aim

of this attack is to overwhelm the capacity of the network connection to the target

organization. If the attacker has access to a system with a higher-capacity network

connection, then this system can likely generate a higher volume of traffic than the

lower-capacity target connection can handle. For example, in the network shown

in Figure 7.1 , the attacker might use the large company’s Web server to target the

medium-sized company with a lower-capacity network connection. The attack might

be as simple as using a flooding ping command directed at the Web server in the

target company. This traffic can be handled by the higher-capacity links on the path

between them, until the final router in the Internet cloud is reached. At this point

some packets must be discarded, with the remainder consuming most of the capacity

on the link to the medium-sized company. Other valid traffic will have little chance

of surviving discard as the router responds to the resulting congestion on this link.

In this classic ping flood attack, the source of the attack is clearly identified

since its address is used as the source address in the ICMP echo request packets. This

has two disadvantages from the attacker’s perspective. First, the source of the attack

is explicitly identified, increasing the chance that the attacker can be identified and

legal action taken in response. Second, the targeted system will attempt to respond to

the packets being sent. In the case of any ICMP echo request packets received by the

server, it would respond to each with an ICMP echo response packet directed back

to the sender. This effectively reflects the attack back at the source system. Since

the source system has a higher network bandwidth, it is more likely to survive this

reflected attack. However, its network performance will be noticeably affected, again

increasing the chances of the attack being detected and action taken in response. For

both of these reasons the attacker would like to hide the identity of the source system.

This means that any such attack packets need to use a falsified, or spoofed, address.

Source Address Spoofing

Use forged source addresses

Usually via the raw socket interface on operating systems

Makes attacking systems harder to identify

Attacker generates large volumes of packets that have the target system as the destination address

Congestion would result in the router connected to the final, lower capacity link

Requires network engineers to specifically query flow information from their routers

Backscatter traffic

Advertise routes to unused IP addresses to monitor attack traffic

7

A common characteristic of packets used in many types of DoS attacks is the use

of forged source addresses. This is known as source address spoofing. Given sufficiently

privileged access to the network handling code on a computer system, it

is easy to create packets with a forged source address (and indeed any other attribute

that is desired). This type of access is usually via the raw socket interface on

many operating systems. This interface was provided for custom network testing

and research into network protocols. It is not needed for normal network operation.

However, for reasons of historical compatibility and inertia, this interface has been

maintained in many current operating systems. Having this standard interface available

greatly eases the task of any attacker trying to generate packets with forged

attributes. Otherwise an attacker would most likely need to install a custom device

driver on the source system to obtain this level of access to the network, which is

much more error prone and dependent on operating system version.

Given raw access to the network interface, the attacker now generates large

volumes of packets. These would all have the target system as the destination

address but would use randomly selected, usually different, source addresses for

each packet. Consider the flooding ping example from the previous section. These

custom ICMP echo request packets would flow over the same path from the source

toward the target system. The same congestion would result in the router connected

to the final, lower capacity link. However, the ICMP echo response packets, generated

in response to those packets reaching the target system, would no longer

be reflected back to the source system. Rather they would be scattered across the

Internet to all the various forged source addresses. Some of these addresses might

correspond to real systems. These might respond with some form of error packet,

since they were not expecting to see the response packet received. This only adds to

the flood of traffic directed at the target system. Some of the addresses may not be

used or may not reachable. For these, ICMP destination unreachable packets might

be sent back. Or these packets might simply be discarded. Any response packets

returned only add to the flood of traffic directed at the target system.

In addition, the use of packets with forged source addresses means the attacking

system is much harder to identify. The attack packets seem to have originated at

addresses scattered across the Internet. Hence, just inspecting each packet’s header

is not sufficient to identify its source. Rather the flow of packets of some specific

form through the routers along the path from the source to the target system must

be identified. This requires the cooperation of the network engineers managing all

these routers and is a much harder task than simply reading off the source address.

It is not a task that can be automatically requested by the packet recipients. Rather

it usually requires the network engineers to specifically query flow information

from their routers. This is a manual process that takes time and effort to organize.

It is worth considering why such easy forgery of source addresses is allowed on

the Internet. It dates back to the development of TCP/IP, which occurred in a generally

cooperative, trusting environment. TCP/IP simply does not include the ability,

by default, to ensure that the source address in a packet really does correspond with

that of the originating system. It is possible to impose filtering on routers to ensure

this (or at least that source network address is valid). However, this filtering needs

to be imposed as close to the originating system as possible, where the knowledge

of valid source addresses is as accurate as possible. In general, this should occur at

the point where an organization’s network connects to the wider Internet, at the

borders of the ISP’s providing this connection. Despite this being a long-standing

security recommendation to combat problems such as DoS attacks, for example (RFC 2827),

many ISPs do not implement such filtering. As a consequence, attacks using spoofed-source

packets continue to occur frequently.

There is a useful side effect of this scattering of response packets to some

original flow of spoofed-source packets. Security researchers, such as those with the

Honeynet Project, have taken blocks of unused IP addresses, advertised routes to

them, and then collected details of any packets sent to these addresses. Since no real

systems use these addresses, no legitimate packets should be directed to them. Any

packets received might simply be corrupted. It is much more likely, though, that

they are the direct or indirect result of network attacks. The ICMP echo response

packets generated in response to a ping flood using randomly spoofed source

addresses is a good example. This is known as backscatter traffic . Monitoring the

type of packets gives valuable information on the type and scale of attacks being

used, as described by [MOOR06], for example. This information is being used to

develop responses to the attacks being seen.

SYN Spoofing

Common DoS attack

Attacks the ability of a server to respond to future connection requests by overflowing the tables used to manage them

Thus legitimate users are denied access to the server

Hence an attack on system resources, specifically the network handling code in the operating system

8

Along with the basic flooding attack, the other common classic DoS attack is the

SYN spoofing attack. This attacks the ability of a network server to respond to TCP

connection requests by overflowing the tables used to manage such connections.

This means future connection requests from legitimate users fail, denying them

access to the server. It is thus an attack on system resources, specifically the network

handling code in the operating system.

9

To understand the operation of these attacks, we need to review the three-way

handshake that TCP uses to establish a connection. This is illustrated in Figure 7.2 .

The client system initiates the request for a TCP connection by sending a SYN packet

to the server. This identifies the client’s address and port number and supplies an

initial sequence number. It may also include a request for other TCP options. The

server records all the details about this request in a table of known TCP connections.

It then responds to the client with a SYN-ACK packet. This includes a sequence

number for the server and increments the client’s sequence number to confirm receipt

of the SYN packet. Once the client receives this, it sends an ACK packet to the server

with an incremented server sequence number and marks the connection as established.

Likewise, when the server receives this ACK packet, it also marks the connection

as established. Either party may then proceed with data transfer. In practice, this

ideal exchange sometimes fails. These packets are transported using IP, which is an

unreliable, though best-effort, network protocol. Any of the packets might be lost in

transit, as a result of congestion, for example. Hence both the client and server keep

track of which packets they have sent and, if no response is received in a reasonable

time, will resend those packets. As a result, TCP is a reliable transport protocol, and

any applications using it need not concern themselves with problems of lost or reordered

packets. This does, however, impose an overhead on the systems in managing

this reliable transfer of packets.

10

A SYN spoofing attack exploits this behavior on the targeted server system.

The attacker generates a number of SYN connection request packets with forged

source addresses. For each of these the server records the details of the TCP connection

request and sends the SYN-ACK packet to the claimed source address,

as shown in Figure 7.3 . If there is a valid system at this address, it will respond

with a RST (reset) packet to cancel this unknown connection request. When the

server receives this packet, it cancels the connection request and removes the saved

information. However, if the source system is too busy, or there is no system at the

forged address, then no reply will return. In these cases the server will resend the

SYN-ACK packet a number of times before finally assuming the connection request

has failed and deleting the information saved concerning it. In this period between

when the original SYN packet is received and when the server assumes the request

has failed, the server is using an entry in its table of known TCP connections. This

table is typically sized on the assumption that most connection requests quickly

succeed and that a reasonable number of requests may be handled simultaneously.

However, in a SYN spoofing attack, the attacker directs a very large number of

forged connection requests at the targeted server. These rapidly fill the table of

known TCP connections on the server. Once this table is full, any future requests,

including legitimate requests from other users, are rejected. The table entries will

time out and be removed, which in normal network usage corrects temporary

overflow problems. However, if the attacker keeps a sufficient volume of forged

requests flowing, this table will be constantly full and the server will be effectively

cut off from the Internet, unable to respond to most legitimate connection requests.

In order to increase the usage of the known TCP connections table, the

attacker ideally wishes to use addresses that will not respond to the SYN-ACK with

a RST. This can be done by overloading the host that owns the chosen spoofed

source address, or by simply using a wide range of random addresses. In this case,

the attacker relies on the fact that there are many unused addresses on the Internet.

Consequently, a reasonable proportion of randomly generated addresses will not

correspond to a real host.

There is a significant difference in the volume of network traffic between a

SYN spoof attack and the basic flooding attack we discussed. The actual volume of

SYN traffic can be comparatively low, nowhere near the maximum capacity of the

link to the server. It simply has to be high enough to keep the known TCP connections

table filled. Unlike the flooding attack, this means the attacker does not need

access to a high-volume network connection. In the network shown in Figure 7.1 ,

the medium-sized organization, or even a broadband home user, could successfully

attack the large company server using a SYN spoofing attack.

A flood of packets from a single server or a SYN spoofing attack originating

on a single system were probably the two most common early forms of DoS attacks.

In the case of a flooding attack this was a significant limitation, and attacks evolved

to use multiple systems to increase their effectiveness. We next examine in more

detail some of the variants of a flooding attack. These can be launched either from a

single or multiple systems, using a range of mechanisms, which we explore.

Flooding Attacks

Classified based on network protocol used

Intent is to overload the network capacity on some link to a server

Virtually any type of network packet can be used

11

Flooding attacks take a variety of forms, based on which network protocol is being

used to implement the attack. In all cases the intent is generally to overload the

network capacity on some link to a server. The attack may alternatively aim to

overload the server’s ability to handle and respond to this traffic. These attacks flood

the network link to the server with a torrent of malicious packets competing with, and

usually overwhelming, valid traffic flowing to the server. In response to the congestion

this causes in some routers on the path to the targeted server, many packets will be

dropped. Valid traffic has a low probability of surviving discard caused by this flood

and hence of accessing the server. This results in the server’s ability to respond to

network connection requests being either severely degraded or failing entirely.

Virtually any type of network packet can be used in a flooding attack. It simply

needs to be of a type that is permitted to flow over the links toward the targeted system,

so that it can consume all available capacity on some link to the target server. Indeed,

the larger the packet, the more effective is the attack. Common flooding attacks use

any of the ICMP, UDP, or TCP SYN packet types. It is even possible to flood with

some other IP packet type. However, as these are less common and their usage more

targeted, it is easier to filter for them and hence hinder or block such attacks.

The ping flood using ICMP echo request packets we discuss in Section 7.1 is a classic

example of an ICMP flooding attack. This type of ICMP packet was chosen since

traditionally network administrators allowed such packets into their networks, as

ping is a useful network diagnostic tool. More recently, many organizations have

restricted the ability of these packets to pass through their firewalls. In response,

attackers have started using other ICMP packet types. Since some of these should

be handled to allow the correct operation of TCP/IP, they are much more likely to

be allowed through an organization’s firewall. Filtering some of these critical ICMP

packet types would degrade or break normal TCP/IP network behavior. ICMP

destination unreachable and time exceeded packets are examples of such critical

packet types.

 An attacker can generate large volumes of one of these packet types. Because

these packets include part of some notional erroneous packet that supposedly caused

the error being reported, they can be made comparatively large, increasing their effectiveness

in flooding the link. ICMP flood attacks remain one of the most common

types of DDoS attacks [SYMA16].

An alternative to using ICMP packets is to use UDP packets directed to some port

number, and hence potential service, on the target system. A common choice was a

packet directed at the diagnostic echo service, commonly enabled on many server

systems by default. If the server had this service running, it would respond with a

UDP packet back to the claimed source containing the original packet data contents.

If the service is not running, then the packet is discarded, and possibly an

ICMP destination unreachable packet is returned to the sender. By then the attack

has already achieved its goal of occupying capacity on the link to the server. Just

about any UDP port number can be used for this end. Any packets generated in

response only serve to increase the load on the server and its network links.

Spoofed source addresses are normally used if the attack is generated using

a single source system, for the same reasons as with ICMP attacks. If multiple systems

are used for the attack, often the real addresses of the compromised, zombie,

systems are used. When multiple systems are used, the consequences of both the

reflected flow of packets and the ability to identify the attacker are reduced.

Another alternative is to send TCP packets to the target system. Most likely these

would be normal TCP connection requests, with either real or spoofed source

addresses. They would have an effect similar to the SYN spoofing attack we’ve

described. In this case, though, it is the total volume of packets that is the aim of the

attack rather than the system code. This is the difference between a SYN spoofing

attack and a SYN flooding attack.

This attack could also use TCP data packets, which would be rejected by the

server as not belonging to any known connection. But again, by this time the attack

has already succeeded in flooding the links to the server.

All of these flooding attack variants are limited in the total volume of traffic

that can be generated if just a single system is used to launch the attack. The use

of a single system also means the attacker is easier to trace. For these reasons, a

variety of more sophisticated attacks, involving multiple attacking systems, have

been developed. By using multiple systems, the attacker can significantly scale up

the volume of traffic that can be generated. Each of these systems need not be particularly

powerful or on a high-capacity link. But what they don’t have individually,

they more than compensate for in large numbers. Also, by directing the attack

through intermediaries, the attacker is further distanced from the target and significantly

harder to locate and identify. Indirect attack types that utilize multiple

systems include

• Distributed denial-of-service attacks

• Reflector attacks

• Amplifier attacks

We consider each of these in turn.

ICMP flood

Ping flood using ICMP echo request packets

Traditionally network administrators allow such packets into their networks because ping is a useful network diagnostic tool

UDP flood

Uses UDP packets directed to some port number on the target system

TCP SYN flood

Sends TCP packets to the target system

Total volume of packets is the aim of the attack rather than the system code

Distributed Denial of Service (DDoS) Attacks

12

 Recognizing the limitations of flooding attacks generated by a single system, one

of the earlier significant developments in DoS attack tools was the use of multiple

systems to generate attacks. These systems were typically compromised user workstations

or PCs. The attacker uses malware to subvert the system and to install an attack

 agent, which they can control. Such systems are known as zombies. Large collections

of such systems under the control of one attacker can be created, collectively forming

a botnet , as we discussed in Chapter 6. Such networks of compromised systems

are a favorite tool of attackers, and can be used for a variety of purposes, including

distributed denial-of-service (DDoS)  attacks. Indeed, there is an underground

economy that creates and hires out botnets for use in such attacks. [SYMA16] report

evidence that 40% of DDoS attacks in 2015 were from such botnets for hire. In the

example network shown in Figure 7.1, some of the broadband user systems may be

compromised and used as zombies to attack any of the company or other links shown.

Many other DDoS tools have been developed since. Instead of using dedicated

handler programs, many now use an IRC or similar instant messaging server

program to manage communications with the agents. Many of these more recent

tools also use cryptographic mechanisms to authenticate the agents to the handlers,

in order to hinder analysis of command traffic.

The best defense against being an unwitting participant in a DDoS attack is to

prevent your systems from being compromised. This requires good system security

practices and keeping the operating systems and applications on such systems current

and patched.

For the target of a DDoS attack, the response is the same as for any flooding

attack, but with greater volume and complexity. We discuss appropriate defenses

and responses in Sections 7.6 and 7.7.

Use of multiple systems to generate attacks

Attacker uses a flaw in operating system or in a common application to gain access and installs their program on it (zombie)

Large collections of such systems under the control of one attacker’s control can be created, forming a botnet

13

While the attacker could command each zombie individually, more generally

a control hierarchy is used. A small number of systems act as handlers controlling a

much larger number of agent systems, as shown in Figure 7.4 . There are a number of

advantages to this arrangement. The attacker can send a single command to a handler,

which then automatically forwards it to all the agents under its control. Automated

infection tools can also be used to scan for and compromise suitable zombie systems,

as we discuss in Chapter 6 . Once the agent software is uploaded to a newly compromised

system, it can contact one or more handlers to automatically notify them of its

availability. By this means, the attacker can automatically grow suitable botnets.

One of the earliest and best-known DDoS tools is Tribe Flood Network

(TFN), written by the hacker known as Mixter. The original variant from the 1990s

exploited Sun Solaris systems. It was later rewritten as Tribe Flood Network 2000

(TFN2K) and could run on UNIX, Solaris, and Windows NT systems. TFN and

TFN2K use a version of the two-layer command hierarchy shown in Figure 7.4. The

agent was a Trojan program that was copied to and run on compromised, zombie

systems. It was capable of implementing ICMP flood, SYN flood, UDP flood, and

ICMP amplification forms of DoS attacks. TFN did not spoof source addresses in

the attack packets. Rather it relied on a large number of compromised systems,

and the layered command structure, to obscure the path back to the attacker. The

agent also implemented some other rootkit functions as we describe in Chapter 6.

The handler was simply a command-line program run on some compromised systems.

The attacker accessed these systems using any suitable mechanism giving

shell access, and then ran the handler program with the desired options. Each handler

could control a large number of agent systems, identified using a supplied list.

Communications between the handler and its agents was encrypted and could be

intermixed with a number of decoy packets. This hindered attempts to monitor and

analyze the control traffic. Both these communications and the attacks themselves

could be sent via randomized TCP, UDP, and ICMP packets. This tool demonstrates

the typical capabilities of a DDoS attack system.

Many other DDoS tools have been developed since. Instead of using dedicated

handler programs, many now use an IRC or similar instant messaging server

program, or web-based HTTP servers, to manage communications with the agents.

Many of these more recent tools also use cryptographic mechanisms to authenticate

the agents to the handlers, in order to hinder analysis of command traffic.

Voice over IP (VoIP) telephony is now widely deployed over the Internet. The standard

protocol used for call setup in VoIP is the Session Initiation Protocol (SIP).

SIP is a text-based protocol with a syntax similar to that of HTTP. There are two

different types of SIP messages: requests and responses. Figure 7.5 is a simplified

illustration of the operation of the SIP INVITE message, used to establish a media

session between user agents. In this case, Alice’s user agent runs on a computer, and

Bob’s user agent runs on a cell phone. Alice’s user agent is configured to communicate

with a proxy server (the outbound server) in its domain and begins by sending

an INVITE SIP request to the proxy server that indicates its desire to invite Bob’s

user agent into a session. The proxy server uses a DNS server to get the address

of Bob’s proxy server, and then forwards the INVITE request to that server. The

server then forwards the request to Bob’s user agent, causing Bob’s phone to ring.

A SIP flood attack exploits the fact that a single INVITE request triggers considerable

resource consumption. The attacker can flood a SIP proxy with numerous

INVITE requests with spoofed IP addresses, or alternately a DDoS attack using a

botnet to generate numerous INVITE request. This attack puts a load on the SIP

proxy servers in two ways. First, their server resources are depleted in processing

the INVITE requests. Second, their network capacity is consumed. Call receivers

are also victims of this attack. A target system will be flooded with forged VoIP

calls, making the system unavailable for legitimate incoming calls.

14

Hypertext Transfer Protocol (HTTP) Based Attacks

HTTP flood

Slowloris

Attack that bombards Web servers with HTTP requests

Consumes considerable resources

Spidering

Bots starting from a given HTTP link and following all links on the provided Web site in a recursive way

Attempts to monopolize by sending HTTP requests that never complete

Eventually consumes Web server’s connection capacity

Utilizes legitimate HTTP traffic

Existing intrusion detection and prevention solutions that rely on signatures to detect attacks will generally not recognize Slowloris

We consider two different approaches to exploiting the Hypertext Transfer Protocol

(HTTP) to deny service.

An HTTP flood refers to an attack that bombards Web servers

with HTTP requests. Typically, this is a DDoS attack, with HTTP requests coming

from many different bots. The requests can be designed to consume considerable

resources. For example, an HTTP request to download a large file from the target

causes the Web server to read the file from hard disk, store it in memory, convert it

into a packet stream, and then transmit the packets. This process consumes memory,

processing, and transmission resources.

A variant of this attack is known as a recursive HTTP flood. In this case, the

bots start from a given HTTP link and then follows all links on the provided Web

site in a recursive way. This is also called spidering.

An intriguing and unusual form of HTTP-based attack is Slowloris

[SOUR12], [DAMO12]. Slowloris exploits the common server technique of using

multiple threads to support multiple requests to the same server application. It

attempts to monopolize all of the available request handling threads on the Web

server by sending HTTP requests that never complete. Since each request consumes

a thread, the Slowloris attack eventually consumes all of the Web server’s connection

capacity, effectively denying access to legitimate users.

The HTTP protocol specification (RFC2616) states that a blank line must be

used to indicate the end of the request headers and the beginning of the payload,

if any. Once the entire request is received, the Web server may then respond. The

Slowloris attack operates by establishing multiple connections to the Web server.

On each connection, it sends an incomplete request that does not include the terminating

newline sequence. The attacker sends additional header lines periodically to

keep the connection alive, but never sends the terminating newline sequence. The

Web server keeps the connection open, expecting more information to complete

the request. As the attack continues, the volume of long-standing Slowloris connections

increases, eventually consuming all available Web server connections, thus

rendering the Web server unavailable to respond to legitimate requests.

Slowloris is different from typical denials of service in that Slowloris traffic

utilizes legitimate HTTP traffic, and does not rely on using special “bad” HTTP

requests that exploit bugs in specific HTTP servers. Because of this, existing intrusion

detection and intrusion prevention solutions that rely on signatures to detect

attacks will generally not recognize Slowloris. This means that Slowloris is capable

of being effective even when standard enterprise-grade intrusion detection and

intrusion prevention systems are in place.

There are a number of countermeasures that can be taken against Slowloris

type attacks, including limiting the rate of incoming connections from a particular

host; varying the timeout on connections as a function of the number of connections;

and delayed binding. Delayed binding is performed by load balancing software. In

essence, the load balancer performs an HTTP request header completeness check,

which means that the HTTP request will not be sent to the appropriate Web server

until the final two carriage return and line feeds are sent by the HTTP client. This is

the key bit of information. Basically, delayed binding ensures that your Web server

or proxy will never see any of the incomplete requests being sent out by Slowloris.

15

Reflection Attacks

Attacker sends packets to a known service on the intermediary with a spoofed source address of the actual target system

When intermediary responds, the response is sent to the target

“Reflects” the attack off the intermediary (reflector)

Goal is to generate enough volumes of packets to flood the link to the target system without alerting the intermediary

The basic defense against these attacks is blocking spoofed-source packets

16

In contrast to DDoS attacks, where the intermediaries are compromised systems

running the attacker’s programs, reflector and amplifier attacks use network systems

functioning normally. The attacker sends a network packet with a spoofed source

address to a service running on some network server. The server responds to this

packet, sending it to the spoofed source address that belongs to the actual attack

target. If the attacker sends a number of requests to a number of servers, all with the

same spoofed source address, the resulting flood of responses can overwhelm the

target’s network link. The fact that normal server systems are being used as intermediaries,

and that their handling of the packets is entirely conventional, means

these attacks can be easier to deploy and harder to trace back to the actual attacker.

There are two basic variants of this type of attack: the simple reflection attack and

the amplification attack.

The reflection attack is a direct implementation of this type of attack. The attacker

sends packets to a known service on the intermediary with a spoofed source address

of the actual target system. When the intermediary responds, the response is sent to

the target. Effectively this reflects the attack off the intermediary, which is termed

the reflector, and is why this is called a reflection attack.

Ideally the attacker would like to use a service that created a larger response

packet than the original request. This allows the attacker to convert a lower volume

stream of packets from the originating system into a higher volume of packet data

from the intermediary directed at the target. Common UDP services are often used

for this purpose. Originally the echo service was a favored choice, although it does

not create a larger response packet. However, any generally accessible UDP service

could be used for this type of attack. The chargen, DNS, SNMP, or ISAKMP

services have all been exploited in this manner, in part because they can be made to

generate larger response packets directed at the target.

The intermediary systems are often chosen to be high-capacity network servers

or routers with very good network connections. This means they can generate

high volumes of traffic if necessary, and if not, the attack traffic can be obscured in

the normal high volumes of traffic flowing through them. If the attacker spreads the

attack over a number of intermediaries in a cyclic manner, then the attack traffic

flow may well not be easily distinguished from the other traffic flowing from the

system. This, combined with the use of spoofed source addresses, greatly increases

the difficulty of any attempt to trace the packet flows back to the attacker’s system.

Another variant of reflection attack uses TCP SYN packets and exploits the

normal three-way handshake used to establish a TCP connection. The attacker sends

a number of SYN packets with spoofed source addresses to the chosen intermediaries.

In turn the intermediaries respond with a SYN-ACK packet to the spoofed

source address, which is actually the target system. The attacker uses this attack

with a number of intermediaries. The aim is to generate high enough volumes of

packets to flood the link to the target system. The target system will respond with a

RST packet for any that get through, but by then the attack has already succeeded

in overwhelming the target’s network link.

This attack variant is a flooding attack that differs from the SYN spoofing

attack we discussed earlier in this chapter. The goal is to flood the network link

to the target, not to exhaust its network handling resources. Indeed, the attacker

would usually take care to limit the volume of traffic to any particular intermediary

to ensure that it is not overwhelmed by, or even notices, this traffic. This is both

because its continued correct functioning is an essential component of this attack,

as is limiting the chance of the attacker’s actions being detected. The 2002 attack on

GRC.com was of this form. It used connection requests to the BGP routing service

on core routers as the primary intermediaries. These generated sufficient response

traffic to completely block normal access to GRC.com. However, as GRC.com

discovered, once this traffic was blocked, a range of other services, on other intermediaries,

were also being used. GRC noted in its report on this attack that “you

know you’re in trouble when packet floods are competing to flood you.”

Any generally accessible TCP service can be used in this type of attack. Given

the large number of servers available on the Internet, including many well-known

servers with very high capacity network links, there are many possible intermediaries

that can be used. What makes this attack even more effective is that the

individual TCP connection requests are indistinguishable from normal connection

requests directed to the server. It is only if they are running some form of intrusion

detection system that detects the large numbers of failed connection requests from

one system that this attack might be detected and possibly blocked. If the attacker is

using a number of intermediaries, then it is very likely that even if some detect and

block the attack, many others will not, and the attack will still succeed.

17

A further variation of the reflector attack establishes a self-contained loop

between the intermediary and the target system. Both systems act as reflectors.

Figure 7.6 shows this type of attack. The upper part of the figure shows normal

Domain Name System operation. The DNS client sends a query from its UDP

port 1792 to the server’s DNS port 53 to obtain the IP address of a domain name.

The DNS server sends a UDP response packet including the IP address. The lower

part of the figure shows a reflection attack using DNS. The attacker sends a query

to the DNS server with a spoofed IP source address of j.k.l.m; this is the IP address

of the target. The attacker uses port 7, which is usually associated with echo, a

reflector service. The DNS server then sends a response to the victim of the attack,

j.k.l.m, addressed to port 7. If the victim is offering the echo service, it may create a

packet that echoes the received data back to the DNS server. This can cause a loop

between the DNS server and the victim if the DNS server responds to the packets

sent by the victim. Most reflector attacks can be prevented through network-based

and host-based firewall rulesets that reject suspicious combinations of source and

destination ports.

While very effective if possible, this type of attack is fairly easy to filter for

because the combinations of service ports used should never occur in normal network

operation.

When implementing any of these reflection attacks, the attacker could use just

one system as the original source of packets. This suffices, particularly if a service

is used that generates larger response packets than those originally sent to the intermediary.

Alternatively, multiple systems might be used to generate higher volumes

of traffic to be reflected and to further obscure the path back to the attacker. Typically a botnet

would be used in this case.

Another characteristic of reflection attacks is the lack of backscatter traffic.

In both direct flooding attacks and SYN spoofing attacks, the use of spoofed

source addresses results in response packets being scattered across the Internet and

thus detectable. This allows security researchers to estimate the volumes of such

attacks. In reflection attacks, the spoofed source address directs all the packets at

the desired target and any responses to the intermediary. There is no generally visible

side effect of these attacks, making them much harder to quantify. Evidence of

them is only available from either the targeted systems and their ISPs or the intermediary

systems. In either case, specific instrumentation and monitoring would be

needed to collect this evidence.

Fundamental to the success of reflection attacks is the ability to create

spoofed-source packets. If filters are in place that block spoofed-source packets, as

described in (RFC 2827), then these attacks are simply not possible. This is the most

basic, fundamental defense against such attacks. This is not the case with either

SYN spoofing or flooding attacks (distributed or not). They can succeed using real

source addresses, with the consequences already noted.

18

Amplification attacks are a variant of reflector attacks and also involve sending a

packet with a spoofed source address for the target system to intermediaries. They

differ in generating multiple response packets for each original packet sent. This can

be achieved by directing the original request to the broadcast address for some network.

As a result, all hosts on that network can potentially respond to the request,

generating a flood of responses as shown in Figure 7.7 . It is only necessary to use

a service handled by large numbers of hosts on the intermediate network. A ping

flood using ICMP echo request packets was a common choice, since this service

is a fundamental component of TCP/IP implementations and was often allowed

into networks. The well-known smurf DoS program used this mechanism and was

widely popular for some time. Another possibility is to use a suitable UDP service,

such as the echo service. The fraggle program implemented this variant. Note that

TCP services cannot be used in this type of attack; because they are connection

oriented, they cannot be directed at a broadcast address. Broadcasts are inherently

connectionless.

The best additional defense against this form of attack is to not allow directed

broadcasts to be routed into a network from outside. Indeed, this is another longstanding

security recommendation, unfortunately about as widely implemented as

that for blocking spoofed source addresses. If these forms of filtering are in place,

these attacks cannot succeed. Another defense is to limit network services like echo

and ping from being accessed from outside an organization. This restricts which

services could be used in these attacks, at a cost in ease of analyzing some legitimate

network problems.

Attackers scan the Internet looking for well-connected networks that do allow

directed broadcasts and that implement suitable services attackers can reflect off.

These lists are traded and used to implement such attacks.

DNS Amplification Attacks

Use packets directed at a legitimate DNS server as the intermediary system

Attacker creates a series of DNS requests containing the spoofed source address of the target system

Exploit DNS behavior to convert a small request to a much larger response (amplification)

Target is flooded with responses

Basic defense against this attack is to prevent the use of spoofed source addresses

19

In addition to the DNS reflection attack discussed previously, a further variant of an

amplification attack uses packets directed at a legitimate DNS server as the intermediary

system. Attackers gain attack amplification by exploiting the behavior of the

DNS protocol to convert a small request into a much larger response. This contrasts

with the original amplifier attacks, which use responses from multiple systems to a

single request to gain amplification. Using the classic DNS protocol, a 60-byte UDP

request packet can easily result in a 512-byte UDP response, the maximum traditionally

allowed. All that is needed is a name server with DNS records large enough for

this to occur.

These attacks have been seen for several years. More recently, the DNS

protocol has been extended to allow much larger responses of over 4000 bytes to

support extended DNS features such as IPv6, security, and others. By targeting

servers that support the extended DNS protocol, significantly greater amplification

can be achieved than with the classic DNS protocol.

In this attack, a selection of suitable DNS servers with good network connections

are chosen. The attacker creates a series of DNS requests containing

the spoofed source address of the target system. These are directed at a number

of the selected name servers. The servers respond to these requests, sending the

replies to the spoofed source, which appears to them to be the legitimate requesting

system. The target is then flooded with their responses. Because of the amplification

achieved, the attacker need only generate a moderate flow of packets to

cause a larger, amplified flow to flood and overflow the link to the target system.

Intermediate systems will also experience significant loads. By using a number of

high-capacity, well-connected systems, the attacker can ensure that intermediate

systems are not overloaded, allowing the attack to proceed.

A further variant of this attack exploits recursive DNS name servers. This is

a basic feature of the DNS protocol that permits a DNS name server to query a

number of other servers to resolve a query for its clients. The intention was that this

feature is used to support local clients only. However, many DNS systems support

recursion by default for any requests. They are known as open recursive DNS servers.

Attackers may exploit such servers for a number of DNS-based attacks, including

the DNS amplification DoS attack. In this variant, the attacker targets a number

of open recursive DNS servers. The name information being used for the attack

need not reside on these servers, but can be sourced from anywhere on the Internet.

The results are directed at the desired target using spoofed source addresses.

Like all the reflection-based attacks, the basic defense against these is to

prevent the use of spoofed source addresses. Appropriate configuration of DNS

servers, in particular limiting recursive responses to internal client systems only, as

described in RFC 5358, can restrict some variants of this attack.

DoS Attack Defenses

These attacks cannot be prevented entirely

High traffic volumes may be legitimate

High publicity about a specific site

Activity on a very popular site

Described as slashdotted, flash crowd, or flash event

Four lines of defense against DDoS attacks

20

There are a number of steps that can be taken both to limit the consequences of

being the target of a DoS attack and to limit the chance of your systems being compromised

and then used to launch DoS attacks. It is important to recognize that

these attacks cannot be prevented entirely. In particular, if an attacker can direct a

large enough volume of legitimate traffic to your system, then there is a high chance

this will overwhelm your system’s network connection, and thus limit legitimate

traffic requests from other users. Indeed, this sometimes occurs by accident as a

result of high publicity about a specific site. Classically, a posting to the well-known

Slashdot news aggregation site often results in overload of the referenced server

system. Similarly, when popular sporting events like the Olympics or Soccer World

Cup matches occur, sites reporting on them experience very high traffic levels. This

has led to the terms slashdotted , flash crowd , or flash event being used to describe

such occurrences. There is very little that can be done to prevent this type of either

accidental or deliberate overload without also compromising network performance.

The provision of significant excess network bandwidth and replicated distributed

servers is the usual response, particularly when the overload is anticipated. This is

regularly done for popular sporting sites. However, this response does have a significant

implementation cost.

In general, there are four lines of defense against DDoS attacks [PENG07,

CHAN02]:

• Attack prevention and preemption (before the attack): These mechanisms

enable the victim to endure attack attempts without denying service to legitimate

clients. Techniques include enforcing policies for resource consumption

and providing backup resources available on demand. In addition, prevention

mechanisms modify systems and protocols on the Internet to reduce the

possibility of DDoS attacks.

• Attack detection and filtering (during the attack): These mechanisms attempt

to detect the attack as it begins and respond immediately. This minimizes the

impact of the attack on the target. Detection involves looking for suspicious

patterns of behavior. Response involves filtering out packets likely to be part

of the attack.

• Attack source traceback and identification (during and after the attack): This

is an attempt to identify the source of the attack as a first step in preventing

future attacks. However, this method typically does not yield results fast

enough, if at all, to mitigate an ongoing attack.

• Attack reaction (after the attack): This is an attempt to eliminate or curtail the

effects of an attack.

We discuss the first of these lines of defense in this section and consider the

remaining three in Section 7.7 .

Attack prevention and preemption

Before attack

Attack detection and filtering

During the attack

Attack source traceback and identification

During and after the attack

Attack reaction

After the attack

DoS Attack Prevention

Block spoofed source addresses

On routers as close to source as possible

Filters may be used to ensure path back to the claimed source address is the one being used by the current packet

Filters must be applied to traffic before it leaves the ISP’s network or at the point of entry to their network

Use modified TCP connection handling code

Cryptographically encode critical information in a cookie that is sent as the server’s initial sequence number

Legitimate client responds with an ACK packet containing the incremented sequence number cookie

Drop an entry for an incomplete connection from the TCP connections table when it overflows

21

A critical component of many DoS attacks is the use of spoofed source

addresses. These either obscure the originating system of direct and distributed DoS

attacks or are used to direct reflected or amplified traffic to the target system. Hence

one of the fundamental, and longest standing, recommendations for defense against

these attacks is to limit the ability of systems to send packets with spoofed source

addresses. RFC 2827, Network Ingress Filtering: Defeating Denial-of-service attacks

which employ IP Source Address Spoofing , directly makes this recommendation, as

do SANS, CERT, and many other organizations concerned with network security.

This filtering needs to be done as close to the source as possible, by routers

or gateways knowing the valid address ranges of incoming packets. Typically this is

the ISP providing the network connection for an organization or home user. An ISP

knows which addresses are allocated to all its customers and hence is best placed to

ensure that valid source addresses are used in all packets from its customers. This

type of filtering can be implemented using explicit access control rules in a router to

ensure that the source address on any customer packet is one allocated to the ISP.

Alternatively, filters may be used to ensure that the path back to the claimed source

address is the one being used by the current packet. For example, this may be done

on Cisco routers using the “ip verify unicast reverse-path” command. This latter

approach may not be possible for some ISPs that use a complex, redundant routing

infrastructure. Implementing some form of such a filter ensures that the ISP’s

customers cannot be the source of spoofed packets. Regrettably, despite this being

a well-known recommendation, many ISPs still do not perform this type of filtering.

In particular, those with large numbers of broadband-connected home users are of

major concern. Such systems are often targeted for attack as they are often less well

secured than corporate systems. Once compromised, they are then used as intermediaries

in other attacks, such as DoS attacks. By not implementing antispoofing

filters, ISPs are clearly contributing to this problem. One argument often advanced

for not doing so is the performance impact on their routers. While filtering does

incur a small penalty, so does having to process volumes of attack traffic. Given

the high prevalence of DoS attacks, there is simply no justification for any ISP or

organization not to implement such a basic security recommendation.

Any defenses against flooding attacks need to be located back in the Internet

cloud, not at a target organization’s boundary router, since this is usually located

after the resource being attacked. The filters must be applied to traffic before it

leaves the ISP’s network, or even at the point of entry to their network. While it is

not possible, in general, to identify packets with spoofed source addresses, the use

of a reverse path filter can help identify some such packets where the path from

the ISP to the spoofed address differs to that used by the packet to reach the ISP.

Also, attacks using particular packet types, such as ICMP floods or UDP floods to

diagnostic services, can be throttled by imposing limits on the rate at which these

packets will be accepted. In normal network operation, these should comprise a

relatively small fraction of the overall volume of network traffic. Many routers,

particularly the high-end routers used by ISPs, have the ability to limit packet rates.

Setting appropriate rate limits on these types of packets can help mitigate the effect

of packet floods using them, allowing other types of traffic to flow to the targeted

organization even should an attack occur.

It is possible to specifically defend against the SYN spoofing attack by using a

modified version of the TCP connection handling code. Instead of saving the connection

details on the server, critical information about the requested connection

is cryptographically encoded in a cookie that is sent as the server’s initial sequence

number. This is sent in the SYN-ACK packet from the server back to the client.

When a legitimate client responds with an ACK packet containing the incremented

sequence number cookie, the server is then able to reconstruct the information

about the connection that it normally would have saved in the known TCP connections

table. Typically this technique is only used when the table overflows. It

has the advantage of not consuming any memory resources on the server until the

three-way TCP connection handshake is completed. The server then has greater

confidence that the source address does indeed correspond with a real client that is

interacting with the server.

There are some disadvantages of this technique. It does take computation

resources on the server to calculate the cookie. It also blocks the use of certain TCP

extensions, such as large windows. The request for such an extension is normally

saved by the server, along with other details of the requested connection. However,

this connection information cannot be encoded in the cookie as there is not enough

room to do so. Since the alternative is for the server to reject the connection entirely

as it has no resources left to manage the request, this is still an improvement in

the system’s ability to handle high connection-request loads. This approach was

independently invented by a number of people. The best-known variant is SYN

Cookies, whose principal originator is Daniel Bernstein. It is available in recent

FreeBSD and Linux systems, though it is not enabled by default. A variant of this

technique is also included in Windows 2000, XP, and later. This is used whenever

their TCP connections table overflows.

Alternatively, the system’s TCP/IP network code can be modified to selectively

drop an entry for an incomplete connection from the TCP connections table

when it overflows, allowing a new connection attempt to proceed. This is known as

selective drop or random drop . On the assumption that the majority of the entries in

an overflowing table result from the attack, it is more likely that the dropped entry

will correspond to an attack packet. Hence its removal will have no consequence. If

not, then a legitimate connection attempt will fail, and will have to retry. However,

this approach does give new connection attempts a chance of succeeding rather than

being dropped immediately when the table overflows.

Another defense against SYN spoofing attacks includes modifying parameters

used in a system’s TCP/IP network code. These include the size of the TCP connections

table and the timeout period used to remove entries from this table when

no response is received. These can be combined with suitable rate limits on the

organization’s network link to manage the maximum allowable rate of connection

requests. None of these changes can prevent these attacks, though they do make the

attacker’s task harder.

DoS Attack Prevention

Block IP directed broadcasts

Block suspicious services and combinations

Manage application attacks with a form of graphical puzzle (captcha) to distinguish legitimate human requests

Good general system security practices

Use mirrored and replicated servers when high-performance and reliability is required

22

The best defense against broadcast amplification attacks is to block the use of

IP-directed broadcasts. This can be done either by the ISP or by any organization

whose systems could be used as an intermediary. As we noted earlier in this chapter,

this and antispoofing filters are long-standing security recommendations that

all organizations should implement. More generally, limiting or blocking traffic to

suspicious services, or combinations of source and destination ports, can restrict the

types of reflection attacks that can be used against an organization.

Defending against attacks on application resources generally requires

modification to the applications targeted, such as Web servers. Defenses may

involve attempts to identify legitimate, generally human initiated, interactions from

automated DoS attacks. These often take the form of a graphical puzzle, a captcha,

which is easy for most humans to solve but difficult to automate. This approach

is used by many of the large portal sites like Hotmail and Yahoo. Alternatively,

applications may limit the rate of some types of interactions in order to continue to

provide some form of service. Some of these alternatives are explored in [KAND05].

Beyond these direct defenses against DoS attack mechanisms, overall good

system security practices should be maintained. The aim is to ensure that your

systems are not compromised and used as zombie systems. Suitable configuration

and monitoring of high performance, well-connected servers is also needed

to help ensure that they don’t contribute to the problem as potential intermediary

servers.

Lastly, if an organization is dependent on network services, it should consider

mirroring and replicating these servers over multiple sites with multiple network

connections. This is good general practice for high-performance servers, and

provides greater levels of reliability and fault tolerance in general and not just a

response to these types of attack.

Responding to DoS Attacks

Antispoofing, directed broadcast, and rate limiting filters should have been implemented

Ideally have network monitors and IDS to detect and notify abnormal traffic patterns

23

To respond successfully to a DoS attack, a good incident response plan is needed.

This must include details of how to contact technical personal for your Internet

service provider(s). This contact must be possible using nonnetworked means, since

when under attack your network connection may well not be usable. DoS attacks,

particularly flooding attacks, can only be filtered upstream of your network connection.

The plan should also contain details of how to respond to the attack. The division

of responsibilities between organizational personnel and the ISP will depend

on the resources available and technical capabilities of the organization.

Within an organization you should have implemented the standard antispoofing,

directed broadcast, and rate limiting filters we discuss earlier in this chapter.

Ideally, you should also have some form of automated network monitoring and

intrusion detection system running so personnel will be notified should abnormal

traffic be detected. We discuss such systems in Chapter 8. Research continues as

to how best identify abnormal traffic. It may be on the basis of changes in patterns

of flow information, source addresses, or other traffic characteristics, as [CARL06]

discuss. It is important that an organization knows its normal traffic patterns so it

has a baseline with which to compare abnormal traffic flows. Without such systems

and knowledge, the earliest indication is likely to be a report from users inside or

outside the organization that its network connection has failed. Identifying the reason

for this failure, whether attack, misconfiguration, or hardware or software failure,

can take valuable additional time to identify.

Good Incident Response Plan

Details on how to contact technical personal for ISP

Needed to impose traffic filtering upstream

Details of how to respond to the attack

Responding to DoS Attacks

Identify type of attack

Capture and analyze packets

Design filters to block attack traffic upstream

Or identify and correct system/application bug

Have ISP trace packet flow back to source

May be difficult and time consuming

Necessary if planning legal action

Implement contingency plan

Switch to alternate backup servers

Commission new servers at a new site with new addresses

Update incident response plan

Analyze the attack and the response for future handling

24

When a DoS attack is detected, the first step is to identify the type of attack

and hence the best approach to defend against it. Typically this involves capturing

packets flowing into the organization and analyzing them, looking for common

attack packet types. This may be done by organizational personnel using suitable

network analysis tools. If the organization lacks the resources and skill to

do this, it will need to have its ISP perform this capture and analysis. From this

analysis the type of attack is identified, and suitable filters are designed to block

the flow of attack packets. These have to be installed by the ISP on its routers. If

the attack targets a bug on a system or application, rather than high traffic volumes,

then this must be identified and steps taken to correct it and prevent future

attacks.

The organization may also wish to ask its ISP to trace the flow of packets back

in an attempt to identify their source. However, if spoofed source addresses are

used, this can be difficult and time-consuming. Whether this is attempted may well

depend on whether the organization intends to report the attack to the relevant law

enforcement agencies. In such a case, additional evidence must be collected and

actions documented to support any subsequent legal action.

In the case of an extended, concerted, flooding attack from a large number of

distributed or reflected systems, it may not be possible to successfully filter enough

of the attack packets to restore network connectivity. In such cases, the organization

needs a contingency strategy either to switch to alternate backup servers or to rapidly

commission new servers at a new site with new addresses, in order to restore

service. Without forward planning to achieve this, the consequence of such an attack

will be extended loss of network connectivity. If the organization depends on this

connection for its function, the consequences on it may be significant.

Following the immediate response to this specific type of attack, the organization’s

incident response policy may specify further steps that are taken to respond

to contingencies like this. This should certainly include analyzing the attack and

response in order to gain benefit from the experience and to improve future handling.

Ideally the organization’s security can be improved as a result. We discuss all

these aspects of incident response further in Chapter 17 .

Summary

Distributed denial-of-service attacks

Application-based bandwidth attacks

SIP flood

HTTP-based attacks

Reflector and amplifier attacks

Reflection attacks

Amplification attacks

DNS amplification attacks

Denial-of-service attacks

The nature of denial-of-service attacks

Classic denial-of-service attacks

Source address spoofing

SYN spoofing

Flooding attacks

ICMP flood

UDP flood

TCP SYN flood

Defenses against denial-of-service attacks

Responding to a denial-of-service attack

25

Chapter 7 summary.

Medium Size Company LAN

Figure 7.1 Example Network to Illustrate DoS Attacks

Web Server

LAN PCs and workstations

Broadband subscribers

Broadband users

Internet service provider (ISP) A

Internet Router

Large Company LAN

Broadband users

Internet service provider (ISP) B Broadband

subscribers

Web Server

Medium Size Company

LAN

Figure 7.1 Example Network to Illustrate DoS Attacks

Web Server

LAN PCs

and workstations

Broadband

subscribers

Broadband

users

Internet service

provider (ISP) A

Internet

Router

Large Company LAN

Broadband

users

Internet service

provider (ISP) B

Broadband

subscribers

Web Server

Client Server

Send SYN (seq = x)

Receive SYN (seq = x)

Send SYN-ACK (seq = y, ack = x+1)

Receive SYN-ACK (seq = y, ack = x+1)

Send ACK (ack = y+1)

Receive ACK (ack = y+1)

1

2

3

Figure 7.2 TCP Three-Way Connection Handshake

Client

Server

Send SYN

(seq = x)

Receive SYN

(seq = x)

Send SYN-ACK

(seq = y, ack = x+1)

Receive SYN-ACK

(seq = y, ack = x+1)

Send ACK

(ack = y+1)

Receive ACK

(ack = y+1)

1

2

3

Figure 7.2 TCP Three-Way Connection Handshake

Attacker Server

Send SYN with spoofed src

(seq = x)

Send SYN-ACK (seq = y, ack = x+1)

1

2

Spoofed Client

Resend SYN-ACK after timeouts

Assume failed connection

request

SYN-ACK’s to non-existant client

discarded

Figure7.3 TCP SYN Spoofing Attack

Attacker

Server

Send SYN

with spoofed src

(seq = x)

Send SYN-ACK

(seq = y, ack = x+1)

1

2

Spoofed Client

Resend SYN-ACK

after timeouts

Assume failed

connection

request

SYN-ACK’s to

non-existant client

discarded

Figure7.3 TCP SYN Spoofing Attack

Attacker

Target

Handler Zombies

Agent Zombies

Figure 7.4 DDoS Attack Architecture

Attacker

Target

Handler

Zombies

Agent

Zombies

Figure 7.4 DDoS Attack Architecture

DNS Query: biloxi.com

Returns IP address of bob’s proxy server

DNS Server

User Agent alice User Agent bob

Proxy Server

Proxy Server

Figure 7.5 SIP INVITE Scenario

Internet

Wireless Network

LAN

INVITE sip:bob@biloxi.com From: sip:alice@atlanta.com

INVITE sip:bob@biloxi.com From: sip:alice@atlanta.com

INVITE sip:bob@biloxi.com From: sip:alice@atlanta.com

1

23

4

5

DNS Query:

biloxi.com

Returns IP

address of bob’s

proxy server

DNS

Server

User Agent alice

User Agent bob

Proxy

Server

Proxy

Server

Figure 7.5 SIP INVITE Scenario

Internet

Wireless

Network

LAN

INVITE sip:bob@biloxi.com

From: sip:alice@atlanta.com

INVITE sip:bob@biloxi.com

From: sip:alice@atlanta.com

INVITE sip:bob@biloxi.com

From: sip:alice@atlanta.com

1

2

3

4

5

Figure 7.6 DNS Reflection Attack

IP: a.b.c.d

IP: a.b.c.d IP: j.k.l.m

Victim

Loop possible

DNS Server

Normal User

Attacker

DNS Server

IP: w.x.y.z

From: a.b.c.d:1792 To: w.x.y.z.53

From: w.x.y.z.53 To: a.b.c.d:1792

From: j.k.l.m:7 To: w.x.y.z.53

From: w.x.y.z.53 To: j.k.l.m:7

From: j.k.l.m:7 To: w.x.y.z.53

1

1

2

2

3

IP: w.x.y.z

Figure 7.6 DNS Reflection Attack

IP: a.b.c.d

IP: a.b.c.d

IP: j.k.l.m

Victim

Loop

possible

DNS

Server

Normal

User

Attacker

DNS

Server

IP: w.x.y.z

From: a.b.c.d:1792

To: w.x.y.z.53

From: w.x.y.z.53

To: a.b.c.d:1792

From: j.k.l.m:7

To: w.x.y.z.53

From: w.x.y.z.53

To: j.k.l.m:7

From: j.k.l.m:7

To: w.x.y.z.53

1

1

2

2

3

IP: w.x.y.z

Attacker

Reflector intermediaries

Target

Zombies

Figure 7.7 Amplification Attack

Attacker

Reflector

intermediaries

Target

Zombies

Figure 7.7 Amplification Attack