30

virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh [email protected]

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu
Page 2: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

cs642

virtualization & cloud computing

adam everspaugh [email protected]

computer security

Page 3: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

todayAnnouncements: HW4 posted yesterday

Virtualization

Random number generators and reset vulnerabilities

Cloud computing and co-residency

Page 4: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Virtualization

Hardware

OS

Process1 Process2

Novirtualization

Type-1:HypervisorrunsdirectlyonhardwareType-2:HypervisorrunsonhostOS

Hardware

Hypervisor

OS1

P1 P2

OS2

P1 P2

DriversDrivers

Type-1Virtualization(Xen,VMwareESX)

P2

P1 P2

Type-2Virtualization(VMwareWorkstation,VirtualBox)

OS2

P1

HostOS

Hardware

Hypervisor

Page 5: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

VMUseCases

• Developmentandtesting(especiallywhenweneeddifferentOSs)

• Serverconsolidation

• Runmultipleserversonsamehardware:webserver,fileserver,emailservers,…

• Cloudcomputing:Infrastructure-as-a-Service

• Sandboxing/containment

Page 6: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

SecurityModel

Hardware

Hypervisor

OS1

P1 P2

OS2

P1 P2

DriversDrivers

Type-1Virtualization(VMwareWorkstation,VirtualBox)

• What'sthedesiredsecuritymodel?

• IsolationbetweenOS1/OS2(andprocesses)

• Noaccesstofilesystem,memorypages

• No"escape"fromprocess/OStohypervisor

• Whatcangowrong?

Page 7: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

IsolationProblems

Hardware

Hypervisor

OS1

P1 P2

OS2

P1 P2

DriversDrivers

Type-1Virtualization(VMwareWorkstation,VirtualBox)

• Informationleakage

• side-channelattacksusingsharedresources(instruction/memorycaches)

• Degradationofservice

• Violateperformanceisolation,OS1degradesOS2togetmoreCPUtimeornetworkbandwidth

• Otherproblems?

Page 8: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

VirtualMachineManagement

• Snapshots– Volumesnapshot/checkpoint

• persistentstorageofVM• mustbootfromstoragewhenresumingsnapshot

– Fullsnapshot• persistentstorageandephemeralstorage(memory,registerstates,caches,etc.)

• start/resumeinbetween(essentially)arbitraryinstructions

• VMimageisafilethatstoresasnapshot

Page 9: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Uses for Secure Random Numbers

Cryptography• Keys • Nonces, initial values (IVs), salts

System Security• TCP Initial Sequence Numbers

(ISNs) • ASLR • Stack Canaries

Page 10: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Where can we get secure random numbers?

Every OS provides a high-quality RNG

OSX/Linux: cat /dev/urandom

Page 11: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Operating System Random Number Generators

Random Numbers Statistically Uniform

Hard to predict

RNGSystem EventsKeyboard Clicks

Mouse Movements Hard Disk Event Network Packets Other Interrupts

Page 12: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Random NumbersRNGSystem Events

Linux RNG

Input Pool

Random Pool

URandom Pool

Interrupt Pool

/dev/random

/dev/urandom

interrupt events

disk events keyboard events

mouse events hardware RNGs

Cryptographic hash

Linux /dev/(u)random:

Page 13: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Random NumbersRNGSystem Events

RNG Failures

RNG FailuresPredictable Output Repeated Output Outputs from a small range (not-statistically uniform)

Broken Windows RNG: [DGP 2007] Broken Linux RNG: [GPR 2008], [LRSV 2012], [DPRVW 2013], [EZJSR 2014] Factorable RSA Keys: [HDWH 2012] Taiwan National IDs: [BCCHLS 2013]

Page 14: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Virtual Machine Snapshots

Snapshot

Resumption

disk

Page 15: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Security Problems with VM Resets

VM Reset Vulnerabilities [Ristenpart, Yilek 2010] Use key

Use keySnapshot

App starts

Read /dev/urandom

Initialization

Derives key

Firefox and Apache reused random values for TLSAttacker can read previous TLS sessions, recover private

keys from Apache

Page 16: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Linux RNG after VM Reset

Experiment:• Boot VM in Xen or VMware • Capture snapshot • Resume from snapshot, read from /dev/urandom

Read RNG

Snapshot

disk Read RNG

Repeat: 8 distinct snapshots 20 resumptions/snapshot

Not-So-Random Numbers in Virtualized Linux [Everspaugh, et al, 2014]

Page 17: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

/dev/urandom outputs after resumption

21B8BEE4 9D27FB83 6CD124A6 E8734F71 111D337C 1E6DD331 8CC97112 2A2FA7DB DBBF058C 26C334E7 F17D2D20 CC10232E ...

Reset 1

21B8BEE4 9D27FB83 6CD124A6 E8734F71 111D337C 1E6DD331 8CC97112 2A2FA7DB DBBF058C 26C334E7 F17D2D20 CC10232E ...

Reset 2

21B8BEE4 9D27FB83 6CD124A6 E8734F71 111D337C 1E6DD331 8CC97112 2A2FA7DB DBBF058C 26C334E7 45C78AE0 E678DBB2 ...

Reset 3

Linux RNG is not reset secure: 7/8 snapshots produce mostly identical outputs

Page 18: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Reset insecurity and applications

Generate RSA key on resumption: openssl genrsa

30 snapshots; 2 resets/snapshot (ASLR Off) • 27 trials produced identical private keys • 3 trials produced unique private keys

Page 19: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Why does this happen?

Input Pool

Random Pool

URandom Pool

Interrupt Pool

/dev/random

/dev/urandom

Linux /dev/(u)random

interrupts

disk events

if (entropy estimate >= 64)

if (entropy estimate >= 192)

if (count > 64 or elapsed time > 1s )

Buffering and thresholds prevent new inputs from impacting outputs

Page 20: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

What about other platforms?

Microsoft Windows 7

FreeBSD/dev/random produces identical output streamUp to 100 seconds after resumption

Produces repeated outputs indefinitelyrand_s (stdlib)CryptGenRandom (Win32)RngCryptoServices (.NET)

Page 21: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu
Page 22: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Cloudproviders

Cloudcomputing

Popularcustomers

Whocanbeacustomer?Wecallthese"publicclouds"

Page 23: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

CloudServices

VMsInfrastructure-as-a-service

Storage

WebCache/TLSTermination

Page 24: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Asimplifiedmodelofpubliccloudcomputing

Owned/operatedbycloudprovider

UserA

UserB

virtualmachines(VMs)

virtualmachines(VMs)

UsersrunVirtualMachines(VMs)oncloudprovider’sinfrastructure

VirtualMachineManager

VirtualMachineManager(VMM)managesphysicalserverresourcesforVMs

TotheVMshouldlooklikededicatedserver

Multitenancy(userssharephysicalresources)

Page 25: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Trustmodelsinpubliccloudcomputing

UserB

Usersmusttrustthird-partyproviderto

UserA

notspyonrunningVMs/data

secureinfrastructurefromexternalattackers

secureinfrastructurefrominternalattackers

Page 26: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Anewthreatmodel:

UserA

Badguy

AttackeridentifiesoneormorevictimsVMsincloud

2)Launchattacksusingphysicalproximity

1)AchieveadvantageousplacementvialaunchingofVMinstances

ExploitVMMvulnerability Side-channelattackDoS

Page 27: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Checkingforco-residence

Anatomyofattack

checkthatVMisonsameserverastarget-network-basedco-residencechecks-efficacyconfirmedbycovertchannels

Placementvulnerability:attackerscanknowinglyachieveco-residencewithtargetAchievingco-residence

bruteforcingplacementinstancefloodingaftertargetlaunches

Location-basedattacksside-channels,DoS,escape-from-VM

Page 28: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Cross-VMsidechannelsusingCPUcachecontention

AttackerVM

VictimVM

Mainmemory

CPUdatacache

1)Readinalargearray(fillCPUcachewithattackerdata)

2)Busyloop(allowvictimtorun)

3)Measuretimetoreadlargearray(theloadmeasurement)

Page 29: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

Cache-basedcross-VMloadmeasurementonEC2

RepeatedHTTPgetrequests

Performscacheloadmeasurements

RunningApacheserver

3pairsofinstances,2pairsco-residentand1not100cacheloadmeasurementsduringHTTPgets(1024bytepage)andwithnoHTTPgets

[Hey,You,GetOffofmyCloud,2009,Ristenpart,etal.]

Page 30: virtualization & cloud computing - University of Wisconsin ...pages.cs.wisc.edu/~ace/media/lectures/virtualization.pdf · cs642 virtualization & cloud computing adam everspaugh ace@cs.wisc.edu

recapVirtualization types, containment problems

Linux RNG and reset vulnerabilities

Cloud computing / Placement vulnerabilities / Co-residency detection via side-channels / Co-location strategies