Firewalls, cont / Denial-of-Service (DoS) CS 161: Computer Security - - PowerPoint PPT Presentation

firewalls con t denial of service dos
SMART_READER_LITE
LIVE PREVIEW

Firewalls, cont / Denial-of-Service (DoS) CS 161: Computer Security - - PowerPoint PPT Presentation

Firewalls, cont / Denial-of-Service (DoS) CS 161: Computer Security Prof. Vern Paxson TAs: Jethro Beekman, Mobin Javed, Antonio Lupher, Paul Pearce & Matthias Vallentin http://inst.eecs.berkeley.edu/~cs161/ February 19, 2013 Goals


slide-1
SLIDE 1

Firewalls, con’t / Denial-of-Service (DoS)

CS 161: Computer Security

  • Prof. Vern Paxson

TAs: Jethro Beekman, Mobin Javed, Antonio Lupher, Paul Pearce & Matthias Vallentin

http://inst.eecs.berkeley.edu/~cs161/

February 19, 2013

slide-2
SLIDE 2

Goals For Today

  • Finish discussion of network control:

– Virtual private networks – Application-layer proxies – Pros & Cons of firewalls

  • Discuss Denial-of-Service (DoS):

attacks on availability

– Mostly network-based, but also OS

slide-3
SLIDE 3

Network Control & Tunneling

  • Tunneling = embedding one protocol inside another

– Sender and receiver at each side of the tunnel both cooperate (so it’s not useful for initial attacks)

  • Traffic takes on properties of outer protocol

– Including for firewall inspection, which generally can’t analyze inner protocol (due to complexity)

  • Tunneling has legitimate uses

– E.g., Virtual Private Networks (VPNs)

  • Tunnel server relays remote client’s packets
  • Makes remote machine look like it’s local to its home network
  • Tunnel encrypts traffic for privacy & to prevent meddling
slide-4
SLIDE 4

Secure External Access to Inside Machines

  • Often need to provide secure remote access to a

network protected by a firewall

– Remote access, telecommuting, branch offices, …

  • Create secure channel (Virtual Private Network, or VPN)

to tunnel traffic from outside host/network to inside network

– Provides Authentication, Confidentiality, Integrity – However, also raises perimeter issues (Try it yourself at http://www.net.berkeley.edu/vpn/)

Internet Company Yahoo User VPN server Fileserver

slide-5
SLIDE 5

Application Proxies

  • Can more directly control applications by requiring

them to go through a proxy for external access

– Proxy doesn’t simply forward, but acts as an application- level middleman

  • Example: SSH gateway

– Require all SSH in/out of site to go through gateway – Gateway logs authentication, inspects decrypted text – Site’s firewall configured to prohibit any other SSH access

slide-6
SLIDE 6

SSH Gateway Example

host-to-gateway SSH session gateway-to-remote host SSH session

application gateway

Firewall

allow <port=22, host=1.3.5.7> drop <port=22> 1.3.5.7

slide-7
SLIDE 7

Application Proxies

  • Can more directly control applications by requiring

them to go through a proxy for external access

– Proxy doesn’t simply forward, but acts as an application- level middleman

  • Example: SSH gateway

– Require all SSH in/out of site to go through gateway – Gateway logs authentication, inspects decrypted text – Site’s firewall configured to prohibit any other SSH access

  • Provides a powerful degree of monitoring/control
  • Costs?

– Need to run extra server(s) per app (possible bottleneck) – Each server requires careful hardening

slide-8
SLIDE 8

Why Have Firewalls Been Successful?

  • Central control – easy administration and update

– Single point of control: update one config to change security policies – Potentially allows rapid response

  • Easy to deploy – transparent to end users

– Easy incremental/total deployment to protect 1,000’s

  • Addresses an important problem

– Security vulnerabilities in network services are rampant – Easier to use firewall than to directly secure code …

slide-9
SLIDE 9

Firewall Disadvantages?

  • Functionality loss – less connectivity, less risk

– May reduce network’s usefulness – Some applications don’t work with firewalls

  • Two peer-to-peer users behind different firewalls
  • The malicious insider problem

– Deployment assumes insiders are trusted

  • Malicious insider (or anyone gaining control of internal machine)

can wreak havoc

  • Firewalls establish a security perimeter

– Like Eskimo Pies: “hard crunchy exterior, soft creamy center” – Threat from travelers with laptops, cell phones, …

slide-10
SLIDE 10

5 Minute Break

Questions Before We Proceed?

slide-11
SLIDE 11

Attacks on Availability

  • Denial-of-Service (DoS, or “doss”): keeping

someone from using a computing service

  • How broad is this sort of threat?

– Very: huge attack surface

  • We do though need to consider our threat model …

– What might motivate a DoS attack?

slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25

Motivations for DoS

  • Showing off / entertainment / ego
  • Competitive advantage

– Maybe commercial, maybe just to win

  • Vendetta / denial-of-money
  • Extortion
  • Political statements
  • Impair defenses
  • Espionage
  • Warfare
slide-26
SLIDE 26

Attacks on Availability

  • Denial-of-Service (DoS, or “doss”): keeping

someone from using a computing service

  • How broad is this sort of threat?

– Very: huge attack surface

  • We do though need to consider our threat model …

– What might motivate a DoS attack?

  • Two basic approaches available to an attacker:

– Deny service via a program flaw (“*NULL”)

  • E.g., supply an input that crashes a server
  • E.g., fool a system into shutting down

– Deny service via resource exhaustion (“while(1);”)

  • E.g., consume CPU, memory, disk, network
slide-27
SLIDE 27

DoS Defense in General Terms

  • Defending against program flaws requires:

– Careful authentication

  • Don’t obey shut-down orders from imposters

– Careful coding/testing/review – Consideration of behavior of defense mechanisms

  • E.g. buffer overflow detector that when triggered halts

execution to prevent code injection ⇒ denial-of-service

  • Defending resources from exhaustion can be

really hard. Requires:

– Isolation mechanisms

  • Keep adversary’s consumption from affecting others

– Reliable identification of different users

  • Know who the adversary is in the first place!
slide-28
SLIDE 28

DoS & Operating Systems

  • How could you DoS a multi-user Unix system on which

you have a login?

– #
rm
‐rf
/

  • (if you have root - but then just “halt” works well!)

– char
buf[1024]; int
f
=
open("/tmp/junk"); while
(1)
write(f,
buf,
sizeof(buf));

  • Gobble up all the disk space!

– while
(1)
fork();

  • Create a zillion processes!

– Create zillions of files, keep opening, reading, writing, deleting

  • Thrash the disk

– … doubtless many more

  • Defenses?

– Isolate users / impose quotas

slide-29
SLIDE 29

DoS & Networks

  • How could you DoS a target’s Internet access?

– Send a zillion packets at them – Internet lacks isolation between traffic of different users!

  • What resources does attacker need to pull this
  • ff?

– At least as much sending capacity (“bandwidth”) as the bottleneck link of the target’s Internet connection

  • Attacker sends maximum-sized packets

– Or: overwhelm the rate at which the bottleneck router can process packets

  • Attacker sends minimum-sized packets!

– (in order to maximize the packet arrival rate)

slide-30
SLIDE 30

Defending Against Network DoS

  • Suppose an attacker has access to a beefy system with

high-speed Internet access (a “big pipe”).

  • They pump out packets towards the target at a very

high rate.

  • What might the target do to defend against the
  • nslaught?

– Install a network filter to discard any packets that arrive with attacker’s IP address as their source

  • E.g., drop * 66.31.1.37:* -> *:*
  • Or it can leverage any other pattern in the flooding traffic that’s not

in benign traffic

– Filter = isolation mechanism – Attacker’s IP address = means of identifying misbehaving user

slide-31
SLIDE 31

Filtering Sounds Pretty Easy …

  • … but it’s not. What steps can the attacker take

to defeat the filtering?

– Make traffic appear as though it’s from many hosts

  • Spoof the source address so it can’t be used to filter

– Just pick a random 32-bit number of each packet sent

  • How does a defender filter this?

– They don’t! – Best they can hope for is that operators around the world implement anti-spoofing mechanisms (today about 75% do)

– Use many hosts to send traffic rather than just one

  • Distributed Denial-of-Service = DDoS (“dee-doss”)
  • Requires defender to install complex filters
  • How many hosts is “enough” for the attacker?

– Today they are very cheap to acquire … :-(

slide-32
SLIDE 32

It’s Not A “Level Playing Field”

  • When defending resources from exhaustion,

need to beware of asymmetries, where attackers can consume victim resources with little comparable effort

– Makes DoS easier to launch – Defense costs much more than attack

  • Particularly dangerous form of asymmetry:

amplification

– Attacker leverages system’s own structure to pump up the load they induce on a resource

slide-33
SLIDE 33

Amplification: Network DoS

  • One technique for magnifying flood traffic:

leverage Internet’s broadcast functionality

slide-34
SLIDE 34

Amplification: Network DoS

  • One technique for magnifying flood traffic:

leverage Internet’s broadcast functionality

  • How does an attacker exploit this?

– Send traffic to the broadcast address and spoof it as though the DoS victim sent it – All of the replies then go to the victim rather than the attacker’s machine – Each attacker pkt yields dozens of flooding pkts

  • Another example: DNS lookups

– Reply is often much bigger than request – So attacker spoofs request seemingly from the target

  • Small attacker packet yields large flooding packet

smurf attack

slide-35
SLIDE 35

Transport-Level Denial-of-Service

  • Recall TCP’s 3-way connection establishment

handshake

– Goal: agree on initial sequence numbers

  • So a single SYN from an attacker suffices to force

the server to spend some memory

Client (initiator) S Y N , S e q N u m = x SYN + ACK, SeqNum = y, Ack = x + 1 A C K , A c k = y + 1 Server

Server creates state associated with connection here

Attacker doesn’t even need to send this ack

slide-36
SLIDE 36

TCP SYN Flooding

  • Attacker targets memory rather than

network capacity

  • Every (unique) SYN that the attacker sends

burdens the target

  • What should target do when it has no more

memory for a new connection?

  • No good answer!

– Refuse new connection?

  • Legit new users can’t access service

– Evict old connections to make room?

  • Legit old users get kicked off
slide-37
SLIDE 37

TCP SYN Flooding, con’t

  • How can the target defend itself?
  • Approach #1: make sure they have

tons of memory!

– How much is enough? Depends on resources attacker can bring to bear

slide-38
SLIDE 38

TCP SYN Flooding, con’t

  • Approach #2: identify bad actors & refuse their

connections

– Hard because only way to identify them is based on IP address

  • We can’t for example require them to send a password because

doing so requires we have an established connection!

– For a public Internet service, who knows which addresses customers might come from? – Plus: attacker can spoof addresses since they don’t need to complete TCP 3-way handshake

  • Approach #3: don’t keep state! (“SYN cookies”;
  • nly works for spoofed SYN flooding)
slide-39
SLIDE 39

SYN Flooding Defense: Idealized

Client (initiator) S Y N , S e q N u m = x S+A, SeqNum = y, Ack = x + 1, <State> A C K , A c k = y + 1 , < S t a t e > Server

  • Server: when SYN arrives, rather than keeping

state locally, send it to the client …

  • Client needs to return the state in order to

established connection

Server only saves state here Do not save state here; give to client

slide-40
SLIDE 40

SYN Flooding Defense: Idealized

Client (initiator) S Y N , S e q N u m = x S+A, SeqNum = y, Ack = x + 1, <State> A C K , A c k = y + 1 , < S t a t e > Server

  • Server: when SYN arrives, rather than keeping

state locally, send it to the client …

  • Client needs to return the state in order to

established connection

Server only saves state here Do not save state here; give to client

Problem: the world isn’t so ideal! TCP doesn’t include an easy way to add a new <State> field like this. Is there any way to get the same functionality without having to change TCP clients?

slide-41
SLIDE 41

Practical Defense: SYN Cookies

Client (initiator) S Y N , S e q N u m = x SYN and ACK, SeqNum = y, Ack = x + 1 A C K , A c k = y + 1 Server

  • Server: when SYN arrives, encode connection

state entirely within SYN-ACK’s sequence # y

– y = encoding of necessary state, using server secret

  • When ACK of SYN-ACK arrives, server only

creates state if value of y from it agrees w/ secret

Server only creates state here Do not create state here

Instead, encode it here

slide-42
SLIDE 42

SYN Cookies: Discussion

  • Illustrates general strategy: rather than holding

state, encode it so that it is returned when needed

  • For SYN cookies, attacker must complete

3-way handshake in order to burden server

– Can’t use spoofed source addresses

  • Note #1: strategy requires that you have

enough bits to encode all the state

– (This is just barely the case for SYN cookies)

  • Note #2: if it’s expensive to generate or check

the cookie, then it’s not a win