Transcript Document
Resource-Freeing Attacks:
Improve Your Cloud Performance
(at Your Neighbor's Expense)
(Venkat)anathan Varadarajan,
Thawan Kooburat,
Benjamin Farley,
Thomas Ristenpart,
and Michael Swift
DEPARTMENT OF COMPUTER SCIENCES
1
Public Clouds (EC2, Azure, Rackspace, …)
VM
Multi-tenancy
Different customers’
virtual machines (VMs)
share same server
VM
VM
VM
VM
VM
VM
Why multi-tenancy?
Improved resource utilization
2
Implications of Multi-tenancy
– CPU, cache, memory, disk, network, etc.
• Virtual Machine Managers (VMM)
– Goal: Provide Isolation
VMM
• VMs share many resources
VM
VM
• Deployed VMMs don’t
perfectly isolate VMs
– Side-channels [Ristenpart et al. ’09, Zhang et al. ’12]
Today: Performance degraded by other customers
3
Contention in Xen
Performance Degradation (%)
3x-6x Performance loss Higher cost
600
500
Work-conserving
scheduling
VM
VM
400
300
Local Xen Testbed
200
Machine
Intel Xeon E5430,
2.66 Ghz
CPU
2 packages each
with 2 cores
Cache Size
6MB per package
100
0
CPU
Net
Non-work-conserving
CPU scheduling
Disk
Cache
4
What can a tenant do?
Ask provider for better isolation
… requires overhaul of the cloud
VM
Pack up VM and move
(See our SOCC 2012 paper)
… but, not all workloads cheap
to move
VM
This work: Greedy customer can recover
performance by interfering with other tenants
Resource-Freeing Attack
5
Resource-freeing attacks (RFAs)
• What is an RFA?
• RFA case studies
1. Two highly loaded web server VMs
2. Last Level Cache (LLC) bound VM and
highly loaded webserver VM
• Demonstration on Amazon EC2
6
The Setting
Victim:
– One or more VMs
– Public interface (eg, http)
Beneficiary:
– VM whose performance we want
to improve
Helper:
Victim
VM
VM
Beneficiary
– Mounts the attack
Beneficiary and victim fighting
over a target resource
Helper
7
Example: Network Contention
• Beneficiary & Victim
– Apache webservers hosting static and
dynamic (CGI) web pages.
– ℎ𝑎𝑙𝑓 the network bandwidth
What can you do?
Local Xen Test bed
• Target Resource: Network Bandwidth
Beneficiary
• Work-conserving scheduler
Victim
Clients
Net
8
Ways to Reduce Contention?
Break into victim VM and disable it
Helper
The good:
frees up resources used by victim
But:
• Requires knowledge of
vulnerability
• Drastic
• Easy to detect
Local Xen Test bed
Beneficiary
Victim
Clients
Net
9
Ways to Reduce Contention?
Backfires: May increase the
contention
Victim
Clients
Net
SYN flood
This may NOT free up target
resources
Beneficiary
Local Xen Test bed
Do a simple DoS attack?
Helper
10
Recipe for a Successful RFA
Proportion of CPU usage
Push towards CPU bottleneck
Shift resource away from the target resource
towards the bottleneck resource
CPU intensive dynamic pages
Shift resource usage
via public interface
Limits
Static pages
Proportion of Network usage
Reduce target resource usage
11
An RFA in Our Example
Result in our testbed:
Increases beneficiary’s share of
bandwidth
CPU Utilization
Clients
No RFA: 1800 page requests/sec
W/ RFA: 3026 page requests/sec
CGI Request
50% 85%
share of
bandwidth
Net
Helper
12
Resource-freeing attacks
1) Send targeted requests to victim
2) Shift resources use from target to a bottleneck
Can we mount RFAs when target
resource is CPU cache?
Shared CPU Cache:
– Ubiquitous: Almost all workloads need cache
– Hardware controlled: Not easily isolated via
software
– Performance Sensitive: High performance cost!
13
Cache Performance Degradation (%)
Cache Contention
250
RFA Goal
200
150
100
50
0
1000
2000
Webserver Request Rate
3000
14
Case Study: Cache vs. Network
– ~3x slower when sharing
cache with webserver
Local Xen Test bed
• Victim : Apache webserver hosting static
and dynamic (CGI) web pages
• Beneficiary: Synthetic cache bound
workload (LLCProbe)
Beneficiary Victim
• Target Resource: Cache
$$$
• No cache isolation:
Core
Clients
Core
Net
Cache
15
Cache vs. Network
Victim webserver frequently
interrupts, pollutes the cache
– Reason: Xen gives higher
priority to VM consuming
less CPU time
$$$
Core
Clients
Core
Net
Cache
Beneficiary starts to run
decreased cache efficiency
cache state
Webserver
receives a
request
Cache state time line
Heavily loaded
web server
16
Cache vs. Network w/ RFA
RFA helps in two ways:
1. Webserver loses its
priority.
2. Reducing the capacity
of webserver.
$$$
Core
Clients
Core
Net
Cache
cache state
Webserver
Heavily loaded
Heavily
loadedawebserver
requests
receives
web
server under RFA
request
CGI Request
Beneficiary starts to run
Cache state time line
Helper
17
RFA: Performance Improvement
RFA intensities – time in ms per second
60%
Performance
Improvement
196% slowdown
86% slowdown
18
RFA Effect on Interruptions
Beneficiary: LLCProbe
40%
85%
+
x
19
RFA Effect on Victim’s capacity
Decreases with
increasing RFA
intensity
20
Experiments on Amazon EC2
Multiple Accounts
VM
VM
Co-resident VMs from our accounts:
Stand-ins for victim and beneficiary
VM
VM
VM
VM
Separate instances for
helper and web clients
Instance type
m1.small
# of co-resident pairs 9 (23 total instances)
Machine type
Intel Xeon E5507 with 4MB LLC
No direct interact with any
other customers
Indirect interaction akin to
normal usage cases
21
LLCProbe Synthetic Benchmark
Highest performance
improvement of 13%,
recovering 33% of
performance lost.
Average performance
improvement: 6%
RFA improved performance of LLCProbe
on all experimental EC2 instances!
22
mcf from SPEC-CPU
3% performance improvement =
35% reduction in performance loss
10% slowdown
6% slowdown
On average RFA improved performance
across all SPEC workloads!
23
Discussion: Practical Aspects
RFA case studies used CPU intensive
CGI requests
– Alternative: DoS vulnerabilities
(Eg. hash-collision attacks)
Identifying co-resident victims
– Easy on most clouds
(Co-resident VMs have predictable
internal IP addresses)
VM
VM
No public interface?
– Paper discusses possibilities for RFAs
24
Conclusion
Resource-Freeing Attacks
– Interfere with victim to shift
resource use
– Proof-of-concept of efficacy in
public clouds
VM
VM
Open questions:
– Other RFAs?
– Countermeasures: Detection, stricter
isolation, smarter scheduling?
25
References
[MMSys10] Sean K. Barker and Prashant Shenoy. “Empirical evaluation of
latency-sensitive application performance in the cloud.” In MMSys, 2010.
[Security10] Thomas Moscibroda and Onur Mutlu. “Memory performance
attacks: Denial of memory service in multi-core systems.” In Usenix Security
Symposium, 2007.
[CCS09] T. Ristenpart, E. Tromer, H. Shacham, and S. Savage. “Hey, you, get off
my cloud: exploring information leakage in third party compute clouds.” In
CCS, 2009.
26
Backup Slides
27
Discussion: Countermeasures
Detection?
– May be hard to differentiate RFA from legitimate
Stricter Isolation?
– Works but expensive
Contention-aware scheduling
– Not yet used in public IaaS
28
Discussion: Economies
• Cost of RFA
– Helper instance, and
– RFA traffic.
• Co-resident helper
– An efficient implementation of helper can run inside the
attacker’s VM.
– Current helper implementation consumes 15 Kbps of
network bandwidth and a CPU utilization of 0.7%.
• Multiplex Singe Helper Instance for many beneficiaries.
• Note: Currently, internal EC2 network traffic is free-ofcost.
29
Identifying Co-resident VMs
• Identifying the public interface:
– Predictable numerical distance between internal
IP addresses in public clouds.
– Identifying port used by the victim application
(standard ports like http(s), etc.).
30
Experiment:
Measuring Resource Contention
• Synthetic workloads
31
Other RFAs
• RFAs are not limited to the presented case
studies.
• LLC vs. Disk
– Sending spurious, random disk requests
asynchronously to create a bottleneck for the
shared disk resource.
• Memory vs. Disk
– Similarly to the above RFA
32
Discussion: More on Practical Aspects
• Work-conserving vs. Non-work-conserving
schedulers
– It is expected that public cloud environment
manage resources in a non-work-conserving
fashion.
– Eg. Net vs. Net RFA won’t work on Amazon EC2.
• Simulated client workload
– What is the effect of RFA in the presence of
multiple independent client requests originating
from numerous clients?
33
• Domain-0
– Privileged Domain, direct
access to I/O devices.
– All I/O requests goes
through Dom-0
• Xen scheduler internal
– Boost priority for
interactive workloads
VM
VM
VM
VM
VM
VM
VM
VM
Dom0
Dom0
Dom0
Dom0
Incoming request
Xen Internals
Hypervisor
Core
Core
Core
Core
N/W
cache
memory
Disk
34
Experiment:
Measuring Resource Contention
600
Machine
Intel Xeon E5430,
2.66 Ghz
500
Packages
Local Xen Test bed
Performance Degradation (%)
• On a local Xen test bed
Some have huge
performance
degradation
2, 2 cores per
package
400
LLC Size
6MB per package
300
200
VM
VM
VM
VM
VM
VM
VM
VM
Core
N/W
LLC
Not all
resources
conflict
100
Core
Observed
Workloads:
Core
Core
LLC
CPU
Net
Disk
memory
Memory
Cache
0
CPU
Disk
Net
Disk
Memory
Cache
Conflicting Workloads
35
Boost Priority and Interruptions
Victim: Webserver
Beneficiary: LLCProbe
40%
95%
85%
< 30%
Fewer interruptions Higher cache efficiency
36
Demonstration on EC2
• Problem #1: Achieving Co-residence
– Launching multiple instances simultaneously from
two or more accounts.
• Problem #2: Verifying Co-residency
– Numerical distance between internal IP addresses
[CCS09].
– Faster packet round-trip times.
– Using resource contention experiments.
37
Normalized Performance on EC2
Aggregate
performance
degradation is within 5
performance points
On an average all
SPEC workloads
benefitted from RFA
Baseline
Higher is better
6%
38