virtualization & cloud computing - university of wisconsin...
TRANSCRIPT
![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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/1.jpg)
![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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/3.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/10.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/17.jpg)
/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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/19.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/21.jpg)
![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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/23.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/24.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/25.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/26.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/27.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/28.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/29.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042312/5edb588aad6a402d66658524/html5/thumbnails/30.jpg)
recapVirtualization types, containment problems
Linux RNG and reset vulnerabilities
Cloud computing / Placement vulnerabilities / Co-residency detection via side-channels / Co-location strategies